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