Rozdzia 8 Perspektywy i sekwencery c 1999 Instytut

  • Slides: 10
Download presentation
Rozdział 8: Perspektywy i sekwencery (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Rozdział 8: Perspektywy i sekwencery (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Perspektywa • perspektywa (ang. view) jest strukturą logiczną udostępniającą wybrane informacje przechowywane w relacjach

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 (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Perspektywa cd. • cel stosowania – ograniczenie dostępu do danych - zabezpieczenie przed nieautoryzowanym

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) (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Rodzaje perspektyw • proste – jedna relacja bazowa – brak funkcji – brak grupowania

Rodzaje perspektyw • proste – jedna relacja bazowa – brak funkcji – brak grupowania • złożone – oparte o wiele relacji bazowych – wykorzystują operatory zbiorowe, funkcje, grupowanie (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Tworzenie perspektywy CREATE [OR REPLACE] VIEW nazwa_perspektywy [( atrybut 1, atrybut 2. . .

Tworzenie perspektywy CREATE [OR REPLACE] VIEW nazwa_perspektywy [( atrybut 1, atrybut 2. . . )] AS SELECT ciało_polecenia_SELECT [WITH READ ONLY] [WITH CHECK OPTION [CONSTRAINT nazwa_ogr]]; CREATE OR REPLACE VIEW prac_zesp AS SELECT id_prac, nazwisko, etat, placa_pod, p. id_zesp, nazwa FROM pracownicy p, zespoly z WHERE p. id_zesp=z. id_zesp; (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Tworzenie perspektywy cd. CREATE VIEW wysokie_place (nazwisko, placa_pod, etat) AS SELECT nazwisko, placa_pod, etat

Tworzenie perspektywy cd. CREATE VIEW wysokie_place (nazwisko, placa_pod, etat) AS SELECT nazwisko, placa_pod, etat FROM pracownicy WHERE placa_pod > 1000 WITH CHECK OPTION CONSTRAINT placa_powyzej_1000; (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Tworzenie perspektywy cd. • jeśli ciało polecenia SELECT wykorzystuje: – operatory zbiorowe, – funkcje

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 (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Perspektywa oparta o kilka relacji bazowych wykonanie polecenia SELECT UPDATE DELETE INSERT zawsze tylko

Perspektywa oparta o kilka relacji bazowych wykonanie polecenia SELECT UPDATE DELETE INSERT zawsze tylko dla jednej z relacji bazowych zawierającej klucz obcy i perspektywa musi udostępniać wszystkie atrybuty obowiązkowe tej relacji (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Kompilowanie perspektywy ALTER VIEW nazwa_perspektywy COMPILE; Usuwanie perspektywy DROP VIEW nazwa_perspektywy; Słownik bazy danych

Kompilowanie perspektywy ALTER VIEW nazwa_perspektywy COMPILE; Usuwanie perspektywy DROP VIEW 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 (c) 1999, Instytut Informatyki Politechniki Poznańskiej

Tworzenie sekwencera • sekwencer (ang. sequence) jest obiektem bazy danych, który automatycznie zwiększa swoją

Tworzenie sekwencera • sekwencer (ang. sequence) jest obiektem bazy danych, który automatycznie zwiększa swoją wartość o zadany krok, po każdorazowym odczycie z niego wartości • wykorzystywany jest m. in. do generowania unikalnych identyfikatorów krotek CREATE SEQUENCE [nazwa_użytkownika] nazwa_sekwencera [INCREMENT BY liczba] [START WITH wartość_początkowa]; CREATE SEQUENCE seq_pracownik INCREMENT BY 10 START WITH 1000; (c) 1999, Instytut Informatyki Politechniki Poznańskiej