Uvod u baze podataka Pojam 2 Baze podataka
Uvod u baze podataka
Pojam 2 Baze podataka predstavljaju skup podataka organizovanih s nekim zajedničkim ciljem – centralno skladištenje podataka i jednostavno upravljanje podacima. Nije od velikog značaja kakva podrška postoji za prikupljanje i skladištenje podatka (papir, datoteke, . . . ) sve dok se podaci prikupljaju i skladište na neki organizova način i sa specifičnim ciljem može se govoriti o bazama podataka. Pod bazama podataka podrazumevamo strukturirani skup podataka koji omogućava takvo skladištenje velike količine podataka koje olakšava njihovu eksploataciju (dodavanje, ažuriranje, pretraživanje). Naravno, danas, kada se govori o bazama podataka, misli se prvenstveno na automatizovane baze podataka.
. . . Nekad Kako su izgledale baze podataka pre 20 godina? ? ? 3
Definicija 4 Automatizovane baze podataka predstavljaju organizovani skup podataka koji je zabeležen na nekom računarskom nosicu podataka; ovaj skup podataka predstavlja informacije o realnom svetu koje neka zajednica korisnika može da po potrebi menja i pretražuje.
Sada Gde koristimo baze podataka – koja je njihova primena? Poslovanje preduzeća Prodaja: korisnici, proizvodi, kupci Proizvodnja: obrada, inventar, porudžbine, lanac snabdevanja Ljudski resursi: evidencija zaposlenih, zarade Policijska baza podataka – sva sreća pa gledamo CSI Škole, fakulteti – Baze učenika, studenata, rasporedi… Aerodromi: rezervacije, raspored letova Zdravstvo –evidencija o pacijentima, zaposlenima, organizacija i zakazivanje Finansijske organizacije –banke, transakcije Politika – političke stranke 5
6 Gde još koristimo baze podataka? � INTERNET? Ali gde na internetu? � Primer web stranice koja koristi bazu podataka je Instagram kao i www. IMDB. com –Internet Movie Data Base � Društvene mreže � Dinamičke web stranice (npr online vesti) � Kako to sve izgleda? Mi imamo formu – web stranicu kojoj pristupamo, a podaci koji se na njoj prikazuju potiču iz baze podataka koja se nalazi „iza“ te forme.
7 ***Problem koherentnosti podataka Baze podataka se stvaraju jer postoji potreba da se prikupe podaci između kojih postoje neke veze s ciljem da se pronađu informacije, koristeći kriterijume za pretraživanje koji se oslanjaju na sadržaj tih informacija. Na primer: podatak Album u bazi se može uneti kao Album, ALBUM, album i slično… Koherentnost podataka je ključni problem baza podataka. Prvi i najvažniji odgovor za rešavanje ovog problema je da se što je moguće više ograniči redundantnost informacija, tj. njihovo nepotrebno ponavljanje.
Tipovi baza podataka Lokalne baze podataka Nalaze se na lokalnom disku računara Bazi podataka može da pristupa samo jedan korisnik Klijent/server baze podataka Baza podataka se nalazi na serveru Bazi podataka može „istovremeno“ da pristupa više korisnika Primer - informacioni sistem 8
Vrste (modeli) baza podataka Relacione 9 baze podataka – Predstavljaju skup tabela povezanih određenim relacijama. Mrežne – Ovaj tip baza podataka je opisan matematičkom teorijom grafova (čvorovi i lukovi). Čvorove predstavljaju tipovi zapisa a lukovi veze između tipova zapisa. Hijerarhijske – Specijalni slučaj mrežnog modela samo je dodat još i odnos podređeni– nadređeni tip veze između zapisa. Objektno orjentisani modeli Objektni Relaciono-objektni Mrežni i Hijerarhijski tip baza podataka se retko koristi u praksi. Daje mogućnost samo jednostavnih operacija sa BP.
Šta je to DBMS? �Skraćenica 10 DBMS znači Data Base Managment System – odnosno Sistem za Upravljanje Bazama Podataka (SUBP) �DBMS predstavlja kolekciju programa koji omogućavaju kako osnovne tako i napredne o. peracije nad bazom podataka
11 DBMS obično sadrži: Jezik za definisanje podataka (Data Definition Language, DDL) omogućava definisanje tipa i strukture podataka, kao i ograničenja nad memorisanim podacima Jezik za manipulaciju podacima (Data Manipulation Language, DML) omogućujava umetanje, izmenu, brisanje… podataka iz baze podataka Jezik za postavljanje upita (Query Language, baze podataka QL) omogućava interaktivno pretraživanje
ZADACI DBMS 12 Skup programa koji obezbeđuju upravljanje bazom podataka i pristup ka njoj se naziva sistem za upravljanje bazama podatka. Jedan sistem za upravljanje bazama podataka može da održava više različitih baza podataka koje su tematski različite. Koji god model podataka da je primenjen (mrežni, relacioni ili objektni) glavni zadaci sistema za upravljanje bazama podataka su: da sakrije od korisnika fizičku reprezentaciju podataka, da obezbedi zaštitu i koherentnost podataka u višekorisničkom okruženju u kome mnogi korisnici istovremenu pristupaju podacima.
13 Sistem za upravljanje bazama podataka omogućava dodavanje podataka, njihovu modifikaciju i pretraživanje. Model koji se prirodno nametnuo u poslednjih tridesetak godina je relacioni model, koji se poslednjih godina nadograđuje objektnim pristupom. Sistemi za upravljanje bazama podataka koji podržavaju relacioni model koriste jezik SQL – Standard Query Language – koji predstavlja standardizovani pristupni (upitni) jezik za relacione baze podataka.
CILJEVI DBMS 14 Sistem za upravljanje bazama podataka ostvaruje više značajnih CILJEVA u stvaranju i eksploataciji baze podataka: fizička nezavisnost: interna reprezentacija podataka i metoda ze pristup sistemu datoteka mora za korisnika da bude transparentna. To znači da promene fizičke organizacije podataka ne zahtevaju modifikaciju programa obrade nad bazom podataka; logička nezavisnost: jedan isti skup podataka različiti korisnici mogu da vide na različite načine. Sve ove različite poglede definiše eksterna šema koja mora u potpunosti da bude integrisana sa globalnom konceptualnom šemom. To znači, na primer, uvođenje nove rubrike kolone u tabeli - ne zahteva izmene programa obrade koji nisu neposredno pogođeni ovom izmenom.
15 efikasnost pristupa podacima: obezbeđuje dobar protok (broj transakcija u sekundi) i odziv sistema (srednje vreme čekanja za obavljanje jedne transakcije) kontrolisana redundantnost podataka- svaka informacija u bazi podataka treba da bude predstavljena samo jednom koherentnost podataka: podaci moraju da zadovolje uslove integriteta pomoću kojih se definiše koherentno stanje baze podataka. Ovi uslovi moraju da se izraze jednostavno i da se automatski proveravaju kod svakog umetanja, promene ili brisanja podatka.
16 deljenje podataka: sistem za upravljanje bazama podataka treba da omogući istovremeno korišćenje podataka u različitim aplikacijama i da otkriva i obrađuje slučajeve u kojima postoji konflikt u pristupu bazi između više korisnika. bezbednost podataka: podaci u bazi podataka moraju biti zaštićeni od neovlašćenog pristupa. Da bi se to ostvarilo svakom korisniku treba da se dodeli određeni nivo prava za pristup podacima. otpornost na kvarove: Treba da postoji mogućnost da se baza vrati u stabilno stanje u kome je bila pre početka transakcije promene podataka. . .
Predstavnici DBMS -primeri Access Oracle MS SQL My. SQLite 17
18 Proces projektovanja baze podataka Proces projektovanja prolazi kroz više faza. U prvoj fazi, koju ćemo nazvati analiza, na osnovu istraživanja svojstava relevantnih objekata realnog sveta gradi se specifikacija (opis) baze podataka. Specifikacija BP izražava korisničke poglede na podatke, kao i zahteve u pogledu njihove eksploatacije. Na osnovu specifikacije se u fazi projektovanja (ili koncipiranja) gradi konceptuelna šema baze podataka. U ovom koraku se zahtevi iskazani specifikacijom prevode na opšti opis baze podataka kroz opis opštih struktura podataka i procedura. Bitno je istaći da specifikacija i projektovanje ne zavise ni od konkretnog sistema za upravljanje bazama podataka, niti od konkretnog računarskog sistema.
19 Konceptualna šema se, dalje, transformiše u logički model koji nazivamo logička šema, a u kojoj se na jeziku za definiciju i manipulaciju podataka izražavaju veze podataka opisane konceptuelnom šemom. Logička šema se u fazi fizičkog projektovanja transformiše u internu (ili fizičku) šemu. Na ovom nivou se detaljno i potpuno predstavljaju rezultati prethodnog projektovanja konkretnim strukturama podataka i odgovarajućim algoritmima.
Arhitektura BP 20 1. FIZIČKI NIVO se odnosi na fizički prikaz i raspored podataka na jedinici spoljne memorije. To je aspekt koji vide samo sistemski programeri 2. GLOBALNI LOGIČKI NIVO se odnosi na logičku strukturu cele baze, zapis logičke definicije se naziva Shema (tekst ili dijagram). Ovaj aspekt vidi administrator/projektant baze 3. LOKALNI LOGIČKI NIVO se odnosi na logičku predstavu dela baze koji koristi pojedinačna aplikacija. Zapis jedne lokalne logičke definicije se naziva Pogled ili podshema. Ovaj aspekt baze vidi korisnik baze ili aplikacijski programer
U praksi. . Prvi korak u projektovanju baze 1 Razgovor sa klijentom – najteži deo Koje ciljeve treba da zadovolji baza podataka Kako rasporediti podatke u tabeli Koje relacije da postavite između tabela Koje pojedinosti 21
22 Drugi korak u projektovanju baze 2 Rešavanje problema na papiru. Grupisanje podataka po smislu Kako rasporediti podatke u tabeli Koje relacije da postavite između tabela Dodeljujemo podacim adekvatne tipove podataka
23 Treći korak u projektovanju baze Pravljenje tabela, interfejsa, izveštaja ukratko programiranje baze podataka. 3 Programi za kreiranje baza podataka su: Access, SQL. Primenom raznih programskih jezika takođe možemo kreirati aplikaciju koja će upravljati bazom podataka. Primer programskih jezika: Visual C++, Php, Delphi. .
Modeliranje BP zahteva da se svi elementi realnog sveta svrstaju u neku od 3 kategorije: 1. Entiteti –objekti ili događaji koji su nam od interesa za BP 2. Veze –odnosi među entitetima 3. Atributi –svojstva entiteta i veza 24
Entitet 25 Može biti objekat ili biće (kuća, učenik, auto), odnosno događaj ili pojava (adresa, boja, uplata) Entitet je opisan atributima (npr atributi auta: reg. broj, boja, model, godište. . ) Ime entiteta zajedno sa atributima određuje Tip entiteta (npr entitet učenik je tip čiji primerci mogu biti: Milan Milić, Petar Perić. . ) Kandidat za KLJUČ je atribut (ili skup atributa) koji jednoznačno određuje primerak entiteta zadatog tipa (za entitet Auto –ključ je atribut Reg. Broj) Ukoliko jedan tip entiteta ima više kandidata za ključ, tada biramo jedan i proglašavamo ga PRIMARNIM KLJUČEM
26 Atribut koji jednoznačno identifikuje entitet je ključni atribut relacije (ključ ili primarni ključ) Svaki primarni ključ se može posmatrati kao jedinstven identifikator tog entiteta (ili reda u tabeli) Kada se primarni ključ koristi za povezivanje sa drugom tabelom (za uspostavljanje relacije) on postaje spoljni ključ. Da bi atribut bio kandidat za ključ potrebno je da važe uslovi: Uslov jedinstvenosti (ne postoje dva reda sa istom vrednošću) Uslov neredudantnosti (ako se bilo koji atribut izostavi iz ključa, gubi se osobina jedinstvenosti)
Veze -Relacije 27 Uspostavljaju se među dva ili više tipova entiteta (npr veza entiteta Klub i Igrač može biti “igra za”) Veza je binarna ili k-narna relacija između primeraka entiteta zadatih tipova Funkcionalnost veze može biti: 1: 1 gde jedan primerak prvog tipa entiteta može biti u vezi sa najviše jednim primerkom drugog tipa *** učenik: JMBG 1: N (jedan u relaciji sa više i obrnuto) *** radnik: broj telefona N: N (više entiteta u relaciji sa više) *** nastavnik: učenik 1. 2. 3.
Šta smo naučili? � Pojam BP? Definicija automatizovane BP? � Vrste BP? � Aplikacije/primene BP? � Šta je DBMS? � Glavni zadaci DBMS? Predstavnici? � Ciljevi BP? � Faze u projektovanju BP? Koraci u praksi? � Arhitektura (nivoi) BP? � Šta podrazumeva modeliranje BP? � Šta je entitet? Šta je atribut? � Pojam ključa? � Šta su relacije i koje vrste relacija postoje? Primeri? 28
- Slides: 29