Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/2007 25/11/06Prof. dr hab. Elżbieta Richter-Wąs Wykład 8b Algebra relacyjna Teoretyczne.

Slides:



Advertisements
Podobne prezentacje
Opracowała: Iwona Bieniek
Advertisements

Indeksy w bazie danych Oracle
Teoria układów logicznych
Optymalizacja zapytań
Modelowanie logiczne (dla relacyjnych SZBD)
Rafał Hryniów Tomasz Pieciukiewicz
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
Relacyjny model danych
Teoretyczne podstawy informatyki
Złożoność obliczeniowa
Zrównoleglanie programu sekwencyjnego
MS Access 2000 Normalizacja Paweł Górczyński 2005.
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 4: Wyrażenia i operatory. Podstawowe instrukcje języka.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
Podstawy informatyki Rekurencja i rekurencja Grupa: 1A
Model danych oparty na listach
Systemy dynamiczneOdpowiedzi systemów – modele różniczkowe i różnicowe Kazimierz Duzinkiewicz, dr hab. inż.Katedra Inżynierii Systemów Sterowania 1 Systemy.
SQL-owskie szlaki górskie
Zapytania SQL: wydajność i optymalizacja
BD-LAB6 Wojciech Pieprzyca
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Bazy danych Algebra relacji.
Relacyjny model danych
Structured Query Language
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
Matematyka.
OPERACJA DZIELENIA W SQL
Zależności funkcyjne.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
SQL – zapytania posumowanie
POJĘCIE ALGORYTMU Pojęcie algorytmu Etapy rozwiązywania zadań
O relacjach i algorytmach
Podstawy układów logicznych
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Podstawy programowania
Wyrażenia algebraiczne
Podstawy analizy matematycznej II
Obserwatory zredukowane
dr hab. Ryszard Walkowiak prof. nadzw.
Podstawy programowania
Podstawy analizy matematycznej I
Elżbieta Fiedziukiewicz
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Sterowanie – metody alokacji biegunów II
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Wykład 10 typ zbiorowy rekurencja.
Matematyka i system dwójkowy
SYSTEMY EKSPERTOWE I SZTUCZNA INTELIGENCJA
ZAPIS BLOKOWY ALGORYTMÓW
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Temat 1: Strukturalny język zapytań SQL
Model obiektowy bazy danych
URZĄDZENIA TECHNIKI KOMPUTEROWEJ
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 5: Operatory zbiorowe.
Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ Prof. dr hab. Elżbieta Richter-Wąs Wykład 7 Model danych oparty.
Bazy Danych Wprowadzenie
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Temat: Tworzenie bazy danych
Wyrażenia algebraiczne
Pojęcia podstawowe Algebra Boole’a … Tadeusz Łuba ZCB 1.
Wstęp do Informatyki - Wykład 6
Indeksy.
WYRAŻENIA ALGEBRAICZNE
Zrozumieć, przeanalizować i rozwiązać
Strukturalny język zapytań SQL - historia
Instrukcja warunkowa if
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06Prof. dr hab. Elżbieta Richter-Wąs Wykład 8b Algebra relacyjna Teoretyczne podstawy informatyki

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 2 Prof. dr hab. Elżbieta Richter-Wąs Algebra relacyjna Algebra relacyjna (ang. relational algebra) to specjalny język opracowany w celu ułatwienia i sformalizowania zapytań realizowanych w bazach danych. Umożliwia przekształcanie wyrażeń realizujących zapytania za pomocą odpowiednich praw algebraicznych.

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 3 Prof. dr hab. Elżbieta Richter-Wąs W algebrze relacyjnej operandami są relacje. Operandy mogą być albo stałymi (konkretnymi relacjami) albo zmiennymi reprezentującymi nieznane relacje. Każdy operand jest zgodny ze specyficznym schematem – jest listą atrybutów będących nazwami kolumn relacji. Schematem relacji jest {A, B, C}, zaś należące do niej krotki to (0,1,2), (0,3,4) oraz (5,3,2). Operandy algebry relacyjnej ABC

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 4 Prof. dr hab. Elżbieta Richter-Wąs Operatory dla zbiorów w algebrze relacyjnej Suma, przecięcie oraz różnica zbiorów Dodatkowe założenie w stosunku do tego co już znamy z operacji na zbiorach to to, że schematy operandów muszą być takie same. relacja R relacja S R S R \ S Relacje są zbiorami nie mogą wiec zawierać dwóch lub więcej kopii tej samej krotki. AB AB AB AB 01 AB 23

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 5 Prof. dr hab. Elżbieta Richter-Wąs Operator selekcji (ang. selection operator) C (R) R – relacja C - warunek Warunek C może zawierać stałe, jak i operandy będące atrybutami ze schematu relacji R. Operatorami wykorzystywanymi w warunku C są typowe wyrażenia warunkowe z języka programowania C, czyli wyrażenia złożone z porównań arytmetycznych oraz logicznych łączników. Wynikiem operacji jest relacja której schemat jest identyczny ze schematem relacji R. W relacji tej umieszczamy wszystkie krotki t z relacji R, dla których warunek C jest prawdziwy po podstawieniu za każdy atrybut A właściwej dla niej składowej krotki t. Operuje na pojedynczej relacji będącej jego operandem, ale zawiera także dodatkowe wyrażenia warunkowe stanowiące jego parametry. Operator selekcji zapisujemy w postaci:

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 6 Prof. dr hab. Elżbieta Richter-Wąs Relacja ZSO Zajęcia-StudentID-Ocena Zajecia = CS101 (ZSO) Operator selekcji zajęciastudent IDocena CS CS EE EE CS PH ZajęciaStudent IDOcena CS CS CS

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 7 Prof. dr hab. Elżbieta Richter-Wąs Operator rzutowania (ang. projection operator) Operuje na pojedynczej relacji będącej jego operandem, ale zawiera także dodatkowe wyrażenia warunkowe stanowiące jego dodatkowe parametry. Operator rzutowania zapisujemy w postaci: B1, B2,....,Bn (R) R – relacja B 1,B 2..,B n - atrybuty Jeśli R jest relacją ze zbiorem atrybutów {A 1, A 2,......, A k } oraz (B 1, B 2,...., B n ) jest listą pewnych atrybutów A, to B1, B2,...Bn (R), czyli rzutowanie relacji R na atrybuty B 1, B 2,.....,B n jest zbiorem krotek utworzonych przez wybranie z każdej krotki t tylko atrybutów B 1,B 2..,B n. Jedna lub więcej krotek może posiadać te same wartości atrybutów B 1,B 2..,B n. Jako wynik operacji rzutowania pojawia się tylko jedna taka krotka.

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 8 Prof. dr hab. Elżbieta Richter-Wąs Relacja ZSO Zajęcia-StudentID-Ocena StudentID ( Zajecia = CS101 (ZSO)) Operator rzutowania zajęciastudent IDocena CS CS EE EE CS PH Student ID

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 9 Prof. dr hab. Elżbieta Richter-Wąs Operator łączenia (ang. join operator) Umożliwia nam przechodzenie z jednej relacji do drugiej. Operator łączenia zapisujemy w postaci && Przypuśćmy, że mamy dwie relacje R i S, których zbiory atrybutów (schematy) maja odpowiednio postać {A 1, A 2..., A n } oraz {B 1, B 2..., B m } Z obu zbiorów wybieramy po jednym atrybucie – powiedzmy A ij i B j – i te atrybuty są parametrami naszej operacji złączenia, której argumentami są relacje R i S. Złączenie relacji R i S zapisujemy: i jest utworzone w wyniku porównania każdej krotki r z relacji R z każdą krotką s z relacji S. Jeśli składowa r odpowiadająca atrybutowi Ai jest równa składowej s odpowiadającej atrybutowi Bj to tworzymy jedną krotke. Schemat złączonej relacji jest {A 1, A 2..., A n, B 1, B 2..., B j-1, B j+1,......, B m } A wiec atrybut Bj się nie pojawia. Jeżeli atrybuty Ai i Bj mają tą same nazwę to mówimy o złączeniu naturalnym. && Ai=Bj R S

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 10 Prof. dr hab. Elżbieta Richter-Wąs ZDG ZK && Zajęcia=Zajęcia ZK ZDG Operacja łączenia ZajęciaKlasa CS101Aula EE200Hala PH100Laborat ZajęciaDzieńGodzina CS101Pn9.15 CS101S9.15 EE200Pt8.30 EE200W13.00 CS101Pt9.15 ZajęciaKlasaDzieńGodzina CS101AulaPn9.15 CS101AulaS9.15 EE200HalaPt8.30 EE200HalaW13.00 CS101AulaPt9.15

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 11 Prof. dr hab. Elżbieta Richter-Wąs Drzewa wyrażeń dla algebry relacyjnej Drzewo wyrażenia algebry relacyjnej: Dzień, Godzina ( Klasa=Aula (ZK && ZDG)) wynik po realizacji drzewa wyrażenia DzieńGodzina Pn9.15 S Pt9.15 Dzień, Godzina Klasa = Aula ZK ZDG &&

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 12 Prof. dr hab. Elżbieta Richter-Wąs SQL – język oparty na algebrze relacyjnej Wiele współczesnych systemów baz danych wykorzystuje język SQL (ang. Structured Query Language – strukturalny język zapytań) do wyrażania zapytań. SELECT StudentID FROM ZSO WHERE Zajęcia=CS101 Operacja: StudentID ( Zajecia = CS101 (ZSO)) Operacja: Dzień, Godzina ( Klasa=Aula (ZK && ZDG)) SELECT Dzień, Godzina FROM ZK, ZDG WHERE ZK.Zajęcia = ZGD.Zajęcia AND Klasa = Aula

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 13 Prof. dr hab. Elżbieta Richter-Wąs Implementowanie operacji algebry relacyjnej Suma, przecięcie i różnica: Można implementować analogicznie jak dla zbiorów. Należy przewidzieć sposób eliminacji duplikatów na pewnym etapie tych operacji Można wykorzystać indeks. Rzutowanie: Operacja wymaga przejrzenia wszystkich krotek i stworzenia kopii pozbawionych składowych odpowiadających atrybutom, których nie ma na liście rzutowania. Po wyznaczeniu rzutowania, np. S=p L (R), dla pewnej relacji R i liście atrybutów L, musimy wyeliminować duplikaty (stosujemy jedna z omówionych już metod).

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 14 Prof. dr hab. Elżbieta Richter-Wąs Selekcja Wykonywanie operacji selekcji S = s C (R) na relacji R, dla której nie zdefiniowano żadnych indeksów Musimy przeanalizować wszystkie krotki w tej relacji w celu sprawdzenia warunku C. Jeżeli takie indeksy istnieją oraz można je wykorzystać do całkowitego lub częściowego sprawdzenia warunku C to bardzo przyspiesza to czas wykonania operacji. Łączenie Istnieje szereg metod łączenia, różniących się czasem wykonania. Tylko wymieńmy: złączenie pętli zagnieżdżonej (ang. nested loop join), złączenie indeksowe (ang. indeks-join), złączenie przez sortowanie (ang. sort-join). Złączenie indeksowe wymaga istnienia indeksu na jednym z atrybutów wykorzystywanych do łączenia, złączenie przez sortowanie może być wykonywane na dowolnych relacjach.

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 15 Prof. dr hab. Elżbieta Richter-Wąs Prawa algebraiczne dla relacji Podobnie jak w przypadku innych algebr, przekształcanie wyrażeń algebry zapytań umożliwia często optymalizację zapytań. Oznacza to, że możemy przekształcić kosztowne obliczeniowo wyrażenie w równoważne, którego obliczenie charakteryzuje się niższym kosztem. Podczas gdy przekształcenie wyrażeń arytmetycznych lub logicznych umożliwia niekiedy uzyskanie oszczędności rzędu kilku operacji, właściwe przekształcenia zastosowane do algebry relacyjnej może w znacznym stopniu skrócić czas potrzeby do wyznaczenia wartości wyrażenia. Prawa dla łączenia Operator łączenia jest w pewnym sensie przemienny, w innym nie jest. Jeżeli istotna jest kolejność atrybutów to nie jest, S && R ma inne kolumny niż R && S. Operator łączenia nie zawsze spełnia warunki prawa łączności.

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 16 Prof. dr hab. Elżbieta Richter-Wąs Prawa dla selekcji Najbardziej przydatne prawa algebry relacyjnej dotyczą operatora selekcji. Staramy się dokonywać selekcji na jak najwcześniejszym etapie. Prawa przenoszenia selekcji (ang. selection pushing) ( C (R && S)) == ( C (R) && S) ( C (R && S)) == (R && C (S)) Prawo podziału selekcji (ang. selection splitting) C AND D (R) == C ( D (R) ) Prawo przemienności selekcji C ( D (R) ) == D ( C (R) ) Operacje selekcji możemy przenosić poniżej sumy, przecięcia i różnicy zbiorów.

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 17 Prof. dr hab. Elżbieta Richter-Wąs Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano? Wykonanie tego zapytania wymaga przechodzenia pomiędzy czterema relacjami: 1.ZSO ( Zajęcia-StudentID-Ocena) 2.SNAT (StudentID-Nazwisko-Adres-Telefon) 3.ZDG (Zajęcia-Dzień-Godzina) 4.ZK (Zajęcia-Klasa) Aby wykonać wyrażenie algebraiczne dla tego zapytania rozpocznijmy od złączenia naturalnego dla wszystkich czterech relacji. 1.ZSO && SNAT (porównując StudentID) 2.(ZSO && SNAT) && ZDG (porównując Zajęcia) 3.((ZSO && SNAT) && ZDG) && ZK (porównując zajęcia) Relacja wynikowa to: {Zajęcia, StudentID, Ocena, Nazwisko, Adres, Telefon, Dzień, Godzina, Klasa}

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 18 Prof. dr hab. Elżbieta Richter-Wąs skonstruowaliśmy olbrzymią relacje oraz ograniczyliśmy zbiór danych do 1 krotki wykonaliśmy operacje rzutowania na jedna składową. Klasa Nazwisko = J. Kowalski AND Dzień=M AND Godzina=9.00 ZSOSNAT && ZDG && ZK && Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 19 Prof. dr hab. Elżbieta Richter-Wąs przenieść operacje selekcji poniżej najwyższej operacji łączenia z relacja ZK Klasa Nazwisko = J.Kowalski AND Dzień=M AND Godzina=9.00 ZSO SNAT && ZDG && ZK && Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 20 Prof. dr hab. Elżbieta Richter-Wąs rozdziel selekcje Klasa Nazwisko = J. Kowalski ZSO SNAT && ZDG && ZK && Dzień=M AND Godzina=9.00 Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 21 Prof. dr hab. Elżbieta Richter-Wąs przenieść dwie otrzymane selekcje w dwóch różnych kierunkach Klasa Nazwisko = J. Kowalski ZSOSNAT && ZDG && ZK && Dzień=M AND Godzina=9.00 Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 22 Prof. dr hab. Elżbieta Richter-Wąs przenieść operacje selekcji dla atrybutu Nazwisko poniżej najniższego łączenia. Klasa Nazwisko = J. Kowalski ZSO SNAT && ZDG && ZK && Dzień=M AND Godzina=9.00 Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 23 Prof. dr hab. Elżbieta Richter-Wąs Prawo przenoszenia rzutowania: && A=B (R S)) = ( L ( M ( ( L && Ai=Bj R) N (S)) M – lista atrybutów z listy L, które należą do schematu relacji R, plus atrybut A, jeśli nie ma go na liście L N – lista atrybutów z listy L, które należą do schematu relacji R, plus atrybut B, jeśli nie ma go na liście L Prawa dla rzutowania Rzutowanie możemy przenosić poniżej sum: L (R S) = ( L (R) L (S)) ale nie poniżej przecięć: L (R S) ( L (R) L (S))

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 24 Prof. dr hab. Elżbieta Richter-Wąs przenieść operacje rzutowania poniżej najwyższej operacji łączenia Klasa Nazwisko = J. Kowalski ZSO SNAT && ZDG ZajęciaZK && Dzień=M AND Godzina=9.00 && Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 25 Prof. dr hab. Elżbieta Richter-Wąs przenieść operacje rzutowania poniżej środkowej operacji łączenia Klasa Nazwisko = J. Kowalski ZSO SNAT && ZDG Zajęcia ZK && Dzień=M AND Godzina=9.00 && Zajęcia Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 26 Prof. dr hab. Elżbieta Richter-Wąs Klasa Nazwisko = J. Kowalski ZSO SNAT && ZDG Zajęcia ZK && Dzień=M AND Godzina =9.00 && Zajęcia Zajęcia, StudentID StudentID przenieść operacje rzutowania poniżej najniższej operacji łączenia. Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 27 Prof. dr hab. Elżbieta Richter-Wąs usuń operacje rzutowania Zajęcia, StudentID Klasa Nazwisko= J. Kowalski ZSO SNAT && ZDG Zajęcia ZK && Dzień=M AND Godzina=9.00 && Zajęcia StudentID Gdzie przebywa J. Kowalski w poniedziałek o 9-tej rano?

Teoretyczne Podstawy Informatyki - Rok I - kierunek IS w IFAiIS UJ – 2006/ /11/06 28 Prof. dr hab. Elżbieta Richter-Wąs Podsumowanie Algebra relacyjna jest wysoko poziomową notacją definiowania operacji zapytań dotyczących jednej lub wielu relacji. Głównymi operacjami tej algebry są: suma, przecięcie, różnica, selekcja, rzutowanie i złączenie. Jest silną notacją wyrażania zapytań bez podawania szczegółów dotyczących planowanych operacji na otrzymanych danych Istnieje wiele sposobów efektywnego implementowania operacji złączenia Optymalizacja wyrażeń algebry relacyjnej może w znaczący sposób skrócić czas wyznaczania ich wartości, jest więc istotnym elementem wszystkich języków opartych na algebrze relacyjnej wykorzystywanych w praktyce do wyrażania zapytań; Istnieje wiele sposobów skracania czasu obliczania danego wyrażenia. Najlepsze efekty przynosi przenoszenie operacji selekcji w dół drzewa wyrażenia.