Perspektywa to „okno”, które umożliwia oglądanie wybranej części

Transkrypt

Perspektywa to „okno”, które umożliwia oglądanie wybranej części
Perspektywa to „okno”, które umożliwia oglądanie wybranej części bazy danej. Nazywane są
również tabelami wirtualnymi, gdyż same nie awierają danych. Zawartości perspektyw nie sa
przechowywane, przechowywane są ich definicje. Perspektyw może być uzywana do:
a) wyświetlania danych z jednej lub wielu relacji,
b) wyswietlania danych z kombinacji perspektyw i relacji,
c) dodawania krotek do relacji, ich aktualizacji i usuwania.
Prespektywy służą głównie do:
a) uproszczania dostepu do danych,
b) zwiększenia bezpieczeństaw danych,
c) uproszeniu zapytań,
d) zmiana prezentacji danych (zmiana nazw atrybutów, formatów danych).
Rozróżniamy perspektywy proste i złożone.
Perspektywy proste oparte są na jednej relacji, nie zawieraja operatorów zbiorowych,
operatora DISTINCT, funkcji agregujących, grupowania, sortowania.
Perspektywy złożone są oparte na wielu relacjach bądź perspektywach bazowych.
Wykorzystują operatory zbiorowe, funkcje, grupowanie, połączenia, sortowanie i inne
Perspektywy proste mogą służyć do wstawiania, modyfikowania i usuwania krotek z relacji
bazowej. Perspektywy złożone służą z reguły tylko i wyłącznie do odczytu.
Tworzenie perspektywy
CREATE VIEW nazwa_perspektywy [kolumna_1_perspektywy,...]
AS
Zapytanie SQL
Przykład 1
Stwórz widok, który będzie zawierał podstawowe dane o olejkach (tabela Olejki), ale zamiast
identyfikatora typu rośliny powinny być odpowiednie nazwy.
CREATE VIEW Przyklad1
AS
SELECT
Olejki.IDOlejku,Olejki.NazwaOlejku,Olejki.NazwaLacinska,RoslinyTypy.TypRosliny
FROM Olejki INNER JOIN RoslinyTypy ON
Olejki.IDTypuRosliny=RoslinyTypy.IDTypuRosliny
Uwaga!
Widok można utworzyć tylko raz! Jeśli raz uruchomisz zapytanie tworzące
widok i operacja ta, zakończy się sukcesem, tzn. SQL Server da następujący
komunikat
to widok zostanie utworzony i co najwyżej możesz zobaczyć, co zawiera ta
wirtualna tabela.
Ponowne uruchomienie zapytania tworzącego widok o tej samej nazwie, da
następujący komunikat:
Przykład 2
Stwórz widok podający nazwy olejków, które mają takie samo stężenie jak olejek o nazwie
imbir.
CREATE VIEW przyklad2
AS
select nazwaolejku
from olejki
where idolejku IN
(select idolejku
from olejkistezenia
where stezenie=
(select stezenie
from olejkistezenia
where idolejku =
(select idolejku
from olejki
where nazwaolejku ='imbir')))
Usuwanie perspektyw
DROP VIEW nazwa_perspektywy
Widoki nazwij numerem zadania.
1. Stwórz widok zawierający podstawowe danych olejków (tabela Olejki), ale zamiast
identyfikatorów: typu i składnika rośliny, powinny być umieszczone odpowiednie
nazwy.
2. Stwórz widok j.w., dodając jeszcze cenę za opakowanie, Objetosc_ml (OlejkiCeny)
oraz ilość opakowań (tabela OlejkiIlosci).
3. Stwórz widok w którym oprócz danych z zadania poprzedniego umieść jeszcze cene
olejku za 1 ml (cenę zaokrąglij do dwóch miejsc po przecinku).
4. Stwórz widok obliczający wartość każdej grupy olejków ze względu na typ rośliny z
którego jest produkowany olejek. Wykorzystaj wcześniej stworzony widok.
5. Stwórz widok, pokazujący ile ml jest każdego olejku, napisz zapytanie wyświetlające
te ilości w porządku malejącym.
6. Stwórz widok zawierający średnie ceny olejków za 1 ml w każdej grupie składnika
rosliny (wyniki powinny być zaokrąglone do dwóch miejsc po przecinku)
7. Stwórz widok zawierający identyfikatory i nazwy olejków oraz przypisane im
zapachy.
8. Korzystając z widoku utworzonego w poprzednim zadaniu, podlicz (w widoku) ile
zapachów ma każdy olejek.
9. Korzystając z widoku z zadania 7 oblicz (w widoku) ile olejków przypada na każdy
zapach.
10. Wypisz trójkę najczęściej wystepujących zapachów.
11. Wypisz nazwy olejków, które opisane są przez największą ilość zapachów.
12. Stwórz widok pokazujący ile ostrzezen ma każdy olejek.
13. Stwórz widok łączący wszystkie dane: nazwy, ceny, ilości z ilością zapachów i ilością
ostrzeżeń dla każdego olejku z bazy.

Podobne dokumenty