Bazy danych Algebra relacji Wyk ad dla studentów...

25
Bazy danych Algebra relacji Wyklad dla studentów matematyki Zbigniew Jurkiewicz, Instytut Informatyki UW 3 marca 2018 Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wyklad dla studentów matematyki

Transcript of Bazy danych Algebra relacji Wyk ad dla studentów...

Bazy danychAlgebra relacji

Wykład dla studentów matematyki

Zbigniew Jurkiewicz, Instytut Informatyki UW

3 marca 2018

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Algebra relacji

Model teoretyczny do opisywania semantyki relacyjnychbaz danych, zaproponowany przez T. Codda (twórcekoncepcji relacyjnych baz danych).Algebra, której dziedzine stanowia relacje, tzn. zmiennewystepujace w wyrazeniach reprezentuja relacje.Operatory dobrane tak, aby odpowiadały typowymoperacjom wystepujacym w zapytaniach podczaswyszukiwania informacji z tabel w bazie danych.Miała byc jezykiem zapytan (query language) dlarelacyjnych baz danych.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Relacje

Relacje reprezentowane ich nazwami.Z nazwa kazdej relacji jest zwiazany jej schemat — ciagnazw atrybutów (odpowiadajacych kolumnommodelowanej tabeli), np.

R(A,B,C)Student(indeks, imie, nazwisko)

Nazwy atrybutów w schemacie relacji musza byc rózne.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Podstawowe operacje

Typowe operacje teoriomnogosciowe: suma zbiorów (∪),iloczyn zbiorów (∩) i róznica zbiorów (−), ale

oba argumenty musza miec ten sam schematIloczyn kartezjanski R × S

Poniewaz argumenty moga miec atrybuty o tych samychnazwach, nazwy atrybutów w schemacie wyniku trzebaczasem poprzedzac nazwami relacji, z których pochodzaNp. dla relacji R(A,B,C) i S(C,D,E) schematem ichiloczynu kartezjanskiego bedzie

R × S(A,B,R.C,S.C,D,E)

Lepiej jednak uzyc przemianowania.

Selekcja (wybór) σwarunek (R): wybieramy z relacji tylko tekrotki, dla których jest spełniony podany warunek.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Podstawowe operacje

Rzutowanie (projekcja) πatrybut1,...,atrybutn(R): wybieramytylko wskazane atrybuty z relacjiPrzemianowanie ρS(R): zmiana nazwy relacji lub zmiananazw jej atrybutów ρR(X ,Y ,Z )R, czasem jedno i drugieρS(X ,Y ,ZX)R.Złaczenie R 1

θS: podobne do iloczynu kartezjanskiego,

ale łaczy sie ze soba tylko pary krotek spełniajace podanywarunek.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Selekcja

Relacja Zwierzaki:gatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50Lis Fufu 6,35Krokodyl Czako 75,00σgatunek=′Papuga′Zwierzaki:gatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Rzutowanie

Duplikaty sa eliminowane (bo to relacje!)πgatunek ,wagaZwierzaki:gatunek wagaPapuga 3,50Papuga 5,35Lis 6,35Krokodyl 75,00

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Uogólnione rzutowanie

Oprócz nazw atrybutów sa dozwolone dowolne wyrazeniana atrybutach, np. arytmetyczne.Trzeba je wtedy nazwac:

A + B → CAtrybuty moga wystapic wielokrotnie.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Uogólnione rzutowanie

R = A B1 23 4

πA+B→C,A,A→A1R = C A A13 1 17 3 3

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Iloczyn kartezjanski

R1 = A B1 23 4

R2 = B C5 67 89 10

R1 × R2 = A R1.B R2.B C1 2 5 61 2 7 81 2 9 103 4 5 63 4 7 83 4 9 10

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie theta

R 1θ

S = σθ(R × S)

θ oznacza dowolny warunek na atrybuty łaczonych relacji,np. A < C.Złaczenie theta, w którym warunek jest prosta równosciapary atrybutów, nazywa sie złaczeniem równosciowym.Pojecie porzuconej krotki (dangling tuple): krotki z jednej zrelacji, do której nie pasuje zadna krotka z drugiej relacji.Taka krotka nie pojawi sie w wyniku.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie theta

Zwierzakigatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50Lis Fufu 6,35Krokodyl Czako 75,00

Gatunkinazwa kontynentPapuga AmerykaLis EuropaKrokodyl Afryka

Zwierzaki 1gatunek=nazwa

Gatunki

gatunek imie waga nazwa kontynentPapuga Kropka 3,50 Papuga AmerykaPapuga Lulu 5,35 Papuga AmerykaPapuga Hipek 3,50 Papuga AmerykaLis Fufu 6,35 Lis EuropaKrokodyl Czako 75,00 Krokodyl Afryka

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie naturalne

Notacja: R 1 S.Łaczone relacje musza miec co najmniej jeden wspólnyatrybut o tej samej nazwie (w przeciwnym razie otrzymamyiloczyn kartezjanski).Warunkiem złaczenia jest równosc dla wszystkich paratrybutów o tych samych nazwach.W wyniku pozostaje tylko jeden atrybut z kazdej paryatrybutów o tych samych nazwach.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie naturalne

Zwierzakigatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50Lis Fufu 6,35Krokodyl Czako 75,00

Gatunkigatunek kontynentPapuga AmerykaLis EuropaKrokodyl Afryka

Zwierzaki 1 Gatunkigatunek imie waga kontynentPapuga Kropka 3,50 AmerykaPapuga Lulu 5,35 AmerykaPapuga Hipek 3,50 AmerykaLis Fufu 6,35 EuropaKrokodyl Czako 75,00 Afryka

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie naturalne

Ciekawostka: złaczenia naturalnego mozna uzyc, zeby usunacwiersze zawierajace wartosci puste (NULL, ⊥). Wystarczyzrobic

A 1 A.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Przemianowanie

Pozwala na nazywanie relacji wynikowych:ρRS(A,B,X ,C,D,E)(R × S).Uproszczona notacja: R1(A1,B,X ,C,D,E) := (R × S).

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Wyrazenia złozone

Poniewaz jest to algebra, wiec operacje mozna składacotrzymujac wyrazenia złozone.Równowaznosc wyrazen mozna wykorzystac przyoptymalizacji, zastepujac dane wyrazenie równowaznymmu, lecz bardziej efektywnym.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Wyrazenia złozone: samozłaczenie

Zwierzakigatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50Lis Fufu 6,35Krokodyl Czako 75,00

Znajdz pary zwierzaków (imiona) tego samego gatunku

πZ1.imie,Z2.imie(ρZ1Zwierzaki 1Z1.gatunek=Z2.gatunek∧

Z1.imie<Z2.imie

ρZ2Zwierzaki)

(drugi warunek pozwala uniknac „duplikatów”).

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Wielozbiory

Zgodnie z matematyczna definicja relacji jako zbioru walgebrze relacji utozsamia sie jednakowe krotki(powstajace np. podczas rzutowania).Mozna rozszerzyc te algebre na wielozbiory, dopuszczajacpowtórzenia.Powstaje jednak problem odpowiedniej semantyki dlaoperacji iloczynu i róznicy teoriomnogosciowej.Intuicyjnie zdefiniowane rozszerzenia operacji nawielozbiory zastosowane do relacji daja relacje z wyjatkiemsumy, która dla dwóch relacji moze dac wielozbiór.Przestaja zachodzic niektóre prawa algebry relacji, np.

(R ∪ S)− T = (R − T ) ∪ (S − T )

Operator eliminacji powtórzen δ(R) dla multizbiorów.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Grupowanie

Aby móc modelowac proste zapytania statystycznewprowadzimy operator grupowania z opcjonalnymobliczeniem funkcji agregujacej

γA,MIN(B)→MinB(R)

Zauwazmy, zeγA1,...,An(R) = δ(R)

jesli Ai to wszystkie atrybuty R.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Sortowanie

Operator sortowania τC,B(R).Nie jest to operator algebry relacji ani wielozbiorów, leczewentualnej algebry list, dlatego powinien byczewnetrznym operatorem wyrazenia!

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenia zewnetrzne

Umozliwiaja zachowanie zawieszonych krotek w wynikuUzywa sie specjalnej wartosci ⊥ do wskazaniabrakujacych wartosci z drugiego argumentu złaczenia

Pełne: R◦1 S

Lewostronne: R◦1L S

Brane sa tylko porzucone krotki z pierwszego argumentu;

Prawostronne: R◦1R S;

Oczywiscie zamiast złaczenia naturalnego mozna uzyczłaczenia theta (z warunkiem u dołu).

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie zewnetrzne

Zwierzakigatunek imie wagaPapuga Kropka 3,50Papuga Lulu 5,35Papuga Hipek 3,50Lis Fufu 6,35Krokodyl Czako 75,00

Gatunkigatunek kontynentPapuga AmerykaLis EuropaKrokodyl AfrykaKrowa Europa

Zwierzaki 1 Gatunkigatunek imie waga kontynentPapuga Kropka 3,50 AmerykaPapuga Lulu 5,35 AmerykaPapuga Hipek 3,50 AmerykaLis Fufu 6,35 EuropaKrokodyl Czako 75,00 AfrykaKrowa ⊥ ⊥ Europa

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Złaczenie zewnetrzne

Inny przykład. Schemat fikcyjnego hotelu obejmuje relacjePokoje(numer,lozka,lazienka,cena)Rezerwacje(id,pokoj,pesel,odkiedy,dokiedy,zaplacono)

Pokoje bez rezerwacji mozna znalezc zapytaniem

πnumer Pokoje − πpokojRezerwacje

ale dla wiekszej zabawy uzyjemy

σpokoj=⊥(Rooms◦1

numer=pokojRezerwacje)

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki

Zastosowania algebry relacji

Zapisywanie zapytan (np. modelowanie semantyki)Nakładanie ograniczen na poprawnosc bazy danych(wiezy). Przykłady:

R ∩ S = ∅ (styl równosciowy)R ∩ S ⊆ ∅ (styl teoriomnogosciowy)

Modelowanie integralnosci referencyjnej

πklucz-obcy (R) ⊆ πklucz(S)

πklucz-obcy (R)− πklucz(S) = ∅

Inny zapis zaleznosci funkcyjnych

A→ B : σR.A=R1.A∧R.b 6=R1.B(R × ρR1(R)) = ∅

Postac posrednia do kompilacji zapytan na operacje bazydanych.

Zbigniew Jurkiewicz, Instytut Informatyki UW Bazy danych Algebra relacji Wykład dla studentów matematyki