Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Bazy danych 4. Algebra relacji P. F. Góra semestr letni 2006/07.

Podobne prezentacje


Prezentacja na temat: "Bazy danych 4. Algebra relacji P. F. Góra semestr letni 2006/07."— Zapis prezentacji:

1 Bazy danych 4. Algebra relacji P. F. Góra semestr letni 2006/07

2 Bazy danych - wykład 42 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

3 Bazy danych - wykład 43 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.

4 Bazy danych - wykład 44 Przyk ł adowe wsyt ą pienia tabel w pewnej bazie Rezerwacje R1 Łódki B1 Żeglarze S1 Żeglarze S2 Angloj ę zyczna wersja tego przyk ł adu jest dost ę pna w co najmniej dwu niezale ż nych miejscach w sieci…

5 Bazy danych - wykład 45 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 Dzielenie / Nie jest to podstawowa operacja, ale bardzo u ż yteczny skrót 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!

6 Bazy danych - wykład 46 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.

7 Bazy danych - wykład 47 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) S1 S2 Poniewa ż jest to zbiór, kolejno ść krotek nie ma znaczenia.

8 Bazy danych - wykład 48 Przeci ę cie mnogo ś ciowe R S zbiór krotek, z których ka ż da nale ż y jednocze ś nie do R i S S1 S2 Ró ż nica mnogo ś ciowa R - S zbiór tych krotek z R, które nie nale żą do S S1 – S2

9 Bazy danych - wykład 49 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.

10 Bazy danych - wykład 410 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}

11 Bazy danych - wykład 411 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 ń …

12 Bazy danych - wykład 412 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.

13 Bazy danych - wykład 413 Przyk ł ad S2 Rating > 8 (S2) Wybierz tylko te wiersze z tabeli S2, dla których Rating > 8

14 Bazy danych - wykład 414 Rzutowanie A 1,A 2,… (R) Utwórz now ą relacj ę, która zawiera tylko te kolumny relacji R, które wymienione s ą na li ś cie rzutowania A 1,A 2,… 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.

15 Bazy danych - wykład 415 Przyk ł ad S2 Imię,Rating (S2) Wiek (S2) Usuni ę to duplikaty! Wybierz tylko kolumny Imi ę, Rating z tabeli S2

16 Bazy danych - wykład 416 Sk ł adanie operatorów Relacja wyj ś ciowa jednego zapytania mo ż e sta ć si ę relacj ą wej ś ciow ą kolejnego zapytania powstaje operator z ł o ż ony. S2 Imię,Rating ( Rating > 8 (S2))

17 Bazy danych - wykład 417 Przemianowanie S(A 1,A 2,…,A n ) (R) W wyniku operacji S(A 1,A 2,…,A n ) (R) z relacji R otrzymujemy relację S, mającą tyle samo atrybutów, co R. Nowymi nazwami atrybutów staj ą si ę A 1, A 2, …, A n. Kolejno ść atrybutów zostaje zachowana. Je ś li chcemy tylko zmieni ć nazw ę samej relacji, bez zmiany nazw atrybutów, piszemy S (R).

18 Bazy danych - wykład 418 Jak zapamiętać te oznaczenia? sigma select pi project rho rename

19 Bazy danych - wykład 419 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. S1 R1 Konflikt mi ę dzy nazwami kolumn, który trzeba rozwi ą za ć przez przemianowanie

20 Bazy danych - wykład 420 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.

21 Bazy danych - wykład 421 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. Z łą czenie naturalne z łą czenie równo ś ciowe, dla którego za żą dano równo ś ci we wszystkich wspólnych kolumnach.

22 Bazy danych - wykład 422 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.

23 Bazy danych - wykład 423 Dzielenie Nie jest prymitywem, ale jest u ż yteczne w zapytaniach typu Znajd ź ż eglarzy, którzy zarezerwowali wszystkie ł ódki. Niech A ma dwa pola, x, y, i niech B ma tylko jedno pole y: – A/B = – czyli A/B zawiera wszystkie krotki x ( ż eglarzy) takie, ż e ka ż dej krotce y ( ł ódce) z B odpowiada krotka xy w A. – Lub te ż : Je ś li zbiór warto ś ci y ( ł ódek), stowarzyszonych z warto ś ci ą x ( ż eglarz) w A, zawiera wszystkie warto ś ci y z B, x nale ż y do A/B. Tak x, jak i y, mog ą obejmowa ć wi ę cej ni ż jedno pole.

24 Bazy danych - wykład 424 Przyk ł ady dzielenia A B1 B2 B3 A/B1A/B2A/B3

25 Bazy danych - wykład 425 Wyra ż anie A/B poprzez podstawowe operatory Idea: W celu obliczenia A/B, znajdźmy wszystkie wartości x, które nie są wykluczone przez jakieś y B. x jest wykluczone, jeśli po dołączeniu y dostaniemy krotkę xy A Wykluczone wartości x: A/B: wykluczone wartości x

26 Bazy danych - wykład 426 Znajd ź imiona ż eglarzy, którzy zarezerwowali ł ódk ę nr 103 Rozw. 1: Rozw. 2: Rozw. 3:

27 Bazy danych - wykład 427 Podsumowanie Model 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.


Pobierz ppt "Bazy danych 4. Algebra relacji P. F. Góra semestr letni 2006/07."

Podobne prezentacje


Reklamy Google