bazy danych 2.relacyjny model baz danych algebra relacji p. f. góra

53
Bazy danych 2.Relacyjny model baz danych Algebra relacji P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08

Upload: lamar-tate

Post on 02-Jan-2016

48 views

Category:

Documents


0 download

DESCRIPTION

Bazy danych 2.Relacyjny model baz danych Algebra relacji P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2007/08. Relacyjne systemy baz danych. …zdominowały rynek. Systemy nierelacyjne mają status eksperymentalny, lub stosowane są w bardzo specjalistycznych kontekstach. - PowerPoint PPT Presentation

TRANSCRIPT

Bazy danych

2.Relacyjny model baz danych

Algebra relacjiP. F. Góra

http://th-www.if.uj.edu.pl/zfs/gora/

semestr letni 2007/08

Bazy danych - wykład 2 2

Relacyjne systemy baz danych

…zdominowały rynek. Systemy nierelacyjne mają status eksperymentalny, lub stosowane są w

bardzo specjalistycznych kontekstach.

Dlatego zdecydowana większość tego, o czym będziemy mówić, dotyczyć będzie systemów

relacyjnych.

Bazy danych - wykład 2 3

Tylko jeden sposób reprezentowania danych:

dwuwymiarowa tabela

(Ullman i Widom nazywają ją „relacją”)

TOsoba

ImięNazwisko DataUr Płeć

Ignacy Janowski 17.03.1936 M

Karol Janowski 23.11.1957 M

Ludwik Janowski 03.02.1983 M

Patrycja Janowska 07.01.2005 K

… … …

Nazwa tabeli

Nazwy kolumn

(atrybuty)

Krotka

Składowa krotki

Bazy danych - wykład 2 4

Intuicja, jaką niesie słowo „tabela”, może być myląca:

W modelu relacyjnym „tabela” nie jest listą, ale zbiorem

•W jednej tabeli nie mogą wystąpić dwie takie same krotki

•Kolejność, w jakiej występują krotki, nie ma znaczenia

Tyle teoria.

W praktyce różnie to bywa, RDBMS niekiedy dopuszcza powtarzające się

krotki. Wówczas tabela nie jest zbiorem, ale wielozbiorem.

Bazy danych - wykład 2 5

Trochę terminologii:Więzy

• Klucze

• Więzy jednoznaczności

• Więzy integralności referencyjnej

• Więzy domenowe (zakresu)

• Więzy ogólne

Bazy danych - wykład 2 6

KluczeKlucz — atrybut lub zbiór atrybutów, który

jednoznacznie definiuje krotkę w tabeli lub encję wewnątrz zbioru encji.

W danej tabeli nie występują dwie krotki, które miałyby identyczne wartości wszystkich

atrybutów tworzących klucz.

A jeśli występują i są różne, to znaczy, że „klucz” nie jest kluczem.

Uwaga: abstrakcyjny obiekt w pamięci komputera nie musi mieć klucza, bo jest jednoznacznie identyfikowany przez adres

przydzielonego mu obszaru pamięci.

Nie jest to ścisła definicja klucza —

definicję ścisłą poznamy w przyszłości.

Bazy danych - wykład 2 7

Gdybyśmy próbowali utworzyć w

jednej klasie dwa różne obiekty o

takich samych kluczach, DBMS

powinien to uniemożliwić.

Bazy danych - wykład 2 8

Właściwy dobór kluczy jest trudny, bo muszą one dobrze odpowiadać

rzeczywistości

Osoba: Imię i Nazwisko?

Nie wystarczy.

Osoba: Imię, Drugie Imię i Nazwisko?

Nie wystarczy.

Osoba: Imię, Drugie Imię, Nazwisko i Data Urodzenia?

W bazie reprezentującej odpowiedno duży zbiór ludzi nie wystarczy.

Czasami wprowadza się nowe pole tylko po to, aby mogło służyć jako indeks

Studenci:

Numer Indeksu

„Rządowa” baza danych:

PESEL

Ściśle rzecz biorąc, PESEL nie służy tylko

jako indeks, ale to jest zupełnie inna historia…

Bazy danych - wykład 2 9

Inny przykład — faktury

Firma ma bazę gromadzącą dane o wystawianych fakturach. Co będzie kluczem?

•Numer Faktury.

•Jeśli numeracja zaczyna się od początku w każdym roku, Numer Faktury i Rok.

•Jeśli poszczególne działy stosują własną numerację faktur, Numer Faktury i Nazwa Działu lub

Numer Faktury, Nazwa Działu i Rok.

Jak widać, właściwy dobór klucza zależy od rzeczywistości, którą chcemy przedstawić w bazie

danych.

Bazy danych - wykład 2 10

Ważna uwaga:

Przypuśćmy, że mamy „rządową” bazę danych osobowych, w której kluczem jest

atrybut PESEL.

Wówczas zbiór atrybutów {PESEL, Nazwisko} także jest kluczem!

Bazy danych - wykład 2 11

Podobnie, jeśli tworzymy bazę danych szkół podstawowych, zbiór atrybutów {Ulica, NrDomu, NrSzkoły} będzie kluczem. Załóżmy, że tak jest. Jeśli rozszerzymy ten zbiór do {Miasto, Ulica, NrDomu, NrSzkoły}, także otrzymamy klucz. Podobnie będzie jeśli dodamy informację o województwie.

W rzeczywistości trzebaby to sprawdzić…

Bazy danych - wykład 2 12

Klucze minimalne. Nadklucze.W poprzednim przykładzie może się zdarzyć, że w dwu różnych miastach będą istnieć ulice Kościuszki i w dodatku na każdej z tych ulic pod numerem 1 będzie mieścić się szkoła podstawowa.

Podobnie w dwu miastach na ulicy Dąbrowskiego (ale w budynkach o różnych numerach!) mogą się mieścić szkoły podstawowe o numerze 16.

Wreszcie może się zdarzyć, że szkoły o numerze 53 (w różnych miastach) będą się mieścić w budynku o numerze 8 (przy ulicach o różnych nazwach).

Zbiór {Ulica, NrDomu, NrSzkoły} nazywamy w tej sytuacji kluczem minimalnym. Jego nadzbiór

nazywamy nadkluczem.W innej terminologii

„klucz minimalny” zwany jest po prostu „kluczem”

Bazy danych - wykład 2 13

Dygresja: Zbiory słabych encjiJeśli niektóre (lub wszystkie) elementy klucza pewnego zbioru

encji wybiera się spośród atrybutów innego zbioru encji, zbiór o tak utworzonym kluczu nazywa się zbiorem słabych

encji. Typowo

1. Przy strukturze hierarchicznej nazwa (czy inny atrybut) obiektu może identyfikować go w podhierarchii, ale nie w całej hierarchii. Na przykład Numer Szkoły identyfikuje szkołę w mieście, ale nie w województwie. Zbiór encji szkoły będzie musiał brać część swojego klucza z innego zbioru encji (miasta), więc będzie to słaba encja.

2. Zbiór łączący, powstały w celu wyeliminowania relacji wieloargumentowych, prawie zawsze będzie słaby.

Bazy danych - wykład 2 14

Reprezentacja graficzna zbiorów słabych encji

Szkoły

numer

Leży w mieście

Miasto

…nazwa

Klucz zbioru Szkoły

Liczne inne atrybuty Miasta

Zbiór słabych encji i związki łączące go z „dostarczycielami”

(części) klucza oznaczam podwójną

linią.

Bazy danych - wykład 2 15

Dane a metadaneTabela (realcja) to obiekt abstrakcyjny. Ma swoje

atrybuty i więzy. Zbiór wszystkich takich „projektów” tabel nazywa się schematem bazy

danych. Schemat wraz z informacjami o użytkownikach i ich uprawnieniach stanowi

metadane („dane o danych”). Schemat tabeli w zasadzie — w czasie normalnego użytkowania —

nie zmienia się w czasie.

Zbiór wszystkich krotek danej tabeli („zawartość tabeli”) może się zmieniać w czasie. Zbiór taki nazywa się instancją tabeli (relacji). Instancję istniejącą teraz nazywa się instancją bieżącą.

Bazy danych - wykład 2 16

Więzy jednoznaczności

A R B

Istnieje co najwyżej jeden obiekt z klasy B, który wchodzi w relację R z pewnym

obiektem klasy A.

Ten obiekt z klasy B nie musi istnieć, może być obiektem pustym. Innymi

słowy, nie wszystkie obiekty z A muszą wchodzić w związek R.

Bazy danych - wykład 2 17

Więzy integralności referencyjnej

A R B

Istnieje dokładnie jeden obiekt z klasy B, który wchodzi w relację R z pewnym

obiektem klasy A.

Ten obiekt z klasy B musi istnieć, nie może być obiektem pustym. Innymi słowy, wszystkie obiekty z A muszą wchodzić w związek R z obiektami B.

W książce oznaczają to przez półokrąg.

Na przykład każda informacja o dostawie towarów do magazynu musi być powiązana z

dostawcą

Bazy danych - wykład 2 18

Więzy integralności referencyjnej wymuszają istnienie wskazywanego obiektu. Jeślibyśmy więc zażądali

usunięcia obiektu związanego więzami integralności referencyjnej, DBMS

1. Uniemożliwi usunięcie takiego obiektu lub

2. Usunie także wszystkie obiekty, które na obiekt usuwany wskazują. Jeśli one też są związane więzami integralności referencyjnej, usunięte zostaną obiekty, które na nie wskazują. I tak dalej.

Usuwanie kaskadowe.

Bardzo niebezpieczne — nie każdego stać na zatrudnienie stu osób do wklepywania

utraconych danych.

Bazy danych - wykład 2 19

Inne rodzaje więzów

1. Więzy domenowe (zakresu) — atrybut może przyjąć wartości tylko z pewnego zakresu.

2. Więzy ogólne — na przykład ograniczenie stopnia związku, to jest ilości „partnerów” w relacji.

Filmy GwiazdyGwiazdy-w10

Nie więcej niż 10 gwiazd w jednym

filmie

Bazy danych - wykład 2 20

Dwanaście zasad Codda dla RDBMS

1. Informacje są reprezentowane logicznie w tabelach.

2. Dane są logicznie dostępne przez podanie nazwy tabeli, wartości klucza podstawowego i nazwy kolumny.

3. Wartości null są traktowane w jednolity sposób jako „brakujące informacje”. Nie mogą być traktowane jako puste łańcuchy czy zera.

Bazy danych - wykład 2 21

Dwanaście zasad Codda dla RDBMS (cd)

4. Metadane są umieszczone w bazie danych tak, jak zwykłe dane.

5. Język obsługi danych ma możliwość definiowania danych i perspektyw, więzów integralności, przeprowadzania autoryzacji, obsługi transakcji i manipulacji danymi.

6. Perspektywy reagują na zmiany swoich tabel bazowych. Zmiana w perspektywie powoduje zmianę w tabeli bazowej.

Bazy danych - wykład 2 22

Dwanaście zasad Codda dla RDBMS (cd)

7. Istnieją pojedyncze operacje pozwalające na wyszukanie, wstawienie, uaktualnienie i usunięcie danych.

8. Operacje użytkownika są logicznie oddzielone od fizycznych danych i metod dostępu.

9. Operacje użytkownika pozwalają na zmianę schematu bazy danych bez konieczności tworzenia bazy od nowa.

W praktyce w systemach komercyjnych robi się to bardzo rzadko. Z całą pewnością nie jest to operacja, jaką rutynowo przeprowadza zwykły

użytkownik!

Bazy danych - wykład 2 23

Dwanaście zasad Codda dla RDBMS (cd)

10.Więzy integralności są umieszczone w metadanych, nie w zewnętrznej aplikacji.

11. Język manipulacji danymi powinien działać bez względu na to jak i gdzie są rozmieszczone fizyczne dane oraz nie powinien wymagać zmian, gdy fizyczne dane są centralizowane lub rozpraszane.

Bazy danych - wykład 2 24

Dwanaście zasad Codda dla RDBMS (cd)

12.Operacje na pojedynczych rekordach przeprowadzane w systemie podlegają tym samym zasadom i więzom, co operacje na zbiorach danych.

Różnica wobec programowania proceduralnego, gdzie zawsze

trzeba powiedzieć jak manipulować danymi.

Bazy danych - wykład 2 25

Dziesiąta zasada CoddaWięzy integralności są umieszczone w

metadanych, nie w zewnętrznej aplikacji.

Bardzo ważna zasada!

Jeśli modelowany fragment rzeczywistości zawiera jakieś ograniczenia, powinny one

się znaleźć w samym projekcie bazy danych, nie w aplikacji obsługującej tę

bazę.

Bazy danych - wykład 2 26

Dlaczego ograniczenia umieszczamy w metadanych, nie w aplikacji?

•Bo osoba pisząca aplikację może nie wiedzieć o tych ograniczeniach, może nie uznać je za istotne i może nie umieścić ich w swoim projekcie.

•Bo osoba pisząca kolejną aplikację może nie umieścić ich w swoim projekcie (z powodów jak wyżej).

•Bo doświadczenie uczy, że jeśli ograniczenia nie są wbudowane w projekt bazy, prędzej czy później zdarzy się jakieś nieszczęście…

Bazy danych - wykład 2 27

Przykład

Dobrze zaprojektowana baza danych studentów i grup ćwiczeniowych musi mieć wbudowane ograniczenie stanowiące, że do jednej grupy

mającej zajęcia w pracowni komputerowej A, nie można zapisać więcej niż 21 studentów.

Ostatnio na zajęcia zgłosiło się 40 osób, wszystkie legalnie wpisane w systemie USOS

Bazy danych - wykład 2 28

Jak realizujemy więzy?

Zgodnie z pierwotną ideą Codda, więzy powinny być zawarte w samej strukturze tabel — metadane same w sobie stanowią część dokumentacji projektu bazodanowego.

Niekiedy robi się też tak: Baza danych nie udostępnia swoich tabel zewnętrznym aplikacjom bezpośrednio, a jedynie za

pomocą procedur składowanych.

Złożone zapytania warto jest umieszczać w samej bazie danych, na przykład w postaci perspektyw.

Bazy danych - wykład 2 29

Zasady projektowania

• Dokładność — projekt powinien odpowiadać specyfikacji, tabele lub zbiory encji powinny odzwierciedlać świat rzeczywisty.

• Unikanie redundancji — bo zajmuje się zbyt wiele miejsca i ryzykuje się, że nie wszystkie wystąpienia danej informacji będą uaktualnione.

• Prostota — tylko tyle elementów, ile naprawdę potrzeba.

• Dobór właściwych elementów — nie wszystko modelujemy jako atrybuty!

Bazy danych - wykład 2 30

Projekt ma odpowiadać rzeczywistości, nie widzimisię lub

(na ogół błędnej) intuicji projektanta

Projektowanie bazy danych to PRACA, za którą twórca

powinien być odpowiednio wynagradzany

Projekt musi być zatwierdzony przed realizacją

Zmiana projektu w takcie realizacji jest bardzo bolesna;

powinno się jej dokonywać tylko wtedy, gdy jest ona

naprawdę konieczna

Bazy danych - wykład 2 31

Relacyjne języki zapytań(Relational Query Languages)

• Pozwalają na manipulacje danymi i pobieranie danych z bazy

• Mają mocne podstawy teoretyczne (algebra relacji!)

• Pozwalają na znaczną optymalizację• Nie są zwykłymi językami programowania,

przeznaczonymi do skomplikowanych obliczeń• Pozwalają użytkownikom zdefiniować co chcą

osiągnąć, nie zaś jak to trzeba obliczyć (Non-operational, declarative)

Choć w w praktyce na ogół zawierają pokaźny zestaw „niebazodanowych”

funkcji

Bazy danych - wykład 2 32

• Zrozumienie algebry relacji jest konieczne dla zrozumienia i prawidłowego posługiwania się SQL

• Zapytania odnoszą się do wystąpień (instancji) tabel. Wynikiem zapytań też są wystąpienia (instancje) tabel.– Schematy tabel wejściowych zapytania są

ustalone.– Schematy tabel wyjściowych zapytania są

określone przez definicje języka zapytań.• Zapytanie odnosi się do konkretnego

wystąpienia tabeli (lub tabel) o ustalonym schemacie.

Bazy danych - wykład 2 33

Przykładowe wsytąpienia tabel w

pewnej bazie

Sid Imię Rating Wiek

22 Daniel 7 45

31 Leon 8 55

58 Rysiek 10 35

Sid Bid Dzień

22 101 10.07.2008

58 103 11.08.2008

Rezerwacje R1

Sid Imię Rating Wiek

28 Jurek 9 35

31 Leon 8 55

44 Henio 5 35

58 Rysiek 10 35

Bid Nazwa Kolor

101 Szperacz Niebieska

103 Ścigacz czerwona

Łódki B1

Żeglarze S1

Żeglarze S2

Anglojęzyczna wersja tego przykładu jest dostępna w co najmniej dwu niezależnych

miejscach w sieci…

Bazy danych - wykład 2 34

Podstawowe operacje• Działania teoriomnogościowe:

• Suma mnogościowa (unia) • Przecięcie (iloczyn) zbiorów • Różnica zbiorów

• Iloczyn kartezjański • Rzutowanie • Selekcja • Przemianowanie • Złączenie

Technicznie rzecz biorąc, to też nie jest podstawowa

operacja, ale występuje w praktyce tak często, że jest osobno implementowana

Wynikiem każdej operacji jest tabela (relacja), można więc tworzyć operacje złożone.

Algebra relacji jest domknięta!

Bazy danych - wykład 2 35

Operacje teoriomnogościowe

• Schematy obu tabel (relacji) wejściowych muszą mieć identyczne zbiory atrybutów

• Zanim zostanie obliczona suma mnogościowa, przecięcie lub różnica zbiorów, należy uporządkować atrybuty obu tabel tak, aby kolejnośc atrybutów była taka sama.

Bazy danych - wykład 2 36

Suma mnogościowa

R S — zbiór krotek, z których każda należy do R lub do S (lub do obu jednocześnie)

Sid Imię Rating Wiek

22 Daniel 7 45

28 Jurek 9 35

31 Leon 8 55

44 Henio 5 35

58 Rysiek 10 35

S1 S2

Ponieważ jest to zbiór, kolejność krotek nie

ma znaczenia.

Bazy danych - wykład 2 37

Przecięcie mnogościoweR S — zbiór krotek, z których każda należy jednocześnie do R i S

Sid Imię Rating Wiek

31 Leon 8 55

58 Rysiek 10 35

S1 S2

Różnica mnogościowaR - S — zbiór tych krotek z R, które nie należą do S

Sid Imię Rating Wiek

22 Daniel 7 45

S1 – S2

Bazy danych - wykład 2 38

Uwaga na wielozbiory!Tabele (relacje) w modelu relacyjny powinny być zbiorami (krotki nie mogą się powtarzać), ale niekiedy nie są — jeśli dopuszczamy powtórzenia krotek, czyli zbiory zastępujemy wielozbiorami, zmieniają się definicje operacji mnogościowych.

Suma R S — krotka w wyniku występuje tyle razy, ile występuje w R plus tyle razy, ile występuje w S. Uwaga: jeśli nawet R i S są zbiorami, R S może być wielozbiorem!

Iloczyn R S — krotka w wyniku występuje tyle razy, ile wynosi minimum jej wystąpień w R i S.

Różnica R–S — krotka w wyniku występuje tyle razy, ile występuje ona w R minus tyle razy, ile występuje ona w S, ale nie mniej niż 0 razy.

Bazy danych - wykład 2 39

Przykład:

R = {A,B,B}, S = {A,B,C,C}

R S = {A,A,B,B,B,C,C}

R S = {A,B}

R–S = {B}

Bazy danych - wykład 2 40

Uwaga na wielozbiory (cd)!Tabele (relacje) w modelu relacyjny powinny być

zbiorami (krotki nie mogą się powtarzać), ale niekiedy nie są.

W dobrze zaprojektowanej relacyjnej bazie danych tabele muszą być zbiorami. Kiedy mogą pojawiać się

wielozbiory?

Wielozbiory w dobrze zaprojektowanych relacyjnych bazach danych pojawiają się (i to dość często) jako tabele wynikowe pewnych zapytań. Tabele te mogą

być tabelami wejściowymi kolejnych zapytań…

Bazy danych - wykład 2 41

Selekcja C(R)

• Wybierz z tabeli R tylko te wiersze, które spełniają warunek wyboru C.– W warunku wyboru mogą pojawiać się

operatory logiczne!• Schemat wyjściowej relacji jest taki sam, jak

relacje wejściowej.• Jeśli R jest zbiorem, nie ma duplikatów.

– W praktyce duplikaty niekiedy się pojawiająW SQL rozróżnienie SELECT vs SELECT

DISTINCT.

Bazy danych - wykład 2 42

Przykład

Sid Imię Rating Wiek

28 Jurek 9 35

31 Leon 8 55

44 Henio 5 35

58 Rysiek 10 35

S2

Sid Imię Rating Wiek

28 Jurek 9 35

58 Rysiek 10 35

Rating > 8(S2)

Wybierz tylko te wiersze z tabeli S2, dla

których Rating > 8

Bazy danych - wykład 2 43

Rzutowanie A1,A2,…(R)

• Utwórz nową relację, która zawiera tylko te kolumny relacji R, które wymienione są na liście rzutowania A1,A2,…

• Schemat rejacji wyjściowej zawiera tylko kolumny występujące na liście rzutowania.

• W formalizmie matematycznym operator rzutowania eliminuje duplikaty– W praktyce (SQL) eliminowania

duplikatów trzeba zażądać explicite.

Bazy danych - wykład 2 44

Przykład

Sid Imię Rating Wiek

28 Jurek 9 35

31 Leon 8 55

44 Henio 5 35

58 Rysiek 10 35

S2

Imię Rating

Jurek 9

Leon 8

Henio 5

Rysiek 10

Imię,Rating(S2)

Wiek

35

55

Wiek(S2)Usunięto duplikaty!

Wybierz tylko kolumny Imię, Rating z tabeli S2

Bazy danych - wykład 2 45

Składanie operatorów

Relacja wyjściowa jednego zapytania może stać się relacją wejściową kolejnego zapytania — powstaje

operator złożony.

Sid Imię Rating Wiek

28 Jurek 9 35

31 Leon 8 55

44 Henio 5 35

58 Rysiek 10 35

S2

Imię Rating

Jurek 9

Rysiek 10

Imię,Rating (Rating > 8(S2))

Bazy danych - wykład 2 46

Przemianowanie S(A1,A2,…,An)(R)

W wyniku operacji S(A1,A2,…,An)(R) z relacji R otrzymujemy

relację S, mającą tyle samo atrybutów, co R. Nowymi nazwami atrybutów stają się A1, A2, …, An. Kolejność atrybutów zostaje

zachowana.

Jeśli chcemy tylko zmienić nazwę samej relacji, bez zmiany

nazw atrybutów, piszemy S(R) .

Bazy danych - wykład 2 47

Jak zapamiętać te oznaczenia?

— sigma — select — pi — project — rho — rename

Bazy danych - wykład 2 48

Iloczyn kartezjański• R S — każda krotka (wiersz) z R zostaje połączona z

każdą krotką (wierszem) S• Schemat wyniku ma po jednym atrybucie (kolmnie) na

każdy atrybut R i po jednym atrybucie na każdy atrybut S. Nazwy atrybutów są, o ile to możliwe, dziedziczone.

(Sid) Imię Rating Wiek (Sid) Bid Dzień 22 Daniel 7 45 22 101 10.07.2005 22 Daniel 7 45 58 103 11.08.2005 31 Leon 8 55 22 101 10.07.2005 31 Leon 8 55 58 103 11.08.2005 58 Rysiek 10 35 22 101 10.07.2005 58 Rysiek 10 35 58 103 11.08.2005

S1 R1

Konflikt między nazwami kolumn, który trzeba rozwiązać przez przemianowanie

Bazy danych - wykład 2 49

Złączenie warunkowe (złączenie theta)

• Z iloczynu kartezjańskiego R S wybieramy tylko te krotki, które spełniają warunek C.

• (Na ogół) mniej krotek niż w iloczynie kartezjańskim.• Schemat wyniku taki, jak schemat iloczynu kartezjańskiego.

)( SRcScR

(Sid) Imię Rating Wiek (Sid) Bid Dzień 22 Daniel 7 45 58 103 11.08.2005 31 Leon 8 55 58 103 11.08.2005

11

Sid.1Sid.1RS

RS

Bazy danych - wykład 2 50

Złączenie równościowe(equi-join)

• Złączenie warunkowe, w którym warunek C zawiera same równości.

• Schemat wyniku podobny do schematu iloczynu kartezjańskiego, ale zawiera tylko jedno wystąpienie każdej kolumny, dla której zażądano równości.

Sid Imię Rating Wiek Bid Dzień 22 Daniel 7 45 101 10.07.2005 58 Rysiek 10 35 103 11.08.2005

11SidRS

Złączenie naturalne — złączenie równościowe, dla którego zażądano równości we wszystkich

wspólnych kolumnach.

Bazy danych - wykład 2 51

Ważna uwaga

Złączenie jest definiowane jako podzbiór iloczynu kartezjańskiego tabel.

Nie oznacza to jednak, że złączenie jest w praktyce realizowane przez RDBMS w ten

sposób, iż najpierw tworzy się iloczyn kartezjański, a później wybiera z niego krotki

spełniające warunek złączenia.

Bazy danych - wykład 2 52

Znajdź imiona żeglarzy, którzy zarezerwowali łódkę nr 103

• Rozw. 1:

• Rozw. 2:

• Rozw. 3:

)Żeglarze)Rezerwacje((103BidImię

))ŻeglarzeRezerwacje((103BidImię

2Imię

12Tmp

103Bid1Tmp

Tmp

ŻeglarzeTmp

Rezerwacje

Bazy danych - wykład 2 53

PodsumowanieModel relacyjny ma ściśłe, formalnie

zdefiniowane reguły zadawania zapytań, proste, ale potężne.

Algebra relacji jest bardzo użyteczna do reprezentowania planów wykonania zapytań.

Jedno zapytanie zazwyczaj można zrealizować na kilka sposobów. Optymalizator dobrego RDBMS powinien wybrać sposób najlepszy, ale niekiedy trzeba to zrobić ręcznie.