Погледи¶
Основна јединица за чување података у релационој бази податка је табела. Свака табела је један објекат у бази. База података може да садржи и друге објекте, а један од често коришћених је поглед.
Поглед (енгл. view) је објекат у бази који представља филтер којим се омогућава посебно дефинисан, најчешће делимичан, увид у садржај једне табеле или неколико табела. Погледе можемо да схватимо као фиктивне табеле, које се у каснијим упитима SELECT могу користити као и све остале табеле. Погледи нису заиста сачувани у бази као табеле, већ се упит који их користи интегрише са упитом којим се поглед дефинише и тако добијени комбиновани упит се оптимизује и извршава. Погледи се најчешће користе само за читање података.
CREATE VIEW kontakti
AS SELECT ime, prezime, mejl
FROM zaposleni
Поглед можемо да претражујемо као и табелу. Резултат упита над погледом враћа податке из табеле за коју је поглед креиран.
SELECT * FROM kontakti
Увођењем овог погледа смо сакрили неке податке, на пример плате запослених. Дакле, погледом можемо неким корисницима базе да дозволимо да виде неке податке, а да неке друге податке из исте табеле не могу да виде.
Поглед може да има и неку селекцију редова. На пример, можемо да креирамо такав поглед којим ћемо једном менаџеру дозволити да кроз поглед види само податке запослених за које је задужен.
CREATE VIEW zaposleni_grupa1
AS SELECT *
FROM zaposleni
WHERE id_menadzera=1
Такође је добра пракса да се често коришћени упити запамте као посебни погледи на базу података. На пример, следећи поглед приказује податке о књигама са подацима о ауторима и издавачима. Ово је пример погледа који је повезан са неколико табела.
CREATE VIEW knjige_detaljno
AS SELECT autori.ime "ime", autori.prezime "prezime",
knjige.naziv "naziv_knjige", izdavaci.naziv "naziv_izdavaca"
FROM knjige JOIN autori_knjige ON (autori_knjige.id_knjige=knjige.id_knjige)
JOIN autori ON (autori_knjige.id_autora=autori.id_autora)
Када имамо овакав поглед, знатно смо олакшали добијање извештаја који садржи име аутора, назив књиге и назив издавача.
SELECT ime, prezime, naziv_knjige, naziv_izdavaca FROM knjige_detaljno
Приказано је само неколико једноставних примера погледа.