Operacja Teta-złączenia. v1 v1 Θ v2

Podobne dokumenty
Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

Dr inż. Witold Rekuć Katedra Badań Operacyjnych, Finansów i Zastosowań Informatyki

-Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium

Wykład kończy się zaliczeniem na ocenę na podstawie kolokwium, które zostanie przeprowadzone na przedostatnim wykładzie

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Autor: Joanna Karwowska

Tadeusz Pankowski Relacyjne bazy danych. są podstawą zachodniej cywilizacji

Egzamin / zaliczenie na ocenę* 0,5 0,5

Bazy danych. Informacje podstawowe

Model relacyjny. Wykład II

Wykład 6. SQL praca z tabelami 3

Technologie baz danych

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Wprowadzenie do SQL. Instrukcja laboratoryjna

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

RBD Relacyjne Bazy Danych

Przestrzenne bazy danych Podstawy języka SQL

Bazy danych. Wykład V Kwerendy. Copyrights by Arkadiusz Rzucidło 1

Wprowadzenie do SQL. Instrukcja laboratoryjna. Ludmiła Rekuć, Witold Rekuć

KARTA PRZEDMIOTU. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI Ogólne umiejętności posługiwania się komputerem

1 Wstęp do modelu relacyjnego

Model relacyjny. Wykład II

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

Wprowadzenie do SQL TEMAT 4 - Zadania dodatkowe

Microsoft SQL Server Podstawy T-SQL

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

Relacyjny model danych

Baza danych Uczniowie.mdb

Krok 1. SELECT Symbol AS KS INTO Dzielnik FROM Towary WHERE (Nazwa='Orzeszki solone') OR (Nazwa = 'Zupy CHOISE') OR (Nazwa = 'Kawa BURG');

TEST E.14 BAZY DANYCH

Bazy danych wykład trzeci. Konrad Zdanowski

Projektowanie relacyjnych baz danych

Wstęp do SQL. copyright: KGiIS WGGiOŚ AGH

Paweł Rajba

Bazy danych. Dr inż. Paweł Kasprowski

3. Podzapytania, łączenie tabel i zapytań

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

RBD Relacyjne Bazy Danych Więzy realcji

Podstawy języka SQL. standardy SQL formułowanie zapytań operacje na strukturach danych manipulowanie danymi. Bazy danych s.5-1

1 DML - zapytania, część II Grupowanie Operatory zbiorowe DML - modyfikacja 7. 3 DCL - sterowanie danymi 9.

Podstawy języka T-SQL : Microsoft SQL Server 2016 i Azure SQL Database / Itzik Ben-Gan. Warszawa, Spis treści

Bazy danych 2. Wykład 4 Structured Query Language (SQL)

Relacyjne bazy danych. Podstawy SQL

Złączenie CROSS JOIN jest to tzw. złączenie krzyżowe, którego ogólna postać wygląda następująco:

Bazy danych i usługi sieciowe

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Podstawy Informatyki Wykład X

Bazy danych. dr inż. Arkadiusz Mirakowski

Bazy Danych egzamin 9 luty, 2012 rozwiazania

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Wykład 05 Bazy danych

ACESS- zadania z wykorzystaniem poleceń SQL

Wprowadzenie do SQL TEMAT 3 - Zadania dodatkowe

Wstęp Wprowadzenie do BD Podstawy SQL. Bazy Danych i Systemy informacyjne Wykład 1. Piotr Syga

Podstawy języka SQL cz. 2

Bazy danych Access KWERENDY

INFORMATYKA W SELEKCJI

Zadania z SQLa (MS SQL Server)

Laboratorium Bazy danych SQL 2

Bazy danych Algebra relacji Wykład dla studentów matematyki

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

050 SQL ELEMENTY ZAAWANSOWANE. Prof. dr hab. Marek Wisła

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

Wstęp do relacyjnych baz danych. Jan Bartoszek

Aliasy Select p.first_name, p.salary, j.job_title from employees p, jobs j where p.job_id=j.job_id;

Kolekcje Zbiory obiektów, rodzaje: tablica o zmiennym rozmiarze (ang. varray) (1) (2) (3) (4) (5) Rozszerzenie obiektowe w SZBD Oracle

Bazy danych. Algebra relacji

Algebra relacji. nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n.

Język DML. Instrukcje DML w różnych implementacjach SQL są bardzo podobne. Podstawowymi instrukcjami DML są: SELECT INSERT UPDATE DELETE

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Systemy GIS Tworzenie zapytań w bazach danych

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Marek Rakowski Zdanie SELECT wybieranie danych z wielu tabel Strona 1 z 6

Bazy Danych. SQL Podstawy języka III: powtórzenie. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Rozpatrzymy bardzo uproszczoną bazę danych o schemacie

Widok Connections po utworzeniu połączenia. Obszar roboczy

Grupowanie i funkcje agregujące

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Relacyjne bazy danych. Podstawy SQL

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

Informatyka (5) SQL. dr inż. Katarzyna Palikowska Katedra Transportu Szynowego p. 4 Hydro

Teoretyczne podstawy informatyki

Współczesne systemy baz danych

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

Język SQL. Rozdział 5. Połączenia i operatory zbiorowe

Kwerendy, czyli zapytania. Opracowała: I. Długoń

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

Język SQL podstawy zapytań

Bazy danych. Wprowadzenie. SKiBD

Bazy danych Access KWERENDY

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Relacyjne Systemy Baz Danych

Bazy danych. Plan wykładu. Przetwarzanie zapytań. Etapy przetwarzania zapytania. Translacja zapytań języka SQL do postaci wyrażeń algebry relacji

KaŜdemu atrybutowi A przyporządkowana jest dziedzina Dom(A), czyli zbiór dopuszczalnych wartości.

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

Bazy Danych. Model Relacyjny. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Transkrypt:

Operacja Teta-złączenia Dane są: r(r) tabela r o schemacie R, A R s(s) tabela s o schemacie S, B S R i S nie zawierają tych samych nazw (R S = Ø) Θ {>, <, >=, <=, =, <> } - operator Teta q(r S) = r [ AΘB ] s = { t : t[r] r, t[s] s i t[a] Θ t[b] } r R A s S B v v2 t v v Θ v2 v2 65

Przykład r A B a2 a5 2 a a6 4 a 2 r C D a5 2 a a6 4 a 2 r [ B > D ] r2 = A B C D a5 2 a a6 4 a5 2 a6 4 a a6 4 a 2 a 2 a 67

Przykład Grupa Nazwa Pielgrzymka Studenci Emeryci Szkoła Urząd Miejski Pafawag Liczność 0 50 55 20 30 20 Autokar Numer rej WRU 3492 DW 6582 WCX 238 WWX 6745 WRA 22 DW 67892 Pojemność 5 45 60 25 30 0 Podać autokary, które mogą obsłużyc poszczególne grupy turystyczne Grupa [ Liczność <= Pojemność ] Autokar 68

Nazwa Grupa Teta złączenie w języku SQL select from where Autokar.Numer rej, Grupa.Nazwa Autokar, Grupa Autokar.Pojemność >= Grupa.Liczność; 69

Operacje na tabelach Operacje relacyjne Projekcja Operacje teoriomnogościowe Suma Selekcja Złączenie Dzielenie Iloczyn Różnica niesymetryczna Dopełnienie Przemianowanie 70

Operacje teoriomnogościowe suma tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r lub t s } Przykład r A B a2 b a5 b2 a b a6 b4 a3 b2 s A a5 a a6 a B b2 b b4 b2 q A B a2 b a5 b2 a b a6 b4 a3 b2 a b2 7

Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej 72

Realizacja operacji sumy tabel w MS ACCESS za pomocą kwerendy dołączającej a) r := r s b) q := r s q := r q := q s r s r s kwerenda dołączająca r q kwerenda tworząca tabelę kwerenda dołączająca q 73

Kwerenda dołączająca: Realizacja operacji sumy tabel w SQL insert into r(a,b) select s.a, s.b from s; insert into r select s.* from s; Kwerenda sumująca: select * from r union all select * from s; {z duplikatami} select * from r union select * from s; {bez duplikatów} 74

Operacje teoriomnogościowe iloczyn tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B a2 b a5 b2 a b a6 b4 a3 b2 s A a5 a a6 a B b2 b b4 b2 q A B a5 b2 a b a6 b4 75

Realizacja operacji iloczynu tabel w MS ACCESS za pomocą kwerendy wybierającej q := r s {r.*} (r [ r.a =s.a,..., r.a n =s.a n ] s) r A B a2 b a5 b2 a b a6 b4 a3 b2 s A a5 a a6 a B b2 b b4 b2 {r.a,r.b} (r [ r.a = s.a, r.b = s.b ] s) q A a5 a a6 B b2 b b4 76

Realizacja operacji iloczynu tabel w SQL MS ACCESS: select r.* from r inner join s on (r.a=s.a) and r.b=s.b); PostgreSQL: select r.* from r intersect select s.* from s; select r.* from r intersect all select s.* from s; 77

Operacje teoriomnogościowe różnica niesymetryczna tabel Dane są tabele o jednakowych schematach: r(r) s(r) r(r) s(r) = q(r) = { t : t r i t s } Przykład r A B a2 b a5 b2 a b a6 b4 a3 b2 s A a5 a a6 a B b2 b b4 b2 q A B a2 b a3 b2 78

Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej Rekordy unikatowe 79

Realizacja operacji różnicy tabel w MS ACCESS za pomocą kwerendy usuwającej a) r := r s b) q := r s q := r q := q s r s r s kwerenda usuwająca r q kwerenda tworząca tabelę kwerenda usuwająca q 80

Realizacja odejmowania w SQL MS ACCESS: delete distinctrow s.* from r inner join s on (r.a=s.a) and ( r.b=s.b); PostgreSQL: select r.* from r except select s.* from s; select r.* from r except all select s.* from s; 8

insert into Odbiorca select Dostawca.* from Dostawca; 82

select Dostawca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); 83

delete distinctrow Odbiorca.* from Dostawca inner join Odbiorca on (Dostawca.Numer=Odbiorca.Numer) and (Dostawca.Nazwa=Odbiorca.Nazwa); 84

Operacje teoriomnogościowe dopełnienie Dana jest tabela r(r), w której R={A,A 2,...,A n } Każdej nazwie A,A 2,...,A n przyporządkowano zbiór dopuszczalnych wartości D,D 2,...,D n dop(r(r)) = D D 2... D n r(r) Przykład R={A,A 2 } D = {,2} D 2 = {a,b} D D 2 A A 2 a b 2 a 2 b r A A 2 2 a b dop(r) A A 2 a 2 b 85

Przykład Obiekt Nazwa Adres Muzealna Grupa Numer Liczność 0 Zwiedziła Nazwa Numer Park zdrojowy Zamek Zapora Parkowa Zamkowa Wodna 2 3 50 55 Park zdrojowy Zamek Zapora 2 3 Podać, która grupa i który obiekt ma jeszcze zwiedzić, jeżeli już odbyły się wizyty podane w tabeli Zwiedziła {Nazwa} (Obiekt) {Numer} (Grupa) Zwiedziła select Obiekt.Nazwa, Grupa.Numer from Obiekt, Grupa except select Zwiedziala.Nazwa, Zwiedzila.Numer from Zwiedzila; 86

87

Przemianowanie atrybutów Firmy Nr Nazwa 0 Nasza Firma Abeja 2 Audi 3 Pafawag 4 Iase 5 Dolmed Ulica Nasza Abejowska Audiego Wagonowa Energetyczna Medyczna KodMjc 3 2 2 3 Telefon 234 23 234 55 256 2 Dokumenty Nr NrSprzerdawcy /02 0 2/02 0 /02 3/02 0 2/02 3 4/02 0 NrNabywcy 2 3 0 0 4 Data 3.02.02 2.03.02 03.0.02 3.04.02 7.02.02 3.05.02 ( {NrSprzedawcy} (Dokumenty) {NrNabywcy} (Dokumenty) ) [??=Nr ]Firmy ta nazwa powinna być wspólna 88

Dana jest tabela r(r) o schemacie R={A,A 2,...,A n }, dla której: a) wybieramy nazwy A,A2,...,Ak R = {A,A 2,...,A n } b) określamy nazwy B,B2,...,Bk z zamiarem aby Bi zastępowało Ai (i =...k) c) tworzymy nowy schemat Q = ( R {A,A2,...,Ak} ) {B,B2,...,Bk} {A,A2,...,Ak <-- B,B2,...,Bk} ( r(r) ) = q( Q ) Kontynuacja przykładu: {Nr} ( { NrSprzedawcy <-- Nr} (Dokumenty)) {Nr} ( ( {NrNabywcy <-- Nr} (Dokumenty) ) [ Nr=Nr ] Firmy 89

select Osoba.pesel, Osoba_.pesel as rodzic, Osoba_2.pesel as dziadek, Osoba_3.pesel as pradziadek, from (Osoba inner join Osoba_...)...); 90

Dane są tabele: r(r), która będzie dzielną, s(s), która będzie dzielnikiem. Utworzymy tabelę: q(t), która będzie ilorazem. Przy czym T = R S Operacja dzielenia q(t) = r(r) s(s) = { t : dla każdej t s s, istnieje t r r taka, że t r [R-S]= t i t r [S] = t s } Nieformalnie: operacja dzielenia znajduje te wiersze dzielnej, które łaczą się z każdym wierszem dzielnika 9

Przykład Obiekt Nazwa Adres Muzealna Grupa Numer Liczność 0 Zwiedziła Nazwa Park zdrojowy Numer Park zdrojowy Parkowa 2 50 2 3 55 3 Podać, które grupy zwiedziły już każdy obiekt: Zwiedziła Obiekt Zwiedziła Nazwa Park zdrojowy Numer 2 Obiekt Nazwa Park zdrojowy Adres Muzealna Parkowa 3 {Nazwa,Numer} {Nazwa, Adres} Grupy Numer Numery grup, które w tabeli Zwiedziła łączą się z każdym obiektem 92

Przykład Obiekt Nazwa Adres Muzealna Grupa Numer Liczność 0 Zwiedziła Nazwa Park zdrojowy Numer Park zdrojowy Parkowa 2 50 2 3 55 3 Podać obiekty zwiedzone już przez każdą grupę: Zwiedziła Grupa Zwiedziła Nazwa Park zdrojowy Numer 2 3 Grupa Numer 2 3 Liczność 0 50 55 {Nazwa,Numer} {Numer, Liczność} Obiekty Nazwa Nazwy obiektów, które w tabeli Zwiedziła łączą się z każdą grupą 93

Realizacja operacji dzielenia za pomocą kwerend q = r s = R-S ( r ) R-S (( R-S ( r ) s) r) r s R-S ( r ) rob R-S ( rob s ) kwerenda tworząca tabelę rob2 kwerenda tworząca tabelę rob rob2 r rob2 r kwerenda usuwająca rob2 rob rob rob2 kwerenda usuwająca rob 94

Realizacja operacji dzielenia w SQL select from where Nazwa Zwiedziła as r not exists (select * from Grupa where not exists ( select * from Zwiedziła as r2 where (r.nazwa=r2.nazwa) and (r2.numer=grupa.numer ))); 95

Operacja złączenia naturalnego Dane są: r(r) tabela r o schemacie R, s(s) tabela s o schemacie S, R i S nie muszą być rozłączne q(r S) = r s = { t : t[r] r, t[s] s } 96

Przykład r A a2 a5 a a6 a B b b2 b b5 b2 r B C b5 c2 b c b6 c4 b c2 r r2 = A B C a2 b c a2 b c2 a b c a b c2 a6 b5 c2 97

Przykład ( iloczyn kartezjański!!! ) r A a2 a5 a B b b2 b r2 C D c5 d2 c d r r2 = A B C D a2 b c5 d2 a2 b c d a5 b2 c5 d2 a5 b2 c d a b c5 d2 a b c d 98