12. Perspektywy.txt

(43 KB) Pobierz
#273
12. Perspektywy

Nie ma na Ziemi nic, czemu nie można by się przyjrzeć z kosmicznej perspektywy
Fiodor Michaiłowicz Dostojewski
=========================================

Czym sš perspektywy?

Jak wynika z rozdziału 3, perspektywa jest tabelš wirtualnš, składajšcš się z pól pochodzšcych z kilku różnych tabel rzeczywistych; może jednak również zawierać pola z innych perspektyw. Powodem, dla którego perspektywę okrela się mianem tabeli wirtualnej jest to, że nie przechowuje ona danych, a jedynie odczytuje je z tabel, na których jest oparta. Ponieważ perspektywy same w sobie nie przechowujš danych, w bazie zostajš zapisane jedynie ich struktury, a ich zawartoć jest odtwarzana za każdym razem, kiedy następuje odwołanie do danej perspektywy.
==================================
Uwaga: Sposób implementacji perspektyw zależy od programu SZRBD i wykracza poza zakres tej ksišżki.
========================================

Perspektywy sš ważne z następujšcych powodów:

Można je wykorzystywać do jednoczesnego odczytywania danych z dwóch lub większej liczby tabel. Dwie tabele sš w relacji, jeli ich tematy majš ze sobš co wspólnego. Perspektywa stanowi mechanizm umożliwiajšcy jednoczesnš pracę z obydwiema powišzanymi tabelami. Liczba tabel, z których można jednoczenie korzystać za porednictwem perspektywy, nie jest ograniczona do dwóch; perspektywę można na przykład zastosować do pracy nad relacjš zawierajšcš tabelę łšczšcš.
Zawsze dostarczajš wieżych informacji. Perspektywa sama w sobie nie przechowuje żadnych danych - jej zawartoć odtwarza się przy każdej potrzebie.
#274
Oznacza to, że perspektywy zawsze odzwierciedlajš aktualny stan danych zawartych w bazie.
      Można je dostosować do indywidualnych potrzeb użytkowników. Perspektywy mogš zostać dostosowane do konkretnych potrzeb, na przykład w celu zestawienia pewnego raportu lub zgrupowania danych służšcych okrelonym pracownikom.
      Pomagajš w zapewnieniu integralnoci danych. Istnieje odmiana perspektywy, nazywana perspektywš walidacji, pełnišca rolę podobnš do tabeli walidacji - okrelajšca dozwolone wartoci dla jednego z pól w bazie danych.
      Można je wykorzystywać do zapewnienia bezpieczeństwa i poufnoci danych. Możesz okrelić, do których pól dany użytkownik nie powinien mieć dostępu, definiujšc perspektywę nie zawierajšcš tych pól.
Poprawnie zdefiniowane perspektywy stanowiš niezwykle ważny element gotowej aplikacji bazodanowej. Umożliwiajš one kontrolę sposobu wprowadzania, modyfikowania, odczytywania i wywietlania danych.

Przekrój przez perspektywę

Perspektywy mogš być oparte na pojedynczej tabeli, na wielu tabelach, na innych perspektywach albo na połšczeniu perspektyw i tabel. Każda perspektywa składa się z pól należšcych do struktur, które wchodzš w jej skład. Struktury, z których perspektywy czerpiš dane, okrelamy mianem tabel bazowych" lub perspektyw bazowych".
========================
Uwaga: W celu uniknięcia zamieszania od tej pory zarówno tabele, jak i perspektywy stanowišce podstawę do zdefiniowania nowej perspektywy będziemy okrelać łšcznie jako tabele bazowe". Diagramy ilustrujšce struktury perspektyw korzystajš ze specjalnych symboli umożliwiajšcych odróżnienie tabeli od perspektywy.
========================
Istniejš trzy kategorie perspektyw: perspektywy danych, perspektywy agregujšce oraz perspektywy walidacji.

Perspektywy danych

Perspektywy danych wykorzystuje się do przeglšdania i wykonywania operacji na danych zawartych w bazie. W zależnoci od przeznaczenia danej perspektywy, w jej skład wchodzš pola z różnych tabel bazowych. Załóżmy przykładowo, że potrzebna Ci jest lista imion, nazwisk oraz numerów telefonów wszystkich pracowników
#275
organizacji. Możesz utworzyć perspektywę Lista telefonów pracowników" na podstawie tabeli Pracownicy", wykorzystujšc pola ID pracownika", Imię prac.", Nazwisko prac." oraz Telefon domowy prac.". Rysunek 12.1 przedstawia diagram takiej perspektywy. (Zwróć uwagę na ramkę symbolizujšcš perspektywę).

[Pracownicy
---------------
ID pracownika  KP
Imię prac.
Nazwisko prac.
Adres miejski prac.
Miasto prac.
Stan prac.
Kod pocztowy prac.
elefon domowy prac.]
{(klamra w dół)
[[Lista telefonów pracowników
-------------------------
ID pracownika
Imię prac.
Nazwisko prac.
Telefon domowy prac.]]

Rysunek 12.1. Perspektywa Lista telefonów pracowników"

Za każdym razem, kiedy będziemy chcieli odczytać informacje z perspektywy Lista telefonów pracowników", zostanie ona utworzona na nowo i będzie odzwierciedlać aktualny stan tabeli Pracownicy". Rysunek 12.2 przedstawia typowš listę.
Dane w perspektywie opartej na pojedynczej tabeli mogš być w każdej chwili zmodyfikowane; modyfikacje te zostanš wówczas wprowadzone do tabeli bazowej. Nie można jednak wprowadzać zmian naruszajšcych który z atrybutów modyfikowanego pola lub którš z reguł integralnoci. Przykładowo, nie można usunšć z perspektywy którego z nazwisk, jeli atrybut Wartoci zerowe" pola Nazwisko prac." w tabeli Pracownicy" ma wartoć zabronione".
#276
Lista telefonów pracowników

ID pracownika	Imię prac.	Nazwisko prac.	Telefon domowy prac.
100	Zachary	Erlich	553-3992
101	Susan		McLain	790-3992
102	Joe		Rosales	551-4993
103	Alistair	Black	227-4992
104	Teresa	Ford	525-2993
105	Stuart	Lockhart	248-4953

Rysunek 12.2. Dane wywietlone przez perspektywę Lista telefonów pracowników"

Można utworzyć perspektywę opartš na dwóch lub większej liczbie tabel. Jedynym ograniczeniem jest koniecznoć istnienia relacji między tabelami bazowymi. Załóżmy, że chcesz utworzyć perspektywę o nazwie Rozkład zajęć", zawierajšcš nazwy wszystkich wykładów oraz personalia studentów uczęszczajšcych na te wykłady. Wykorzystamy w tym celu tabele przedstawione na rysunku 12.3.

1.[Studenci
----------
ID studenta KP--|-|-do2
Imię stud.
Nazwisko stud.
Adres miejski stud.
Miasto stud.
Stan stud.
Kod pocztowy stud.
Telefon domowy stud.]

2.{Studenci/wykłady
------------------
-<-ID studenta	ZKP/KO
ID wykładu	ZKP/KO}->-do3

3.(Wykłady
-------------
--|-|-ID wykładu KP
Nazwa wykładu
Opis wykładu
ID prowadzšcego KO
Kategoria)

Rysunek 12.3. Tabele potrzebne do utworzenia perspektywy Rozkład zajęć"

Tabele przedstawione na rysunku 12.3 zawierajš pola konieczne do utworzenia perspektywy Rozkład zajęć", a ponadto spełniajš wspomniane wczeniej wymaganie, zgodnie z którym między tabelami bazowymi muszš istnieć relacje. Nowš perspektywę tworzymy, bioršc pole Nazwa wykładu" z tabeli Wykłady" oraz pola Imię stud." i Nazwisko stud." z tabeli Studenci". Imiona i nazwiska studentów zostanš poprawnie przypisane poszczególnym wykładom, ponieważ tabele Wykłady" i Studenci" sš powišzane przez tabelę łšczšcš Studenci/wykłady". Rysunek 12.4 przedstawia diagram perspektywy Rozkład zajęć". Zauważ, że do tabel bazowych nie wprowadzono żadnych zmian.
#277
1.[Studenci
----------
ID studenta KP--|-|-do2
Imię stud.
Nazwisko stud.
Adres miejski stud.
Miasto stud.
Stan stud.
Kod pocztowy stud.
Telefon domowy stud.]

2.{Studenci/wykłady
------------------
-<-ID studenta	ZKP/KO
ID wykładu	ZKP/KO}->-do3

3.(Wykłady
-------------
--|-|-ID wykładu KP
Nazwa wykładu
Opis wykładu
ID prowadzšcego KO
Kategoria)
{(klamra w dół)
4.[[Rozkład zajęć
------------------
Nazwa wykładu
Imię stud.
Nazwisko stud.]]

Rysunek 12.4. Diagram perspektywy Rozkład zajęć"

Za każdym razem, kiedy będziemy chcieli odczytać informacje z perspektywy Rozkład zajęć", perspektywa ta zostanie odtworzona na podstawie aktualnych danych w jej tabelach ba/owych. Przykład danych dostarczonych przez perspektywę Rozkład zajęć" znajduje się na rysunku 12.5.
Pomimo iż możesz modyfikować zawartoć większoci pól w perspektywie wielotabelowej, nie wolno Ci zmieniać w ten sposób wartoci klucza podstawowego żadnej z tabel bazowych. Tak jak w przypadku perspektywy jednotabelowej, zmiany wprowadzane do poszczególnych pól nie mogš być sprzeczne z ich atrybutami ani z regułami integralnoci.
Prawdopodobnie zauważyłe, że w perspektywie Rozkład zajęć" znajdujš się nadmiarowe dane. Sš one skutkiem połšczenia rekordów z tabeli Wykłady" z rekordami z tabeli Studenci"; liczba wystšpień każdej z wartoci pola Nazwa wykładu" jest równa liczbie studentów, którzy uczęszczajš na dany wykład. Ta rzekoma nad-miarowoć jest dopuszczalna, ponieważ przedstawione dane nie sš fizycznie przechowywane w bazie, a jedynie pobierane z tabel bazowych, które same w sobie muszš spełniać odpowiednie kryteria poprawnoci. Dane w perspektywie wielotabelowej sš często wywietlane w ten włanie sposób.
#278
Rozkład zajęć

Nazwa wykładu	Imię stud.	Nazwisko stud.
Algebra		Martin	Applebee
Algebra		Ginš		Carter
Algebra		Joe		Rosales
Algebra		Sara		Ulrich
Teoria muzyki	Mikę		Hernandez
Teoria muzyki	Susan		McLain
Teoria muzyki	Lee		Turner
Historia USA	Ginš		Carter
Historia USA	Susan		McLain
Historia USA	Gregory	Piercy
Historia USA	Joe		Rosales

Rysunek 12.5. Dane wywietlone przez perspektywę Rozkład zajęć"

Kolejnš kwestiš, na którš być może zwróciłe uwagę, jest brak w perspektywie klucza podstawowego. Perspektywa nie wymaga takiego klucza, ponieważ nie jest rzeczywistš tabelš. Tylko prawdziwe tabele, fizycznie przechowujšce dane, potrzebujš klucza, który służyłby do identyfikacji poszczególnych rekordów. Klucze podstawowe tabel bazowych mogš jednak pojawić się w perspektywach, gdzie nadal zachowujš wszystkie swoje własnoci. Jeli wiec zdecydujesz się wykorzystać w jakiej perspektywie klucz podstawowy której z tabel, musisz go traktować tak, jak gdyby nadal był on kluczem podstawowym w tejże perspektywie - jego wartoci nie mogš być zerowe i muszš być unikatowe. Pamiętaj, że na diagramie perspektywy nie umieszcza się oznacz...
Zgłoś jeśli naruszono regulamin