Spoljni klju Primarni klju tabele jednog entiteta moe
Spoljni ključ • Primarni ključ tabele jednog entiteta može se prostirati u tabelu drugog entiteta da bi se tabele povezale. • Ovo se koristi za realizaciju veze izmedju dva entiteta. • Kada se atribut ili skup atributa, koji u tabeli T 1 predstavlja primarni ključ nadje u tabeli T 2, on u tabeli T 2 predstavlja spoljni ključ. Napomena: Tabela T 2 i dalje zadržava svoj primarni ključ, i on ne mora imati veze sa spoljnim ključem koji stiže iz tabele T 1. Primarni ključ i spoljni ključ su dva različita pojma.
Referencijalni integritet • Baza podataka ispunjava uslov “referencijalnog integriteta” ukoliko svaka vrednost atributa koji pripadaju nekom spoljnom ključu u nekoj relacionoj tabeli T 1 važi da se ta vrednost pojavljuje kao vrednost primarnog ključa u odgovarajućoj relacionoj tabeli T 2 sa kojom je T 1 povezana vezom “primarni ključ – spoljni ključ”.
Primeri spoljnog ključa Primer u vezi “ 1 prema više” Na slici su date dve relacione tabele baze podataka neke studentske službe, sa primerom podataka u njima u okviru koje se evidentiraju podaci o studentima i odsecima. Tabela STUDENT odnosi se na entitet Student, a tabela ODSEK na entitet Odsek. Tabela STUDENT sadrži spoljni ključ {Upisan. Na. Odsek}. Atribut Upisan. Na. Odsek predstavlja šifru odseka na koji je dati student upisan. STUDENT ODSEK
Napomene vezane za prethodni primer • Primarni ključ u tabeli ODSEK je skup od jednog atributa {Šifra. Odseka} • Primarni ključ u tabeli STUDENT je skup od jednog atributa {Broj. Indeksa} • Skup od jednog atributa {Upisan. Na. Odsek} je spoljni ključ u tabeli STUDENT. • Atribut Upisan. Na. Odsek u tabeli STUDENT može uzimati samo one vrednosti koje postoje kao vrednosti atributa Šifra. Odseka u tabeli ODSEK. Ovim je ispunjen uslov “referencijalnog integriteta”
Primeri spoljnog ključa Primer u vezi “više prema više” Dati dijagram predstavlja relacione tabele baze podataka neke prodavnice knjiga. Evidentiraju se podaci o kupcima, knjigama i o tome koji kupac poručuje koju knjigu. Tabela KUPAC odnosi se na entitet Kupac, tabela KNIGA na entitet Knjiga, a tabela KUPAC_KNJIGA na vezu Poručuje. KUPAC KNJIGA KUPAC_KNJIGA (porucuje)
Napomene vezane za prethodni primer • Skup od jednog atributa {Šifra. Kupca} je spoljni ključ u tabeli KUPAC_KNJIGA. • Skup od jednog atributa {ISBNKnjige} je spoljni ključ u tabeli KUPAC_KNJIGA. • Atribut Šifra. Kupca u tabeli KUPAC_KNJIGA može uzimati samo one vrednosti koje postoje kao vrednost atributa Šifra. Kupca u tabeli KUPAC. • Atribut ISBNKnjige u tabeli KUPAC_KNJIGA može uzimati samo one vrednosti koje postoje kao vrednost atributa ISBNKnjige u tabeli KNJIGA.
Šta znamo čitajući dijagram iz prethodnog primera? • Listu svih kupaca • Listu svih knjiga • Koje je knjige poručio kupac sa imenom Petar I preyimenom Perić • Ko je sve poručio knjigu čiji je naslov “Information Systems” • I tako dalje. . . Ovakve upite možemo postavljati sistemu za upravljanje bazama podataka koristeći jezik SQL
- Slides: 7