Relacijski podatkovni model

Pogledi

Pogledi (ang. views) so virtualne oziroma navidezne tabele. So le struktura in ne vsebujejo nobenih podatkov. Njihov namen je omogočiti uporabniku, da vidi podmnožico dejanskih podatkov. Pogled je lahko sestavljen iz podmnožice ene tabele. Na primer, pogled dijakov spodaj je podmnožica tabele dijakov.

Tabela dijakov dijak
id ime priimek uspeh rojen
1 Sia Majcen 4 2005-07-03
2 Maj Kranjc 5 2005-05-28
3 Ronja Rupnik 5 2005-06-15
Pogled dijakov pogled_dijak
ime priimek uspeh
Sia Majcen 4
Maj Kranjc 5
Ronja Rupnik 5

Ta pogled lahko uporabimo, če želimo na primer dijakom omogočiti, da lahko vidijo zaključene ocene svojih sošolcev, vendar jim ne omogočimo dostopa do drugih osebnih podatkov sošolcev.

Obstaja pa tudi druga možnost, pri kateri je pogled sestavljen iz podmnožice polj iz večih tabel, kot je prikazano na primeru, pri katerem je pogled sestavljen iz podatkov iz treh tabel – tabele dijakov, tabele predmetov in tabele ocen.

Tabela predmetov predmet
id predmet leto ure
1 Matematika 1 140
2 Slovenščina 1 140
3 Angleščina 1 105
Tabela dijakov dijak
id ime priimek uspeh rojen
1 Sia Majcen 4 2005-07-03
2 Maj Kranjc 5 2005-05-28
3 Ronja Rupnik 5 2005-06-15


Tabela ocen redovalnica
dijak_id predmet_id ocena
2 3 5
2 1 5
2 2 4
1 3 4
1 1 3
1 2 4
3 3 5
3 1 4
3 2 5
Pogled ocen pogled_redovalnica
ime priimek predmet ocena
Maj Kranjc Angleščina 5
Maj Kranjc Matematika 5
Maj Kranjc Slovenščina 4
Sia Majcen Angleščina 4
Sia Majcen Matematika 3
Sia Majcen Slovenščina 4
Ronja Rupnik Angleščina 5
Ronja Rupnik Matematika 4
Ronja Rupnik Slovenščina 5

Pogledi so uporabni tudi iz vidika varnosti. V večjih organizacijah, kjer morda veliko razvijalcev dela na projektu, pogledi omogočajo razvijalcem dostop samo do podatkov, ki jih potrebujejo. Podatki, ki jih ne potrebujejo, pa čeprav so v isti tabeli, so skriti, da jih ne morejo videti ali spreminjati. Pogledi omogočajo tudi poenostavitev poizvedb, ki jih uporabljajo razvijalci. Na primer, brez pogleda bi moral razvijalec pridobiti podatke iz polj v pogledu z naslednjo poizvedbo:

SELECT ime, priimek, predmet, ocena FROM dijak, predmet, redovalnica 
WHERE redovalnica.dijak_id = dijak.id AND redovalnica.predmet_id = predmet.id;

S pogledom bi lahko razvijalec enake podatke pridobil z naslednjo poizvedbo:

SELECT ime, priimek, predmet, ocena FROM pogled_redovalnica