Abstract | Cilj ovog diplomskog rada je pružiti organiziran i sustavan pregled trenutno dostupnih tehnologija i paradigmi baza podataka te čitatelju približiti funkcionalnosti, tehnologije i načine modeliranja podataka NoSQL baza. Tradicionalne relacijske SQL baze podataka biti će u upotrebi još dugi niz godina, posebice kao "kralježnice" poslovnih informacijskih sustava. Ipak, paralelno (posebice od početka milenija) se razvijaju nove tehnologije baza podataka različitih primarnih namjena i implementacija, najčešće okrenute potpori web aplikacijama u klijentsko – poslužiteljskim arhitekturama.
Rad je baziran na istraživanju što aktualnije dostupne literature i službenih dokumentacija obrađenih tehnologija, a teži ostvariti balans poslovne i tehničke tematike, pa se te tehnologije promatraju iz poslovnog kuta – analitike podataka, te iz tehničkog kuta – kako baze pružaju podatkovnu potporu aplikacijskom softveru. Nakon pojašnjenja nekih osnovnih (poslovnih i tehničkih) pojmova nužnih za dublje razumijevanje tematike, poput upravljanja podacima, baza podataka, poslovne inteligencije i Velikih podataka, kreće se u sustavni pregled osnovnih tipova baza podataka. Konsenzus programerske zajednice i sve dostupne literature jest da se osim tradicionalnih, relacijskih, SQL baza podataka koje vuku korijene još s kraja 70-ih, danas iskristaliziralo još četiri osnovna tipa tzv. NoSQL baza: ključ-vrijednost sustavi, graf-baze, stupčane baze te dokumentne baze.
Srž rada je u približavanju načina funkcioniranja, modela podataka te prednosti i mana osnovnih tehnologija baza podataka, s primjerima praktičnog korištenja. Istraživanje se temeljilo na razvoju vlastite prototipne aplikacije (lista zadataka, tzv. "To-do app") koja kao svoju podatkovnu potporu ima NoSQL rješenje. Istraživanje daje uvid u fleksibilnost i mogućnosti nerelacijskih baza podataka, a općenitije u prednosti aplikacija korisnica takvih baza u klijentsko – poslužiteljskoj arhitekturi (web aplikacija). |
Abstract (english) | The aim of this thesis is to provide an organized and systematic view of currently available database technologies and paradigms. Special focus is given to helping readers understand the functionalities, technologies and data modelling techniques of NoSQL databases. Traditional relational SQL databases will be in use, especially as the backbone of business IT system for many years to come. That being said, in the 21st century we're seeing an advent of new database technologies with differing implementations and purposes, primarily aimed towards supporting web applications in client – server architectures.
This paper is primarily based on researching the most current literature and the official documentation of technologies covered, and aims to achieve a balance between a business – oriented and a technical approach so the technologies are viewed through a business lens – data analytics and from a technical standpoint – how databases support applications. Some clarification of basic (business and technical) terms is necessary: data management, databases, business intelligence and big data, which is followed by a systematic overview of database types. Both the available literature and the developer community seem to reach a consensus about there being four basic types of NoSQL databases (in addition to traditional, relational SQL databases that trace their roots all the way to the late 1970s). These four types are: document, key – value, wide – column and graph databases.
The essence of this thesis is in creating an understanding of operating principles, data models and the pros and cons of the basic types of database technologies, with examples of practical usage. The research part of the paper is based on developing a prototype "To – do" application which uses a NoSQL solution as its data support. The research gives insight into the flexibility and possibilities of non – relational databases supporting web applications, and in a more general view, of the advantages of applications in a client – server architecture where the end – user accesses the application from a web browser. |