Zagadnienia

2. Algebra relacji

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.

2.1. Relacje

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.

  • RA,B,C

  • 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.

2.2. Operacje

Zestaw operacji jest spory. Obejmuje po pierwsze typowe operacje teoriomnogościowe: sumę zbiorów (), iloczyn zbiorów () i różnicę zbiorów (-). Wymaga się, aby oba argumenty miały ten sam schemat atrybutów. Jeśli nazwy atrybutów różnią się, to należy użyć operacji przemianowania (o czym za chwilę).

Iloczyn kartezjański (R×S) także jest zdefiniowany klasycznie. Ponieważ jednak argumenty mogą mieć atrybuty o tych samych nazwach, nazwy kolumn w schemacie wynikowym trzeba czasem poprzedzać nazwami relacji, z których pochodzą, np. dla relacji RA,B i SB,C schematem ich iloczynu kartezjańskiego będzie R×S(A,R.B,S.B,C), tak jak w poniższym przykładzie

R1 = A B
1 2
3 4
R2 =
B C
5 6
7 8
9 10

R1 × R2 = 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.

2.2.1. Selekcja

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) σwarunekR. Zgodnie z nazwą wybiera ona z relacji tylko te krotki, dla których jest spełniony podany warunek.

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=PapugaZwierzaki jest:

gatunek imię waga
Papuga Kropka 3,50
Papuga Lulu 5,35
Papuga Hipek 3,50

2.2.2. Rzutowanie

Podobna do selekcji jest operacja rzutowania (projekcji) πkolumna1,,kolumnanR: z relacji wybieramy tylko podane kolumny. Zwróćmy uwagę, że mogłoby to prowadzić do utworzenia relacji, w której niektóre wiersze byłyby takie same. Ponieważ jednak relacje są zbiorami, więc takie duplikaty są automatycznie eliminowane, tak jak w poniższym przykładzie dla wyrażenia πgatunek,wagaZwierzaki:

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ć: A+BC

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 πA+BC,A,AA1R będzie

C A A1
3 1 1
7 3 3

Wspominaliśmy wcześniej o operacji przemianowania ρSR: nie powoduje ona żadnych zmian w zawartości relacji, lecz służy jedynie

  • do zmiany nazwy relacji: ρSR

  • lub zmiany nazw jej atrybutów ρRX,Y,ZR,

  • a czasem jednego i drugiego: ρSX,Y,ZXR.

Złączenie RθS: podobne do iloczynu kartezjańskiego, ale łączy się ze sobą tylko pary wierszy spełniające podany warunek

  • RθS=σθR×S

  • θ oznacza dowolny warunek na kolumny łączonych relacji, np. A<C.

  • 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=nazwa Gatunki

    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: RS.

  • Łą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 Gatunki

    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: ρRSA,B,X,C,D,ER×S.

  • Uproszczone notacja: R1A1,B,X,C,D,E:=R×S.

2.3. Wyrażenia

  • 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

πZ1.imie,Z2.imieρZ1ZwierzakiZ1.gatunek=Z2.gatunekZ1.imie<Z2.imieρZ2Zwierzaki

  • 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.

    RS-T=R-TS-T
  • Operator eliminacji powtórzeń δR.

  • Operator grupowania z ewentualną agregacją

    γA,MINBMinBR
  • Zauważmy, że

    γA1,,AnR=σR

    jeśli Ai to wszystkie atrybuty R.

  • Operator sortowania τC,BR.

  • Nie jest to operator algebry relacji ani wielozbiorów, lecz ewentualnej algebry list, dlatego powinien być zewnętrznym operatorem wyrażenia!

  • naturalne: RS

    • jako wypełniaczy brakujących wartości w dołączonych kolumnach używa się ;

  • lewostronne: RLS

    • brane są tylko porzucone krotki z pierwszego argumentu;

  • prawostronne: RRS;

  • 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 Gatunki

    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

2.4. Zastosowania algebry relacji

  • Zapisywanie zapytań (np. modelowanie semantyki)

  • Nakładanie ograniczeń na poprawność bazy danych (więzy). Przykłady:

    RS=(styl równościowy)RS(styl teoriomnogościowy)
  • Integralność referencyjna

    πklucz-zewnętrznyRπkluczSπklucz-zewnętrznyR-πkluczS=
  • Zależności funkcyjne

    AB:σR.A=R1.AR.bR1.BRρR1R=

2.5. Zadania

Ćwiczenie 2.1

Dane są dowolne relacje Rx, Sx, Tx algebry relacji oraz wyrażenia (zapytania)

Q1: RS-T
Q2: R-TS-T

Które z poniższych stwierdzeń są prawdziwe

  1. Q1 i Q2 dają ten sam wynik

  2. Odpowiedź na Q1 może mieć mniej elementów niż odpowiedź na Q2

  3. Q1 i Q2 mogą dać inne wyniki.

Rozwiązanie: 

Pierwsze.

Ćwiczenie 2.2

Dane są relacje R i Q, każda zawierająca n krotek. Relacja RQ ma

  1. co najmniej n krotek

  2. co najwyżej n2 krotek

  3. zawsze 2n krotek

Rozwiązanie: 
  1. nie

  2. tak

  3. nie

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

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.