Obvezna relacija (ang. mandatory relationship) obstaja, kadar mora za vsak primerek iz prve tabele v relaciji obstajati en ali več primerkov iz druge tabele. Na primer, da glasbena skupina obstaja, mora obstajati vsaj en glasbenik v tej skupini.
Neobvezna relacija (ang. optional relationship) obstaja, če za vsak primerek iz prve tabele v relaciji lahko obstajajo primerki iz druge tabele. Na primer, če je avtor naveden v podatkovni bazi, ne da bi napisal knjigo (t.j. bodoči avtor), je ta relacija neobvezna. Ni pa nujno, da drži tudi obratno. Na primer, da je knjiga navedena, mora imeti avtorja.
Načini za predstavitev relacij Označevanje števnosti v relacijah
Celovitost podatkov (ang. data integrity) se nanaša na stanje, ko so podatki točni, veljavni in dosledni. Primer slabe integritete bi bil, če je telefonska številka stranke različno shranjena na dveh različnih mestih. Drugi primer slabe celovitosti bi bil, da zapis predmeta vsebuje sklicevanje na učitelja, ki ne uči več na šoli.
Normalizacija (ang. normalization) podatkovne baze je tehnika, ki pomaga zmanjšati tveganje tovrstnih težav in jo bomo spoznali v nadaljevanju te učne enote.
Ključ je polje ali kombinacija polj, ki enolično identificira posamezni zapis. Ključ ne sme vsebovati ničelne vrednosti NULL
, njegova vrednost mora biti edinstvena (ang. unique). Če bi lahko ključ vseboval podvojene vrednosti, potem ne bi več mogli enolično identificirali posameznega zapisa. Vsak ključ ima ime. Poznamo različne vrste ključev, kot na primer primarni ključ, sestavljeni ključ, nadomestni ključ, tuji ključ itd., ki jih bomo spoznali v nadaljevanju.
Primarni ključ (ang. Primary key – PK) je ključ, ki ga uporabljamo za enolično identifikacijo zapisov v tabeli podatkovne baze. Sestavljeni ključ (ang. Composite key) je primarni ključ, ki je sestavljen iz več stolpcev tabele.
Nadomestni ključ (ang. Surrogate key) je primarni ključ, ki vsebuje edinstvene vrednosti, ki jih samodejno ustvari sistem podatkovne baze – običajno so to cela števila. Nadomestni ključ nima pomena, razen tega, da enolično identificira zapise v tabeli. To je najpogostejša vrsta primarnega ključa.
Oglejmo si naslednjo tabelo:
koda_stranke | ime | priimek | telefon |
---|---|---|---|
1 | Janez | Novak | (01) 2546 733 |
2 | Marija | Kovač | (041) 266 374 |
3 | Franc | Vidmar | (040) 334 896 |
4 | Ana | Vidmar | (040) 344 689 |
5 | Marija | Horvat | (02) 7681 425 |
Na prvi pogled sta v tej tabeli možna dva primarna ključa. Zadoščala bi bodisi polje koda_stranke
, bodisi kombinacija polje ime
, priimek
in telefon
. Za primarni ključ je vedno bolje izbrati ključ z najmanjšim številom polj, zato v tem primeru za primarni ključ izberemo polje koda_stranke
– to je hkrati tudi nadomestni ključ.
Po premisleku lahko ugotovimo, da obstaja možnost, da druga kombinacija ni edinstvena. Kombinacija imena, priimka in telefonske številke bi se teoretično lahko podvojila, na primer, če ima oče sina z istim imenom, ki je dosegljiv na isti stacionarni telefonski številki. Zato ta kombinacija polj ni primerna za primarni ključ.