Perspektywa cd.
Transkrypt
Perspektywa cd.
Perspektywa • perspektywa (ang. view) jest strukturą logiczną udostępniającą wybrane informacje przechowywane w relacjach bazy danych • własności – definiowana w oparciu o relacje (relacje bazowe) lub inne perspektywy (perspektywy bazowe), – nie posiada własnych danych – przechowywana w postaci zapytania Perspektywy 1 Perspektywa cd. • cel stosowania – ograniczenie dostępu do danych - zabezpieczenie przed nieautoryzowanym dostępem – uproszczenie schematu bazy danych -> uproszczenie zapytań – uniezależnienie aplikacji od zmian w strukturze bazy danych – prezentowanie danych w inny sposób niż dane w relacjach i perspektywach bazowych (m.in. zmiana nazw atrybutów, formaty danych) Perspektywy 2 Rodzaje perspektyw • proste – jedna relacja bazowa – brak funkcji – brak grupowania • złożone – oparte o wiele relacji bazowych – wykorzystują operatory zbiorowe, funkcje, grupowanie Perspektywy 3 Tworzenie perspektywy CREATE CREATE[OR [ORREPLACE] REPLACE]VIEW VIEWnazwa_perspektywy nazwa_perspektywy [([(atrybut1, atrybut1,atrybut2...)] atrybut2...)] AS AS SELECT SELECTciało_polecenia_SELECT ciało_polecenia_SELECT [WITH [WITHREAD READONLY] ONLY] [WITH ogr]]; [WITHCHECK CHECKOPTION OPTION[CONSTRAINT [CONSTRAINTnazwa_ nazwa_ogr]]; CREATE zesp CREATEOR ORREPLACE REPLACEVIEW VIEWprac_ prac_zesp AS AS SELECT _pod, p.id_ zesp, nazwa SELECTid_prac, id_prac,nazwisko, nazwisko,etat, etat,placa placa_pod, p.id_zesp, nazwa FROM FROMpracownicy pracownicyp, p,zespoly zespolyzz WHERE zesp=z.id_zesp; WHEREp.id_ p.id_zesp=z.id_zesp; Perspektywy 4 Tworzenie perspektywy cd. CREATE _pod, etat) CREATEVIEW VIEWwysokie_place wysokie_place(nazwisko, (nazwisko,placa placa_pod, etat) AS AS SELECT _pod, etat SELECTnazwisko, nazwisko,placa placa_pod, etat FROM FROMpracownicy pracownicy WHERE _pod >>1000 WHEREplaca placa_pod 1000 WITH _powyzej_1000; WITHCHECK CHECKOPTION OPTIONCONSTRAINT CONSTRAINTplaca placa_powyzej_1000; Perspektywy 5 Tworzenie perspektywy cd. • jeśli ciało polecenia SELECT wykorzystuje: – operatory zbiorowe, – funkcje grupowe, – klauzule GROUP BY, – operator DISTINCT, to do perspektywy można kierować tylko polecenie SELECT; • ciało polecenia SELECT nie może zawierać klauzuli: – ORDER BY Perspektywy 6 Perspektywa oparta o kilka relacji bazowych wykonanie wykonaniepolecenia polecenia SELECT SELECT UPDATE UPDATE DELETE DELETE INSERT INSERT Perspektywy zawsze zawsze tylko tylko dla dla jednej jednej zz relacji relacji bazowych bazowych zawierającej zawierającejklucz kluczobcy obcy tylko tylkodla dlajednej jednejzzrelacji relacjibazowych bazowych zawierającej zawierającejklucz kluczobcy obcy iiperspektywa perspektywamusi musiudostępniać udostępniać wszystkie wszystkieatrybuty atrybutyobowiązkowe obowiązkowetej tej relacji relacji 7 Kompilowanie perspektywy ALTER ALTERVIEW VIEWnazwa_perspektywy nazwa_perspektywyCOMPILE; COMPILE; Usuwanie perspektywy DROP DROPVIEW VIEWnazwa_perspektywy; nazwa_perspektywy; Słownik bazy danych • opis zdefiniowanych perspektyw – USER_VIEWS • informacje o możliwości uaktualniania danych dostępnych przez perspektywę – USER_UPDATABLE_COLUMNS Perspektywy 8