Baze podataka se mogu definisati kao dobro struktuirana kolekcija podataka koja postoji relativno dugo i koju koristi i održava veliki broj korisnika, odnosno programa. Baze podataka nalaze veliku primenu u mnogim aplikacijama. Postoji čitava paleta aplikacija koje su specijalno dizajnirane za rad sa bazama podataka. Baze podataka su korisne u slučaju da je velikom broju korisnika potrebno da istovremeno pristupa ili da menja sadržaj velikoj količini podataka. Naravno, važno je da podaci ostanu u validnom stanju kad god im neko pristupa. Dva bitna pojma vezana za baze podataka su sistem za upravljanje bazom podataka i model podataka.
Pogledajmo sledeći primer:
slika 1. klasična obrada podataka
Kao što se vidi, u različitim aplikacijama se pristupa podacima koji se nalaze na različitim lokacijama. Samim tim se povećavaju troškovi održavanja baze. Konzistentnost (uzajamni odnos) podataka se može narušiti ako dođe do istovremenog pristupanja jednom te istom podatku od strane dve različite aplikacije ili ako dođe do kvara na jednom od računara. Na primer, neka u nekoj prodavnici automobila imamo tri automobila i iz dve filijale neko želi da kupi po dva automobila u isto vreme. Oba kupca mogu da plate i da misle da su završili posao, ali na dan isporuke jedan automobil fali.
slika 2. uloga sistema za upravljanje bazom podataka
Sistem za upravljanje bazom trebalo bi da se izbori sa takvim problemima i da omogući:
Na taj način podaci više nisu razbacani na više mesta nego su organizovani u jedinstvenu bazu podataka.
Za pouzdanost podataka su zadužene transakcije i oporavak baze.
Oporavak baze se zasniva na povremenom kopiranju sadržaja baze na pomoćne lokacije. U slučaju da dođe do nekog kvara te kopije se, posle otklanjanja kvara, vraćaju na mesto originalne baze. Na taj način se gubi samo mali deo podataka koji se lako nadoknađuje.
Transakcija je niz operacija nad bazom koji odgovara jednoj logičkoj jedinici posla u realnom sistemu. Ona može biti deo programa ili ceo program može da predstavlja jednu transakciju. Transakcija mora da obezbedi sledeće osobine:
Jedan standard organizovanja podataka u bazi je po principu tabela. Jedna tabela predstavlja skup podataka o nekom objektu, fenomenu ili procesu. Ti podaci su podeljeni po kolonama (koje odgovaraju atributima), a u svakom redu (vrsti) date tabele su smešteni podaci o konkretnom objektu, fenomenu ili procesu. Tabele moraju da zadovolje sledeće uslove:
Student
Br.indeksa |
Ime |
Starost |
001 |
Miloš |
19 |
007 |
Ana |
19 |
035 |
Ana |
22 |
Prijava ispita
BrIndeksa |
Ime |
Naziv ispita |
Ocena |
001 |
Miloš |
Matematika |
10 |
001 |
Miloš |
Engleski |
8 |
035 |
Ana |
Engleski |
9 |
Samim tim što u jednoj tabeli ne postoje duplikati to znači da postoji jedan ili više atributa koji jedinstveno određuju neku vrstu u tabeli. Taj atribut ili grupa atributa se naziva ključem tabele (prost - ako je jedan atribut u pitanju ili složen - ako je više njih u pitanju). U primeru Student 'BrIndeksa' je prost ključ, a u primeru Prijava ispita složen ključ je 'brIndeksa, Naziv predmeta' jer ne postoje dve vrste sa istim vrednostima tih atributa. Ako imamo više atributa koji su jedinstveni njih nazivamo kandidatima za ključ, a jednom kad izaberemo jednog od njih taj atribut zovemo primarnim ključem. On služi za jedinstvenu identifikaciju objekta i na taj način nam omogućava lako pronalaženje. Spoljni ključ je atribut u tabeli T1 koji u njoj nije primarni, ali je primarni za tabelu T2. Primarni ključ u tabeli Student je BrIndeksa, dok je u tabeli prijava ispita to spoljni ključ, jer je to samo deo njenog ključa. Ključevi služe da se formiraju veze između tabela.
Standard Query Language (SQL) je standardni jezik za pristupanje podacima u bazi podataka. Njegove naredbe se mogu podeliti u tri kategorije:
Naredbe za definisanje su:
Naredbe za manipulisanje su naredbe sa kojima se najčešće srećemo, a to su:
Naredbe za kontrolne funkcije omogućavaju bezbednost podataka i oporavak u slučaju kvara sistema. Najčešće korišćene su:
Naredbe za kontrolu omogućavaju kontrolu pristupa objektima baze. Najčešće korišćene su: