Zemunska gimnazija Baze podataka Veze prof Jelena Bokovi
Zemunska gimnazija Baze podataka– Veze prof. Jelena Bošković
Da se prisetimo: • Baza podataka predstavlja kolekciju međusobno povezanih podataka koje može koristiti više korisnika i više različitih aplikacija. • Relaciona baza podataka se sastoji od podataka koji su razvrstani u tabele koje su međusobno povezane.
Vrste veza • Jedan prema jedan 1: 1 • Jedan prema više 1: n ili n: 1 (zavisi sa koje se strane čita) • Više prema više n: m
Određivanje tipa veze Posmatrajte vezu između dve relacije: • najpre analiziramo odnos između jednog entiteta iz prve relacije i svih ostalih entiteta iz druge. • isti postupak ponovite za drugi smer, odnosno odnos jednog entiteta iz druge relacije sa svim entitetima iz prve.
Primer 1: Posmatrajmo odnos između relacija Radnik i Sektor: • 1 radnik može da radi u samo 1 sektoru • 1 sektor ima više (n)radnika koji u njemu rade n Radnik Ime Prezime 1 JMBG Adresa Telefon Pol Plata Sektor SSektora Sektor Zaključujemo da je tip veze između ove dve relacije n: 1
Primer 2: Posmatrajmo odnos između relacija Prodaja i Račun: • 1 prodaja ima 1 račun • 1 račun se odnosi na 1 prodaju 1 Prodaja SProdaje 1 Datum . . . Račun SRacuna Iznos . . . Zaključujemo da je tip veze između ove dve relacije 1: 1
Primer 3: Posmatrajmo odnos između relacija Učenik i Predmet: • 1 učenik uči više (m) predmeta • 1 predmet je učen od više (n) učenika n Učenik SUcenika m Ime . . . Predmet SPredmeta Predmet . . . Zaključujemo da je tip veze između ove dve relacije n: m
Povezivanje relacija • Relacije se povezuju preko atributa koji su za to pogodni. . . • Atribut kojim se jedna tabela povezuje sa drugom zove se SPOLJNI KLJUČ (STRANI ključ). • On može ali i ne mora biti i primarni ključ. • Ne mora se isto zvati kao i atribut u drugoj tabeli sa kojim se povezuje, ali mora biti istog domena tj. mora imati istu vrednost.
Primer 1: Kada je veza između relacija 1: n (n: 1) spoljni ključ se dodaje na stranu relacije gde je n i povezuje se sa primarnim ključem relacije gde je 1. n Radnik Ime 1 Prezime JMBG Adresa Telefon Pol Plata Br. Sektor SSektora Sektor Dodali smo Br. Sek u relaciju Radnik i on je spoljni ključ preko koga ćemo ovu relaciju povezati sa relacijom Sektor.
Primer 2: Kada je veza između relacija 1: 1 spoljni ključ može da se doda u bilo koju relaciju. 1 Prodaja SProdaje 1 Datum . . . SRacuna Račun SRacuna Iznos . . . Dodali smo SRačuna u relaciju Prodaja i on je spoljni ključ preko koga ćemo ovu relaciju povezati sa relacijom Račun.
Primer 3: Kada je veza između relacija n: m ona ne može kao takva ostati, već je moramo razbiti na dve veze uvođenjem nove relacije koja sadrži ključeve iz obe relacije koje učestvuju u vezi. U primeru veze Učenik: Predmet treba kreirati novu relaciju Uči koja sadrži atribute: ključ relacije Predmet, ključ relacije Učenik (a može i još neke dodatne atribute). Ključ te nove relacije je kombinacija atributa ključeva obe relacije – dakle složeni primarni ključ, čiji je svaki deo ujedno i spoljni ključ jer služi za povezivanje sa drugom tabelom (SUcenika sa tabelom Učenik, a SPredmeta sa tabelom Predmet). Učenik n SUcenika Ime . . . Uči SUcenika m SPredmeta Predmet . . .
Povezivanje relacija • Relacija koja se povezuje preko spoljnog ključa je POTČINJENA u odnosu na relaciju sa kojom se povezuje, a ona je GLAVNA. • Glavna relacija može imati više potčinjenih, a potčinjena samo jednu glavnu.
Ograničenja Integritet entiteta • Nijedan atribut primarnog ključa relacije ne sme imati NULL vrednost (ne sme biti bez vrednosti). Referencijalni integritet • Vrednost spoljnog ključa potčinjene relacije mora biti jednaka jednoj od vrednosti primarnog ključa glavne relacije, ili njegova vrednost mora biti NULL (ne može biti neka drugačija, nova vrednost).
Referencijalni integritet • Pri dodavanju novog entiteta u potčinjenu tabelu: Treba voditi računa da se za vrednost spoljnog ključa može uzeti jedna od vrednosti primarnog ključa u glavnoj tabeli (ne može neka nova). • Pri brisanju entiteta iz glavne tabele: Treba obezbediti i brisanje odgovarajućeg entiteta iz glavne tabele. *Kako se ovo radi biće objašnjeno na vežbama!
- Slides: 14