PRZEDMOWA
Nie ulega wtpliwoci, e systemy baz danych zajmuj bardzo wane miejsce we
wspczesnych metodach tworzenia systemw informacyjnych. Waciwie zapisane
i przekazane informacje powikszaj wspln wiedz, dlatego spraw duej wagi jest
sposb ich zapisywania. Jzyk naturalny, tak wygodny w przypadku swobodnego
porozumiewania si ludzi, nie jest dostatecznie precyzyjnym narzdziem zapisu
i przechowywania informacji w komputerze. Odpowiednio zebrane i zestrukturalizowane informacje tworz modele danych bdce podstaw tworzenia systemw baz
danych. Wanie to nastawienie na praktyczn stron zagadnienia odrnia t ksik
od innych, bardziej teoretycznych podrcznikw o tej tematyce. Publikacja ta powstaa jako rozszerzona wersja treci zaj prowadzonych dla studentw kierunku Informatyka. Podstawowym celem autorki byo czenie wiedzy teoretycznej lecej
u podstaw systemw baz danych z praktycznym wykorzystaniem opisywanych metod.
W zwizku z tym ukad ksiki jest nastpujcy:
1. Cz I stanowi wprowadzenie do II, III i IV czci ksiki i zawiera opis podstawowych cech bazy, krtk histori baz danych oraz definicj podstawowych poj,
ktrymi operuje si w kolejnych czciach podrcznika lub ktre stanowi istotn dla
dalszych rozwaa informacj. W ostatnim rozdziale czci pierwszej opisano metodologi projektowania baz danych.
2. W czci drugiej po krtkim wprowadzeniu przedstawiono wybrane metody reprezentacji danych, takie jak model relacyjny, model obiektowy oraz dedukcyjny.
Cz ta zawiera opis przedstawianych modeli.
3. W czci trzeciej podano przykady implementacji wybranych systemw. Dla
modelu relacyjnego wprowadzono nieproceduralny jzyk czwartej generacji SQL,
ilustrujc jego wasnoci licznymi przykadami. Aplikacja o nazwie Orodek Wypoczynkowy jest przykadem bazy obiektowej. Jako przykad bazy dedukcyjnej posuy
opis Laboratorium Medycznego.
4. W czci czwartej szczeglny nacisk pooono na architektur rozproszonych
baz danych. Jako przykad narzdzia do realizacji rozproszonych pod wzgldem funkcji i danych baz posuy system Informix. W rozdziale tym nie mogo zabrakn
rwnie sposobu prezentacji danych w Internecie.
Satysfakcjonujce poczenie wiedzy teoretycznej z praktycznym jej wykorzystaniem jest zawsze niezwykle trudne. W tym wypadku mamy do czynienia z wieloma
problemami dotyczcymi baz danych i z potrzeb wybrania tych, ktre w istotny
i znaczcy sposb reprezentuj aktualn wiedz na temat baz, a take maj szans
rozwoju i wykorzystania w przyszoci.
Zawarty w ksice materia zainteresuje nie tylko studentw informatyki zajmujcych si teori i praktycznym tworzeniem baz danych w systemach informatycznych,
lecz take tych wszystkich informatykw, ktrzy w swojej pracy zawodowej zajmuj
si przetwarzaniem danych.
CZ I
Wprowadzenie do problematyki baz danych
1. WSTP
Rozpowszechnio si bdne przekonanie, e bazy danych i systemy zarzdzania
bazami danych dotycz bahej dziedziny zapamitywania i uzyskiwania danych. By
moe sprawi to angielski wyraz datum wywodzcy si z aciny i oznaczajcy dosownie fakt. Dane jednak nie zawsze odpowiadaj faktom. Czasami nie s sprecyzowane
lub opisuj co, co si nigdy nie zdarzyo, np. ide. Okazuje si jednak, e problem nie
tkwi w danych i sposobie ich zapisu, ale w ich interpretacji. Interpretacja danych moe
by zawarta w samych danych lub w programach, ktre z nich korzystaj. Dopiero
dane i ich interpretacja tworz peny obraz wycinka rzeczywistoci, ktr chcemy
opisa za pomoc komputera. Jest oczywiste, e potrzebujemy na tyle abstrakcyjnej
interpretacji, aby tolerowaa ona pewne zaburzenia wiata rzeczywistego, a jednoczenie bya dostatecznie cisa, dajc pojcie o tym, jak dane s wzajemnie powizane.
Konstrukcj pojciow zapewniajc tak interpretacj nazywamy modelem danych.
Podstawowe wasnoci opisywanej rzeczywistoci nale do dwch klas: klasy wasnoci statycznych i klasy wasnoci dynamicznych.
Wasnoci statyczne, zwane schematem bazy danych, s stae, niezmienne w czasie. Schemat odpowiada temu, co nazywamy zazwyczaj jzykiem definiowania danych (ang. Data Definition Language DDL). Jzyk ten definiuje dopuszczalne struktury danych w ramach danego modelu. To znaczy, e okrela wasnoci, ktre musz
by prawdziwe dla wszystkich wystpie bazy danych okrelonego schematu. S dwa
uzupeniajce si sposoby definiowania struktur danych:
1. Dozwolone obiekty i zwizki specyfikuje si za pomoc oglnych regu definiowania dla kategorii, do ktrej nale.
2. Niedozwolone obiekty i zwizki wyklucza si definiujc wizy, czyli nakadajc
ograniczenia na kategori.
Wasnoci dynamiczne, zwane stanem bazy danych, s wyraone zbiorem operacji
odpowiadajcych jzykowi manipulowania danymi (ang. Data Manipulation Language DML). W zbiorze tym zdefiniowane s dozwolone operacje, ktre mog by
wykonywane na pewnym wystpieniu bazy danych D1, w celu otrzymania wystpienia
D2. Przykadem tego typu operacji s np. operacje aktualizacji. Aktualizacja zmienia
baz danych z jednego stanu w drugi. Nowy stan jest wprowadzany przez stwierdzenie faktw, ktre staj si prawdziwe lub przez zaprzeczenie faktw, ktre przestaj
by prawdziwe. Do tej klasy operacji nale rwnie takie operacje, ktre nie powoduj zmiany w wystpieniu, a mimo to s dynamiczne, gdy powoduj zmian stanu
bazy danych, np. zapytania. Zapytanie nie modyfikuje w aden sposb bazy danych,
ale jest uywane gwnie do sprawdzania czy pewien fakt lub grupa faktw jest spe-
niona w danym stanie bazy danych. Funkcje zapyta mog by rwnie uywane do
wyprowadzania danych z ustalonych faktw.
Model danych jest integraln czci Systemu Zarzdzania Baz Danych (SZBD),
czyli takiego systemu, ktry dostarcza zarwno mechanizmw do definiowania schematw baz danych, jak i operacji, ktre mona stosowa do przeksztacenia jednej
bazy w inn, oczywicie o tym samym schemacie. Dokadnie mwic, SZBD spenia
trzy zasadnicze funkcje: zarzdza plikami, wyszukuje informacje oraz zarzdza ca
baz danych, czyli stanowi jakby powok, ktra otacza baz danych i za pomoc ktrej dokonuj si wszystkie operacje na danych. Sama baza danych jest magazynem
danych z naoon na niego wewntrzn struktur.
Z baz te s powizane inne waciwoci. Nale do nich:
wspdzielenie danych, czyli moliwo korzystania przez wielu uytkownikw
w tym samym czasie z tych samych danych,
integracja danych, czyli utrzymywanie i administrowanie baz nie zawierajc
niepotrzebnie powtarzajcych si lub zbdnych danych,
integralno danych, czyli baza danych musi dokadnie odzwierciedla obszar
analizy, ktrego ma by modelem, co oznacza, e istnieje odpowiednio midzy faktami przechowywanymi w bazie a modelem rzeczywistym i kada zmiana wystpujca w modelu rzeczywistym musi by wprowadzona w bazie opisujcej ten model,
bezpieczestwo danych, czyli ograniczenie dostpu w celu zapewnienia integralnoci bazy. Problem bezpieczestwa jest bardzo wany i zostanie szczegowo omwiony w dalszych rozdziaach.
abstrakcja danych, czyli moliwo przechowywania pewnych istotnych do
okrelonych potrzeb waciwoci obiektw i zwizkw midzy nimi.
niezaleno danych, czyli oddzielenie danych od procesw, ktre uywaj tych
danych. Celem jest osignicie sytuacji, w ktrej organizacja danych byaby niewidoczna dla uytkownika i programw uytkowych korzystajcych z tych danych.
Rwnie dy si do tego, aby adna zmiana programu aplikacyjnego nie miaa
wpywu na struktur danych.
Podane waciwoci stanowi na og podane cechy idealnej bazy danych.
W rzeczywistoci wikszo modeli baz danych nie spenia wszystkich tych cech.
10
3. POJCIA PODSTAWOWE
Wprowadzimy obecnie pewne pojcia, ktrymi bdziemy posugiwa si w dalszej
czci podrcznika. Nale do nich:
Dana (nazwa, cecha, warto) podstawowy skadnik informacji, ktry na og
stanowi zbir znakw bdcych literami, cyframi lub znakami interpunkcyjnymi.
Encja kady przedmiot, zjawisko, stan, pojcie, kady obiekt, ktry potrafimy
odrni od innych obiektw. Encja moe by okrelona przez: <nazwa obiektu, cecha
obiektu, warto obiektu, czas>. Czas jest bardzo niewygodnym czynnikiem przy modelowaniu. Czciej pomija si czas i wprowadza si uporzdkowanie zdarze wedug
kolejnoci ich wystpowania.
Powizania midzy danymi jedno-jednoznaczne (11). Mamy dane dwa zbiory
encji A i B. Kadej encji ze zbioru A odpowiada najwyej jedna encja ze zbioru B i na
odwrt (nie wszystkie encje obu zbiorw musz by w zwizku).
Powizania midzy danymi wielo-jednoznaczne (n
1) Mamy dane dwa zbiory
encji A i B. Kadej encji ze zbioru A odpowiada najwyej 1 encja ze zbioru B, chocia 1 encji ze zbioru B moe odpowiada wiele encji ze zbioru A (jedno-wieloznaczne (1
m) symetrycznie do poprzedniego).
Powizania midzy danymi wielo-wieloznaczne (m
n) s najbardziej zoonym
sposobem czenia obiektw danych przy projektowaniu bazy. Kady element jednego
obiektu jest zwizany z kilkoma elementami innego obiektu i na odwrt.
Klucz wyrniony atrybut lub minimalny zbir wyrnionych atrybutw.
Klucz kandydujcy wyrniony atrybut lub minimalny zbir wyrnionych atrybutw, ktry w sposb jednoznaczny identyfikuje dan.
Klucz gwny klucz wybierany ze zbioru kluczy kandydujcych.
Jzyk Definiowania Danych (DDL) zbir regu wyraajcych wasnoci statyczne danych. DDL definiuje dopuszczalne struktury danych (obiekty i zalenoci midzy nimi), tworzc schemat bazy danych.
Przykad 3.1
Mamy dany schemat prostej sieciowej bazy [18] ZAOPATRZENIE przedstawionej na rys. 3.1.
11
DOSTAWCA
Dnr
Nazwa
CZ
Adres
D-D
Cznr
DOSTAWA
Data
Cena
CZ-D
Lcz
P-D
Nrproj
Adres
PROJEKT
12
End DOSTAWA.
Set D-D
owner DOSTAWCA;
member DOSTAWA;
End D-D.
Set CZ-D
owner CZ;
member DOSTAWA;
End CZ-D
Set P-D
owner PROJEKT;
member DOSTAWA;
End P-D.
End ZAOPATRZENIE.
Jzyk Manipulowania Danymi (DML) zbir operacji okrelajcych dynamiczne
wasnoci bazy danych, czyli stan bazy danych.
Przykad 3.2
Dla podanego wyej schematu bazy ZAOPATRZENIE mamy za zadanie poda
adresy realizacji tych projektw, dla ktrych dostarczono CZ o numerze 100
(Cznr = 100). Przykad realizacji zapytania w DML:
FIND FIRST CZ RECORD WHERE (CZ.Cznr=100)
IF ( STAN=0) GO TO KONIEC
CZ-D:=CZ
NASTCz: FIND NEXT CZ-D SET
IF ( STAN=0) GO TO KONIEC
P-D:=CZ-D
FIND OWNER P-D SET
GET P-D.Adres
GO TO NASTCz
KONIEC: STOP
Podany przykad pokazuje uycie jzyka proceduralnego, w ktrym mamy do czynienia z wyszukiwaniem jednostkowym. To samo zadanie rozwizane za pomoc
wyszukiwania grupowego z wykorzystaniem jzyka RALAN (model bazy relacyjny)
pokazuje przykad 3.3.
Przykad 3.3
Przykad realizacji zapytania w jzyku Ralan [18].
13
Adres
ETO
MTO
ZTO
WPP
WROCAW
WROCAW
WARSZAWA
KRAKW
Cznr
100
150
100
150
Nrproj
2000
2000
2001
2002
Data
15.09.2000
15.09.2000
20.01.2001
20.09.2001
3. Program:
a) R1 DOSTAWA (Cznr=100)
R1:
Dnr
Cznr
Nrproj
Data
Lcz
10
12
100
100
2000
2001
15.09.2000
20.01.2001
15
30
b) R2 R1 [Dnr]
R2:
Dnr
10
12
Nazwa
ETO
ZTO
Adres
WROCAW
WARSZAWA
Lcz
15
20
30
10
14
d) LIST R3 [Adres]
Wynik:
Adres
WROCAW
WARSZAWA
Jzyk Zarzdzania Danymi (DCL) jest to zbir komend stworzonych do zapewnienia bezpieczestwa i spjnoci danych. Mona je podzieli na dwie grupy:
potwierdzanie i odwoywanie transakcji blokowania dostpu do tablic,
nadawanie i odwoywanie przywilejw dostpu do zasobw bazy danych.
Przykad 3.4
Pokazano nadawanie przywilejw do zasobw bazy ZAOPATRZENIE uytkownikowi o nazwie EWA.
oglna posta komend:
GRANT {uprawnienia,./ALL}
ON {nazwa obiektu}
TO {nazwa uytkownika }
GRANT SELECT
ON ZAOPATRZENIE
TO EWA
Transakcja jest to zdarzenie powodujce zmian stanu bazy danych. Nowy stan
jest wprowadzany przez stwierdzenie faktw, ktre staj si prawdziwe i (lub) przez
zaprzeczenie faktw, ktre przestaj by prawdziwe. Kada transakcja powinna mie
waciwoci: niepodzielnoci, spjnoci, izolacji i trwaoci (ang. atomic, consistency,
isolation, durability, std okrelenie cech transakcji ACID). Niepodzielno transakcji
jest rozumiana jako jednoznaczne jej zakoczenie: zatwierdzenie lub anulowanie.
Spjno to przeprowadzenie systemu z jednego stanu spjnego do innego rwnie
spjnego. Izolacja to wykonanie transakcji w sposb nie kolidujcy z innymi realizowanymi transakcjami. Trwao wyniku transakcji polega na zapisywaniu w pamici
staej systemu wynikw, co chroni je przed awari procesu serwera. Z punktu widzenia aplikacji, transakcja to zbir kolejnych instrukcji nieproceduralnego jzyka manipulacji danymi o nazwie SQL (rozdz. 8). Zbir ten zakoczony jest instrukcj
COMMIT WORK (zatwierdzenie transakcji) lub ROLLBACK (anulowanie transakcji). W razie awarii systemu automatycznie realizowane jest anulowanie transakcji.
Baza danych zbir danych zorganizowanych w pewien logiczny i zestrukturalizowany sposb. Bieca struktura zaley od modelu danych przyjtego przy organizowaniu tych danych. Jej wielko zalena jest od liczby danych i od wzajemnych
powiza midzy nimi.
Sformatowana baza danych zbir danych w postaci skoczonego zbioru wzorcw (schematw, formatw) sucych do wyraenia pewnych informacji o stanie
wiata rzeczywistego. Zakres odwzorowanej wiedzy nie powinien by szeroki.
15
16
4. METODOLOGIA PROJEKTOWANIA
BAZ DANYCH
4.1. Wprowadzenie
Oglnie mona powiedzie, e w bazie danych zawarta jest wiedza odnoszca si
do pewnego wydzielonego fragmentu wiata rzeczywistego. Ustalenie zwizkw pomidzy danymi w bazie i faktami w wiecie rzeczywistym, a wic ustalenie semantyki
danych nie odbywa si bezporednio. Pomostem umoliwiajcym ustalenie tych
zwizkw jest model konceptualny [19, 20] bazy danych. Aby dane mogy dostarcza
informacji, ich organizacja powinna umoliwia efektywne przetwarzanie. Istniej
rne sposoby organizowania danych: tablice, listy, formuy itp. Modelujc dane,
staramy si organizowa je tak, aby wiernie odzwierciedlay sytuacj rzeczywist
i jednoczenie, aby mona je byo zapisa w pamici komputera. Te dwa wymagania
nierzadko s sprzeczne. Aby mc okreli najlepsz organizacj informacji w danym
zastosowaniu, musimy pozna jej cechy charakterystyczne. Cechy te pozwol sformuowa oglne stwierdzenie co do sposobu zorganizowania i przetwarzania danych.
Niesprzeczny, formalny zbir takich stwierdze definiuje model danych.
Mona wyrni trzy zasadnicze etapy konstruowania modelu: model konceptualny, model logiczny i model fizyczny (rys. 4.1).
wiat
rzeczywisty
Model konceptualny
Model logiczny
BAZA
DANYCH
Model fizyczny
Model konceptualny jest modelem wiata rzeczywistego. Najbardziej znanym modelem tego typu jest model danych zwizkw encji Chena [5]. Modelowanie koncep-
17
18
wiat
rzeczywisty
Schemat bazy
konceptualnej
Jzyk OS
Jzyk WI
Stan bazy
konceptualnej
W etapie pierwszym naley zdefiniowa pewien wski podzbir jzyka naturalnego, sucy do opisu stanw wiata rzeczywistego (w skrcie Jzyk Opisu Stanw
OS) oraz jzyk sucy do formuowania wizw integralnoci (w skrcie Jzyk Wizw Integralnoci WI). Celem jest okrelenie, jakie w ogle obiekty wiata rzeczywistego, jakie powizania midzy tymi obiektami i jakie atrybuty (cechy) obiektw s
interesujce w danej klasie zastosowa. Przy tak sformuowanym problemie z gry
okrela si konieczno wykorzystania takich operacji, jak selekcja, klasyfikacja
i nazywanie obiektw. Rwnoczenie zwizane z tym jest okrelenie pewnego zbioru
warunkw zwanych wizami integralnoci, ktrych spenienie jest konieczne, aby
o danej strukturze mona byo powiedzie, e jest ona niesprzeczna ze swoim opisem.
Wizy integralnoci s to wyraenia, ktre stwierdzaj zachodzenie w wiecie rzeczywistym pewnych staych niezmiennych zalenoci. Ich rdem jest znajomo
waciwoci semantycznych wiata rzeczywistego. Wizy integralnoci s warunkami
koniecznymi, ale nie dostatecznymi poprawnoci bazy danych. Moliwa jest w bazie
taka sytuacja, e pomimo spenienia wszystkich wizw dane w bazie nie odpowiadaj adnemu poprawnemu stanowi wiata rzeczywistego. W czasie projektowania bazy
danych, przy zastosowaniu konkretnego modelu danych i zwizanej z nim metody
19
szereg wizw integralnoci zostaje ujtych w samej strukturze bazy danych. W wielu
przypadkach jednak wizy musz by formuowane w specjalnym jzyku.
Etap drugi to tworzenie schematu bazy danych. Schemat stanowi zbir zda jzyka
opisu stanw prawdziwych wzgldem rozpatrywanego stanu wiata rzeczywistego
(np. w pewnym przedziale czasu, w ktrym nie zaszy adne interesujce nas zmiany)
oraz zbir zda jzyka wizw integralnoci. W kadym z wizw ma swoje odbicie
jakie ograniczenie semantyczne, odzwierciedlajce nasze intuicyjne rozumienie pewnej niezmiennej waciwoci, jak ma rozpatrywany przez nas wycinek wiata rzeczywistego. Schemat jest stay, niezmienny, kada zmiana to zupenie nowa baza danych.
W etapie trzecim budowana jest pewna struktura matematyczna, czyli model abstrakcyjny stanu wiata rzeczywistego. Model ten na og mona przedstawi jako
struktur zoon, w skad ktrej wchodz zbiory: obiektw, powiza, wartoci, oraz
atrybuty i wizy integralnoci. Manipulowanie w bazie konceptualnej moe obejmowa operacje wyszukiwania, modyfikowania, doczania i usuwania. Niektre z nich,
jak np. wyszukiwanie, nie zmieniaj stanu bazy i po ich wykonaniu nie wystpuje
konieczno sprawdzania wizw integralnoci. W przypadku pozostaych moe si to
okaza konieczne.
20
nr ewidencyjny
imi i nazwisko
PACJENT
pe
adres
nr kart zdrowia
nr telefonu
21
SZPITAL
posiada
posiada
oddziaw
oddziaw
personel
medyczny
ODDZIA
LEKARZ
ilo
ilo
personelu
personelu
PERSONEL
postawiona
diagnoza
zajto
oddziau
badania
laboratoryjne
LABORATORIUM
opieka
lekarska
przewidziane
badania
PACJENT
wykonane
badania
BADANIE
DIAGNOZA
Rys. 4.5. Diagram zwizkw encji
by rozczne. Konkretna encja moe nalee do wicej ni jednego zbioru, np. lekarz
moe take by pacjentem. Zbiory powiza s reprezentowane przez romb z etykiet.
Zbiory encji nalece do zbioru zwizkw s wskazywane przez krawdzie czce je
z opisanym typem zwizku.
Ta sama encja moe peni w tym samym zwizku rne role. Mwimy wtedy
o zwizku rekurencyjnym. Ilustruje to rysunek 4.6.
22
zwierzchnik
PERSONEL
podwadny
Zarzdza
personelem
Moe istnie wicej ni jeden zbir zwizku midzy tymi samymi dwoma zbiorami
encji. Przykad podano na rysunku 4.7.
Lekarz
prowadzcy
LEKARZ
PACJENT
Lekarz
konsultujcy
Rys. 4.7. Dwa zbiory zwizku midzy tymi samymi zbiorami encji
LEKARZ
Zlecone
badania
BADANIE
PACJENT
Rys. 4.8. Zbir zwizku trzyargumentowego
23
Zajto
ka
nr ka
PACJENT
Zbiory zwizku take maj klucze zwane kluczami zwizku. Klucz zwizku skada
si z kluczy encji tych zbiorw encji, ktre s zawarte w danym zbiorze zwizku.
Oprcz zwizkw wystpujcych w modelu encji istniej tzw. logiczne ograniczenia
zwane wizami. Wizy to pewne wasnoci, ktre dla danego zbioru encji s prawdziwe lub faszywe. Inaczej mwic, s zachowane lub naruszone. Jeli wartoci danych s zgodne z istniejc wiedz o obiekcie, to oczekuje si, e te wizy zostan
zachowane. W modelu danych wizy s szczeglnie przydatne wtedy, gdy maj oglny charakter, to znaczy gdy mog by definiowane i stosowane w zbiorach obiektw,
a nie s ustalone dla konkretnego obiektu. W modelu danych wizy s konieczne ze
wzgldu na semantyk i integralno. Semantyka odzwierciedla dokadnie sytuacj
wiata rzeczywistego, a integralno umoliwia SZBD ograniczenie moliwych
w danym schemacie stanw bazy do takich, ktre zachowuj wizy. Rozrniamy
dwa podstawowe typy wizw: wizy wbudowane [19] oraz wizy jawne. Wizy
wbudowane stanowi bardzo ograniczony mechanizm definiowania wizw, na og
okrelaj pewne wymagania co do struktury (np. zwizki w modelu hierarchicznym
mog mie tylko struktur drzewa). Czasami zachowanie tych wizw moe sprawi,
e struktura bazy nie odpowiada wiernemu opisowi wiata rzeczywistego. Aby usun
wady wynike z definiowania wizw wbudowanych, wprowadzono wizy jawne.
24
25
4.4.3. Normalizacja
W celu wyznaczenia pojedynczych tabel i powiza pomidzy nimi przeprowadzono normalizacj (rozdz. 5, p. 5.6), ktr zrealizowano w nastpujcych krokach:
zebranie zbioru danych,
przeksztacenie nieznormalizowanego zbioru danych w tabele,
wykorzystanie jednego z algorytmw normalizacji.
Przy kadym kolejnym przeksztaceniu podzielono struktur danych na coraz wicej tabel bez straty powiza zachodzcych midzy danymi (rozdz. 5).
W wyniku normalizacji w projektowanej bazie danych otrzymano nastpujce
tabele:
26
DOSTAWCA
ID_Dostawca
Nazwisko
Imi
Miasto
Kod
Ulica
Tel / Fax
KLIENT
ID_Klient
Nazwisko
Imi
Miasto
Kod
Ulica
Tel / Fax
PODZESP
ID_Producent
ID_Opis
ID_Dostawa
ID_Podzesp
Nazwa
Cena
Gwarancja
Sztuki
PRODUCENT
ID_Producent
Nazwa_Firm
Miasto
Kod
Ulica
Tel / Fax
OPIS
ID_Opis
Opis
SPRZEDA
ID_Sprzeda
ID_Klient
ID_Sprzedawca
ID_Faktura
Data_Sprzeda
Cena_Sumaryczna
FAKTURA
ID_Faktura
ID_Sprzeda
Data_Wystawienia
Dane_Firm
Patno
SPRZEDA
PODZESPOW
ID_Podzesp
ID_Sprzeda
Sztuki
czc poszczeglne tabele z uwzgldnieniem relacji midzy nimi otrzymano diagram encji, w ktrym zachodzce relacje opisane s w nastpujcy sposb:
28
PODSUMOWANIE
Baza konceptualna jest podstaw do tworzenia struktur logicznej bazy danych.
Miejsce i rola schematu konceptualnego zaley od sposobu organizacji systemu bazy
danych. W przypadku gdy mamy do czynienia z lokalnymi lub rozproszonymi bazami
danych, opartymi na jednym modelu, schemat konceptualny ma najczciej znaczenie
pomocnicze i wykorzystywany jest, czsto nieformalnie, do tworzenia schematu logicznego. Stanowi take punkt odniesienia w przypadku niejednoznacznoci, jakie
mog pojawi si przy interpretacji danych przez rnych uytkownikw. W wielomodelowych, lokalnych bazach danych schemat konceptualny stanowi integraln
cz bazy danych. Oprcz niego wspistniej w systemie schematy logiczne utworzone wedug rnych modeli danych. Wraz z rozwojem sieci komputerowych i zwizanych z nimi rozproszonych baz danych pojawia si zupenie nowe znaczenie schematu konceptualnego. Uytkownik korzystajc z bazy danych nie odczuwa, e baza ta
jest fragmentem systemu rozproszonego. Zawarto wszystkich baz danych tworzcych system rozproszony opisana jest w globalnym schemacie konceptualnym, z ktrego moe by wyprodukowanych wiele lokalnych schematw logicznych. Jeeli teraz
uytkownik korzysta z caej rozproszonej bazy, to operuje na poziomie globalnym.
SZBD dokonuje koniecznych przeksztace zarwno na poziomie globalnym, jak i na
poziomach lokalnych tak, e uytkownik nawet nie wie, z ktr z lokalnych baz aktualnie jest zwizany. Sposb przejcia z poziomu konceptualnego do logicznego zaley
przede wszystkim od typu bazy logicznej i metodologii jej projektowania. Ju na poziomie logicznym istniej rne metody projektowania schematw logicznych.
W podejciu sieciowym bierze si pod uwag nie tylko zwizki logiczne midzy danymi, ale take przewidywane sposoby i czsto odwoywania si do danych [1, 13].
Wpywa to dodatnio na efektywno systemu, ale jednoczenie zmniejsza niezaleno danych. W podejciu relacyjnym bierze si pod uwag pewne zalenoci midzy
atrybutami [1, 7, 8] i na tej podstawie tworzy si pewien zbir danych o podanych
wasnociach. W podejciu tym nie bierze si pod uwag wydajnoci systemu, a jedynie zalenoci midzy atrybutami, ktre wyraaj pewne semantyczne wasnoci odwzorowywanego wiata rzeczywistego.
29
BIBLIOGRAFIA
[1] Banachowski L., Bazy Danych tworzenie aplikacji, WNT, Warszawa 1997.
[2] Beynon-Davies P., Expert Database Systems: a gentle introduction Maidenhead, MacGraw-Hill
1991.
[3] Beynon-Davies P., Knowlege Engineering for Information Systems Development; an introduction to
information systems engineering, Maidenhead MacGraw-Hill 1993.
[4] Beynon-Davies P., Systemy baz danych, WNT, Warszawa 1998.
[5] Chen P.P.S., The Entity Relationship Model: towards and unified view of data. ACM Tran. of Database Systems 1976, 1(1), s.936
[6] Codd E.F., A Relational Model for Large Shared Data Banks Communications of ACM, June 1970,
Vol. 13, No. 6, s. 377387.
[7] Codd E.F., Extending the relational Database Model to Capture More Meaning. ACM Transactions
on Database Systems, Dec. 1979, Vol. 4, No. 4, s. 397434.
[8] Codd E.F., The Relational Model for Database Management: Version 2. Reading, Mass. AddisonWesley 1990.
[9] Coulouris G., Dillimore J., Kindberg T., Systemy rozproszone. Podstawy i projektowanie, WNT,
Warszawa 1998.
[10] Das S.K. Deductive Databases and Logic Programming, Adison-Wesley Publishing Company 1981.
[11] Date C.J., Wprowadzenie do baz danych, WNT, Warszawa 1983.
[12] DBTG: Report of the CODASYL Database Task Group. ACM, April 1971.
[13] Delobel C., Adiba M., Relacyjne bazy danych, WNT, Warszawa 1989.
[14] Krick E.V., Wprowadzenie do techniki projektowania technicznego, WNT, Warszawa 1975.
[15] MacVittie D.W., MacVittie L.A., Programowanie zorientowane obiektowo, Mikom, Warszawa
1996.
[16] Martin J., Organizacja baz danych, PWN, Warszawa 1983.
[17] Myer B., Object Oriented Software Construction, New York, Prentice-Hall 1997.
[18] Pankowski T., Podstawy baz danych, PWN, Warszawa 1992.
[19] Tsichritzis D.C., Lochovsky F.H., Modele danych, WNT, Warszawa 1990.
[20] Ullman J.D., Systemy baz danych, WNT, Warszawa 1981.
31
CZ II
Wybrane metody reprezentacji danych
32
WPROWADZENIE
Punktem wyjcia do tworzenia logicznego modelu danych jest model konceptualny. Istnieje wiele rnorodnych modeli logicznych danych. Wrd modeli klasycznych na szczegln uwag zasuguje model relacyjny majcy jednolite podstawy teoretyczne. Jego prekursorzy model sieciowy i hierarchiczny s ju praktycznie
nieuywane. Model relacyjny ze wzgldu na solidne podstawy matematyczne jak
i du popularno przy budowie komercyjnych SZBD jest tematem rozdziau pitego. Model relacyjny jest klasycznym przykadem sformatowanej bazy danych. Ostatnio wiele cech klasycznych modeli danych, a w szczeglnoci modelu relacyjnego
pojawio si pod nazw obiektowego modelu danych. Trudno jest jednoznacznie okreli, czy systemy obiektowych baz danych oferuj lepsze warunki do zarzdzania bazami ni modele klasyczne. Bez wtpienia podejcie obiektowe nadaje si do pewnych
niestandardowych aplikacji, jak systemy informacji geograficznej lub projektowanie
wspomagane komputerowo. Pozostaje jednak spraw nierozstrzygnit, czy jest rzecz sensown uycie obiektowoci w standardowych aplikacjach komercyjnych baz
danych. Bazy obiektowe s tematem rozdziau szstego. Wraz z rozwojem takich waciwoci systemw baz danych, jak: rozproszenie, zarzdzanie obiektami o strukturze
hierarchicznej, przechowywanie tekstw, grafiki, obrazw, animacji, dwikw pojawi si pomys wykorzystania logiki formalnej w tych systemach. Przy pomocy logiki
istnieje moliwo wyraenia w sposb jednolity takich operacji, jak: definiowanie
danych, operowanie danymi i zapewnienie integralnoci danych. Logika umoliwia
rwnie poszerzenie konwencjonalnej bazy danych o narzdzia dedukcyjne. W bazach
dedukcyjnych oprcz faktw przechowuje si rwnie reguy. Liczba przechowywanych faktw jest duo wiksza od liczby regu. Jzyk baz dedukcyjnych opiera si na
schemacie zdefiniowanym w fazie konceptualnej. Szczeglny nacisk pooony jest na
efektywno systemu. Problem efektywnoci sprowadza si gwnie do efektywnego
przeszukiwania bazy i tworzenia dziki reguom nowych faktw w bazie. Charakterystyczn cech baz dedukcyjnych jest to, e w wyniku kierowanych do bazy zapyta
istnieje moliwo przegldania wszystkich rozwiza i analizowanie ich. Dedukcyjne
bazy danych s tematem rozdziau sidmego.
33
PRZEDMIOT
nr przedmiotu nazwa
EGZAMIN
egzaminator
data
ocena
34
35
RNICA
PRZEKRJ
T = {t KROTKA(X) : (r R) t = r[X]}
Przykad 5.1
Dana jest relacja R(U) stopnia trzeciego zawierajca informacj o studentach.
U jest zbiorem atrybutw U = {Nazwisko, Wydzia, Rok_studiw}.
36
Wydzia
Fizyka
Elektronika
Fizyka
Matematyka
Fizyka
T(X):
Nazwisko
Nowak
Kowal
Owad
Jawor
Olski
Rok_studiw
1
2
1
3
1
S(Y):
Wydzia
Fizyka
Elektronika
Matematyka
Rok_studiw
1
2
1
3
1
Rok_studiw
1
2
3
W wyniku operacji projekcji uzyskujemy relacje T(X) i S(Y) stopnia drugiego. Czasami w wyniku projekcji nastpuje utrata informacji. Sytuacj tak ilustruje przykad 5.2.
Przykad 5.2
Projekcja relacji R(U) na T(X), gdzie:
U = {Nazwisko, Imi, Wydzia}, X = {Nazwisko, Wydzia}
R(U):
Nazwisko
Nowak
Nowak
Kowal
Kowal
Imi
Ewa
Jan
Piotr
Adam
Wydzia
Fizyka
Fizyka
Elektronika
Elektronika
37
T(X):
Nazwisko
Nowak
Kowal
Wydzia
Fizyka
Elektronika
CZENIE
Dane s relacje R(X) i S(Y) oraz Z = X Y. Relacje T(Z) nazywamy czeniem tej
relacji wtedy i tylko wtedy, gdy:
Rok_studiw
1
2
1
3
1
Rok_studiw
1
2
3
Wydzia
Fizyka
Elektronika
Fizyka
Matematyka
Fizyka
Rok_studiw
1
2
1
3
1
Przykad 5.4
Dane s dwie relacje A(X) stopnia drugiego i B(Y) stopnia trzeciego, gdzie: X =
{Nr dostawcy, Miasto}, a Y = {Nr dostawcy, Nr czci, data dostawy}. W wyniku
operacji czenia dostajemy relacj Z(U) stopnia wyszego ni relacje A(X) i B(Y).
38
A(X):
Nr_dostawcy
1020
2040
3000
4000
Miasto
Krakw
Wrocaw
Opole
Opole
B(Y):
Nr_dostawcy
1020
4000
1110
2040
2020
Nr_czci
100
107
201
207
100
Data_dostawy
1999
2000
1999
1998
1999
Z(U):
Nr_dostawcy
1020
2040
4000
Miasto
Krakw
Wrocaw
Opole
Nr_czci
100
207
107
Data_dostawy
1999
1998
2000
SELEKCJA
Relacje T(U) nazywamy selekcj relacji R(U) wzgldem warunku selekcji E.
B
x
y
x
x
C
1
4
3
2
D
3
2
3
1
39
DZIELENIE
Dana jest relacja R(U) zbir X U. Relacje T(U X) nazywamy podzieleniem relacji R przez zbir X wtedy i tylko wtedy, gdy
T = {t KROTKA(U X) : (s KROTKA(X) ) t | s R}
Przykad 5.6
Dana jest relacja R(U), gdzie U = {Nazwisko, Przedmiot}. Zbir wartoci, czyli
domena (DOM), dla atrybutu Nazwisko to DOM(Nazwisko) = {Nowak, Kowal,
Owad}, a domena, czyli zbir wartoci dla atrybutu Przedmiot to DOM(Przedmiot)
= {Fizyka, Matematyka, Obwody}.
R(U):
Nazwisko
Nowak
Kowal
Owad
Owad
Nowak
Nowak
Przedmiot
Fizyka
Matematyka
Fizyka
Obwody
Matematyka
Obwody
Jeli (s, p) R(S, P) oznacza, e student s zda egzamin z przedmiotu p, to zbir R/{s}
jest zbiorem tych studentw, ktrzy zdali egzaminy ze wszystkich przedmiotw.
Operacje mnogociowe i relacyjne tworz zbir operacji algebry relacji. Algebra ta jest
podstaw do tworzenia jzyka manipulacji danych w relacyjnej bazie danych. Operacje
relacyjne, przede wszystkim projekcja i czenie, su do badania zalenoci midzy
danymi oraz do projektowania schematu logicznego bazy relacyjnej. Aby wprowadzi
pojcie schematu relacyjnego, naley wyjani znaczenie zalenoci funkcyjnej.
40
statyczne bazy relacyjnej. Schemat relacyjny to zbir encji, pomidzy ktrymi s powizania bdce na rwni z encjami nonikami informacji. Aby wyjani pojcie
schematu relacyjnego, podano nastpujcy przykad:
Przykad 5.7
Dana jest relacja: R(U) = E(I, N, P, O), gdzie: I numer indeksu, N nazwisko
studenta, P przedmiot egzaminu, O ocena egzaminu. Aby relacja moga reprezentowa pewn informacj, musi mie cechy, ktre si nie zmieniaj w czasie. Te cechy
to: numer indeksu i E(I) majcy jednoznacznie przyporzdkowane nazwisko
n E(N). Kady numer to jedno nazwisko, lecz niekoniecznie odwrotnie. Kadej
parze (i, p) E(I, P) przyporzdkowano jednoznacznie ocen o E(O). Podane przykady powiza nosz nazw zalenoci funkcyjnych midzy okrelonymi zbiorami
atrybutw.
Schematem relacyjnym nazywamy par uporzdkowan R = (U, F) o zbiorze atrybutw U i zbiorze zalenoci funkcyjnych F opisanych nad U.
Przykad 5.8
Jeeli zbir atrybutw U = {I, N, P, O} i zbir zalenoci funkcyjnych okrelimy
jako F = {I N, IP O}, to schemat relacyjny E:
41
N
Ajacki
Ajacki
Nowak
Kowal
Nowak
Celer
Celer
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
O
5
3
4
4
5
2
2
N
Ajacki
Nowak
Kowal
Celer
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
O
5
3
4
4
5
2
2
42
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
E3:
I
80001
80001
80003
80004
80003
80006
80006
N
Ajacki
Ajacki
Nowak
Kowal
Nowak
Celer
Celer
O
5
3
4
4
5
2
2
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
N
Ajacki
Nowak
Kowal
Celer
E2:
I
80001
80001
80003
80004
80003
80006
80006
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
E4:
I
80001
80001
80003
80004
80003
80006
80006
P
Fizyka
Matematyka
Fizyka
Fizyka
Matematyka
Fizyka
Matematyka
O
5
3
4
4
5
2
2
43
E1 | E2 = E2 | E3 = E1 | E2 | E4
A wic wszystkie s poprawne, jednak sposb 1 jest bardziej naturalny i lepiej oddaje
semantyk odwzorowania rzeczywistoci. Mona zauway, e rozkady 1 i 3 daj
dwie identyczne tabelki, a dodatkowo przy 3 rozkadzie mamy jeszcze jedn nadmiarow tabel. Jeeli interesuje nas informacja o uczszczaniu na wykady, to bardziej
przydatny jest rozkad sposobem 3.
Rozkad schematu bez straty zalenoci funkcyjnych ilustruje przykad 5.11:
Przykad 5.11
Mamy dany schemat relacyjny R:
W
Elektronika
Chemia
Elektronika
Chemia
D
Biernatt
Wojtas
Biernatt
Wojtas
W
Elektronika
Chemia
Elektronika
Chemia
R2:
S
Nowak
Kowal
Makow
Olcki
D
Biernatt
Wojtas
Biernatt
Wojtas
44
2. D W
R3:
W
Elektronika
Chemia
R4:
S
Nowak
Kowal
Makow
Olcki
D
Biernatt
Wojtas
D
Biernatt
Wojtas
Biernatt
Wojtas
3. W D
R5:
W
Elektronika
Chemia
R6:
S
Nowak
Kowal
Makow
Olcki
D
Biernatt
Wojtas
W
Elektronika
Chemia
Elektronika
Chemia
R = R1 | R2 = R3 | R4 = R5 | R6
Dla schematw mona rwnie okreli takie same zalenoci funkcyjne.
R1 = R6 = ({S, W}), {S W})
R2 = R4 = ({S, D}), {S D})
R3 = R5 = ({W, D}), {W D, D W})
W wyniku czenia schematw mamy:
R1 | R2 = ({S, W, D}), {S W, S D})
R3 | R4 = ({S, W, D}), {S D, W D, D W})
R5 | R6 = ({S, W, D}), {S W, W D, D W})
Czyli R = R3 | R4 = R5 | R6 R1 | R2
W podanym przykadzie rozkady byy bez straty danych, ale nie wszystkie byy
bez straty zalenoci. W rozkadzie R1 | R2 gubimy zalenoci W D, D W. Przy
45
5.6. Normalizacja
Termin normalizacja pochodzi od pojcia postaci normalnej [13, 14, 15, 16], ktre
wprowadzi twrca modelu relacyjnego Codd. Pierwsza posta normalna (1PN) okrela, e relacja jest tabel, w ktrej na przeciciu kadej kolumny i kadego wiersza
warto atrybutu jest wartoci atomow, tzn. nie zbiorem, cigiem tylko wartoci
pojedyncz. Przykadami 1PN s tabele rozpatrywane w rozkadach bez straty danych
i bez straty zalenoci funkcyjnych. Tabele te maj pewne anomalia. Aby wyjani
z jakimi anomaliami mamy do czynienia i jak ich naley unika, posuymy si przykadem.
Przykad 5.12
Dany jest schemat relacyjny
N
Kowal
Kowal
Nowak
Olcki
Kowal
A
Wrocaw
Wrocaw
Legnica
Wrocaw
Wrocaw
K
Elektronika
Elektronika
Chemia
Chemia
Elektronika
P
Matematyka
Fizyka
Matematyka
Matematyka
Ekonomia
O
3
4
3
3
5
Okazuje si, e jeli zbudujemy schemat relacyjny z tabel okrelon przez zbir
atrybutw (w tym przypadku U = {I, N, A, K, P, O}), to informacja zawarta w tej tabeli nie zawsze bdzie prawdziwa. Nieprawidowoci wystpujce w tym schemacie to
anomalia:
doczania w relacji reprezentowane s tylko nazwiska tych studentw, ktrzy
zdali egzamin z danego przedmiotu, inaczej klucz IP nie byby peny,
46
N
Kowal
Nowak
Olcki
E2:
I
77100
77100
77101
77102
77100
P
Matematyka
Fizyka
Matematyka
Matematyka
Ekonomia
A
Wrocaw
Legnica
Wrocaw
K
Elektronika
Chemia
Chemia
O
3
4
3
3
5
47
Przykad 5.13
Dany jest schemat relacyjny:
A
Krakw
Opole
Opole
d
P
P1000
P1000
P1001
P1002
D
99
99
98
97
A
Krakw
Opole
Opole
d
P
P1000
P1000
P1001
P1002
48
E2:
P
P1000
P1001
P1002
D
99
98
97
49
Przykad 5.14
Mamy schemat relacyjny S = (U, F M), gdzie:
U = {P, K, S, W}
P podrcznik, K kurs, S suchacz kursu, W wykadowca,
F = {S K, K W, S W}, co oznacza, e:
jeden suchacz S uczestniczy w jednym kursie K,
kady kurs K ma jednego wykadowc W,
kady suchacz S ma jednego wykadowc W oraz
M = {K
P}, co oznacza, e kady kurs ma zalecany zbir podrcznikw.
Graficznie mona to przedstawi w postaci drzew binarnych:
1 sposb: S K
2 sposb: K W
(P,K,S,W)
(P,K,S,W)
SK
KW
(S,P,W)
(S,K)
(S,W)
(S,K)
4 sposb: K
(P,K,S,W)
(K,P)
SK
(S,P)
3 sposb: K
K
(K,P,S)
(K,W)
SW
(P,K,S,W)
(K,S,W)
(K,P)
(K,S,W)
KW
(K,S)
(S,P)
KW
(K,W)
(S,K)
(S,W)
50
Przy dekompozycji wg S K lub K W uzyskujemy nienaturalny schemat powizania suchacza S z podrcznikiem P, bez okrelenia kursu K na jaki uczszcza
suchacz. Bardziej naturalne jest poczenie wg K P kursu K i suchacza S (trzeci
sposb) ni wykadowcy W i suchacza S (czwarty sposb). Oglnie mona stwierdzi, e najpierw dekomponuje si schemat wedug powiza wielowartociowych,
a nastpnie dopiero pozostae. Zaleno wielowartociowa czasami okrelana jest
jako czwarta posta normalna (4PN).
Jedn z najwaniejszych czynnoci przy projektowaniu bazy danych jest utworzenie schematu. Schemat przesdza o walorach uytkowych bazy, uatwia zrozumienie
dziaania i manipulowania danymi w bazie oraz zmniejsza moliwo popenienia
bdw. Czasami rwnie ma wpyw na efektywno pracy komputera.
Zadanie tworzenia schematu mona sformuowa nastpujco:
Okrelamy jeden uniwersalny schemat bazy SU = {R = (U, F)}, czyli traktujemy
baz jako jedn wielk relacj, gdzie: U zbir wszystkich atrybutw wystpujcych
w bazie, F zbir wszystkich powiza funkcyjnych i przeksztacamy w wyniku stosowania pewnej procedury w schemat SK = {Ri = (Ui, Fi), i = 1, 2, ... n} bdcy zbiorem schematw relacyjnych przy zaoonych kryteriach. Jako kryteria przyjmuje si
zwykle: stopie normalizacji schematw relacyjnych oraz liczb tych schematw.
W literaturze [15, 21, 36, 38] spotykamy wiele algorytmw projektowania schematu
bazy danych. Najistotniejsze wrd nich to:
algorytm dekompozycji [14] i jego rozszerzenia [22],
algorytm Bernsteina [3],
algorytm NiekludowejCalenki [33],
algorytm Rissanena [36, 37].
aden z tych algorytmw nie moe by okrelany mianem najlepszego czy najgorszego. Algorytm dekompozycji i jego rozszerzenia pozwalaj co prawda uzyska
schemat bazy w 4PN, jednak nie zachowuj zalenoci funkcyjnych, co w wielu wypadkach stanowi istotn wad. W innych przypadkach niestosowanie tego algorytmu,
ktry jako jedyny uwzgldnia zalenoci wielowartociowe, rwnie moe prowadzi
do niewaciwych rozwiza. W algorytmie Bernsteina nie s zachowane dane, co
powanie ogranicza jego uyteczno. Wydaje si, e najlepszym jest algorytm NiekludowejCalenki. Zachowuje zarwno dane jak i zalenoci oraz daje w wyniku
rozkadu minimaln liczb schematw R i . Niestety nie uwzgldnia zalenoci wielowartociowych. Metoda Rissanena daje rozkad zachowujcy dane i zalenoci, jednak liczba wynikowych schematw R i jest maksymalna.
Rozpatrywane algorytmy maj charakter czysto syntaktyczny, ograniczaj si do
analizy zalenoci funkcyjnych i wielowartociowych. Zakadaj, e zalenoci midzy atrybutami s jednoznaczne. Nie bior pod uwag analizy semantycznej, ktra jest
tak istotna w projektowaniu bazy. Mona je traktowa jako etap poredni przy tworzeniu bazy na podstawie innych modeli ujmujcych problemy strukturalizacji
i klasyfikacji obiektw.
51
52
nych stanowicych tzw. klucze podstawowe. Klucz podstawowy to minimalny podzbir zbioru atrybutw jednoznacznie identyfikujcy dane w tabeli. Do czenia z inn
tabel danych przy opisywaniu relacji jeden do wielu niezbdna jest take kolumna
lub kolumny stanowice klucze obce, tzn. odnoszce si do powizanych tabel. Jeli
relacje midzy obiektami s wiele-wielu, to trzeba zdefiniowa i utworzy jedn lub
wiele tabel relacji, aby te relacje obsuy. Tabele relacji wygldaj dokadnie tak
samo jak zwyczajne tabele. W rzeczywistoci s to tabele danych. Jako takie skadaj
si z pewnej liczby wierszy i kolumn. Istotn rnic midzy dwoma rodzajami tabel
jest to, e w tabeli relacji przechowywane s elementy danych okrelajce powizania
midzy dwoma obiektami danych. Kady wiersz takiej tabeli wie podstawowy klucz
jednej tabeli z podstawowym kluczem innej. Tabela relacji moe nie mie kolumny
wasnego klucza.
53
54
6.3. Atrybuty
Obiektowe bazy danych definiuj wiele rnych typw atrybutw. Mona je podzieli na takie, ktre odnosz si bezporednio do obiektu lub do caej klasy obiektw. Atrybuty obiektu opisuj stan konkretnego obiektu. Wyrniamy atrybuty proste,
jednowartociowe oraz atrybuty zoone, wielowartociowe. Dziedzin atrybutw
55
6.4. Metody
Pena definicja metody danej klasy skada si z deklaracji i kodu. Deklaracja opisuje dziaanie metody, okrela dokadnie nazw metody, nazwy i rodzaj argumentw
i jeli metoda zwraca jaki wynik, to jego rodzaj, czyli klas. Sprawdzanie poprawnoci podawanych w metodzie argumentw odbywa si musi na poziomie kompilacji.
Kod metody to lista instrukcji w jzyku programowania (np. w jzyku C++) wykonujca operacje na podanych argumentach lub na argumentach klas. Nowy obiekt mona
tworzy albo przez wykonanie operacji new, albo stosowanie obiektw prototypowych. Jeeli mamy do czynienia ze rodowiskiem mao zmieniajcym si, to do tworzenia obiektw naley wykorzysta metod new. T sam metod new mona wywoywa w celu utworzenia wielu obiektw tej samej klasy. Metoda new jest metod
danej klasy, nie bdzie ona natomiast metod obiektu. W nowo utworzonym obiekcie
nie bd ju przechowywane informacje zawarte w definicji klasy, to jest wartoci
atrybutw wsplnych dla wszystkich obiektw, czy implementacje metod. W przypadku rodowiska szybko zmieniajcego si do tworzenia obiektw naley wykorzysta obiekty prototypowe. Nowy obiekt powstaje z ju istniejcego obiektu poprzez
modyfikacj jego argumentw i metod. Aby zdefiniowa tre metody, trzeba uy
standardowego jzyka programowania. Komunikaty musz zawiera nazw metody,
identyfikator obiektu i odpowiednie parametry metody.
56
uoglnienia. Istniej dwa gwne typy dziedziczenia: dziedziczenie struktury i dziedziczenie zachowania. Przy dziedziczeniu struktury mwimy, e podklasa dziedziczy
atrybuty swojej nadklasy. Przy zaoeniu, e na przykad klasa Pracownik ma atrybuty: nazwisko, imi, adres, pensja wwczas podklasy: Kierownik, Sekretarka, Technik
maj takie same atrybuty. Czyli struktura danych w podklasie jest przejmowana z klas
zwanych nadklasami. Doczane s take wasne struktury podklasy. Przy dziedziczeniu zachowania podklasa dziedziczy metody swojej nadklasy. Gdy klasa Pracownik
ma okrelon metod OBLICZAJ PAC, to podklasa Kierownik te ma okrelon t
metod. Jeeli obiektowa baza realizuje dziedziczenie pojedyncze, to klasa moe by
podklas tylko jednej nadklasy. Jeli jedna klasa ma wiele podklas, mwimy wtedy
o dziedziczeniu wielokrotnym. Przy dziedziczeniu wielokrotnym klasa moe dziedziczy atrybuty i metody od wicej ni jednej nadklasy. Jedn z zalet dziedziczenia jest
to, e kod metod jest wykorzystywany przez wiele obiektw czsto nalecych do
rnych klas. Najczciej uywane metody mog by zdefiniowane dla nadklasy,
a w razie potrzeby redefiniowane w poszczeglnych podklasach. Dziedziczenie
upraszcza w znaczny sposb tworzenie nowych klas. Dziedziczone struktury danych
i metody mog by przenoszone w sposb bezporedni lub modyfikowane podczas
przenoszenia z nadklasy do podklasy (np. zmiana nazwy atrybutu). W metodach dostarczajcych mechanizmu dziedziczenia wielokrotnego zachodz rne konflikty
zwizane z dziedziczeniem atrybutw i metod. Przykadem moe tu by przypadek,
gdy w nadklasach danej klasy s atrybuty czy metody o takiej samej nazwie, a rnice si semantyk czy wartociami. Powane problemy z dziedziczeniem wystpuj
w przypadku zapyta do bazy. W jzyku zapyta mog by uywane rwnie metody.
Jeeli w podklasie jaka metoda zostaa redefiniowana, to przy oglnym odwoaniu do
tej metody wynik moe by bdny. Aby tego unikn, naley zachowa zgodno
z atrybutami i metodami zdefiniowanymi w nadklasie. Mechanizm istnienia rnych
funkcji pod t sama nazw nazywa si polimorfizmem. Przy wykonywaniu operacji na
bazie wygodne jest uycie tej samej nazwy metody dla rnych rodzajw dziaa.
Odbywa si to poprzez redefiniowanie metody zdefiniowanej na wyszym poziomie
w hierarchii dziedziczenia. Metoda, pod ktrej nazw kryje si wiele implementacji
nosi nazw metody przecionej. Tosamo obiektu jest to cecha, ktra pozwala odrni go od pozostaych obiektw istniejcych w systemie. Ma to szczeglne znaczenie podczas operacji wyszukiwania i kasowania. Dokadna identyfikacja jest korzystna, jeli si zaoy, e wartociami atrybutw obiektu mog by rwnie obiekty.
Problem identyfikacji w systemach obiektowych dotyczy zarwno obiektw, jak i klas
obiektw. Identyfikacj klas mona zapewni narzucajc unikalno nazwy. Obiekt
ma unikalny identyfikator, ktry suy zarwno do identyfikacji obiektu jak i do
wprowadzania powiza midzy obiektami, jeli wartoci atrybutu obiektu pewnej
klasy jest inny obiekt. Identyfikator jest odpowiednikiem klucza w bazie relacyjnej.
Zaletami stosowania identyfikatora obiektu w stosunku do klucza jest to, e klucz jest
unikalny zwykle w obrbie relacji, natomiast identyfikator w caej bazie. Identyfikato-
57
ry s implementowane przez system, wic programista nie musi si obawia o odpowiedni ich dobr. Pojcie identyfikatora wprowadza pojcie rwnoci i identycznoci
obiektw. Dwa obiekty s identyczne, gdy maj ten sam identyfikator. Dwa obiekty s
rwne, jeli wartoci wszystkich atrybutw s rekursywnie rwne. Prawdziwe jest
twierdzenie, e dwa obiekty identyczne s rwne, natomiast odwrotne jest faszywe.
6.6. Enkapsulacja
Enkapsulacja jest to rozdzielenie deklaracji i implementacji metod, dziki czemu
uzyskuje si ochron danych przed niepowoanymi uytkownikami oraz zapewnia si
prywatno zawartoci metod. Enkapsulacja umoliwia strukturalizacj programu
poprzez jego podzia na niezalene moduy. Pena enkapsulacja zapewnia, e funkcjonowanie i wewntrzna budowa obiektu nie s widoczne dla pozostaych obiektw.
Dostp do tego obiektu odbywa si poprzez metody tego obiektu wykonujce pewne
operacje na danych zawartych w tym obiekcie. Wywoanie metod obiektu ma charakter oglny, natomiast struktura danych obiektu i operacje na nich wykonywane maj
charakter lokalny. Pojcie enkapsulacji wywodzce si z obiektowych jzykw programowania nawizuje do abstrakcyjnych typw danych. Mona wyrni osobno
miejsce deklaracji, gdzie umieszcza si wszystkie operacje jakie mog by wykonywane na danym obiekcie, od miejsca definicji, w ktrym zawarte s wszystkie definicje danych opisujcych stan obiektu oraz definicje metod opisujcych operacje na
danych. Uytkownik ma dostp tylko do czci deklaracyjnej. W przypadku baz danych problem troch si komplikuje. Powstaje niejasno, czy dane powinny znajdowa si w czci deklaracji, przez co bd widoczne i dostpne dla uytkownika, czy
te maj zosta ukryte w czci definicyjnej. W bazach obiektowych dane s umieszczone w obiekcie. Obiekt w czci definicji ma atrybuty i metody. Zarwno dane jak
i operacje na nich zawarte s w tej samej bazie danych. Enkapsulacja gwarantuje, e
uytkownik ma dostp do danych tylko za pomoc metod. Model enkapsulacji zapewnia niezaleno logiczn danych. Mona zmieni zestaw atrybutw opisujcych dany
obiekt oraz implementacje metod, nie zmieniajc programw odwoujcych si do
tych danych, a deklaracja w tym wypadku nie ulegnie zmianie. Zachowanie penej
niewidocznoci danych nie zawsze jest korzystne. Przy zapytaniach do bazy danych
wskazany byby bezporedni dostp do atrybutw obiektu. Systemy obiektowe oferuj
taki dostp poprzez zdefiniowanie operacji czytania i modyfikacji. Tego typu rozwizanie ma dwie zalety: operacje te s napisane w sposb efektywny, a uytkownik zostaje zwolniony z obowizku pisania wielu metod czytajcych i modyfikujcych
atrybuty.
58
59
kad: Kierownik ma dostp do wszystkich danych, do ktrych ma dostp jego Podwadny (dziedzina P) lub uytkownik, ktry moe modyfikowa dany obiekt, moe go
rwnie czyta (dziedzina D).
60
61
A1 A2 A3 ..... Am L1 L2 L3 ...... Ln
gdzie: m 1, n 0, Ai jest atomem, Lj jest literaem.
Cz klauzuli wystpujca po lewej stronie zwana jest gow klauzuli, natomiast
cz wystpujca po prawej stronie ciaem klauzuli.
W zwizku z tym nasuwa si okrelenie takich poj jak regua i fakt.
Regua to klauzula z niepustym ciaem,
fakt
to klauzula pozbawiona ciaa.
W dedukcyjnej bazie danych mona wyrni:
predykaty bazowe,
predykaty wirtualne: proste i zmaterializowane,
predykaty zewntrzne.
Predykaty bazowe okrelaj fakty. Maj one znacznie szerszy zestaw typw wartoci danych prostych dla atrybutw ni jest to przyjte w bazie relacyjnej. Relacyjna
baza danych [24] stanowi szczeglny przypadek bazy dedukcyjnej jako baza zawierajca same fakty. W bazie dedukcyjnej istnieje dodatkowo moliwo definiowania
atrybutw zagregowanych. Reguy bdce wystpieniami predykatw wirtualnych
umoliwiaj wywodzenie nowych faktw (predykatw wirtualnych prostych) na podstawie istniejcych w bazie predykatw bazowych i otrzymanych w wyniku wczeniejszego zastosowania regu innych predykatw wirtualnych. W szczeglnych sytuacjach predykaty wirtualne mog by materializowane, to znaczy, e wywiedzione
z nich fakty mog zosta w sposb jawny zapamitane w bazie danych tak jakby byy
wystpieniami odpowiedniego predykatu bazowego. Materializacja predykatw
zwiksza efektywno systemu. Na og materializuje si predykaty, do ktrych czsto odwouj si zapytania. Rwnie materializuje si te, ktre wyznaczaj liczne
zbiory wirtualnych faktw, aby wielokrotnie nie stosowa tych samych regu do
otrzymania tej samej informacji. Materializacja faktw wymaga jednak stosowania
dodatkowo pewnych dynamicznie uaktualnianych mechanizmw, dla zachowania
integralnoci bazy, cznie ze zmian predykatw bazowych. Reguy maj okrelony
tzw. jzyk reguowy zawierajcy skadni i mechanizm wnioskowania. Jzyk ten wywodzi si ze sztucznej inteligencji. W zalenoci od rodzaju bazy istnieje wiele rnicych si pod wzgldem semantyki i syntaktyki jzykw.
Trzecim typem predykatw s predykaty zewntrzne zdefiniowane poza systemem. Predykaty te maj za zadanie midzy innymi:
sprawdzenie, czy midzy argumentami zachodz okrelone zwizki, np. rwnoci wikszoci itp.,
62
( ),
Regua ta oznacza, e jeeli z przesanki wynika przesanka oraz jest prawdziwe, to przyjmujemy, e fakt jest rwnie prawdziwy. Regu mona uzna za odpowiednik reguy wnioskowania zwanej w logice arystotelesowskiej jako modus ponen-
63
64
oci polega na okreleniu reguy, ktra najpniej zostaa doczona do regu. Zadaniem strategii blokowania jest eliminacja tych regu, ktre wczeniej w procesie wnioskowania byy wykorzystane. Strategia specyficznoci opiera swoje dziaanie na
uwzgldnieniu duej liczby rnych przesanek w reguach. S preferowane reguy
majce wiksz liczb przesanek, z ktrych jest wybierana przesanka o mniejszej
liczbie zmiennych. Wszystkie te strategie speniaj w programie funkcje pewnego
rodzaju filtrw, ktre maja ograniczy liczb regu tak, aby wybra jedn. Jeli w wyniku zastosowania wymienionych strategii istnieje cigle wicej ni jedna regua do
uaktywnienia, to stosuje si strategi przypadkowoci, ktra wybiera regu w sposb
przypadkowy.
Ilustracj opisanego algorytmu dla bazy wiedzy zawierajcej cztery reguy oraz trzy
fakty mona znale w pracy [35].
Wnioskowanie regresywne przebiega w odwrotn stron ni wnioskowanie progresywne. Oglnie polega ono na wykazaniu prawdziwoci hipotezy gwnej na podstawie prawdziwoci przesanek. Kiedy nie wiadomo, czy jaka przesanka jest prawdziwa, wtedy traktowana jest jako nowa hipoteza i naley j wykaza. Jeli w wyniku
takiego postpowania zostanie wreszcie znaleziona regua, ktrej wszystkie przesanki
s prawdziwe, to konkluzja tej reguy jest prawdziwa. Na podstawie tej konkluzji do-
65
wodzi si nastpn regu, ktrej przesanka nie bya poprzednio znana. Postawiona
hipoteza jest prawdziwa, jeli wszystkie postawione przesanki dadz si wykaza.
Algorytm wnioskowania regresywnego.
BW: Wiedza pocztkowa/Fakty
REPEAT
1. Okrel zbir C regu w bazie wiedzy BW, ktrych konkluzje daj si s zunifikowa.
2. Ze zbioru C wybierz regu R na podstawie strategii sterowania wnioskowaniem.
3. Jeli przesanka reguy R nie znajduje si w bazie wiedzy BW, dokonaj wnioskowania regresywnego dla przesanki reguy R (aby ja udowodni).
UNTIL Hipoteza zostanie wykazana lub nie mona zastosowa wicej regu.
Ilustracj opisanego algorytmu dla bazy wiedzy mona znale w pracy [35].
Zasadnicz cech, ktra odrnia wnioskowanie regresywne od progresywnego
jest mniejsza liczba generowanych nowych faktw oraz niemono rwnoczesnego
dowodzenia kilku hipotez. Oglnie w typowych zastosowaniach wnioskowanie regresywne jest efektywniejsze, bardziej rozpowszechnione oraz czas oczekiwania na osigniecie rozwizania postawionej hipotezy jest w wielu przypadkach duo krtszy ni
przy wnioskowaniu progresywnym.
Kompromis midzy wnioskowaniem progresywnym i regresywnym stanowi wnioskowanie mieszane, dziki czemu jest pozbawione niektrych wad opisywanych metod. Strategia tego wnioskowania opiera si na wykorzystaniu oglnych regu, zwanych metareguami, stanowicych metawiedz, na podstawie ktrej program
zarzdzajcy dokonuje odpowiedniego przeczania midzy poszczeglnymi rodzajami wnioskowania. W zalenoci od sytuacji system moe automatycznie dobra odpowiedni sposb wnioskowania. Przy przechodzeniu z jednego wnioskowania na drugie za hipotez gwn zawsze wybiera si t, ktr postawi uytkownik. Dziki temu
na kadym etapie wnioskowania istnieje moliwo udzielania odpowiedzi na postawion hipotez. We wnioskowaniu mieszanym system musi mie wprowadzony
oprcz bazy wiedzy rwnie zbir zawierajcy metareguy. W dziaaniu systemu
mona wyrni jakby dwie maszyny wnioskujce: progresywn i regresywn. Wiedza zapisana w metareguach moe preferowa jeden z rodzajw wnioskowania. Na
pocztek zakada si, e priorytet ma wnioskowanie regresywne. W zwizku z tym
stosuje si go tak dugo, dopki da si wykorzysta wszystkie reguy zwizane z wybranym wnioskowaniem. Po kadym cyklu wnioskowania s sprawdzane warunki
zapisane w metareguach. Jeli nie da si dalej stosowa wnioskowania regresywnego,
to system jest przeczany na wnioskowanie progresywne. Po wyprowadzeniu kolejnych faktw sprawdza si, czy system uzyska odpowied na postawion hipotez.
66
Jeli tak, to wynik stanowi rozwizanie. W przeciwnym razie proces jest kontynuowany a do osignicia celu lub gdy zostan wyczerpane wszystkie moliwoci jego
wykazania.
Niej podamy przykad wnioskowania mieszanego.
Przykad 7.1
Baza regu podzielona jest na dwie czci zawierajce 8 regu. Cz bazy regu
zwizana z wnioskowaniem regresywnym zawiera reguy:
R1 F and H K
R2 E and A K
R3 E and B H
Cz bazy zwizana z wnioskowaniem progresywnym zawiera reguy:
R4 A and G B
R5 B and D H
R6 G and D E
R7 A and B D
R8 A and C G
Zaoono, e naley wykaza hipotez K. Prawdziwe s fakty A i C, a priorytet ma
wnioskowanie regresywne. O wyborze reguy decyduje kolejno umieszczenia na
licie. Tak wic jako pierwsza zostanie uyta regua R1, ktrej cz warunkowa zawiera dwa nieznane fakty F i H. Naley wykaza prawdziwo tych faktw. Poniewa
w konkluzji reguy R3 znajduje si fakt H, wic w drugim kroku zostanie wybrana ta
wanie regua. Poniewa w czci warunkowej tej reguy znajduj si dwa nowe fakty
E oraz B, wic do wykazania mamy w sumie trzy fakty F, E, B. Dla rozwaanej bazy
wiedzy nie mona zastosowa wicej regu przy wnioskowaniu regresywnym, wobec
czego system zostaje przeczony na wnioskowanie progresywne. Wobec znanych
faktw A i C bd kolejno uaktywniane nastpujce reguy R8, R4, R7, R6, R5, przy
czym kolejno zostan wprowadzone nowe fakty G, B, D, E, H do bazy faktw. Poniewa zostay uaktywnione wszystkie fakty, w tej czci przechodzimy do wnioskowania regresywnego. Z faktw F, E, B, ktre poprzednio przy wnioskowaniu regresywnym naleao wykaza, tylko fakt F nie zosta wykazany. Oznacza to, e
postawionej hipotezy K nie da si wyprowadzi z regu R1 i R3. Wobec tego naley
rozway inne reguy, ktrych czci warunkowe nie byy jeszcze badane. Regu tak
jest regua R2. System sprawdza, czy fakty E oraz A znajduj si w bazie, jeli tak, to
regua R2 zostanie uaktywniona i fakt K zostaje uznany za prawdziwy, co koczy
proces wnioskowania.
Mona zauway, e proces wnioskowania przeprowadzony by w 10 krokach.
Gdyby zostaa przeprowadzona analiza wnioskowania mieszanego z priorytetem pro-
67
68
i drzewa decyzyjne [35].W dedukcyjnych bazach informacje jakie uzyskuje uytkownik s wynikiem procesw wnioskujcych. Algorytmy wartociowania zapyta kierowanych do bazy powinny charakteryzowa si: poprawnoci, kompletnoci i skoczonoci uzyskanych odpowiedzi na zadane pytania. Istnieje wiele rodzajw tego
typu algorytmw, w zalenoci od na przykad kolejnoci stosowania regu podczas
procesu wnioskowania, czy liczby faktw, ktre s pobierane z predykatw bazowych
w jednym cyklu procesu wnioskowania. Kada z grup algorytmw wymaga stosowania dodatkowych mechanizmw optymalizacji przeprowadzanych wspbienie
z sam metod. Zaproponowane metody optymalizacji mona podzieli na: syntaktyczne i semantyczne. Metody syntaktyczne opieraj si na precyzyjnej analizie postaci zapytania oraz regu wnioskowania, ktrych naley uy w celu uzyskania odpowiedzi. Przykadowo, wynikiem tej analizy moe by zmiana kolejnoci wartociowania podzapyta lub zmiana kolejnoci uycia alternatywnych regu tego samego
predykatu. Metody semantyczne opieraj si na dodatkowej wiedzy, ktra zwykle nie
jest jawnie przechowywana w bazie. Warto tu wspomnie o wizach integralnoci,
ktre w stosunku do baz relacyjnych zostay znacznie rozszerzone. W bazach dedukcyjnych wizy s definiowane za pomoc regu logicznych. Transakcja modyfikujca
fakty lub reguy dedukcyjnej bazy moe zosta zatwierdzona wycznie wtedy, gdy
w wyniku swego dziaania nie naruszya zdefiniowanych w bazie wizw. Wizy
bardzo uatwiaj precyzyjne modelowanie rzeczywistoci, mog jednak przyczyni si
do istotnego zmniejszenia efektywnoci systemu. Wynika to z koniecznoci odczytu
i udowodnienia bardzo duej liczby faktw przed podjciem decyzji o zatwierdzeniu
lub odrzuceniu transakcji. Wizy mona podzieli na natychmiastowe i opnione.
Wizy natychmiastowe musz by spenione po wykonaniu kadej elementarnej operacji transakcji. Wizy opnione musz by spenione po zakoczeniu ostatniej elementarnej operacji skadajcej si na transakcj i mog by przejciowo naruszone
w trakcie realizacji transakcji. Mona te wyrni wizy statyczne i dynamiczne.
Wizy statyczne dotycz pojedynczego stanu modelowanej rzeczywistoci. Wizy
dynamiczne ograniczaj moliwe zmiany stanw. Zarwno wizy statyczne jak i dynamiczne mog by podzielone ze wzgldu na liczb faktw, ktre musz zosta
przeanalizowane w trakcie ich weryfikacji. Wyrniamy tutaj wizy zagregowane
i niezagregowane [2, 6].
69
kadym etapie implementacji. Do najbardziej skomplikowanych problemw, z ktrymi boryka si metodologia tworzenia systemw w dedukcyjnych bazach nale:
problem adekwatnej reprezentacji wiedzy,
rozumowanie w przypadkach wiedzy niepewnej,
problemy z gromadzeniem wiedzy,
interfejs pomidzy systemem a uytkownikiem.
Za wskie gardo przy tworzeniu systemw dedukcyjnej bazy danych uwaa si
ekstrahowanie i gromadzenie wiedzy. Ekspertyza nie zawsze jest atwo dostpna.
Rni eksperci czsto diametralnie rni si midzy sob podejciem do tego samego
problemu. Pomimo pewnego postpu, w eksperymentach z automatyzacj procesu
ekstrahowania wiedzy bezporednie jej gromadzenie nadal nie jest praktycznie moliwe. Baza wiedzy budowana jest na podstawie wiedzy pozyskanej od ekspertw przez
inyniera wiedzy. Jeeli ta wiedza okae si niepena, niepewna, zrnicowana zalenie od punktu widzenia eksperta lub nieprawidowa, to te same bdy pojawi si
w bazie wiedzy systemu. Bdy semantyczne czsto s te wynikiem przekama
spowodowanych przez inyniera wiedzy na skutek nieporozumienia lub bdnej interpretacji informacji uzyskanej od specjalisty. Bdy semantyczne i syntaktyczne mog
powsta na skutek uycia niewaciwej formy regu wnioskowania lub wybrania niewaciwej formy interpretacji wiedzy. W obecnym stadium technologia systemw
inteligentnych nie potrafi sobie jeszcze efektywnie radzi z reprezentacj wiedzy rnego typu w ramach jednego systemu. Czstym rdem bdw jest te wadliwie
zaprojektowany modu interfejsu midzy uytkownikiem a systemem, ktry czsto
dostarcza uytkownikowi niekompletnych, niejasnych lub wrcz mylnych informacji.
Obecne systemy eksperckie nie s w stanie samodzielnie weryfikowa swojej poprawnoci ani ucila bazy wiedzy. Obie te czynnoci musz by inicjowane z zewntrz
i wykonywane przez inynierw wiedzy przy wsppracy z samymi ekspertami.
Przykad systemu opartego na modelu dedukcyjnym podano w rozdz. 10 czci III.
70
PODSUMOWANIE
Cz druga zawiera opis trzech reprezentatywnych modeli danych: relacyjnego,
obiektowego i dedukcyjnego. W latach osiemdziesitych zapowiadano [4], e systemy
majce za podstaw model obiektowy znacznie si rnicy od modelu relacyjnego,
przecign na pocztku lat dziewidziesitych systemy oparte na modelu relacyjnym
danych. Obecnie mamy rok 2001, a bazy relacyjne nadal s podstaw wikszoci systemw komercyjnych. Bazy relacyjne wymagaj, aby wszystkie dane byy przedstawiane jako serie dwuwymiarowych tabel. Systemy oparte na modelu relacyjnym byy
rzeczywicie wielkim wydarzeniem w latach osiemdziesitych, lecz programici bardzo szybko przekonali si, e ycie nie jest seri dwuwymiarowych tabel. Wzrost
zoonoci wspczesnych programw i wzrost uycia dynamicznych modeli danych
ukaza ograniczenia relacyjnych baz danych. Wielu producentw systemw relacyjnych zaczyna oferowa modele obiektowe [ORACLE 8] i twierdzi, e nowe wersje
jzyka SQL maj cechy obiektowoci. Rwnie bazy dedukcyjne maj poszerzony
zakres typw atrybutw w stosunku do baz relacyjnych. Dziki wyraeniu wizw
integralnoci za pomoc regu logiki pierwszego rzdu moliwe jest bardzo precyzyjne modelowanie powiza midzy encjami i ogranicze wystpujcych w modelowanej rzeczywistoci. Nie ma ogranicze w modyfikowaniu regu i wizw integralnoci. Bazy dedukcyjne maj nowe funkcje, na przykad funkcje warunkowe, uaktualniania hipotetycznego czy te rekurencyjne predykaty, ktre istotnie zwikszaj
zakres zastosowa.
71
BIBLIOGRAFIA
[1] Bancilhon F., Delobel C., Kanellakis P., Building an Object Oriented Database System: the story
of O2, Morgan Kaufmann 1992.
[2] Bayer P., Lefebvre A., Vieille L., Architecture and Design of the EKS Deductive Database System,
VLDB Journal on Prototypes of Deductive Database Systems 1993.
[3] Bernstein P.A., Synthesizing Third Normal Form Relations for Functional Dependencies, ACM
Transactions on Database Systems 1976, Vol. 1, No. 4 s. 277298.
[4] Beynon-Davies P., Systemy baz danych, WNT, Warszawa 1998.
[5] Beynon-Davies P., Information Systems Development; an introduction to information systems engineering, Macmillan Press 1993.
[6] Beynon-DaviesP., Expert Database Systems: a gentle introduction, Maidenhead, MacGraw-Hill
1991.
[7] Beynon-Davies P., Knowlege Engineering for Information Systems Development; an introduction
to information systems engineering, Maidenhead, MacGraw-Hill 1993.
[8] Beynon-Davies P., Tudhope D., Taylor C., Jones C.B., A Semantic Data-base Approach to Knowlege
Based Hypermedia Systems, Information and Software Technology, June 1994, 36(6), s. 323329.
[9] Blaha M.R., Premerlani W.J., Rumbaught I.E., Relational Database Design Using an ObjectOriented Methodology CACM, 31(4), s. 414427.
[10] Bratko I., Prolog Programming for Artificial Intelligence, 2nd Ed. Reading, Mass. Addison-Wesley
1990.
[11] Cattell R.G.G., The Object Database Standard ODMG-93 Reease 1.1, Morgan Kaufmann 1994.
[12] Chwiakowska E., Sztuczna inteligencja w systemach ekspertowych, Zakad Nauczania Informatyki
Micom, Warszawa 1991.
[13] Codd E.F., A Relational Model for Large Shared Data Banks Communications of ACM, June 1970,
Vol. 13, No. 6, s. 377387.
[14] Codd E.F., Further Normalization of the Date Base Relational Model, Englewood Cliffs: PrenticeHall 1972, s. 3364.
[15] Codd E.F., The Relational Model for Database Management: Version 2. Reading, Mass. AddisonWesley 1990.
[16] Codd E.F., Extending the relational Database Model to Capture More Meaning, ACM Transactions
on Database Systems, Dec. 1979 Vol. 4, No. 4, s. 397434.
[17] Das S.K. Deductive Databases and Logic Programming, Adison-Wesley Publishing Company
1981.
[18] DBTG: Report of the CODASYL Database Task Group, ACM, April.
[19] Date C., Introduction to Datebase Systems 5th Ed, Addison-Wesley 1990.
[20] Delobel C., Lecluse C., Richard P., Database from relational to object-oriented systems International Thompson Publishing, 1995.
[21] Delobel C., Adiba M., Relacyjne bazy danych, WNT, Warszawa 1989.
[22] Fagin R., Multi-Valued Dependencies and a New Normal Form for Relational Database, ACM
Tran. of Database Systems 1977, 2(1).
[23] Fagin R., Normal Form and Relational Database Operarators ACM SIGMOD, Int. Symposium on
the Management of Data, 1979, s. 153160.
72
[24] Gardarin G., Valduriez P., Relational Databases and Knowledge Bases, Reading Mass. Addison-Wesley 1990.
[25] Kent W., A Simple Guide to Five Normal Forms in Relational Database Theory, CACM 1983,
26(2).
[26] MacVittie D.W., MacVittie L.A., Programowanie zorientowane obiektowo, Mikom, Warszawa
1996.
[27] Martin J., Organizacja baz danych, PWN, Warszawa 1983.
[28] Miller T., Powell D., Ksiga eksperta, Helion, Gliwice 1998.
[29] Myer B., Object Oriented Software Construction, New York, Prentice-Hall 1997.
[30] Mulawka J.J., Systemy ekspertowe, WNT, Warszawa 1996.
[31] Oszu M.T., Valduriez P., Principles of Distributed Database Systems, Englewood-Cliffs, New York,
Prentice Hall 1991.
[32] Oszu M.T., Valduriez P., Distributed Database Systems: where are we now? Database Programming
and Design, March 1992.
[33] Pankowski T., Podstawy baz danych, PWN, Warszawa 1992.
[34] Prabhu C.S.R., Semantic Database Systems: a Functional introduction, London, Sangam 1992.
[35] Prace: Kumierski W., Dedukcyjna baza danych modelujca laboratorium medyczne, dyplom pod
kierunkiem M. Chaon, ICT PWr.,Wrocaw 1997.
Felu T., Mrwczyski M., Obiektowo zorientowana baza danych wspomagajca zarzdzanie, dyplom pod kierunkiem M. Chaon, ICT, PWr., Wrocaw 1999.
[36] Rissanen J., Independent Components of Relations, ACM Transactions on Database Systems 1977,
Vol. 2, No. 4, s. 317325.
[37] Rissanen J., Theory of relations for Database a Tutorial Survey, Proc. MFCS. Lecture Notes
in Computer Science, BerlinHeidelberg 1978, Vol. 64, s. 537551.
[38] Tsichritzis D.C., Lochovsky F.H., Modele danych, WNT, Warszawa 1990.
[39] Tsur S., Naqvi S., A Logical Language for Data and Knowledge Bases, Computer Science Press,
New York 1989.
[40] Teorey T.J., Database Modelling and Design: the Fundamental Principles 2nd Ed. San Mateo, Calif.
Morgan Kaufmann 1994.
[41] Winston P.H., Artificial intelligence, Reading, Mass. Addison-Wesley 1984.
73
CZ III
Stosowanie modeli danych
74
WPROWADZENIE
Jednym z istotnych zagadnie przy wyborze modelu danych, a co za tym idzie
SZBD przez projektanta, a potem przez uytkownika jest jego zoono. Uwaa si,
e im mniej zoony jest model, czyli czym wiksz prostot si charakteryzuje, tym
atwiej uytkownikowi zrozumie go i poprawnie uywa. Argument prostoty jest
czsto podnoszony przez zwolennikw relacyjnych baz danych. Mona wyrni dwa
rodzaje zoonoci: zoono struktury i zoono wizw. W obu przypadkach relacyjne modele danych s mniej zoone ni obiektowe czy dedukcyjne. Jednake brak
zoonoci moe by wad wtedy, gdy brakuje mechanizmw wspomagajcych uytkownika w interpretacji danych. Innym zagadnieniem przy wyborze modelu danych
jest dopasowanie struktury danych do moliwoci ich modelowania. Jeeli dane s
w sposb naturalny hierarchiczne, to trudno jest przedstawi je w postaci tabeli dwuwymiarowej. Na wybr modelu danych do konkretnej aplikacji moe mie wpyw
rodzaj jzyka manipulacji danych. Dy si do stworzenia jednego uniwersalnego
jzyka, jak np. SQL, z moliwoci jego modyfikowania w zalenoci od potrzeb modelu. Ciekawym zagadnieniem jest wybr midzy jzykiem naturalnym a sztucznym.
Badania wykazay [4, 5, 19], e uytkownik korzystajcy z jzyka naturalnego czsto
formuuje nieracjonalne dania do bazy ze wzgldu na zbyt du swobod przy zadawaniu pyta. Jzyki sztuczne zazwyczaj narzucaj uytkownikowi sposb zadawania pyta.
Na podstawie omwionych kryteriw mona wybra odpowiednie modele danych
dla kadej modelowanej dziedziny. W rozdziaach smym, dziewitym i dziesitym
podano przykady konkretnych systemw zbudowanych na modelach relacyjnym,
obiektowym i dedukcyjnym.
75
8. NIEPROCEDURALNY JZYK
CZWARTEJ GENERACJI
8.1. Uwagi oglne
Jzyki suce do wyszukiwania danych dzielimy na: proceduralne i nieproceduralne. W jzykach proceduralnych uytkownik opisuje procedur wyszukiwania
i uzyskiwania danych na pewnym poziomie szczegowoci. Wyrniamy wyszukiwanie jednostkowe, ktrego przykadem moe by sieciowa baza danych, oraz wyszukiwanie grupowe, ktrego przykadem jest definicja cigu operacji algebry relacji.
W jzykach nieproceduralnych uytkownik podaje warunki, jakie powinien spenia
dany przez niego wynikowy zbir danych. Wyraenia nieproceduralne musz by
przetumaczone w systemie na cig wyrae jzyka proceduralnego. W podejciu
nieproceduralnym wykorzystuje si jeden z jzykw rachunku relacji: rachunek krotek
lub rachunek domen. Relacyjny rachunek na krotkach sta si podstaw jzyka SQL
[7], natomiast relacyjny rachunek na domenach podstaw interfejsw QBE (zapytanie
przez przykad). Pierwowzorem SQL by jzyk SEQUEL [5, 6, 15, 19, 21]. Definicja
skadni standardu jzyka relacyjnych baz danych SQL po raz pierwszy zostaa opublikowana w 1986 roku w oparciu o dwa dialekty SQL IBM i Oracle [8]. Jej ulepszona
wersja SQL1 powstaa rok pniej. W 1989 roku [9] opublikowano wersj SQL89
zawierajc gwnie popraw integralnoci bazy. Dopiero w 1992 wydano pen specyfikacj rozszerzonej wersji pod nazw SQL2 [10]. Ta rnorodno wersji sprawia,
e nie ma jednolitego standardu SQL, jest wiele dialektw tego jzyka. Ponadto stale
powstaj nowe wersje SQL.
Instrukcje jzyka SQL dzieli si z reguy na cztery grupy zwane rwnie jzykami.
S to:
instrukcje definiowania danych,
instrukcje manipulowania danymi,
zapytania,
instrukcje zarzdzania danymi.
76
77
78
Przykad 8.7
Tworzenie schematu Uczelnia.
CREATE SCHEMAT Uczelnia;
CREATE TABLE Pracownicy
Zmiana schematu moe odbywa si za pomoc instrukcji SET SCHEMAT. Pojciem szerszym od schematu jest katalog. Katalog jest nazwan grup schematw. Instrukcja tworzenia katalogu zalena jest od implementacji. Nazwy schematw w katalogu musz by jednoznaczne.
Kolejna instrukcja CREATE DOMAIN suy do definicji dziedziny, czyli zbioru poprawnych wartoci. Dziedzina jest okrelona w schemacie i jest identyfikowana przez
swoja nazw. Gwnym celem uycia dziedziny jest ograniczenie zbioru poprawnych
wartoci, ktre mog by przechowywane w kolumnie.
Przykad 8.8
Definicja dziedziny, ktra okrela typ danych i klauzul wartoci domylnej.
79
80
Przykad 8.12
Jeli kolumna NrPrac ma peni funkcj klucza gwnego tabeli Pracownicy, to
wartoci pl odpowiadajce tej kolumnie musz by okrelone.
ALTER TABLE Pracownicy;
MODIFY (NrPrac NUMER (5) NOT NULL)
81
nazwa tabeli
zmiany do wykonania w klauzuli SET
warunek dla ktrego s zmiany
Przykad 8.15
Zmiana wartoci pola tabeli Pracownicy.
UPDATE Pracownicy;
SET Pensja = Pensja + 2000;
WHERE DataZatrudnienia < 01.01.1996
Wiersze z tabeli usuwa si za pomoc instrukcji DELETE o postaci:
DELETE FROM nazwa tabeli
WHERE wyraenie logiczne
Przykad 8.16
Usuwanie wierszy z tabeli.
DELETE FROM Pracownicy;
WHERE NazwaWydziau = Elektronika
Jeli nieokrelony jest warunek WHERE, to wszystkie rekordy z tabeli s usuwane.
8.4. Zapytania
Zapytania su do uzyskiwania informacji z tabel tworzcych baz. Wszystkie zapytania zaczynaj si sowem kluczowym SELECT. Sowo to stanowi poczenie operatorw projekcji, konkatenacji i selekcji. Do prostego wyszukiwania uywa si kombinacji
klauzul SELECT FROM WHERE. Kombinacja ta zwana jest blokiem kwalifikacyjnym.
SELECT
FROM
WHERE
atrybuty
nazwa tabeli
warunki
82
83
Klient (Customer)
Faktury (Invoices)
Sprzedawca (Salesman)
Detal (Detail)
Biura (Offices)
Czci (Parts)
Przykad 8.18
Ze zbioru Detale wybierz wszystkie detale, ktrych cena zawarta jest w okrelonym przedziale cenowym.
SELECT Ino, price;
FROM Detail;
WHERE price BETWEEN 3000 AND 4000
Za pomoc operatora IN wyznacza si wszystkie rekordy, dla ktrych warto pewnego pola naley do okrelonego zbioru.
Przykad 8.19
Ze zbioru Sprzedawca wybierz wszystkich sprzedawcw zamieszkaych we Wrocawiu lub Warszawie.
SELECT name, city;
FROM Salesman;
WHERE city IN (Wroclaw,Warszawa)
Poniewa relacja nie ma jawnego uporzdkowania wierszy, mona to zrobi stosujc
przetwarzanie relacji. Aby uzyska posortowan wyjciow list, do instrukcji
SELECT dodajemy klauzul ORDER BY z odpowiednim sowem kluczowym (porzdek malejcy lub rosncy). W celu podsumowania wartoci w tabeli uywamy
klauzuli GROUP BY. Klauzula GROUP BY moe mie swoj wasn klauzul ograniczajc HAVING.
84
Przykad 8.20
Wylistuj oddziay firmy oraz sumaryczn warto sprzeday kadego oddziau.
Uporzdkuj wydruk wedug wartoci sprzeday od najwikszego do najmniejszego.
SELECT Offices.city, SUM (Invoices.itotal);
FROM Offices, Invoices, Salesman;
WHERE Invoices.salesman = Salesman.salesman;
AND Salesman.ono = Offices.ono;
GRUP BY Offices.ono;
ORDER BY 2 DESCENDING
W przykadzie tym operacja SELECT dziaajca na trzech powizanych przez wsplne kolumny tabelach (zaznaczono to w warunku WHERE) pozwala wybra, podsumowa i uporzdkowa w porzdku malejcym informacje. Inny przykad pokazuje
dziaanie klauzuli ograniczajcej HAVING.
Przykad 8.21
Wybierz te czci, dla ktrych suma wartoci atrybutu qty jest wiksza od 50.
SELECT Detail.pno, Parts.descript, SUM(qty), SUM (qty*Detail.price);
FROM Detail, Parts;
WHERE Detail.pno = Parts.pno;
GROUP BY Detail.pno;
HAVING SUM (qty) > 50
W tym przykadzie czymy dwie tabele, w warunku podajemy nazwy kolumn, wedug ktrych nastpio poczenie oraz listujemy wartoci kolumn wybranych w instrukcji SELECT zgodnie z klauzul ograniczajc HAVING.
Przykad 8.22
Wylistuj stany pooone midzy 40 a 45 stopniem szerokoci geograficznej, w ktrych mieszkaj klienci danej firmy.
SELECT state;
FROM Customer;
GROUP BY state;
HAVING 40 <= min (lat) AND max (lat) <= 45
To samo zadanie mona wykona inaczej, korzystajc z moliwoci zagniedania
zapyta w instrukcjach SELECT.
85
86
FROM Pracownicy;
WHERE NazwiskoPrac = Jazz)
Wykonanie podzapytania moe by powtarzane. Wtedy nazywa si ono podzapytaniem skorelowanym. W takim wypadku otrzymujemy cig wartoci do porwnywania
z wynikami najbardziej zewntrznego zapytania. Konieczne jest istnienie kopii waciwej tabeli.
Przykad 8.26
W przykadzie tym mamy wypisa nazwiska wszystkich pracownikw, ich pensje
i nazwy wydziaw dla tych pracownikw, ktrzy zarabiaj wicej ni wynosi rednia
pensja pracownika ich wydziau.
SELECT NazwiskoPrac, NazwaWydziau, Pensja;
FROM Pracownicy L;
WHERE Pensja >;
(SELECT AVG (Pensja);
FROM Pracownicy;
WHERE L NazwaWydziau = NazwaWydziau)
Tworzymy kopi tabeli Pracownicy o nazwie Pracownicy L. Jedna tabela suy do
policzenia redniej pensji (funkcja AVG), druga jest podstaw do porwnania wykonanego dla kadego pracownika. Moemy zatem nadawa nazw alternatywn, zwan
aliasem, kolumnie lub tabeli w ramach kontekstu zapytania. Podobne zadanie z zastosowaniem dwukrotnym tej samej tablicy Sprzedawca podano niej.
Przykad 8.27
Porwnaj rednie roczne zarobki Sprzedawcw.
SELECT a.salesman, a.name, a.ytdsales, AVG (b.ytdsales);
FROM Salesman a, Salesman b;
WHERE a.ytdsales < b.ytdsales;
GROUP BY a.salesman
Tworzenie kopii jest rwnoznaczne z czeniem tablicy samej ze sob. Trzeba to robi
bardzo ostronie przede wszystkim w przypadku czenia tablic o duej liczbie wierszy, jak rwnie wtedy, gdy w wyniku chcemy uzyska pewne kombinacje danych,
jak pokazano to w podanym dalej przykadzie.
87
Przykad 8.28
Ze zbioru Czci mamy wylistowa pary: numer czci i jej opis, ktre zafakturowano temu samemu klientowi. Poniewa nie istnieje w bazie bezporednie powizanie
pomidzy zbiorami Faktury i Czci, aby uzyska potrzebne informacje naley wzi
pod uwag zbir Detale, co zaznaczone jest powizaniem w warunku WHERE.
SELECT a1.pno, a1.descript, a2.pno, a2.descript;
FROM Parts.a1, Parts.a2, Invioces.b1, Invoices.b2, Detail.c1, Detail.c2;
WHERE b1.ino = c1.ino AND c1.pno = a1.pno;
AND b2.ino = c2.ino AND c2.pno = a2.pno;
AND b1.cno = b2.cno;
AND a1.pno < a2.pno
Warunek umieszczony w ostatniej linijce przykadu zabezpiecza przed uzyskaniem
kadej pary z tabeli gwnej i jej kopii dwukrotnie.
Istnieje moliwo poczenia wynikw dwch zgodnych zapyta poprzez uycie
operatora sumy UNION, ktry odpowiada operatorowi sumy algebry relacyjnej.
Przykad 8.29
Wybierz wszystkich klientw zamieszkaych we Wrocawiu i w Poznaniu.
SELECT Cno, Campany;
FROM Customer;
WHERE City=Wrocaw;
UNION;
SELECT Cno, Campany;
FROM Customer;
WHERE City=Pozna
88
89
WHERE NazwaWydziau =;
(SELECT NazwaWydziau;
FROM Pracownicy;
WHERE NazwiskoPrac = Nowak A;
AND NazwiskoPrac <> Nowak A)
Jeeli uytkownikowi przekae si okrelone uprawnienia do danego obiektu, to
otrzymuje on dostp do tego obiektu jedynie w ramach tych uprawnie. Istniej rwnie klasy uytkownikw. Uytkownik nalecy do klasy CONNECT moe oglda
dane innych uytkownikw, moe wykonywa zadania operowania danymi i tworzy
perspektywy. Uprawnienia RESOURCE umoliwiaj uytkownikowi tworzenie indeksw i tabel baz danych oraz przyznawanie praw dostpu do tych tabel i indeksw
innym uytkownikom. Uprawnienia administratora bazy dostaj tylko niektrzy uytkownicy.
Przykad 8.33
Nowy uytkownik Nowak majcy haso hallo ma okrelone uprawnienia:
GRANT CONNECT, RESOURCE;
TO Nowak;
IDENTIFIED BY hallo
lub odwoane:
REVOKE CONNECT;
FROM Nowak
90
Integralno encji realizowana jest przez dodanie specyfikacji klucza gwnego. Jest to
regua, ktra mwi, e kada tabela musi mie klucz gwny i e kolumna lub kolumny
wybrane jako klucz gwny powinny by jednoznaczne i nie zawiera wartoci NULL.
Bezporedni konsekwencj tej reguy jest to, e nie mog powtarza si wiersze.
Przykad 8.34
Dodanie klucza gwnego do definicji tabeli.
CREATE TABLE Pracownicy;
(NrPrac Number (5), NOT NULL UNIQUE;
NazwiskoPrac Varchar(15);
Status Varchar (15);
NazwaWydziau Varchar (20);
Pensja Decimal (7,2);
PRIMARY KEY (NrPrac))
CREATE TABLE Jednostki;
(NazwaJednostki Char (15) NOT NULL UNIQUE;
Poziom Smallint;
KodKursu Char (3);
NrPrac Number (5);
PRIMARY KEY (NazwaJednostki))
Integralno referencyjn definiujemy przez specyfikacj klucza obcego. Regua ta
mwi, e kada warto klucza obcego moe znajdowa si w jednym z dwch stanw. Normalnie warto klucza obcego odwouje si do wartoci klucza gwnego
tabeli w bazie danych lub ma warto NULL (czyli adnych powiza). Utrzymanie
integralnoci referencyjnej nie ogranicza si do okrelania wartoci NULL. Obejmuje
rwnie okrelenie wizw propagacji. Wizy te okrelaj, co powinno si sta
z powizan tabel, gdy modyfikujemy wiersz lub wiersze w tabeli docelowej. Moemy wyrni podejcie ostrone, ufne i wywaone. W pierwszym przypadku,
ostronego usuwania, (RESTRICTED) zabraniamy usuwa wiersz z tabeli gwnej
(np. Pracownicy), dopki nie bd usunite wszystkie wiersze tabeli podrzdnej (np.
Jednostki). W przypadku drugim, ufnym, istnieje usuwanie kaskadowe (CASCADES),
czyli usuwanie wszystkich wierszy powizanych z gwnym (Pracownicy). W przypadku
trzecim, wywaonym (NULLIFILES), kiedy usuwamy wiersz gwny (Pracownicy), do
tablicy Jednostki wstawiamy NULL.
Przykad 8.35
Integralno referencyjna dla tabeli Jednostki:
91
92
93
94
Wyzwalacze mog zagnieda w sobie inne wyzwalacze. Kady wyzwalacz moe uruchamia inny. Liczba poziomw zagniedenia zaley od systemu. Typowym
zastosowaniem gniazda wyzwalaczy jest funkcja, ktra zapisuje kopie wierszy modyfikowanych przez inny wyzwalacz. Wyzwalacze mog wykonywa proste analizy
oraz porwnania przed i po wykonaniu modyfikacji danych oraz wykonywa akcje
zalene od wyniku porwnania.
W przypadku integralnoci dziedziny podajemy odpowiedni typ danych dla kolumny lub odpowiedni zakres danych.
Przykad 8.39
Uywamy klauzuli CHECK do wymuszenia poprawnej modyfikacji.
CREATE TABLE Jednostki;
(NazwaModuu Char (15);
Poziom Smallint;
KodKursu Char (3);
NrPrac Number (5);
PRIMARY KEY (NazwaJednostki);
FOREIGN KEY (NrPrac IDENTIFIES Pracownicy);
ON DELETE SET NULL;
ON UPDATE CASCADE;
CHECK (Poziom IN 1, 2, 3))
warto wstawiana do POZIOM bya
w okrelonym zbiorze
CREATE TABLE Pracownicy;
(NrPrac Number (5);
NazwiskoPrac Varchar (15);
Status Varchar (15);
NazwaWydziau Varchar (20);
Pensja Decimal (7,2);
PRIMARY KEY (NrPrac);
CHECK (NrPrac BETWEEN 100 AND 10999))
95
96
ODDZIA
ODDZIA
dom noclegowy
stowka
dom noclegowy
ODDZIA
wypoyczalnia
sprztu
stowka
dom noclegowy
Diagram kontekstowy organizacji, ktry ukazuje jak wymieniane s w biurze zadania i informacje przedstawiono na rys. 9.2.
Przykadowy proces zachodzcy w biurze pokazano na rys. 9.3.
Schemat ten pozwala si zorientowa, jakie operacje naley wykona, aby dany
proces zakoczy si jednym z moliwych zdarze. Kada operacja moe by albo
kolejnym procesem lub zestawem wywoa metod obiektw i operacji na ich atrybutach, albo dziaaniem czowieka. Procesy przedstawione na rysunku s czytelne dla
czowieka, jednak, aby mg posugiwa si nimi komputer musz zosta zapisane
w postaci pseudojzyka.
97
CENTRALA
koordynacja
i planowanie
wycieczek
ODDZIA
rezerwacja
i kontrola
wolnych miejsc
rezerwacja
i kontrola
wolnych miejsc
dom noclegowy
stowka
rezerwacja
miejsc na
imprezy
rezerwacja
sprztu
rezerwacja
posikw
rezerwacja
noclegw
wypoyczalnia
sprztu
KLIENT
98
szukanie wolnych
wstpny
plan trasy
pokoi we wasnych
biurach
szukanie wolnych
pokoi w innych
biurach
rezerwacja posikw
Oszacowanie
wasne stowki
zainteresowania
opracowanie planu
klientw
wycieczki
rezerwacja posikw
klienci
w innych biurach
zainteresowani
zatwierdzenie
wyznaczenie oddziau
planu wycieczki
prowadzcego
przekazanie planw
do oddziau
odrzucenie projektu
wycieczki
99
zwracajce warto. Takie wywoanie ma posta: sowo kluczowe Run test, po ktrym nastpuje nazwa procesu. Po tej komendzie powstaje seria polece postaci: sowo
kluczowe On, po ktrym nastpuje nazwa wartoci zwrconej przez poprzedni proces,
a nastpnie komenda, ktra ma by wykonana dla tej wartoci. Mona rwnie wprowadzi sowo kluczowe Else. Polecenia znajdujce si po tym sowie wykonywane s
dla wartoci, ktre nie zostay wczeniej wymienione po sowach kluczowych On.
Komend Run test koczy sowo kluczowe End test.
Kade polecenie mona zastpi sekwencj instrukcji za pomoc sw kluczowych
Begin... End, midzy ktrymi moe wystpi dowolna ilo komend. Aby w procesie
istniaa moliwo cofania si do wykonanych wczeniej polece, wprowadzono do
zaznaczenia jakiego miejsca w kodzie sowo kluczowe Label, po ktrym nastpuje
identyfikator zapisany duymi literami. Powrt do tego miejsca nastpuje po napotkaniu sowa kluczowego Back to z danym identyfikatorem. Sowo kluczowe Throw
suy do wywoywania zdarze. Wykonanie kodu procesu koczy si po napotkaniu
sowa kluczowego !End. Dopuszczalne jest uycie kilku instrukcji koczcych
w jednym procesie. Niej podano opis w postaci pseudojzyka przykadowych procesw.
Przykad 9.1
Opis w pseudojzyku procesu planowania wycieczki dla rysunku 9.3.
Process PLANOWANIE WYCIECZKI OBJAZDOWEJ
Start on ^Zbyt duo miejsc w budynkach^ or ^Wymylono now wycieczk^
Begin
Run ^Wstpne zaplanowanie trasy^
Run
{
^Szukanie wolnych pokoi we wasnych budynkach^
^Szukanie wolnych pokoi w innych biurach^
}
Run ^Opracowanie planu wycieczki^
Run
{
^Rezerwacja posikw we wasnych stowkach^
^Rezerwacja posikw w innych biurach^
}
Run test ^Oszacowanie zainteresowania klientw^
On ^Klienci zainteresowani^
Begin
Run ^Zatwierdzenie planu wycieczki^
Run ^Wyznaczenie Oddziau Prowadzcego^
Throw ^Przekazanie planu do oddziaw^
!End
EndOn
Else
100
Begin
Throw ^Odrzucenie planu wycieczki^
!End
End test
End
End
Przykad 9.2
Opis w pseudojzyku procesu realizacji wycieczki.
Process REALIZACJA WYCIECZKI OBJAZDOWEJ W ODDZIALE
Start on ^Wpyn projekt nowej wycieczki^
Begin
Run ^Wprowadzenie wycieczki do oferty^
Run ^Wyznaczenie odpowiedzialnego pracownika^
Label REALIZACJA
Run ^Rezerwacja rodkw transportu^
Run ^Wyznaczenie pilotw^
Run ^Opracowanie i realizacja strategii reklamowej^
Run test ^Oczekiwanie na zgoszenia klientw^
On ^Zbyt mao klientw^
Run test ^Analiza przyczyn braku zainteresowania^
On ^Przyczyna braku klientw moliwa do poprawienia^
Begin
Run ^Korekta oferty^
Back to REALIZACJA
End
On ^Przyczyna braku klientw niemoliwa do poprawienia^
Begin
Run ^Przedstawienie zgoszonym klientom innych propozycji^
Run ^Anulowanie wycieczki^
Throw ^Zgoszenie faktu anulowania wycieczki do centrali^
!End
End On
End On
On ^Wystarczajca ilo klientw^
Begin
Run test ^Sprawdzenie czy pozostay wolne miejsca^
On ^Tak^
Run ^Oferta last minute^
End On
Run ^Zatwierdzenie wyjazdu^
Throw ^Wyjazd wycieczki^
End test
!End
End On
End test
End On
End test
End
End
101
Przykad 9.3
Opis w pseudojzyku rezerwacji miejsc w domu noclegowym wasnym.
Process REZERWACJA MIEJSC DOM NOCLEGOWY WASNY
Start on ^Rezerwacja z oddziau^, ^Bezporednia rezerwacja^
Begin
Run Test ^Sprawdzenie czy s wolne miejsca^
On ^Znaleziono^
Begin
Label REALIZACJA
Run ^Rezerwacja miejsca^
Throw ^Informacja o dokonaniu rezerwacji^
!End
End On
On ^Brak^
Begin
Label ODMOWA
Run ^Odmowa rezerwacji^
Throw ^Informacja o braku miejsc^
!End
End On
On ^Znaleziono^
Run test ^Konsultacja z klientem aktualnej rezerwacji^
On ^Rezerwacja aktualna^
Back to ODMOWA
On ^Rezerwacja nieaktualna^
Begin
Run ^Anulowanie rezerwacji aktualnego klienta^
Back to REZERWACJA
End
End On
End On
End test
End On
End test
End
End
104
105
Przykad 9.4
Opis klasy RODEK TRANSPORTU:
class RODEK TRANSPORTU
inherit
properties
wypoczynek: WYPOCZYNEK;
ilo osb: integer;
rezerwacja: REZERWACJA RODKA TRANSPORTU;
dodatki (*): string;
cena za osob: real;
constrains
cena za osob > 0;
ilo osb > 0;
triggers
if wypoczynek, rezerwacja not NULL then delete disabled;
methods
New();
Dispose();
OdczytAtrybutw(): (*)^;
ZapisAtrybutw (wypoczynek, ilo osb, rezerwacja, dodatki, cena za osob);
Ilo dni (wypoczynek): integer;
end;
Przykad 9.6
Opis klasy PRACOWNIK:
106
class PRACOWNIK
inherit OSOBA
properties
data_ zatrudnienia: date;
stanowisko: string;
zarobki: real;
szef: PRACOWNIK;
odpowiedzialny (*): WYPOCZYNEK, BIURO, SAMOCHD;
data _urodzenia: date;
miejsce_ zatrudnienia: string;
constrains
miejsce_ zatrudnienia not NULL;
data_ zatrudnienia not NUL;
adres not NULL;
triggers
if odpowiedzialny not NULL then delete disabled;
methods
New();
Dispose();
OdczytAtrybutw(): (*)^;
ZapisAtrybutw (data_zatrudnienia, stanowisko, zarobki, szef, odpowiedzialny, data_urodzenia, miejsce_zatrudnienia);
Nazwisko_szefa: string;
Imi_szefa: string;
ZaCoOdpowiedzialny: string;
end;
Przykad 9.7
Opis klasy OSOBA:
class OSOBA
inherit
properties
nazwisko: string;
imi: string;
pe: boolean;
nr_dowodu: string
adres: string
telefon: string;
constrains
nazwisko not NULL;
methods
New();
Dispose();
OdczytAtrybutw(): (*)^;
ZapisAtrybutw (nazwisko, imi, pe, nr_dowodu, adres, telefon);
end;
107
108
nie ma adnych praw dostpu do obiektu lub atrybutu. Niej podano przykad okrelenia praw dostpu dla klasy: OBSUGA KLIENTA.
Przykad 9.8
Nadawanie praw dostpu:
rights
OBSUGA KLIENTA
KIEROWNIK: (R);
Telefon: (R);
Samochd: (R);
Podlegli pracownicy: (R);
PRACOWNIK BIUROWY: (R );
wyksztacenie: (R);
jzyki: (R);
specjalnoci: (R);
KLIENT: (D);
bierze udzia w: (M);
wpaci: (M);
zarezerwowa: (M);
OSOBA: (D);
nazwisko: (M);
imi: (M);
pe: (M);
nr dowodu: (M);
telefon: (M);
adres: (M);
PRACOWNIK
.
.
end
109
ich identyfikatory. Wykorzystanie identyfikatorw pozwala na poruszanie si po bazie, a metody obiektw na uzyskanie dostpu do danych w obiekcie. Oba sposoby
mog by uywane zamiennie. Mona, przykadowo, wykorzystujc jzyk zapyta
otrzyma zbir wynikw speniajcych dane warunki, a nastpnie korzystajc z technik nawigacyjnych przeglda rezultat zapytania. Rezultatem zapytania moe by
obiekt lub zbir obiektw klasy, ktra musi by zdefiniowana w zapytaniu. Zabezpieczeniem w tym przypadku moe by zaoenie, e wszystkie otrzymane atrybuty musz pochodzi z kadego z wyszukanych obiektw, czyli e moe to by albo sam
obiekt, albo pojedynczy atrybut. Sposb ten gwarantuje, e wynikiem wyszukiwania
bdzie zbir obiektw nalecych do istniejcych ju klas. W zapytaniach do baz danych mona rwnie wykorzysta metody. Wykorzystanie metod moe w znaczcy
sposb wpyn na uatwienie wyszukiwania informacji w bazie. Rezultat metody
moe suy do sformuowania warunkw zapytania lub moe by zwykym atrybutem speniajcym okrelone warunki. Jako przykad zadajemy pytanie: Znajd wszystkich kierowcw autokaru, dla ktrych impreza (wypoczynek) bdzie trwaa trzy dni.
W tym przypadku wykorzystamy metod IloDni (impreza) obiektu KIEROWCA
AUTOKARU, ktra jako rezultat swojego dziaania zwraca warto rwn dugoci
trwania imprezy w dniach.
W dziedzinie prac badawczych nad jzykiem zapyta dla obiektowych baz kadzie
si duy nacisk na zgodno ze standardem jzyka SQL. Obiektowe jzyki wzorowane
na SQL dysponuj podstawowymi moliwociami tego jzyka takimi, jak: mechanizmy sortowania danych, operacje grupowania danych, funkcje arytmetyczne itp. Formuowanie zapytania w jzyku obiektowym np. OQL (ang. Object Query Language),
jest bardzo podobne do formuowanych w SQL. OQL jest oparty na rachunku dziedzin. Zapytanie jest wyraeniem, zwykle zoonym, o okrelonym typie. Jzyk udostpnia szereg operatorw o rnej liczbie argumentw, ktre mog by take wyraeniami. Konstrukcja SELECT-FROM-WHERE jest pewnym operatorem. Dlatego
OQL umoliwia zagniedanie nie tylko na poziomie frazy WHERE, ale rwnie
przy frazach SELECT i FROM. SELECT okrela zbir atrybutw, ktry ma by
rezultatem zapytania, FROM okrela zakres zapytania, a WHERE okrela warunki,
jakie musz spenia wyszukiwane obiekty. Atrybuty mog by definiowane w sposb
zagniedony. W tym wypadku konieczne jest definiowanie cieek dostpu.
Przykad 9.9
Znajd wszystkie wycieczki objazdowe, ktre trway cztery dni, ktrych pilot jest
specjalist od architektury i ktrych klienci s mczyznami.
SELECT x FROM x IN WYPOCZYNEK WHERE x.ilo_dni=4 AND x.pilot.specjalizacja = Architektura AND x.klient.pe = TRUE;
Przykad 9.10
Znajd wszystkich pracownikw oraz ich przeoonych. Przeoeni musz zarabia
mniej ni 1000 i musi by speniony dodatkowy warunek, e urodzili si po 1975 roku.
110
111
Znacznym uproszczeniem powyszego zapisu jest wstawienie obok nazwy klasy operatora *, ktry oznacza, e w zapytaniu bdzie uwzgldniona caa hierarchia tej klasy.
Przykad 9.16
Znajd wszystkich pracownikw zarabiajcych wicej ni 1000.
SELECT PRACOWNIK * WHERE zarobki > 1000;
Czstym przypadkiem w definicji klas jest fakt, e nowo utworzona klasa jest definiowana przez odwoanie si do siebie samej. W jzyku zapyta powinna powsta
moliwo zadawania pyta dotyczcych zalenoci cyklicznych. Rozwaymy atrybut
szef klasy PRACOWNIK. Dziedzin tego atrybutu jest ta sama klasa.
Przykad 9.17
Znajd wszystkich pracownikw, ktrzy s podwadnymi pracownika o nazwisku
Nowak.
SELECT x FROM x IN PRACOWNIK, y IN PRACOWNIK WHERE y = x.szef
AND EXISTS (SELECT y FROM y IN y.szef WHERE y.nazwisko = Nowak);
Inaczej ten przykad mona zapisa w prostszy sposb, uywajc klauzuli
RECURSES.
SELECT PRACOWNIK (RECURSES szef) WHERE nazwisko = Nowak
RESURSES szef oznacza, e jak tylko zostanie znaleziony obiekt klasy
PRACOWNIK z atrybutem nazwisko = Nowak, musi by rekursywnie zwrcona
warto atrybutu szef dla tego obiektu.
Zapytania z wielokrotnymi obiektami pozwalaj na rozstrzygnicie, czy przedmiotem
zapytania ma by caa hierarchia klas, czy tylko pojedyncza klasa oraz rozwizuj
problem porwnywania atrybutw wielowartociowych.
Przykad 9.18
Znajd wszystkich pracownikw biurowych, ktrzy maj to samo nazwisko co szef
pilotw.
SELECT x FROM x IN PRACOWNIK_BIUROWY, p IN PILOT WHERE x.nazwisko = p.szef. nazwisko
Obiektowy jzyk OQL jest zasadniczo jzykiem wyszukiwania danych, nie posiada
SQL-owych komend INSERT i UPDATE, cho umoliwia wykonywanie metod
obiektw, ktre mog wykonywa operacje na danych. W OQL brak jest wartoci
NULL, pojcia tablic oraz perspektyw. Jest jednak moliwo definiowania wizw
integralnoci, wyzwalaczy i nadawania przywilejw.
112
113
PRACOWNIA
KONTROLA
ARCHIWUM
MAGAZYN
ANALIZA
ADMINISTRATOR
114
115
low
high
TSH
high
normal
fT4
nie
low
normal
tak
fT4
LEKI
AMA
nie
CIA
normal
high
normal
TRH
SUBKLINICZNA
NADCZYNNO
low
NADCZYNNO
EUTYREOZA
NIEDOCZYNNO
NADCZYNNO EUTYREOZA
TARCZYCY
SUBKLINICZNA
NIEDOCZYNNO
NIEDOCZYNNO TARCZYCY
FAKTY:
TSH-LOW
TSH-NORMAL
TSH-HIGH
fT4-LOW
fT4-NORMAL
fT4-HIGH
TRH-LOW
TRH-NORMAL
AMA-NORMAL
AMA-HIGH
Czy pacjent bierze leki?
Czy pacjentka
jest w ciy?
+ + +
+
+ + +
+
+
+
+
+
N
N
N N T
N T
+
+
116
START
We hipotez ze
szczytu stosu zada
tak
nie
Czy w bazie wiedzy na
licie faktw jest odpowied
na postawion hipotez?
Okrel reguy, ktrych
przesanki znajduj si
na licie faktw
nie
Czy istnieje regua ktr
mona uaktywni?
tak
117
Kolumny tej tabeli zawieraj hipotezy, a wiersze fakty zwizane z wynikami konkretnych bada laboratoryjnych oraz pytania zadawane przez system podczas procesu
wnioskujcego. Daje to przejrzysty obraz danej dziedziny. W tabeli znak + odpowiada zachodzeniu konkretnych faktw. Na podstawie tej tabeli decyzyjnej zbudowana jest baza regu i przeprowadzone wnioskowanie progresywne (rys. 10.4). Wnioskowanie to polega na wybraniu jednej z moliwych hipotez, a nastpnie generowanie
za pomoc zdefiniowanych regu nowych faktw a do momentu, kiedy dana hipoteza
zostanie udowodniona, albo zbir regu zostanie wyczerpany.
Kolejne kroki algorytmu maszyny wnioskujcej progresywnie mona opisa w nastpujcy sposb. W procesie wnioskowania korzysta si z pewnego obszaru pamici
roboczej programu, gdzie przechowuje si wyniki tak zwanego stosu zada. Rozwizanie problemu zaczyna si od umieszczenia hipotezy na szczycie stosu zada
(w naszym przykadzie subkliniczna niedoczynno tarczycy), nastpnie system przeglda list faktw w bazie wiedzy i sprawdza, czy nie ma tam odpowiedzi na postawion hipotez.
Jeeli jest, to nastpuje sformuowanie odpowiedzi i zakoczenie procesu wnioskowania. Jeeli w bazie nie ma odpowiedzi na wybran hipotez, zostaje okrelony
zbir regu, ktrych przesanki znajduj si na licie faktw. Nastpnie, stosujc strategi sterowania wnioskowaniem, wybiera si odpowiednie reguy. Kolejnym krokiem
jest sprawdzanie, czy wybran regu mona uaktywni. Jeeli nie, to proces jest zatrzymany. Oznacza to, e na podstawie zgromadzonych regu i faktw nie mona
udowodni wybranej hipotezy. W przeciwnym razie, po uaktywnieniu reguy, konkluzja jej jest wprowadzana na list faktw oraz jest odnotowane, e wybrana regua zostaa uyta w biecym procesie wnioskujcym strategia blokowania. Po wprowadzeniu nowego faktu na list system sprawdza ponownie, czy na licie faktw
znajduje si wybrany cel czyli hipoteza. Proces jest powtarzany tak dugo, a zostanie
osignity cel lub zostan wyczerpane wszystkie moliwoci jego wykazania.
118
119
120
Zestaw regu tworzy ptl, jeeli uaktywnienie tych regu jest cykliczne. Aby wykry zaptlenie regu dla badanej bazy, buduje si specjaln tabel zwan tabel zalenoci. W tabeli takiej przedstawia si zalenoci istniejce midzy reguami oraz
midzy reguami a celem do wykazania.
Jedna regua jest pochaniana przez inn regu wwczas, gdy cz warunkowa
pierwszej reguy jest speniona, jest rwnie speniona cz warunkowa drugiej reguy i czci konkluzyjne obu regu s identyczne. Na przykad regua:
(AMA,N) AND (fT4,N) AND (TSH,N) EUTYREOZA
jest pochaniana przez regu
(TSH,N) EUTYREOZA
Pochaniajce reguy daj podobny efekt jak reguy z nadmiern liczb warunkw.
Wielokrotne odwoywanie si do jednego atrybutu zachodzi wwczas, gdy
w czci warunkowej wystpuje kilka czonw zawierajcych ten sam atrybut.
W przypadku gdy odwoania s identyczne, powtarzajce warunki s zbdne i wyduaj niepotrzebnie czas wnioskowania. Natomiast w przypadku gdy nie s identyczne,
regua nigdy nie zostanie uaktywniona, poniewa atrybut nie moe jednoczenie
przyjmowa kilku wartoci, np.:
(TSH,N) AND (TSH,H) EUTYREOZA
Wielokrotne odwoywanie si do jednego atrybutu w czci wynikowej jest bdem
logicznym, stwarzajcym domniemanie wystpienia bdnego powizania atrybutu
wynikowego z jego wartoci.
Testowanie spjnoci polega na wykrywaniu regu zbdnych, sprzecznych, pochaniajcych, regu z niepotrzebnymi warunkami oraz regu zaptlonych. Nadmiarowo bazy wiedzy wystpuje wwczas, gdy pojawi si reguy zbyteczne. Dwie reguy s nadmiarowe, jeli obie ich czci warunkowe s rwnoczenie spenione we
wszystkich moliwych sytuacjach oraz ich czci konkluzyjne s identyczne, np.:
(AMA,N) EUTYREOZA
(AMA,L) EUTYREOZA
gdzie N i L przyjmuj odpowiednie wartoci [3].
Mimo e redundancja powoduje nadmiarowo bazy wiedzy, proces wnioskowania odbywa si normalnie, chocia jest wymagane przeszukiwanie wikszej liczby
regu.
121
122
PODSUMOWANIE
W czci III pokazano moliwoci wykorzystania przedstawionych wczeniej modeli danych w konkretnych zastosowaniach. Ze wzgldu na niezwyk uniwersalno
i popularno modelu relacyjnego nie przedstawiono konkretnej implementacji tego
modelu [20], a jedynie umiejtno wykorzystywania jzyka zapyta SQL. Niestety,
model relacyjny, tak wygodny przy oprogramowywaniu rnego rodzaju sformatowanych baz danych (np. hurtownie, magazyny itp.), nie sprawdza si w przypadku niesformatowanych baz danych. Tutaj przydatne s dedukcyjne i obiektowe bazy danych
[2]. Bazy te, oprcz standardowych zakresw typw atrybutw, maj poszerzony zakres predykatw bazowych, konstruktory umoliwiajce agregacj atrybutw. Dziki
wyraaniu wizw integralnoci za pomoc regu logiki pierwszego rzdu (bazy dedukcyjne) moliwe jest bardzo precyzyjne modelowanie powiza midzy encjami
i ogranicze wystpujcych w modelowanej rzeczywistoci. Bazy te nie maj ogranicze w modyfikowaniu regu, wizw i integralnoci. Maj wiele nowych niezwykle
przydatnych funkcji, na przykad warunkowe uaktualniania, uaktualniania hipotetyczne, czy te rekurencyjne predykaty, ktre istotnie zwikszaj zakres zastosowa.
123
BIBLIOGRAFIA
[1] Angielski S., Jakubowski Z., Biochemia Kliniczna, Perseusz, Sopot 1996.
[2] Austin D., Poznaj Oracle 8, MIKOM, Warszawa 1999.
[3] Beynon-Davies P., Systemy baz danych, WNT, Warszawa 1998.
[4] Date C.J., Twelve Rules for a Distributed Database, Comp. World, June 8, 1987.
[5] Date C.J., Wprowadzenie do baz danych, WNT, Warszawa 1983.
[6] Delobel C., Adiba M., Relacyjne bazy danych, WNT, Warszawa 1989.
[7] Gruber M., SQL Helion, Gliwice 1996.
[8] International Standards Organisation Database Language SQL.ISO/IEC 9075, 1987.
[9] International Standards Organisation Database Language SQL with integrity Enhancment ISO/IEC
9075, 1989.
[10] ISO, Basic Reference Model of Open Distributed Processing, Part 1: Overview and Guide to Use.
ISO/IEC JTC1/SC212/WG7 CD 10746-1, International Standards Organization 1992.
[11] Lustig D., Jzyk SQL dla relacyjnej bazy danych Oracle, KSW Technimex, Wrocaw 1992.
[12] Microsoft Corporation, Introduction to Programming Microsoft FoxPro 1993 (SQL Quiz).
[13] Miller T., Powell D., SQL Ksiga eksperta, Helion, Gliwice 1998.
[14] Muraszkiewicz M., Rybiski H., Bazy Danych, Akademicka Oficyna Wydawnicza RM, Warszawa
1996.
[15] Pankowski T., Podstawy baz danych, PWN, Warszawa 1992.
[16] Pawelski S., Maj S., Normy i diagnostyka chorb wewntrznych, PZW, Warszawa 1993.
[17] Pawelski S., Maj S., Normy i interpretacja bada laboratoryjnych, PZW, Warszawa 1993.
[18] Prace: Kumierski W., Dedukcyjna Baza danych modelujca laboratorium medyczne, dyplom pod
kierunkiem M. Chaon, ICT PWr.,Wrocaw 1997.
Felu T., Mrwczyski M., Obiektowo zorientowana baza danych wspomagajca zarzdzanie,
dyplom pod kierunkiem M. Chaon, ICT PWr., Wrocaw 1999.
[19] Tsichritzis D.C., Lochovsky F.H., Modele danych, WNT, Warszawa 1990.
[20] Thurrott P., Brent G., Bogdarian R., Tendon S., Arkana Delphi, RM 1998.
[21] Ullman J.D., Systemy baz danych, WNT, Warszawa 1981.
125
CZ IV
Rozproszone bazy danych
Wiele osb uznao lata dziewidziesite za er rozproszonych baz danych. Rozproszone bazy danych s bardziej skomplikowane ni scentralizowane z powodu dodatkowego czynnika komunikacji sieciowej. Mimo
rozlicznych trudnoci zwizanych z rozproszeniem wiele organizacji rozpoczo konstrukcje systemw rozproszonych baz danych.
P. Beynon-Davies
126
WPROWADZENIE
Systemy rozproszone zdaj si wyznacza naturalny kierunek rozwoju wspczesnej informatyki. Mwic o systemach rozproszonych z reguy ma si na myli system
jako cao, z infrastruktur sprztow, sieciow, systemami operacyjnymi i oprogramowaniem uytkowym. Obecnie do dobrze znane s ju zagadnienia sieci komputerowych i rozproszonych systemw operacyjnych [18, 19]. Powstaje jednak potrzeba
badania systemw rozproszonych pod ktem zarzdzania danymi oraz aktualizacji
i synchronizacji wykonywanych na nich dziaa. Do najwaniejszych zalicza si tu
problemy synchronizacji, spjnoci i rekonstruowania danych, tolerowania uszkodze,
skalowania i przezroczysto tych systemw. Wiele osb rwnie nie wyobraa sobie
prowadzenia jakiejkolwiek dziaalnoci bez takich usug, jak: poczta elektroniczna,
transmisja danych, czy korzystanie ze skarbnicy danych www. Dlatego te te problemy s wyzwaniem dla wspczesnej nauki.
127
128
roboczych. Wspczesne systemy rozproszone [1, 10, 21], to znaczy systemy otwarte,
skalowane, tolerujce uszkodzenia, pojawiy si w poowie lat osiemdziesitych wraz
z systemami UNIX BSD 4.2+ opracowanym przez Sun Microsystem oraz Mach opracowanym w Carnegie-Mellon University, bdcymi jdrem systemu operacyjnego dla
systemw rozproszonych. Powstanie wydajnych systemw sieciowych oraz rozproszonych systemw operacyjnych dao moliwo budowania rozproszonych systemw
baz danych. Podstaw tych systemw stanowi specjalizowane serwery baz danych,
majce moliwo wymiany danych z innymi serwerami.
129
130
wpywu na dziaanie uytkownikw. Przezroczysto wydajnoci pozwala na rekonfigurowanie systemu w celu poprawienia jego wydajnoci przez zmian rozoenia obcienia systemu. Przezroczysto skalowania pozwala na zmian skali systemu bez
zmiany jego struktury i algorytmw uytkowych.
Szczeglnie istotnym zagadnieniem rozproszonych systemw jest zapewnienie
spjnoci danych w przypadku wystpienia awarii systemu. Aby to uzyska, stosuje
si metod redundancji sprztowej. Uywa si nadmiarowych elementw systemu lub
odtwarzania programowego, czyli stosuje programy usuwajce skutki uszkodze.
Z punktu widzenia danych, redundancja sprztowa suy do utrzymywania dodatkowej kopii danych na rnych nonikach. Oprcz obsugi zwierciadlanej (ang. disc
mirroring) dyskw stosuje si replikacj danych. Wie si to jednak z uruchomieniem dodatkowego serwera baz danych.
131
132
zwala na skrcenie czasu odpowiedzi poprzez moliwo wykonywania operacji wyszukiwania, aktualizacji i innych jako rwnolegych procesw, osobno dla kadego
fragmentu tabeli.
KLIENT
KLIENT
KLIENT
Tabela
z perspektywy
aplikacji
fragment x
fragment y
Tabela
z perspektywy
serwera
fragment z
fragment x
Dysk 1
fragment z
Dysk 2
fragment y
Fizyczne
rozmieszczenie
tabeli
Dysk 3
W przypadku duych, czsto uywanych tabel mona zmniejszy wspzawodnictwo o dostp do danych rozmieszczajc je w kilku osobnych fragmentach usytuowanych na rnych nonikach danych. Gdy jeden z fragmentw staje si niedostpny, np.
na skutek awarii dysku, uytkownicy mog nadal swobodnie korzysta z danych zawartych w pozostaych, dostpnych fragmentach tabeli. Poprzez fragmentacj tabeli
mona wykona jej kopi zapasow oraz odzyskiwa z niej dane w sposb rwnolegy, skracajc w ten sposb czas realizacji operacji. Mona wyrni fragmentacj
poziom i pionow. Fragmentacja pozioma to podzbir zbioru wierszy tabeli wyselekcjonowanych wedug okrelonych wartoci klucza, odpowiadajca operacji SELECT.
Odtworzenie stanu pierwotnego, sprzed fragmentacji, wykonuje si korzystajc z operacji UNION. Fragmentacja pionowa stanowi podzbir zbioru kolumn tabeli, stanowicy okrelony zbir cech opisywanego obiektu bazy. Powstaje dziki operacji rzutowania PROJECT, a stan pierwotny uzyskuje si poprzez operacj zczania JOIN
kolumn w oparciu o wartoci klucza gwnego.
133
KLIENT
SERWER
nadrzdny
replikacja
SERWER
podrzdny
KLIENT
KLIENT
KLIENT
SERWER
nadrzdny
KLIENT
replikacja
SERWER
podrzdny
KLIENT
134
bywa si tylko w jednym kierunku od serwera nadrzdnego do podrzdnego. Narzuca to pewien wymg, e klienci korzystajcy z serwera podrzdnego mog wykonywa operacje wycznie w trybie odczytu. W przypadku awarii serwera nadrzdnego
nastpuje przeczenie klientw do serwera podrzdnego (rys. 11.3) w sposb automatyczny lub rczny, zalenie od ustawienia pewnych parametrw w pliku konfiguracyjnym.
Korzyci wynikajc z zastosowania replikacji jest, obok zabezpieczenia przed
utrat danych, odcienie czy i serwera nadrzdnego od obsugi klientw z prawem
dostpu wycznie do odczytu. Odcienie czy jest szczeglnie widoczne wtedy, gdy
grupa klientw czy si do serwera z duej odlegoci. Tego typu sytuacje spotyka si
w Internecie. W celu uniknicia czstych, odlegych pocze stosuje si repliki popularnych serwerw (tzw. serwery lustrzane) zlokalizowane po stronie odlegych klientw.
135
11.4.3. Transakcje
W celu zapewnienia spjnoci danych dzielonych i rozproszonych podczas operowania na nich naley stosowa operacje niepodzielne, czyli transakcje. Aby mogy
istnie operacje niepodzielne, serwer musi mie mechanizmy wzajemnego wykluczania. Zwykle s to zamki (ang. mutex) i blokady (ang. lock). Pojawia si zatem problem
synchronizacji i harmonogramowania zamwie klientw. Mog powsta takie sytuacje, w ktrych operacja zapocztkowana przez jednego klienta nie moe by zakoczona do czasu wykonania operacji przez innego klienta. Taka sytuacja niesie ze sob
niebezpieczestwo powstania zakleszcze (ang. deadlock). Mwic o operacjach niepodzielnych w kontekcie systemw baz danych mamy na myli sytuacje, w ktrych
skutek wykonania dowolnej operacji jest niezaleny od operacji wykonywanych
wspbienie. Transakcje mog posiada wasne zbiory transakcji, co pozwala na hierarchizacj wykonywanych operacji. Takie transakcje okrela si jako zagniedone.
Pozwalaj one na dodatkow wspbieno, gdy operacje na tym samym poziomie
zagniedenia mog by wykonywane jednoczenie. Wykonywanie operacji na danych wielodostpnych wymaga zagwarantowania waciwego sterowania wspbienoci. Dopuszcza si wspbienie wykonywane transakcje, pod warunkiem, e skutki ich wykonania bd takie same jak gdyby zostay wykonane po kolei. Takie
transakcje okrela si jako rwnowane szeregowo. Mechanizmy pozwalajce na
osignicie rwnowanoci szeregowej, to: blokowanie, optymistyczne sterowanie
wspbienoci, zastosowanie znacznikw czasu. W razie blokowania na kady
obiekt zostaje zaoona blokada przez pierwsz sigajc do niego transakcj. Dopki
blokada nie zostanie usunita, adna inna transakcja nie ma moliwoci modyfikowania zablokowanych danych. Mechanizm blokowania jest bardzo zoony [16].
Przy optymistycznym sterowaniu wspbienoci zakada si, e transakcje s
rozdzielone, to znaczy nie wystpuj adne konflikty pomidzy nimi. Takie zaoenie
136
jest czsto prawdziwe i znacznie przyspiesza cay proces realizacji zamwie aplikacji
klientw. Gdy jednak dochodzi do konfliktu pomidzy transakcjami, naley zaniecha
ich wykonywania i ponowi prb po pewnym czasie [16].
Mechanizm uycia znacznikw czasu polega na nadawaniu transakcjom etykiet
z niepowtarzalnymi znacznikami. Zawarto etykiet oznacza pozycj transakcji
w cigu czasowym, co pozwala na cakowite uporzdkowanie zamwie pochodzcych od transakcji w kolejnoci zgosze.
Transakcje realizowane na wielu serwerach bazy danych jednoczenie okrelane s
jako transakcje rozproszone. Do ich wykonania potrzebne s wielofazowe protokoy
zatwierdzajce. Jednym z podstawowych zada protokow zatwierdzajcych jest, by
w razie wystpienia bdw podczas realizacji transakcji rozproszonej zagwarantowa
spjno danych. Aby to byo moliwe, protok musi mie odpowiedni mechanizm
obsugi bdw.
137
rekonstrukcji. W celu optymalizacji czasu procesu rekonstrukcji trzeba okresowo reorganizowa plik rejestru. Informacj potrzebn do odtworzenia stanu obiektw danych jest kopia wszystkich zatwierdzonych wersji obiektw danych. W praktyce tworzy si nowy plik rejestru, w ktrym umieszczone s kopie wszystkich zatwierdzonych
obiektw danych oraz informacje o stanach i listy zamiarw transakcji jeszcze nie
zakoczonych. Taka operacja pozwala na znaczne zmniejszenie zapotrzebowania na
pami i w istotny sposb wpywa na skrcenie czasu wykonywania rekonstrukcji
bazy danych.
138
ulegaj samoreprodukcji i powielaniu na kolejne czci systemu rozproszonego. Robak ma moliwoci zdalnego uruchamiania procesw w systemie. Jest on zwykle jednym z narzdzi administratora systemu, ale wykorzystany w niewaciwy sposb
przez nielegalnego uytkownika stanowi doskonae narzdzie ataku. Metoda konia
trojaskiego polega na wprowadzeniu programu-puapki, ktry pozornie wykonuje
poyteczne czynnoci, lecz faktycznie suy nielegalnemu przechwytywaniu informacji.
Wrd mechanizmw obrony przed niepowoanym dostpem wyrnione zostay:
kryptografia, uwierzytelnienie i kontrola dostpu. Zastosowanie kryptografii w celu
szyfrowania danych pozwala na utajnienie poufnych informacji w fizycznych kanaach komunikacji lub przy skadowaniu w pamici trwaej, gdzie s naraone na podsuch czy faszowanie. Kryptografia pozwala rwnie na wspomaganie mechanizmu
uwierzytelnienia, gdy zaszyfrowana informacja wedug okrelonego klucza moe
zosta odszyfrowana tylko przez odbiorc znajcego odpowiedni klucz. Gdy odbiorca
otrzyma informacj, ktrej nie jest w stanie we waciwy sposb odczyta, zachodzi
podejrzenie, e nadawca nie by upowaniony do jej wysyania. Dziki kryptografii
wprowadzono cyfrowe podpisy, ktrymi oznacza si np. obiekty danych. Istnienie
podpisu cyfrowego pozwala okreli, na zasadzie zblionej do sumy kontrolnej, czy
do odbiorcy dociera oryginalna, czy te zmieniona posta informacji. Uwierzytelnienie jest natomiast podstaw metody identyfikacji serwerw i klientw. Kontrola dostpu oznacza udzielenie dostpu do wszelkich zasobw wycznie tym grupom uytkownikw, ktre maj przyznane prawa na okrelonym poziomie hierarchii.
Wikszo mechanizmw zabezpieczenia systemw rozproszonych musi by implementowana na poziomie sprztu lub systemu operacyjnego. Jednake sam serwer baz
danych musi rwnie zapewnia moliwo ograniczenia dostpu do zasobw.
W przypadku IUS na poziomie jzyka SQL mona nadawa i odbiera prawa dostpu
(instrukcje GRANT i REVOKE) do baz danych i pojedynczych tabel. W konfiguracji
serwera okrela si uytkownikw, ktrzy bd mieli dostp do baz danych na danym
serwerze. Dane s przechowywane przez serwer w specjalnie sformatowanym zabezpieczonym obszarze dysku (ang. sbspace), ktry nie jest standardowym systemem
plikw, co ogranicza moliwo niepowoanego odczytania tego obszaru. Dodatkowo
serwer zapewnia metody ledzenia wszystkich akcji uytkownikw, zapisujc kiedy
i przez kogo zostay podjte i na ktrym obiekcie danych. Innym ze sposobw zabezpieczenia jest oprogramowanie separujce system lub jego fragmenty rozgraniczajce
pewne zasoby systemowe jak i sprztowe. Stosuje si zapory ogniowe (ang. firewall)
i serwery poredniczce (ang. proxy server).
Aby skutecznie chroni dane i cay system, naley okreli polityk bezpieczestwa
oraz mechanizmy bezpieczestwa pozwalajce na implementacj przyjtej polityki.
139
KLIENT
PROCESORY WIRTUALNE
CPU1
CPU2
CPU3
CPU4
140
142
143
Na potrzeby prezentacji dokumentw w sieci Internet powsta jzyk programowania HTML (ang. HyperText Markup Language). Dokument HTML jest zwykym plikiem tekstowym, w ktrym znajduj si polecenia HTML. Oznacza to, e w dokumencie jest opisywana struktura a nie wygld, ktry zaley od uywanego przez
klienta programu przetwarzajcego, tzw. przegldarki. Wynika z tego, e dokument
taki mona utworzy za pomoc najprostszego edytora tekstw, rcznie dodajc
znaczniki. Jednak na rynku pojawio si ju wiele specjalizowanych edytorw, ktre
wydatnie uatwiaj konstruowanie dokumentu, wspomagajc wprowadzenie polece.
Internet mia pocztkowo suy udostpnianiu wielu danych w formie cile sprecyzowanej przez standardy HTML. wiat jednak poszed gwatownie do przodu
i uytkownicy tej rozlegej sieci zaczli dodawa coraz to nowsze i bardziej pomysowe rozwizania. Kady waciciel wasnej witryny chce, aby prezentowany przez niego graficzny serwis by atrakcyjny i uyteczny. Gwatownie wzrasta te zapotrzebowanie na wiksz ilo informacji, publikowanych za porednictwem sieci Internet.
Kolejnym wielkim krokiem bya moliwo przedstawienia zawartoci baz danych
bezporednio na stronach www. Nastpia zmiana charakteru, od czysto statycznych
stron do dynamicznie aktualizowanych wiadomociami zawartymi w bazach danych.
Standard HTML nie uleg wielkim przeobraeniom. Modyfikowano go tylko w kierunku wykorzystania skryptw i apletw Javy, ktre wykorzystujc odpowiednie sterowniki do systemu zarzdzania baz danych potrafi wybrane informacje umieci na
witrynach www.
144
fikacji przegldarka wie, jak wczyta interpreter typu danych. Jeeli chcemy wysa
do przegldarki dokument zawierajcy grafiki w formatach JPG i GIF (dwa podstawowe formaty bitowych plikw graficznych), to serwer wysya znaczniki, na podstawie ktrych przegldarka wczytuje i uruchamia odpowiednie interpretery formatu.
Aby wybra odpowiedni serwer www, naley zbada potrzeby i oczekiwania oraz
zapozna si z istniejc struktur informatyczn. Wane jest oszacowanie ruchu,
iloci odwoa, rozmiaru i zakresu orodka udostpniajcego witryny. Poza tym
o wyborze konkretnego rozwizania powinny decydowa osoby konfigurujce i modyfikujce zawarto www i osoby zarzdzajce sieci. Bardzo wan cech serwera
jest poczenie z bazami danych. Jeli ciga si dane z systemw zarzdzania baz
danych, to trzeba bra pod uwag typy pocze serwera www z zewntrzn baz danych. Najbardziej popularn metod jest protok ODBC (ang. Open Database Conectivity), jednak niektre firmy proponuj wasne rozwizania. Na przykad produkt
Web Side Professional zawiera narzdzie do projektowania aplikacji umoliwiajce
zakodowanie komend dostpu do danych na stronach HTML. Gdy taka strona zostanie
wywoana, serwer www wykonuje te komendy, ciga dane i wkleja je na stron.
145
146
147
ASP (ang. Active Serwer Pages) jest to koncepcja budowania dynamicznych stron
www opracowana przez firm Microsoft. Pozwala ona w tekstowych plikach HTML
umieszcza wstawki kodu lub cae programy napisane w Visual Basic Script czy Java
Script. Bardzo uyteczna jest moliwo poszerzania tworzonych dokumentw
o obiekty baz danych i obiekty zapewniajce zapamitanie transakcji klienta. Przygotowana witryna www jest w rzeczywistoci wzorcem strony, w ktrym przed wysaniem do klienta zostan umieszczone odpowiednio sformatowane dane pochodzce
z systemu wsppracujcych baz danych. Rozwizania ASP umoliwiaj szybkie poczenie z baz, bardzo szybkie tworzenie profesjonalnych aplikacji www, zarwno
internetowych jaki intranetowych. Oprcz podstawowych operacji wykonywanych na
bazach, takich jak otwieranie i zamykanie pocze, wykonywanie zada SQL, dostpne s take bardziej zaawansowane mechanizmy. Naley do nich obsuga transakcji na kilku poczeniach z danym klientem lub korzystanie z procedur wbudowanych.
Bardzo duo ciekawych rozwiza przy czeniu aplikacji baz danych ze stronami
www daje moliwo zastosowania jzyka Java. Aplikacja Javy moe dziaa niezalenie od serwera. Nie korzysta ona z API serwera. Uytkownicy, wykorzystujc
przegldark przystosowan do interpretacji Javy lokalnie przetwarzaj aplety zawarte
w dokumentach HTML na serwerze. Aplety s plikami niewielkimi wic ich transfer
nie obcia sieci. Wykorzystujc aplety Javy do podpinania baz danych atwo jest
zauway du elastyczno tego jzyka. Na przykad podczas tworzenia formularza
jaki chcemy wypeni danymi, ktre nastpnie zapisz si do bazy danych na serwerze, wystarczy wykorzysta stworzony do tego celu aplet. Nie ma w tym wypadku
koniecznoci tworzenia dynamicznej strony HTML. Takie napisane przez nas aplety
mog dziaa zarwno po stronie klienta, czyli przegldarki, jak rwnie po stronie
serwera. Do komunikacji z baz danych stosuje si specjalny protok JDBC. W odrnieniu od produktw Microsoft daje on wiksz niezaleno od platformy sprztowej i systemowej. Biblioteka JDBC API jest to zbir klas, ktre umoliwiaj poczenia z bazami danych, wykonuj instrukcje SQL i przetwarzaj wyniki.
Jeszcze jedno rozwizanie to narzdzia wizualne. Jest to grupa gotowych programw, ktre umoliwiaj graficzne zaprojektowanie wygldu stron www, schematw
baz danych, formatw raportw czy formularzy, na podstawie ktrych jest generowany nastpnie odpowiedni kod aplikacji klienta czy serwera. Narzdzia wizualne s
bardzo praktyczne. Ich projektanci zadbali o to, aby kocowy uytkownik nie mia
problemw z rnymi formatami danych oraz z bardziej zoonymi schematami danych, jak na przykad zczenia tabel.
148
SZBD
pliki *.htx
Internet Database
Connector IDC
komunikacja
Serwer www.
Internet Information
Server IIS
oprogramowanie serwera www
Komputer
z przegldark
149
150
krok1
krok2
Serwer
sprzedawcy
klient
krok4
klient
INTERNET
krok7
klient
krok6
klient
Bank realizujcy
patnoci
Krok 5
Bank
zarzdzajcy
karta kredytow
Bank
sprzedawcy
prywatna sie bankowa
151
152
PODSUMOWANIE
W czci IV poruszono dwie istotne sprawy dla dalszego rozwoju baz danych,
a mianowicie problematyk rozproszonych baz danych i moliwoci sieci Internet
w dziedzinie baz danych. Jeeli chodzi o projektowanie baz rozproszonych, to w pewnym stopniu moemy traktowa to jako pewien sposb projektowania bazy na poziomie fizycznym. Pierwszym etapem projektowania jest utworzenie modelu scentralizowanej bazy, a nastpnie podjcie decyzji, jak podzieli i zreplikowa utworzony
schemat logiczny. Problem polega na tym, aby umieci dane blisko miejsca gdzie s
uywane oraz zmniejszy ilo danych przesyanych w sieci. Fragmentacja i replikacja danych jest jednym z najwaniejszych zada strategii rozproszenia [20, 22].
Z rozproszonymi bazami danych cile zwizana jest moliwo wykorzystania sieci
Internet w dziedzinie baz danych. W obu przypadkach powinna istnie moliwo
korzystania z takich uytecznych cech, jak:
moliwo umieszczenia serwera aplikacji na dowolnym systemie w sieci,
moliwo automatycznego, rwnomiernego rozoenia obcienia midzy kilka
serwerw realizujcych usugi tego samego typu,
moliwo dziaania wieloaplikacyjnych serwerw na jednej lub wielu maszynach,
zatajenie prawdziwej lokalizacji serwera,
moliwo wykorzystania niejednorodnych, heterogenicznych baz danych,
prostota dodawania nowych i modyfikacji istniejcych czci systemu.
Architektura tego typu istnieje na rynku od lat. Jest ona realizowana w dwojaki
sposb. Pierwszy sposb to utrzymanie tendencji dotychczas panujcej reprezentowanej przez takie firmy jak Microsoft i Intel. Ich wizja sieci to niezalene stacje robocze
PC wyposaone w twarde dyski, na ktrych rezyduje system. Drugi sposb to koncepcja zastpienia komputerw PC komputerami sieciowymi. Nazywa si je odchudzonymi klientami. Urzdzenia te przechowuj wszystkie dane w swojej pamici RAM,
a podstawowymi wymaganiami jakie musz spenia to zawiera rodowisko wykonawcze Javy, obsugiwa aplikacje niezalene i rezydujce w sieci oraz wykazywa
si niezalenoci od rodzaju sieci. Do grupy tej nale Netscape, Oracle, Sun Microsystem.
153
ZAKOCZENIE
Dziedzina baz danych ulega staym rozszerzeniom w celu obsuenia coraz bardziej i bardziej zoonych obszarw zastosowa. W ten sposb systemy baz danych
zajy znaczce miejsce w konstrukcji systemw informacyjnych. Przykadem s takie
systemy informacyjne jak hipermedia [5] oraz geograficzne systemy informacyjne [8].
Tradycyjne systemy baz danych byy projektowane z myl o przechowywaniu duej
iloci strukturalnych danych. Struktura umoliwiaa specyfikacj formalnych zapyta
i wyszukiwanie informacji. W przypadku systemw hipermedialnych mamy do czynienia z przechowywaniem maych iloci rnych rodzajw mediw poczonych
sieci asocjacyjnych powiza. W zwizku z brakiem wewntrznej struktury ukadanie zapyta w tych systemach jest trudne do zrealizowania. Rwnie geograficzne
systemy informacyjne rni si od tradycyjnych baz danych. Mamy tu do czynienia
z modelowaniem i analiz danych przestrzennych. Do zarzdzania przestrzeni danych nadaje si zarwno opisany w czci II model obiektowy jak i dedukcyjny.
Oglnie uwaa si [1, 22], e nowe kierunki rozwoju baz danych, ktre prawdopodobnie odegraj istotn rol w przyszoci to:
rwnolego, czyli zastosowanie technologii komputerw rwnolegych do zarzdzania bazami danych; metoda ta, stosowana od lat, udowodnia swoj skuteczno
polepszajc wydajno,
inteligencja, czyli sztuczna inteligencja i jej implementacja w kontekcie baz danych; szczeglnie chodzi tu o bazy dedukcyjne,
zoono, czyli problem uycia baz danych w zoonych sytuacjach aplikacyjnych.
154
BIBLIOGRAFIA
[1] Beynon-Davies P., Systemy baz danych, WNT, Warszawa 1998.
[2] Berry B., Chase D., Delson B., Francis J., O Neill P., Sherwood J., Informix Universal Serwer.
Administrations Guide. Published by Informatix Press 1997.
[3] Coulouris G., Dillimore J., Kindberg T., Systemy rozproszone. Podstawy i projektowanie, WNT,
Warszawa 1998.
[4] Daniell B., Leland J., Maneval D., Informix Universal Server. DataBlade API. Programmers Manual. Published by Informix Press 1997.
[5] Darrel R.R., Tampa F.W.M., Hypertext and the Oxford English Dictionary, CACM, July, 1988,
31(7), s. 871879.
[6] Date C., Introduction to Datebase Systems 5th Ed. Addison-Wesley 1990.
[7] Garms J., Windows NT 4.0 Serwer. Kompendium Robomatic, Wrocaw 1997.
[8] Gatrell A.C., Concepts of Space and Geographical Data, 1999.
[9] Halilovic I., Gales Ch., DataBlade Module Development Overview, Published by Informix Press
1997.
[10] Hall C.L., Techniczne podstawy systemw klientserwer, WNT, Warszawa 1996.
[11] Informacje zawarte na witrynach www. 1999/2000.
[12] Kline M., Litzell Ch., Schackell J., Landshoff D., Bostrom K., Nowacki B., Howard D., Blade Manager. Published by Informix Press 1997.
[13] McCarthy D.R., Dayal U., The Architecture of an Active Data Base, Management Systems
Proc.SIGMOD 1989.
[14] Myer B., Object Oriented Software Construction, New York, Prentice-Hall 1997.
[15] Net World: Polityka bezpieczestwa i strategie jej realizacji 2/98,
Serwery handlu elektronicznego 2/98,
Narzdzia realizacji polityki bezpieczestwa 3/1998.
[16] Prace: Jankowski S., Obiektowo-zorientowany system zarzdzania prac przedsibiorstwa, dyplom
pod kierunkiem M. Chaon ICT PWr., Wrocaw 1998.
Bielecki K., Architektura rozproszonych systemw baz danych, dyplom pod kierunkiem M. Chaon
ICT PWr., Wrocaw 1999.
[17] Rose J., Marshall T., The Little Black Book: Mail Bonding with OSI Directory Services. Englewood
Cliffs, NJ, Prentice-Hall 1992.
[18] Rochkind M., Programowanie w systemie Unix dla zaawansowanych, WNT, Warszawa 1993.
[19] Stevens W., Programowanie zastosowa sieciowych w systemie Unix, WNT, Warszawa 1996.
[20] Teorey T.J., Database Modelling and Design: the Fundamental Principles. 2nd Ed. San Mateo, Calif.
Morgan Kaufmann 1994.
[21] The Advanced Network System Architecture (ANSA), Reference Manual, Castle Hill, Cambridge
England, Architecture Project Management, 1989.
[22] Ullman J.D., Widom J., Podstawowy wykad z systemw baz danych, WNT, 2000.
155
Spis rzeczy
Przedmowa ......................................................................................................................................
5
6
8
10
16
16
17
19
24
24
25
25
28
29
31
32
33
33
34
35
39
40
45
51
53
53
54
54
55
55
57
58
58
59
60
60
60
62
64
156
7.5. Podstawowe funkcje systemu zarzdzania dedukcyjn baza danych ....................................
7.6. Realizacja zapyta i ich optymalizacja ..................................................................................
7.7. Uwagi kocowe .....................................................................................................................
Podsumowanie .................................................................................................................................
Bibliografia ......................................................................................................................................
67
67
68
70
71
73
74
75
75
75
80
81
87
89
94
96
96
98
101
104
107
107
108
112
113
113
114
117
119
120
122
123
125
126
127
127
128
130
131
131
134
135
136
137
139
140
157
12. Prezentacja danych w Internecie.................................................................................................
12.1. Uwagi oglne .......................................................................................................................
12.2. Serwery www .......................................................................................................................
12.3. Dane na stronach www .........................................................................................................
12.3.1. Wprowadzenie.........................................................................................................
12.3.2. Metody dynamicznego udostpniania danych w www ............................................
12.3.3. Metody dostpu do baz danych ..............................................................................
12.4. Serwery handlu elektronicznego ..........................................................................................
12.5. Uwagi kocowe....................................................................................................................
Podsumowanie .................................................................................................................................
Zakoczenie .....................................................................................................................................
Bibliografia ......................................................................................................................................
141
141
142
143
143
144
147
148
150
151
152
153