Algebra relacji jest modelem teoretycznym do opisywania semantyki relacyjnych baz danych, zaproponowanym przez T. Codda, twórcę koncepcji relacyjnych baz danych. Jest to algebra, w której dziedzinę stanowią relacje. Zmienne występujące w wyrażeniach tej algebry odpowiadają pojedynczym relacjom.
Operatory algebry relacji zostały dobrane tak, aby odpowiadały typowym operacjom występującym w zapytaniach podczas wyszukiwania informacji z tabel w bazie danych.
Tak określona algebra miała być językiem zapytań (query language) dla relacyjnych baz danych.
Relacje w algebrze relacji reprezentujemy ich nazwami. Z nazwą każdej relacji jest związany jej schemat — ciąg nazw atrybutów (odpowiadających kolumnom modelowanej tabeli), np.
Student(indeks,imię,nazwisko)
Nazwy atrybutów w schemacie relacji muszą być różne, dlatego w literaturze schemat jest czasem definiowany jako zbiór nazw atrybutów, a nie ciąg.
Ponieważ relacje miały być abstrakcyjnym modelem tabel, ich elementy nazywa się często krotkami — odpowiadają one wierszom tabel z bazy danych.
Zestaw operacji jest spory. Obejmuje po pierwsze typowe operacje
teoriomnogościowe: sumę zbiorów (
Iloczyn kartezjański (
R2 =
R1 =
A
B
1
2
3
4
B
C
5
6
7
8
9
10
R1
A
R1.B
R2.B
C
1
2
5
6
1
2
7
8
1
2
9
10
3
4
5
6
3
4
7
8
3
4
9
10
Lepiej jednak w takiej sytuacji użyć przemianowania.
Oprócz operacji teoriomnogościowych w algebrze relacji określono kilka
operacji (a właściwie rodzin operacji) specyficznych dla niej. Pierwsza
z nich to selekcja (wybór)
Przypuśćmy, że w mamy relację Zwierzaki o następującej postaci:
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Lis | Fufu | 6,35 |
Krokodyl | Czako | 75,00 |
Wartością wyrażenia
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Podobna do selekcji jest operacja rzutowania (projekcji)
gatunek | waga |
---|---|
Papuga | 3,50 |
Papuga | 5,35 |
Lis | 6,35 |
Krokodyl | 75,00 |
Ze względów praktycznych warto zdefiniować uogólnione rzutowanie,
w którym oprócz nazw kolumn dozwolone są dowolne wyrażenia oparte na
kolumnach, np. arytmetyczne. Trzeba je tylko wtedy nazwać:
Ponadto dopuszcza się, aby pewne kolumny wystąpiły wielokrotnie, wymagane jest jednak przemianowanie jak powyżej.
A oto przykład: dane jest relacja R
R =
A
B
1
2
3
4
Wartością wyrażenia
C
A
A1
3
1
1
7
3
3
Wspominaliśmy wcześniej o operacji przemianowania
do zmiany nazwy relacji:
lub zmiany nazw jej atrybutów
a czasem jednego i drugiego:
Złączenie
Złączenie theta, w którym warunek jest prostą równością pary atrybutów, nazywa się złączeniem równościowym.
Pojęcie porzuconej krotki (dangling tuple): wiersza z jednej z relacji, do którego nie pasuje żaden wiersz z drugiej relacji.
Zwierzaki | ||
---|---|---|
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Lis | Fufu | 6,35 |
Krokodyl | Czako | 75,00 |
Gatunki | |
---|---|
nazwa | kontynent |
Papuga | Ameryka |
Lis | Europa |
Krokodyl | Afryka |
Zwierzaki
gatunek | imię | waga | nazwa | kontynent |
Papuga | Kropka | 3,50 | Papuga | Ameryka |
Papuga | Lulu | 5,35 | Papuga | Ameryka |
Papuga | Hipek | 3,50 | Papuga | Ameryka |
Lis | Fufu | 6,35 | Lis | Europa |
Krokodyl | Czako | 75,00 | Krokodyl | Afryka |
Notacja:
Łączone relacje muszą mieć co najmniej jedną wspólną kolumnę o tej samej nazwie.
Warunkiem złączenia jest równość dla wszystkich par atrybutów o tych samych nazwach.
W wyniku zostaje tylko jedna kolumna z pary kolumn o tych samych nazwach.
Zwierzaki | ||
---|---|---|
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Lis | Fufu | 6,35 |
Krokodyl | Czako | 75,00 |
Gatunki | |
---|---|
gatunek | kontynent |
Papuga | Ameryka |
Lis | Europa |
Krokodyl | Afryka |
Zwierzaki
gatunek | imię | waga | kontynent |
Papuga | Kropka | 3,50 | Ameryka |
Papuga | Lulu | 5,35 | Ameryka |
Papuga | Hipek | 3,50 | Ameryka |
Lis | Fufu | 6,35 | Europa |
Krokodyl | Czako | 75,00 | Afryka |
Pozwala na nazywanie relacji wynikowych:
Uproszczone notacja:
Ponieważ jest to algebra, więc operacje można składać otrzymując wyrażenia złożone.
Równoważność wyrażeń można wykorzystać przy optymalizacji, zastępując dane wyrażenie równoważnym mu, lecz bardziej efektywnym.
Zwierzaki | ||
---|---|---|
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Lis | Fufu | 6,35 |
Krokodyl | Czako | 75,00 |
Znajdź pary zwierzaków (imiona) tego samego gatunku
Zgodnie z matematyczną definicją relacji jako zbioru utożsamia się jednakowe krotki (powstające np. podczas rzutowania).
Można rozszerzyć tę algebrę na wielozbiory, dopuszczając powtórzenia.
Powstaje jednak problem odpowiedniej semantyki dla operacji iloczynu i różnicy teoriomnogościowej.
Intuicyjnie zdefiniowane rozszerzenia operacji na wielozbiory zastosowane do relacji dają relacje z wyjątkiem sumy, która dla dwóch relacji może dać wielozbiór.
Przestają zachodzić niektóre prawa algebry relacji, np.
Operator eliminacji powtórzeń
Operator grupowania z ewentualną agregacją
Zauważmy, że
jeśli
Operator sortowania
Nie jest to operator algebry relacji ani wielozbiorów, lecz ewentualnej algebry list, dlatego powinien być zewnętrznym operatorem wyrażenia!
naturalne:
jako wypełniaczy brakujących
wartości w dołączonych kolumnach używa się
lewostronne:
brane są tylko porzucone krotki z pierwszego argumentu;
prawostronne:
wersje theta powyższych (z warunkiem u dołu).
Zwierzaki | ||
---|---|---|
gatunek | imię | waga |
Papuga | Kropka | 3,50 |
Papuga | Lulu | 5,35 |
Papuga | Hipek | 3,50 |
Lis | Fufu | 6,35 |
Krokodyl | Czako | 75,00 |
Gatunki | |
---|---|
gatunek | kontynent |
Papuga | Ameryka |
Lis | Europa |
Krokodyl | Afryka |
Krowa | Europa |
Zwierzaki
gatunek | imię | waga | kontynent |
Papuga | Kropka | 3,50 | Ameryka |
Papuga | Lulu | 5,35 | Ameryka |
Papuga | Hipek | 3,50 | Ameryka |
Lis | Fufu | 6,35 | Europa |
Krokodyl | Czako | 75,00 | Afryka |
Krowa | Europa |
Zapisywanie zapytań (np. modelowanie semantyki)
Nakładanie ograniczeń na poprawność bazy danych (więzy). Przykłady:
Integralność referencyjna
Zależności funkcyjne
Dane są dowolne relacje
Które z poniższych stwierdzeń są prawdziwe
Odpowiedź na
Pierwsze.
Dane są relacje
co najmniej
co najwyżej
zawsze
nie
tak
nie
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.