Notatki
Pokaz slajdów
Konspekt
1
Rozdział 8
Perspektywy
  • Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.
2
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, nie jest materializowana na dysku
    • przechowywana w postaci zapytania
  • 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, formatów danych, itp.)
    • dodatkowa kontrola poprawności wprowadzanych danych (perspektywy z kontrolą ograniczeń integralnościowych)


3
Rodzaje perspektyw
  • proste
    • Oparte na jednej relacji bazowej
    • Nie zawierają: operatorów zbiorowych, operatora DISTINCT, funkcji grupowych i analitycznych, grupowania, sortowania, klauzul CONNECT BY i START WITH, kolekcji i podzapytań w klauzuli SELECT
  • złożone
    • Oparte na wielu relacjach i perspektywach bazowych
    • Wykorzystują operatory zbiorowe, funkcje, grupowanie, sortowanie, połączenia, funkcje analityczne, itd.


  • Perspektywy proste mogą służyć do wstawiania, modyfikowania i usuwania krotek z relacji bazowej. Perspektywy złożone służą tylko i wyłącznie do odczytu (istnieją nieliczne wyjątki od tej reguły).
4
Perspektywy modyfikowalne
  • Perspektywa jest modyfikowalna (ang. updatable) jeśli nie zawiera: operatorów zbiorowych, operatora DISTINCT, funkcji grupowej lub analitycznej, klauzul GROUP BY, ORDER BY, CONNECT BY, START WITH, połączeń (z pewnymi wyjątkami).
  • Jeśli perspektywa zawiera formuły lub pseudokolumny to polecenia INSERT i UPDATE nie mogą dotyczyć tych pseudokolumn.
  • Jeśli perspektywa zawiera połączenie to operacja DML musi dotyczyć tylko jednej relacji bazowej a ponadto:
    • Dla operacji INSERT perspektywa musi prezentować wszystkie atrybuty klucza podstawowego i wszystkie atrybuty wymagane relacji zachowującej klucz (key-preserved table).
    • Dla operacji UPDATE wszystkie modyfikowane atrybuty muszą pochodzić z relacji zachowującej klucz.
    • Dla operacji DELETE operacja połączenia może dotyczyć tylko jednej relacji zachowującej klucz.


  • Relacja zachowuje klucz, jeśli każda unikalna wartość w relacji jest też unikalna w perspektywie.
5
Tworzenie perspektywy
  • Polecenie CREATE VIEW
6
Tworzenie perspektywy złożonej (1)
  • Perspektywa złożona niemodyfikowalna oparta na jednej relacji
    • perspektywa jest niemodyfikowalna, ponieważ zawiera funkcje agregujące oraz klauzulę GROUP BY






7
Tworzenie perspektywy złożonej (2)
  • Perspektywa złożona niemodyfikowalna oparta na wielu relacjach bazowych
    • perspektywa jest niemodyfikowalna ponieważ żadna z trzech tabel nie zachowuje kluczy, krotka z każdej tabeli występuje w perspektywie wielokrotnie

8
Tworzenie perspektywy złożonej (3)
  • Perspektywa złożona modyfikowalna oparta na wielu relacjach bazowych
    • perspektywa jest modyfikowalna ponieważ tabela Pracownicy zachowuje klucz, każdy pracownik występuje w perspektywie co najwyżej raz




9
Perspektywa weryfikująca ograniczenia
  • Perspektywa weryfikująca ograniczenia







  • Polecenie modyfikujące dane udostępniane przez perspektywę zostanie odrzucone, jeśli w wyniku jego działania zbiór rekordów perspektywy zostałby pomniejszony
10
Perspektywy wbudowane (in-line view)
11
Kompilowanie perspektywy
  • opis zdefiniowanych perspektyw
    • USER_VIEWS
  • informacje o możliwości uaktualniania danych dostępnych przez perspektywę
    • USER_UPDATABLE_COLUMNS