Bazy danych 4. Algebra relacji P. F. Góra

Slides:



Advertisements
Podobne prezentacje
2.Relacyjny model baz danych
Advertisements

2b.Relacyjny model baz danych
komornik trzyma kas ę m ą drze wydaje pieni ą dze m ą drze planuje akcje finansowe szuka nowych ź róde ł finansowania Oddzia ł u ….
Wzmacniacz operacyjny
Co przyczyni się do mojego sukcesu w FM GROUP?
KLUB MIŁOŚNIKÓW HARREGO POTTERA
Relacyjny model danych
Bazy danych 7. Postaci normalne P. F. Góra semestr letni 2004/05
2. Modelowanie baz danych
Bazy danych 1.Wiadomo ś ci wst ę pne P. F. Góra semestr letni 2004/05.
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
4. Relacyjny model baz danych
CZWOROKĄTY Prezentacja została wykonana przez Kacpra Jackiewicza.
Prąd elektryczny Paweł Gartych kl. 4aE.
1.
Bazy danych 3. Zależności funkcyjne Postaci normalne P. F. Góra
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.
Jak efektywnie współpracować z rodzicami
REKLAMY INTERNETOWE Autorka : Patrycja Kempa. REKLAMA – co to takiego ?! REKLAMA - to informacja po łą czona z komunikatem perswazyjnym. Zazwyczaj ma.
Bazy danych Algebra relacji.
Relacyjny model danych
SQL – zapytania posumowanie
Opracowanie: Maria W ą sik. Pierwsze komputery budowano w celu rozwi ą zywania konkretnych problemów. Gdy pojawiało si ę nowe zadanie, nale ż ało przebudowa.
Prąd elektryczny Opór elektryczny.
25 PRZYKAZA Ń. 1. Nie dyskutuj z go ś ciem, który ma nad Tob ą pó ł litra przewagi!
Walk ę matematyczn ą prowadzi ł a z nami pani mgr El ż bieta Maciejewska.
Pytanie to coraz cz ęś ciej nasuwa si ę przeci ę tnemu cz ł owiekowi chc ą cemu stworzy ć now ą sie ć w domu. Pytanie to coraz cz ęś ciej nasuwa si.
Edukacja informatyczna w szkole
Przegląd funkcji Lab 1 i 2.
Dziedzictwo kulturowe
Czynniki wpływające na kursy walut
Przykłady skrzyżowań ze znakami
Opracowanie: mgr Tomasz Durawa
Algorytmy.
Rozwiązanie zadań do zaliczenia I0G1S4 // indeks
Model relacyjny.
Mateusz Siuda klasa IVa
Bezpieczny Internet.
Jak można nauczyć korzystania z prawdopodobieństwa.
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Edukacja w Burkina Faso
Rozporz ą dzenie MEN z dnia 30 kwietnia 2007 r. w sprawie warunków i sposobu oceniania, klasyfikowania i promowania uczniów i s ł uchaczy oraz przeprowadzania.
KOMUNIKACJA INTERPERSONALNA.
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
1 Dr Galina Cariowa. 2 Legenda Iteracyjne układy kombinacyjne Sumatory binarne Sumatory - substraktory binarne Funkcje i układy arytmetyczne Układy mnożące.
Tworzenie odwołania zewnętrznego (łącza) do zakresu komórek w innym skoroszycie Możliwości efektywnego stosowania odwołań zewnętrznych Odwołania zewnętrzne.
GRUPY I ZESPOŁY © dr E.Kuczmera-Ludwiczyńska, mgr D.Ludwiczyński.
Teoria gry organizacyjnej Każdy człowiek wciąż jest uczestnikiem wielu różnych gier. Teoria gier zajmuje się wyborami podejmowanymi przez ludzi w warunkach.
Copyright (c) PortalMatematyczny.pl. Strona Główna Co to jest hazard ? Gry hazardowe Legenda: Slajd końcowy Strona G ł ówna Przejdź do strony głównej.
PRACA Z APLIKACJAMI SYSTEM PRZEMIESZCZANIA oraz NADZORU WYROBÓW AKCYZOWYCH EMCS PL 1.
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania 1 Metody optymalizacji - Energetyka 2015/2016 Metody programowania liniowego.
Sposób oraz zakres gromadzonych informacji regulują następujące przepisy prawne: 1.ustawa z dnia 19 lutego 2004 r. o systemie informacji oświatowej (Dz.
Cel analizy statystycznej. „Człowiek –najlepsza inwestycja”
Wyrażenia Algebraiczne Bibliografia Znak 1Znak 2 Znak 3 Znak 4 Znak 5 Znak 6 Znak 7 Znak 8 Znak 9 Znak 10 Znak 11.
OBSŁUGA KARTY DILO. Karta diagnostyki i leczenia onkologicznego zawiera: - oznaczenie pacjenta, pozwalające na ustalenie jego tożsamości, - oznaczenie.
Zmienne losowe Zmienne losowe oznacza się dużymi literami alfabetu łacińskiego, na przykład X, Y, Z. Natomiast wartości jakie one przyjmują odpowiednio.
Rozwiązywanie równań I-go stopnia z jedną niewiadomą
Algorytmy Informatyka Zakres rozszerzony
© Kazimierz Duzinkiewicz, dr hab. inż. Katedra Inżynierii Systemów Sterowania Modelowanie i podstawy identyfikacji 2015/2016 Modelowanie rozmyte – podstawy,
Po pierwsze: Bądź odważny! Weź los w swoje ręce, w końcu do odważnych świat należy. Niech Twoja odwaga nie oznacza jednak podejmowania ryzyka bez analizy.
KOMBINATORYKA.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
ACCESS - RELACJE TEMAT:. Tworzenie i edycja relacji Relacje w bazach danych tworzone są w celu powiązania z sobą danych z wielu tabel. Tworzymy (edytujemy)
Renata Maciaszczyk Kamila Kutarba. Teoria gier a ekonomia: problem duopolu  Dupol- stan w którym dwaj producenci kontrolują łącznie cały rynek jakiegoś.
Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.
Liczby pierwsze.
Języki programowania.
Strukturalny język zapytań SQL - historia
Zapis prezentacji:

Bazy danych 4. Algebra relacji P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ semestr letni 2006/07

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 4

Schematy tabel wejściowych zapytania są ustalone. 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 4

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

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

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 4

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

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

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 4

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 4

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 4

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 4

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

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 4

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

Składanie operatorów S2 Imię,Rating (Rating > 8(S2)) 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)) Bazy danych - wykład 4

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 4

Jak zapamiętać te oznaczenia?  — sigma — select  — pi — project  — rho — rename Bazy danych - wykład 4

Iloczyn kartezjański S1  R1 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 Bazy danych - wykład 4

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

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

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 4

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

Przykłady dzielenia B1 B2 B3 A/B1 A/B2 A/B3 A Bazy danych - wykład 4

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

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

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