Uvod u Baze Podataka Milo Stojmenovi Pregled Istorija
Uvod u Baze Podataka Miloš Stojmenović
Pregled • • Istorija Baza Podataka Šta je baza podataka ? Tabele, relacije SQL
Istorija Baza Podataka • Unos Podataka • Ažuriranje • Sortiranje • Upit (Select)
Šta je Baza Podataka? • Skup povezanih tabela • Integrisana kolekcija informacije o sistemu, kompaniji, žitovnoj sredini itd. – Organizovana po potrebama korsinika • Database Management System (DBMS) je softver koji: – Pravi – Održava i ažurira podatke – Kontroliše pristup podacima
Poznate Baze Podataka • Bookings. com • Autotrader. com • Cheap. OAir. com
Šta je Baza Podataka? • Baza podataka (skup povezanih tabela) je organizovana na spefičan način: • Kolone se zovu atributi • Redovi se zovu rekordi • Ime tabele oznacava jednu vrstu entiteta koja sadrzi atribute I rekorde • Primer (univerzitet) ima tabele: – – ‘Studenti’ ‘Profesori’ ‘Predmeti’ ‘Upis’
Tabela Studenata • Sadrži atribute: Br. Ind, Ime, Prezime, Datum Upisa JMBG • Sadrži rekorde (redove) za svakog studenta 7
Tabela Profesora • Sadrzi atribute: Ime, Prezime, JMBG, Br. Prof, adresa kabineta… • Sadrzi rekorde (redove) za svakog profesora • + na početku sadrži veze sa drugim tabelama 8
Tabela Predmeta • Sadrži atribute: Ime, Br. Prof, Termin, Amfiteatar • Sadrzi rekorde (redove) za svaki predmet 1. 3. 2021. 9
Tabela Upisa • Sadrzi atribute: Br. Ind, Br. Predmeta, Datum • Sadrzi rekorde (redove) za svakog upisanog studenta • Datum registracije u ovoj tabeli nije jednak datumu registracije u tabeli studenata 10
Povezivanje Baze • Primarni ključ u datoj tabeli jedinstveno određuje vrstu (red) • Strani ključ u tabeli je primarni ključ u drugoj tabeli • Nema svaka tabela strani ključ, ali skoro uvek ima primarni ključ
Modelovanje • Svaki red (rekord) u tabeli ima jasno definisan odnos sa ostalim redovima u drugim tabelama • 1: 1 – Jedan muž za jednu ženu – U sistemu gde postoji tabela muževa, i tabela žena, bilo bi uparivanje 1: 1 (nadamo se) • 1: N – Jedan predmet ima više studenta – Jedan profesor ima više predmeta • N: M – (Više na više) – Više studenata mogu da se upišu na više predmeta
Odnosi podataka među tabelama • Svaki predmet predaje samo jedan profesor • Svaki profesor može da predaje više predmeta Predmeti Profesori • Svaki student može da pohađa više predmeta • Svaki predmet može da prihvati više upisanih studenata Studenti Predmeti Profesori
Upiti u bazu (SQL) • Structured Query Language • SQL je veza izmedju tabela i aplikativnog softvera – CREATE – kreiranje relacija (tabela) – INSERT – unos podataka – DELETE – brisanje podataka – UPDATE – izmena podataka – SELECT - Upit (Query): nalaženje zapisa koji zadovoljava unapred postavljene kriterijume – GRANT – dodela privilegija (korisnici, nad kojim podacima, koje operacije) 14
Vrsta upita u bazu (SQL) • Kako se zove profesor sa Br. Prof = 1003? • Gde je kancelarije profesora Grubora? • Kada se održava predavanje iz baze podataka? • Ko se upisao 02/10/2010? • Koje predmete drži profesor Stojmenović? • Ko je upisao Poslovnu informatiku (imena)? • Koje predmete je izabrala Nada Petrović? • Kako se zovu Nadini profesori? 15
SQL Select Komanda • Bazama se postavljaju upiti na osnovu 3 ključne reči: SELECT, FROM & WHERE • Kako se zove profesor sa Br. Prof = 1003? • SELECT Ime, Prezime • FROM Profesori • WHERE ID = 1003 – Odgovor je ‘Dragan Markovic’
Gde je kancelarije profesora Grubora? • SELECT Adr. Kancelarije • FROM Profesori • WHERE Prezime = ‘Grubor’ – Odgovor je ‘Danijelova 32’ • Select je rezultat koji tražimo • From je tabela iz koje tražimo • Where je uslov koji mora da se ispuni
Kada se održava predavanje baze podataka? • Isto kao u prethodnom primeru, ali se ovog puta biraju podaci iz druge tabele • SELECT Termin • FROM Predmeti • WHERE Ime = ‘baze podataka’ – Odgovor = ‘četvrtak 9: 00 - 12: 00 h’
Ko se upisao 02/10/2010? • SELECT Br. Ind, Datum • FROM Upis • WHERE Datum > #10/1/2010# AND Datum < #10/3/2010#;
Koje predmete drži profesor Stojmenović • SELECT Br. Predmeta, Predmet. Ime, Profesor. Ime, Prezime • FROM Predmeti, Profesori • WHERE Prezime = ‘Stojmenovic’ AND Profesori. Br. Prof = Predmeti. Br. Prof
Ko je upisao Poslovnu informatiku (imena)? • SELECT Ime, Prezime • FROM Studenti • WHERE Studenti. Br. Ind = Upis. Br. Ind AND Upis. Br. Predmeta = Predmeti. Br. Predmeta AND Predmeti. Ime = ‘Poslovna Informatika’
Koje predmete je izabrala Nada Petrović? • SELECT Br. Predmeta, Predmeti. Ime • FROM Predmeti • WHERE Predmeti. Br. Predmeta = Upis. Br. Predmeta And Upis. Br. Ind = Studenti. Br. Ind And Studenti. Prezime = 'Petrovic’ And Studenti. Ime = 'Nada'
Kako se zovu Nadini profesori? • SELECT Ime, Prezime • FROM Profesori • WHERE Profesori. Br. Prof = Predmeti. Br. Prof AND Predmeti. Br. Predmeta = Upis. Br. Predmeta AND Upis. Br. Ind = Studenti. Br. Ind AND Student. Ime = ‘Nada’ AND Studenti. Prezime = ‘Petrovic’
Zasto ne treba sve podatke staviti u jednu veliku tabelu? • Tabele - svi podaci u jednoj tabeli – Dobro: • Jednostavno, za mali broj rekorda i atributa – Loše: • Redudansa • Teškoće kod promena • Anomalije ažuriranja • Sporija pretraga 1. 3. 2021. 24
- Slides: 24