4 DZIAŁANIA W MODELU RELACYJNYM
łach zapisuje się na przykład, że jeśli w pewnej relacji występuje jakaś określona kombinacja krotek, to można wnioskować, że w innej określonej relacji na pewno występuje pewna określona krotka.
W Datalogu relacje zapisuje się w postaci symboli zwanych predykatami. Każdemu predykatowi przypisuje się charakterystyczną dla niego liczbę argumentów. a zapis, w którym występuje nazwa predykatu oraz jego argumenty, nazywa się atomem. Syntaktyka atomu jest taka jak syntaktyka wywołania funkcji w konwencjonalnych językach programowania, na przykład P(x\i X2, v„) oznacza atom złożony / predykatu /’ oraz jego argumentów
Mówiąc krótko: predykat jest nazwą funkcji logicznej. Jeśli w relacji R jest n atrybutów i został ustalony ich porządek, to nazwy R można używać również do oznaczenia predykatu odpowiadającego tej relacji. Wówczas atom <J2,.... (i„) przyjmuje wartość PRAWDA, jeśli (fl|, a2,..., a„) jest krotką, która należy do R, w przeciwnym przypadku wartością tego atomu jest FAł.SZ.
PRZYKŁAD 4.14
Niech będzie dana następująca relacja R z rys. 4-3.
W ówczas /?(1,2) ma wartość PRAWDA, taką samą wartość ma R(3, 4). Natomiast dla wszystkich innych wartości par (x,y), R(.t. y) ma wartość FAŁSZ.
□
Argumentami predykatu mogą być zarówno stałe, jak i zmienne. Jeśli argumentami predykatu są zmienne, to wartość takiej funkcji logicznej jest wyliczana dla kombinacji wartości wszystkich tych zmiennych.
PRZYKŁAD 4.15
Jeśli R jest predykatem z przykładu 4.14. to funkcja R(x. y) przyjmuje wartość, która określa, czy dla danych wartości .r oraz y krotka R(x, y) należy do relacji R. W konkretnej instancji relacji R z przykładu 4.14 wartością relacji R jest PRAWDA wówczas, gdy:
1. x- 1 iy = 2 lub
2. ,v * 3 i y = 4 a we wszystkich pozostały ch przypadkach wartością tej funkcji jest FAŁSZ. Natomiast atom postaci /?(1. z) zwraca wartość PRAWDA, jeśli r = 2, a dla wszystkich innych wartości zmiennej z przyjmuje wartość FAŁSZ.
□
W Datalogu występuje jeszcze inny ważny rodzaj atomów, są to atomy arytmetyczne. W takich atomach występuje porównanie dwóch wyrażeń arytmetycznych, na przykład: x < y lub x + I > y + 4 x Dla odróżnienia dwóch rodzajów atomów te, które omawialiśmy poprzednio, będziemy nazywać atomami relacyjnymi, niemniej oba wymienione rodzaje są atomami.
Zauważmy, ż.e wszystkie atomy zarówno arytmetyczne, jak i relacyjne, podstaw iają wartości zmiennych w miejsce argumentów i zwracają w wyniku pewną wartość logiczną. A zatem porównanie arytmetyczne, takie jak „<’* lub daje taki wynik jak relacja, która zawiera wszystkie pary spełniające daną zależność arytmetyczną. Stąd też relację „<” można przedstawiać jako taką, która zawiera wszystkie te krotki, w których pierwsza składowa jest mniejsza od drugiej, np. (1, 2) lub (-1.5, 65.4). Pamiętajmy jednak, żc w bazach danych relacje są zawsze skończone, a poza tym zazwyczaj od czasu do czasu zmieniają się. Natomiast relacje arytmetyczne porównywania argumentów są zarówno nieskończone, jak i niezmienne.
Operacje w Datalogu. których wynik jest laki sam jak wynik odpowiedniej operacji w algebrze relacji, są przedstawiane w postaci reguł. Reguły składają się z:
ł. atomu relacji, który nazywa się nagłówkiem, a po którym występuje
2. symbol , który często czytamy jako .jeżeli”, a po którym z kolei występuje
3. treść, złożona z jednego lub większej liczby atomów, które nazywa się podzadaniumi. Podzndania mogą być zarówno atomami arytmetycznymi, jak i relacyjnymi. Podzadania łączy spójnik logiczny AND (I), a każde z podzadań można poprzedzić symbolem negacji
PRZYKŁAD 4.16 Reguły / Datalogu
DługiFilm(t, y) «— y, 1, c, s, p) AND 1 > 100