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.