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

Podobne dokumenty
Algebra relacji - rozwiązania zadań. Zadania

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

RBD Relacyjne Bazy Danych

Model relacyjny. Wykład II

1 Wstęp do modelu relacyjnego

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

Model relacyjny. Wykład II

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

Autor: Joanna Karwowska

Bazy danych. Algebra relacji

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

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

Relacyjny model danych. Relacyjny model danych

I. Podstawowe pojęcia i oznaczenia logiczne i mnogościowe. Elementy teorii liczb rzeczywistych.

Systemy baz danych. Notatki z wykładu

Bazy danych. Informacje podstawowe

Teoretyczne podstawy informatyki

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

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

1 Działania na zbiorach

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

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

Bazy danych wykład drugi. Konrad Zdanowski

Projektowanie relacyjnych baz danych

Relacyjny model danych

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

1 Zbiory i działania na zbiorach.

Systemy GIS Tworzenie zapytań w bazach danych

Plan wykładu: Operacje relacji: suma, przekrój, różnica, złączenia proste, iloczyn kartezjański, złączenia teta.

Zasada indukcji matematycznej

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

Przestrzenne bazy danych Podstawy języka SQL

Jest to zasadniczo powtórka ze szkoły średniej, być może z niektórymi rzeczami nowymi.

2 Rodziny zbiorów. 2.1 Algebry i σ - algebry zbiorów. M. Beśka, Wstęp do teorii miary, rozdz. 2 11

Złaczenia tablic: FROM, WHERE, JOIN

Technologie baz danych

Część wspólna (przekrój) A B składa się z wszystkich elementów, które należą jednocześnie do zbioru A i do zbioru B:

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

Wykład 6. SQL praca z tabelami 3

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

Rachunki relacji. Rachunki relacji. RRK Relacyjny Rachunek Krotek

Bazy danych. Dr inż. Paweł Kasprowski

Rodzinę spełniającą trzeci warunek tylko dla sumy skończonej nazywamy ciałem (algebrą) w zbiorze X.

A i. i=1. i=1. i=1. i=1. W dalszej części skryptu będziemy mieli najczęściej do czynienia z miarami określonymi na rodzinach, które są σ - algebrami.

Metalogika (1) Jerzy Pogonowski. Uniwersytet Opolski. Zakład Logiki Stosowanej UAM

SZKOLENIE: Administrator baz danych. Cel szkolenia

RBD Relacyjne Bazy Danych Więzy realcji

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Zbiory. Specjalnym zbiorem jest zbiór pusty nie zawierajacy żadnych elementów. Oznaczamy go symbolem.

Podstawy języka SQL cz. 2

6. FUNKCJE. f: X Y, y = f(x).

F t+ := s>t. F s = F t.

Bazy danych i usługi sieciowe

Optymalizacja w relacyjnych bazach danych - wybór wydajnej strategii obliczania wyrażenia relacyjnego.

Robert Kowalczyk. Zbiór zadań z teorii miary i całki

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

Tadeusz Pankowski Definicja. Definicja

Technologie baz danych

Relacyjny model danych

Ciągłość funkcji f : R R

7 Twierdzenie Fubiniego

SQL Structured Query Language

Zbiory, relacje i funkcje

Zależności funkcyjne

SQL (ang. Structured Query Language)

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

1. Wstęp do logiki. Matematyka jest nauką dedukcyjną. Nowe pojęcia definiujemy za pomocą pojęć pierwotnych lub pojęć uprzednio wprowadzonych.

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

Wykłady... b i a i. i=1. m(d k ) inf

Podstawy logiki i teorii mnogości Informatyka, I rok. Semestr letni 2013/14. Tomasz Połacik

B jest liniowo niezależny V = lin (B) 1. Układ pusty jest bazą przestrzeni trywialnej {θ}. a i v i = i I. b i v i, (a i b i ) v i = θ.

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

Wykład XII. optymalizacja w relacyjnych bazach danych

Bazy danych Wykład zerowy. P. F. Góra

Relacje. opracował Maciej Grzesiak. 17 października 2011

Bazy Danych. SQL Podstawy języka II: zapytania. Krzysztof Regulski WIMiIP, KISiM, B5, pok. 408

Relacyjny model baz danych, model związków encji, normalizacje

1 Zbiory. 1.1 Kiedy {a} = {b, c}? (tzn. podać warunki na a, b i c) 1.2 Udowodnić, że A {A} A =.

Metody probabilistyczne

Pochodną funkcji w punkcie (ozn. ) nazywamy granicę ilorazu różnicowego:

Uwaga 1.2. Niech (G, ) będzie grupą, H 1, H 2 < G. Następujące warunki są równoważne:

Technologie i systemy oparte na logice rozmytej

BAZY DANYCH Podstawowe pojęcia

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Wstęp 5 Rozdział 1. Podstawy relacyjnych baz danych 9

Bazy danych 2. Algebra relacji Zależności funkcyjne

- Dla danego zbioru S zbiór wszystkich jego podzbiorów oznaczany symbolem 2 S.

TEORETYCZNE PODSTAWY INFORMATYKI

Bazy danych wykład trzeci. Konrad Zdanowski

P o d s t a w y j ę z y k a S Q L

TEORETYCZNE PODSTAWY INFORMATYKI

Teoria miary. WPPT/Matematyka, rok II. Wykład 5

Bazy danych. Wprowadzenie. SKiBD

Temat : SBQL 1 obiektowy język zapytań.

Temporalne bazy danych

Pojęcie zależności funkcyjnej

SQL Structured Query Language

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

Bazy danych 2. Relacyjny model baz danych

Transkrypt:

Algebra relacji Definicja 1 (Relacja matematyczna). Relacją R między elementami zbioru D 1 D 2 D n, gdzie przypomnijmy D 1 D 2 D n = {(d 1, d 2,..., d n ) : d i D i, i = 1, 2,..., n}, nazywamy każdy podzbiór iloczynu karteziańskiego D 1 D 2 D n. Definicja 2 (Relacja w sensie Codd a). Niech U = {A 1, A 2, A 3,... } będzie zbiorem złożonym z atrybutów A 1, A 2, A 2,.... Dla każdego atrybutu A U zbiór jego wartości (prostych) nazywamy dziedziną i oznaczamy dom (A). Zakładamy, że dla każdego A U zachodzi inkluzja NULL dom (A). Dla zbioru atrybutów U = {B 1, B 2,..., B n }, gdzie B 1, B 2,..., B n U, definiujemy: krotkę t typu U (z ang. tuple) jako zbiór par uporządkowanych t = {(B 1, b 1 ), (B 2, b 2 ),..., (B n, b n )} ozn. = [B 1 : b 1, B 2 : b 2,..., B n : b n ] gdzie b i D i = dom (B i ) dla i = 1, 2,..., n. relację typu U jako dowolny, skończony podzbiór zbioru wszystkich krotek typu U. Uwaga 1. Każdy zbiór par t = [A 1 : a 1, A 2 : a 2,..., A n : a n ], przy oznaczeniach z powyższej definicji, jest pewną funkcją ze zbioru atrybutów U = {A 1, A 2,..., A n } w zbiór wartości V = D 1 D 2 D n, gdzie D i = dom (A i ) dla i = 1, 2,..., n, a zatem t: U V jest funkcją taką, że dla każdego A U, t (A) dom (A). Oznaczenia: KROTKA(U) zbiór wszystkich krotek typu U, KROTKA( ) = {ɛ} zbiór zawiera jedną krotkę, krotkę pustą ɛ typu o długości zero, null(u) krotka null-owa typu U, dla każdego atrybutu A U, null (A) = NULL, REL(U) zbiór wszystkich relacji typu U (Ile jest takich relacji jeśli KROTKA (U) = k?), REL( ) = {, {ɛ}}, gdzie to pusta relacja typu, nie zawierająca żadnej krotki, U, X, Y, V, W zbiory atrybutów (typy relacji), R (U), S (X),... relacje odpowiednio typu U, X,... ; gdy typ wynika z kontekstu piszemy R, S,..., t (U), r (X),... krotki typu U, X,... ; gdy typ wynika z kontekstu piszemy t, r,..., zamiast pisać r = [A 1 : a1, A 2 : a 2,..., A n : a n ] piszemy w skrócie r = (a 1, a 2,..., a n ) domyślne przyjmujemy uporządkowanie wartości w krotce takie jak uporządkowanie atrybutów w typie relacji, zamiast pisać R ({A, B}) piszemy w skrócie R (A, B), zamiast pisać R (X Y ) piszemy w skrócie R (X, Y ). Operacje na relacjach (algebra relacji) 1. Operacje mnogościowe na relacjach

Operandy: R (U), S (U) relacje typu U Wynik: T (U) relacja typu U Suma mnogościowa (ang. union) T = R S {t: t R t S} Różnica mnogościowa (ang. difference) T = R \ S = {t: t R t / S} Przekrój mnogościowy (ang. intersection) T = R S = {t: t R t S) Dopełnienie mnogościowe (ang. complement) T = R c = KROTKA (X) \ R (X) Uwaga 2. W przypadku dopełnienia istotnym jest, aby zbiór KROTKA (X) był skończony (Dlaczego?), co powoduje, że w praktyce dopełnienie nie jest stosowane. Sumy zewnętrzne (otwarte, ang. outer union) Niech Z = X Y i R (X) będzie relacją typu X, a S (Y ) typu Y. Tworzymy relację R (Z) typu Z poprzez uzupełnienie krotek relacji R (X) o argumenty z Z \X wypełniając ich wartości NULL-ami, dokładniej: R (Z) = {t KROTKA (Z) : (t (A) = t (A) dla A X) (t (A) = null (A) dla A Z \ X)}. W analogiczny sposób tworzymy relację S (Z) typu Z, to znaczy S (Z) = {r KROTKA (Z) : (r (B) = r (B) dla B Y ) (r (B) = null (B) dla B Z \ Y )}. Definiujemy sumę zewnętrzną R (X) OUTER UNION S (Y ) relacji R (X) i S (Y ) jako R (X) OUTER UNION S (Y ) = R (Z) S (Z). 2. Operacje na krotkach 2.1. Ograniczenie krotki Niech r (U) będzie krotką typu U i niech X U. Krotkę r [X] typu X nazywamy ograniczeniem krotki r (U) do zbioru atrybutów X, wtedy i tylko wtedy, gdy t (A) = r (A) dla każdego A X. 2.2. Złączenie krotek Krotkę r s typu X Y nazywamy złączeniem naturalnym (ang. natural join) krotek r (X) i s (Y ), wtedy i tylko wtedy, gdy t [X] = r i t [Y ] = s. 3. Operacje relacyjne 3.1. Projekcja, rzut (ang. projection) relacji Niech R (U) będzie relacją typu U i niech X U. Relację R [X] (lub π X (R)) typu X nazywamy projekcją relacji R na X, wtedy i tylko wtedy, gdy R [X] = π X (R) = {t KROTKA (X) : r R t = r [X]}, w szczególności gdy R =, R [ ] = π (R) = {ɛ} w p.p.

3.2. Selekcja (ang. selection) Niech A, A U, ν dom (A), θ {=,, <,, >,, like,... }. A U Atomowymi warunkami selekcji są: A θ ν oraz A θ A. Każdy atomowy warunek selekcji jest warunkiem selekcji. Jeśli E i E są warunkami selekcji, to są nimi również: (E), E, E E, E E. Relację σ E (R) typu U nazywamy selekcją relacji R (U) względem warunku selekcji E, wtedy i tylko wtedy, gdy σ E (R) = {t R: E (t) = TRUE}. Sposoby obliczania warunków selekcji: a) (A θ ν) (t) = t (A) θ ν, b) (A θ A ) (t) = t (A) θ t (A ), c) ( E) (t) = (E (t)), d) (E E ) (t) = E (t) E (t), e) (E E ) (t) = E (t) E (t). Ponieważ języki relacyjnych baz danych, np. SQL, opierają się na logice trójwartościowej o wartościach: TRUE, FALSE i UNKNOWN ( nieznana ), to dodatkowo mamy: f ) t (A) θ NULL = UNKNOWN, g) NULL θ ν = UNKNOWN dla każdego ν, również równego NULL. 3.3. Przemianowanie (ang. renaming) Niech R (U) będzie relacją typu U, a A i B niech będą atrybutami, przy czym A U i B / U. Niech W = U \ {A} {B}. Relację δ A B (R) typu W nazywamy przemianowaniem w relacji R atrybutu A na atrybut B, wtedy i tylko wtedy, gdy δ A B (R) = { t KROTKA (W ) : r R t = π U\{A} (r) [B : r (A)] }. 3.4. Iloczyn kartezjański (ang. cross join, Cartesian product) Niech R (X) i S (Y ) będą relacjami typu odpowiednio X i Y, gdzie X = {A 1, A 2,..., A n }, Y = {B 1, B 2,..., B m }. Określmy prefiksowanie atrybutów relacji R i S w następujący sposób R.X = {R.A 1, R.A 2,..., R.A n }, S.Y = {S.B 1, S.B 2,..., S.B m }. Iloczynem kartezjańskim relacji R i S nazywamy relację R S typu R.X S.Y, wtedy i tylko wtedy, gdy R S = {t KROTKA (R.X S.Y ) : π R.X (t) = R π S.Y (t) = S}. 3.5. Złączenie (ang. join) Relację R S typu X Y nazywamy złączeniem naturalnym (ang. natural join) relacji R (X) i S (Y ), wtedy i tylko wtedy, gdy R S = {t KROTKA (X Y ) : π X (t) = R π Y (t) = S}, albo równoważnie R S = (t KROTKA (X Y ) : r R s S t = r s).

Jeżeli R i S są relacjami odpowiednio typu X i Y oraz X = Y, to R S = R S, z kolei jeżeli X Y =, to R S = R S. Właściwości dla relacji R, S, T typu U: a) R {ɛ} = R, b) R =, c) R π X {R} = R, gdzie X U, d) R π X (R) π Y (R), gdzie X Y = U, e) R S = S R f ) R (S T ) = (R S) T. 3.6. θ-złączenie, theta-złączenie (θ-join) Niech R (X), S (Y ) będą relacjami odpowiednio typu X i Y, gdzie X = {A 1, A 2,..., A n }, Y = {B 1, B 2,... B m } i niech θ {=,, <,, >,, like,... }. Relację R F S typu X Y nazywamy θ-złączeniem relacji R i S względem warunku złączenia F (analogicznie jak warunek selekcji), wtedy i tylko wtedy, gdy R F S = {t R S : F (t) = TRUE}. θ-złączenie jest więc selekcją z iloczynu kartezjańskiego, a zatem R F S = σ F (R S). 3.7. Złączenia zewnętrzne (ang. outer join) (a) Złączenie zewnętrzne lewostronne (ang. left outer join) Relację R+ F S typu X Y nazywamy złączeniem zewnętrznym lewostronnym relacji R (X) i S (Y ), wtedy i tylko wtedy, gdy R+ F S = {t R S : F (t) = TRUE} {π X (t) null (Y \ X) : t R S F (t) TRUE}, czyli do wyniku należą wszystkie krotki relacji R (lewy operand) połączone albo z dopasowaną krotką z relacji S, albo uzupełniona wartościami NULL, gdy brak dopasowanej krotki (krotka s jest dopasowana do r, jeśli F (r s) = TRUE). (b) Złączenie zewnętrzne prawostronne (ang. right outer join) Relację R + F S typu X Y nazywamy złączeniem zewnętrznym prawostronnym relacji R (X) i S (Y ), wtedy i tylko wtedy, gdy R + F S = {t R S : F (t) = TRUE} {π Y (t) null (X \ Y ) : t R S F (t) TRUE}, czyli do wyniku należą wszystkie krotki relacji S (prawy operand) połączone albo z dopasowaną krotką z relacji R, albo uzupełniona wartościami NULL, gdy brak dopasowanej krotki. (c) Złączenie zewnętrzne pełne (ang. full outer join) Relację R+ + F S typu X Y nazywamy złączeniem zewnętrznym pełnym relacji R (X) i S (Y ), wtedy i tylko wtedy, gdy R+ + F S = (R+ F S) (R + F S).

3.8. Podzielenie (ang. division) Niech X U. Relację R S typu U \ X nazywamy podzieleniem relacji R (U) przez S (X), wtedy i tylko wtedy, gdy R S = { t π U\X (R) : s S t s R }. Własności podzielenia: a) R S = { t π U\X (R) : S = R [t, X] }, gdzie R [t, X] = {s π X (R) : t s R}. b) Jeśli przyjmiemy, że n = count (S), m = count (R [t, X]), gdzie t R [U \ X] i m = n, to t R S. Zadania Zadanie 1. Niech dom (IMIE) = { Adam, Ewa, Karol, Zofia }, dom (NAZW ISKO) = { Kowalska, Kowalski, Nowak }, dom (P RZEDMIOT ) = { ANA, BAD, MAD, SIK }, dom (OCENA) = {2, 3, 4, 5}, dom (P UNKT Y ) = {0, 1, 2,..., 220} dom (IN DEKS) = {111111, 222222, 333333, 444444, 555555, 666666} R 1 INDEKS IMIE NAZW ISKO 222222 Ewa Kowalska 333333 Zof ia Kowalska 555555 Ewa N owak R 2 INDEKS IMIE NAZW ISKO 111111 Adam Kowalski 444444 Karol N owak R 3 IMIE NAZW ISKO P UNKT Y Karol Kowalski 170 Ewa N owak 219 Zof ia N owak 165 R 4 INDEKS P RZEDMIOT OCENA 111111 AN A 4 222222 AN A 5 444444 AN A 2 555555 AN A 4 111111 BAD 3 444444 BAD 4 111111 MAD 3 222222 MAD 4 444444 MAD 5 666666 MAD 2 222222 SIK 2 444444 SIK 4 Dla podanych niżej operacji algebry relacji obliczyć wynik wykonania operacji o ile jest to możliwe (podać postać relacji wynikowej i zinterpretować wynik): a) S 1 = R 1 R 2, R 1 R 3, b) S 2 = π {P RZEDMIOT } (R 4 ), c) S 1, S 2, d) R 2 R 3,

e) ( π {IMIE} (S 1 ) π {NAZW ISKO} (S 1 ) ) \ π {IMIE, NAZW ISKO} (R 3 ), f) σ P UNKT Y >170 (R 3 ), g) σ (P RZEDMIOT = ANA P RZEDMIOT = BAD ) OCENA>2 (R 4 ), (podać kolejne kroki wartościowania), h) R 4 S 2, i) S 1 S1.INDEKS=R 4.INDEKS R 4, j) S 1 + S1.INDEKS=R 4.INDEKS R 4, k) S 1 + S1.INDEKS=R 4.INDEKSR 4, l) S 1 + + S1.INDEKS=R 4.INDEKSR 4. Zadanie 2. Udowodnij następujące własności operatora selekcji: a) σ E (R S) = σ E (R) σ E (S), b) σ E1 E 2 (R) = σ E1 (σ E2 (R)) = σ E2 (σ E1 (R)) = σ E1 (R) σ E2 (R), c) σ E1 E 2 (R) = σ E1 (R) σ E2 (R).