Relacyjny model danych. Relacyjny model danych

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

1 Wstęp do modelu relacyjnego

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

Relacyjny model danych

Język SQL. Rozdział 4. Funkcje grupowe Funkcje grupowe, podział relacji na grupy, klauzule GROUP BY i HAVING.

Język SQL. Rozdział 8. Język manipulowania danymi DML zadania

SQL do zaawansowanych analiz danych część 1.

Model relacyjny. Wykład II

Język SQL. Rozdział 8. Język manipulowania danymi DML

Model relacyjny. Wykład II

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

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

Podstawy SQL. 1. Wyświetl całość informacji z relacji ZESPOLY. 2. Wyświetl całość informacji z relacji PRACOWNICY

Bazy danych. Algebra relacji

Klasyczna Analiza Danych

Relacyjny model danych. Relacyjny model danych

Rozdział 1 Wprowadzenie do baz danych. (c) Instytut Informatyki Politechniki Poznańskiej 1

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

Przestrzenne bazy danych Podstawy języka SQL

Systemy baz danych. Notatki z wykładu

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Język SQL. Rozdział 6. Podzapytania Podzapytania proste i skorelowane, podzapytania w klauzuli SELECT i FROM, operatory ANY, ALL i EXISTS.

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Podzapytania. Rozdział 5. Podzapytania. Podzapytania wyznaczające wiele krotek (1) Podzapytania wyznaczające jedną krotkę

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Język SQL. Rozdział 7. Zaawansowane mechanizmy w zapytaniach

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

Normalizacja 1NF, 2NF, 3NF, BCNF, 4NF, 5NF

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

Bazy danych wykład drugi. Konrad Zdanowski

Wykład 2. Relacyjny model danych

Język SQL. Rozdział 2. Proste zapytania

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Bazy danych. Dr inż. Paweł Kasprowski

Transformacja modelu ER do modelu relacyjnego

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

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

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

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

Normalizacja. Wzorce projektowe semantyka atrybutów relacji. Ocena poprawności schematu

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

Rozdział 14 Funkcje analityczne

RBD Relacyjne Bazy Danych

Relacyjne systemy baz danych i język SQL

Technologie baz danych

Cel normalizacji. Tadeusz Pankowski

WYKŁAD 1. Wprowadzenie do problematyki baz danych

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

Systemy GIS Tworzenie zapytań w bazach danych

Widok Connections po utworzeniu połączenia. Obszar roboczy

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Procedury wyzwalane. (c) Instytut Informatyki Politechniki Poznańskiej 1

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

SZKOLENIE: Administrator baz danych. Cel szkolenia

Normalizacja. Pojęcie klucza. Cel normalizacji

Bazy Danych i Usługi Sieciowe

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2. zadania

ACESS- zadania z wykorzystaniem poleceń SQL

Bazy danych i usługi sieciowe

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

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

MongoDB. mini przewodnik. Instytut Informatyki, Politechnika Poznańska. v

Ćwiczenie rozpocznie się od wprowadzenia do laboratorium, po którym omówimy składnię ę polecenia INSERT pozwalającego ą na wstawianie krotek do

Przygotowanie do egzaminu. część I

MongoDB. mini przewodnik. Instytut Informatyki, Politechnika Poznańska. v

Laboratorium Bazy danych SQL 2

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

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

Projektowanie relacyjnych baz danych

Pojęcie zależności funkcyjnej

Autor: Joanna Karwowska

Relacyjny model danych

Relacyjne bazy danych. Podstawy SQL

Ćwiczenie 4 - połączenia

RBD Relacyjne Bazy Danych Więzy realcji

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

Wprowadzenie do języka SQL

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Technologie baz danych

Pożyczkobiorcy. Anomalia modyfikacji: Anomalia usuwania: Konta_pożyczkowe. Anomalia wstawiania: Przykłady anomalii. Pożyczki.

Tworzenie tabeli przez select CREATE TABLE PRAC2 AS SELECT P.NAZWISKO, Z.NAZWA FROM PRAC P NATURAL JOIN ZESP Z

Procedury wyzwalane. Rozdział 13. Procedury wyzwalane. Cele stosowania procedur wyzwalanych. Definiowanie procedury wyzwalanej DML

Ćwiczenie 6 - DML. Tworzenie, modyfikacja i usuwanie krotek. Podstawy poleceń COMMIT i ROLLBACK. Ćwiczenie 6 DML. Wymagania: Bazy Danych

Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

Relacyjne bazy danych. Podstawy SQL

Podstawy języka SQL cz. 2

Ćwiczenie zapytań języka bazy danych PostgreSQL

Normalizacja schematów logicznych relacji

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

Funkcje. Rozdział 3. Funkcje. Funkcje znakowe (1) Funkcje wierszowe

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

Transformacja modelu ER do modelu relacyjnego

Projekt jest finansowany ze środków Unii Europejskiej, Europejskiego Funduszu Społecznego i budŝetu państwa. Studia Podyplomowe dla Nauczycieli

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

Autor: Joanna Karwowska

Transkrypt:

1 Plan rozdziału 2 Relacyjny model danych Relacyjny model danych - pojęcia podstawowe Ograniczenia w modelu relacyjnym Algebra relacji - podstawowe operacje projekcja selekcja połączenie operatory mnogościowe Algebra relacji - operacje rozszerzone grupowanie i funkcje agregujące połączenie zewnętrzne Relacyjny model danych 3 Domena 4 Historia E.Codd, "A Relational Model for Large Shared Data Banks", 1970 projekty badawcze: IBM System R, Berkeley Ingres projekty komercyjne: Ingres, Oracle, DB2, Sybase, Informix Podstawowe cechy: relacyjne struktury danych, dostępność operatorów algebry relacji umożliwiających tworzenie, wyszukiwanie i modyfikowanie danych, możliwość definiowania ograniczeń integralnościowych i referencyjnych Domena (ang. domain) to zbiór atomowych (niepodzielnych) wartości. Każda domena posiada typ danych oraz format. Przykłady domen numer telefonu stacjonarnego: ciąg 10 cyfr rozpoczynający się od 0 numer PESEL: ciąg 11 cyfr wiek pracownika: liczba z przedziału <18,70> nazwa departamentu: ciąg znaków, np. Informatyka, Fizyka Domena atrybutu A i jest oznaczana przez dom(a i )

Schemat relacji 5 Relacja 6 Schemat relacji R (ang. relation schema) oznaczony przez R(A 1,A 2,...,A n ) składa się z nazwy relacji R oraz listy atrybutów. Każdy atrybut A i jest nazwą roli pełnionej przez pewną domenę D w schemacie relacji R. Stopniem relacji (ang. degree) nazywamy liczbę atrybutów w schemacie relacji. Relacja (ang. relation) r schematu relacji R(A 1,A 2,...,A n ), oznaczona przez r(r), to zbiór krotek r={t 1,t 2,...,t m }, gdzie każda krotka t jest uporządkowaną listą n wartości t=<v 1,v 2,...,v n > i każda wartość v i jest elementem domeny dom(a i ) lub specjalną wartością null. I-tą wartość w krotce t (wartość atrybutu A i ) oznaczamy przez t[a i ] Alternatywna definicja relacji Relacja r(r) jest matematyczną relacją stopnia n na domenach dom(a 1 ), dom(a 2 ),..., dom(a n ), która jest podzbiorem iloczynu kartezjańskiego domen, r(r) dom(a 1 ) dom(a 2 )... dom(a n ) Przykład schematu relacji Przykład krotki PRACOWNIK(PESEL, Nazwisko, DataUr, Etat, Telefon, Pensja) <72011802672, Kowalski, 18-10-1972, Adiunkt, 3490, 3200> Cechy relacji (1/2) 7 Cechy relacji (2/2) 8 Porządek krotek w relacji relacja jest zbiorem krotek, w związku z czym porządek krotek jest nieistotny, relacja reprezentuje znane fakty na poziomie logicznym, na którym może istnieć wiele alternatywnych porządków między krotkami Porządek wartości w krotce krotka jest uporządkowaną listą n wartości, stąd dwie krotki o tych samych wartościach i różnym porządku atrybutów są różne porządek wartości w krotce jest nieistotny o ile można zapewnić jednoznaczną odpowiedniość wartości i atrybutów Relacja r schematu relacji R(A 1,A 2,...,A n ) jest skończonym zbiorem odwzorowań r={t 1,t 2,...,t m }, gdzie każde t i jest odwzorowaniem schematu R na zbiór D, gdzie D jest sumą zbiorową domen atrybutów D=dom(A 1 ) dom(a 2 )... dom(a n ). Wartości w krotkach wartości atrybutów są niepodzielne z punktu widzenia modelu relacyjnego, atrybuty złożone i wielowartościowe są niedozwolone specjalna wartość null jest wykorzystywana do oznaczania wartości nieznanych istniejących lecz niedostępnych nie stosujących się do danej krotki nie stosujących się do danej krotki Interpretacja relacji schemat relacji jest asercją (deklaracją) dotyczącą struktury pewnej klasy obiektów, każda krotka reprezentuje fakt (o encji lub związku) schemat relacji jest predykatem, każda krotka jest zbiorem wartości spełniających predykat

Nadklucze i klucze 9 Klucze obce 10 Nadklucz relacji R(A 1,A 2,...,A n ) (ang. superkey) to każdy podzbiór zbioru atrybutów SK={A i,...,a m } taki, że żadne dwie różne krotki t 1 i t 2 należące do dowolnego stanu relacji r(r) nie posiadają tej samej kombinacji wartości atrybutów nadklucza, tzn. t 1,t 2 r(r) t 1 [SK] t 2 [SK] zbiór wszystkich atrybutów relacji jest nadkluczem relacji atrybuty w nadkluczu mogą być nadmiarowe unikalność nadklucza jest prawdziwa dla wszystkich stanów relacji Klucz relacji R(A 1,A 2,...,A n ) (ang. key) to minimalny nadklucz, tzn. taki zbiór atrybutów K={A i,...,a m }, że usunięcie dowolnego atrybutu ze zbioru K pozostawia zbiór atrybutów nie będący nadkluczem R. jeśli relacja posiada wiele kluczy, to każdy klucz jest kluczem kandydującym (ang. candidate key), a jeden klucz jest wybierany jako klucz podstawowy relacji (ang. primary key) żaden atrybut wchodzący w skład klucza nie może być pusty Zbiór atrybutów FK={A i,...,a m } w relacji R 1 jest kluczem obcym (ang. foreign key) relacji R 1 wskazującym na relację R 2 jeśli atrybuty ze zbioru FK należą do tych samych domen co atrybuty w kluczu podstawowym PK relacji R 2 wartości atrybutów ze zbioru FK w krotce t 1 stanu relacji r 1 (R 1 ) albo występują jako wartości atrybutów ze zbioru PK w krotce t 2 stanu relacji r 2 (R 2 ), lub są puste ograniczenie referencyjne (ang. referential integrity constraints) służą do zachowywania spójności między wieloma relacjami klucze obce reprezentują związki między wystąpieniami encji klucz obcy może wiązać relację z samą sobą, reprezentuje wówczas związek unarny między wystąpieniami tej samej encji Ograniczenia 11 Przykład 12 Więzy integralności (ang. integrity constraints) to ograniczenia kojarzone z obiektami bazy danych. PRACOWNICY ID_PRAC NAZWISKO ID_ZESP ID_SZEFA PLACA_POD PLACA_DOD ZATRUDNIONY Typy więzów integralności unikalność krotek relacji: klucz podstawowy, klucz unikalny ograniczenia referencyjne: klucz obcy integralność krotki: dziedzina atrybutu, format wartości, związki między atrybutami w krotce ograniczenia zbioru krotek ograniczenia statyczne: atrybuty muszą spełniać ograniczenia statyczne w każdym możliwym stanie relacji R ograniczenia dynamiczne: związane z przejściem bazy danych z jednego stanu w inny stan ZESPOLY ID_ZESP NAZWA ADRES PROJEKTY ID_PROJEKTU NAZWA OPIS PRACUJE_NAD ID_PROJEKTU ID_PRAC ROLA LICZBA_GODZIN klucze podstawowe oznaczamy ciągłym podkreśleniem klucze obce oznaczamy przerywanym podkreśleniem

Naruszanie ograniczeń 13 Algebra relacji 14 Wstawianie nowych krotek (INSERT) możliwe naruszenie klucza podstawowego, unikalnego, obcego, naruszenie ograniczeń związanych z domeną atrybutu, formatem wartości lub związkami między wartościami w krotce możliwe strategie: odrzucenie wstawienia, naprawa wstawienia Usuwanie krotek (DELETE) możliwe naruszenie klucza obcego (usunięcie krotki która jest wskazywana przez istniejące klucze obce) możliwe strategie: odrzucenie usunięcia, usunięcie kaskadowe, zamiana wartości w zależnych krotkach (np. na wartość null) Modyfikowanie istniejących krotek (UPDATE) traktowane jako sekwencja usunięcia krotki i wstawienia nowej Algebra relacji (ang. relational algebra) to zbiór operacji zdefiniowanych w modelu relacyjnym. Operacje działają na relacjach i wynikiem każdej operacji jest nowa relacja. Sekwencja operacji algebry relacji to wyrażenie algebry relacji, którego wynikiem także jest relacja. Podstawowe operacje algebry relacji: selekcja: wybór krotek relacji spełniających określone warunki, projekcja: zawężenie relacji do podzbioru atrybutów, połączenie: łączenie krotek należących do różnych relacji, operatory mnogościowe (suma, iloczyn, różnica, iloraz): implementacja klasycznych operatorów zbiorowych, operatory zaawansowane: agregacja, grupowanie, połączenia i sumy zewnętrzne, domknięcie relacji. Selekcja (1/2) 15 Selekcja (2/2) 16 Wynikiem operacji selekcji jest zbiór krotek relacji spełniających określony warunek, zwany warunkiem selekcji. ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD NAZWA 100 WEGLARZ 68/01/01 1730.00 420.50 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 120 SLOWINSKI 100 77/09/01 1070.00 130 BRZEZINSKI 100 68/07/01 960.00 140 MORZY 130 75/09/15 830.00 105.00 150 KROLIKOWSKI 130 77/09/01 645.50 160 KOSZLAJDA 130 85/03/01 590.00 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 180 MAREK 100 85/02/20 410.20 200 ZAKRZEWICZ 140 94/07/15 208.00 210 BIALY 130 93/10/15 250.00 170.60 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 Cechy operatora selekcji wyrażenie selekcji może składać się z wielu klauzul, klauzule mogą być łączone za pomocą operatorów AND, OR, NOT σ PLACA_POD<1000 AND (NAZWA='' OR NAZWA='') (PRACOWNICY) operator selekcji stosowany jest do relacji, więc jego argumentem może być nazwa relacji lub wyrażenie algebry relacji σ ='' (σ PLACA_POD>1500 (PRACOWNICY)) σ ='' (PRACOWNICY) ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD NAZWA 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 stopień wyniku selekcji jest taki sam jak stopień oryginalnej relacji relacja wynikowa zawiera niewięcej krotek niż relacja źródłowa operacja selekcji jest komutatywna σ ZATRUDNIONY > 01.01.2005 (σ PLACA_POD<800 (PRACOWNICY)) = σ PLACA_POD<800 (σ ZATRUDNIONY > 01.01.2005 (PRACOWNICY))

Projekcja (1/2) 17 Projekcja (2/2) 18 Wynikiem operacji projekcji jest zbiór krotek relacji ograniczony do wybranego podzbioru atrybutów. ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD NAZWA 100 WEGLARZ 68/01/01 1730.00 420.50 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 120 SLOWINSKI 100 77/09/01 1070.00 130 BRZEZINSKI 100 68/07/01 960.00 140 MORZY 130 75/09/15 830.00 105.00 150 KROLIKOWSKI 130 77/09/01 645.50 160 KOSZLAJDA 130 85/03/01 590.00 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 180 MAREK 100 85/02/20 410.20 200 ZAKRZEWICZ 140 94/07/15 208.00 210 BIALY 130 93/10/15 250.00 170.60 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 π NAZWISKO,,ZATRUDNIONY (PRACOWNICY) NAZWISK ZATRUDNIONY WEGLARZ 68/01/01 BLAZEWIC 73/05/01 SLOWINSK 77/09/01 BRZEZINSK 68/07/01 MORZY 75/09/15 KROLIKOW 77/09/01 KOSZLAJDA 85/03/01 JEZIERSKI 92/10/01 MATYSIAK 93/09/01 MAREK 85/02/20 ZAKRZEWI 94/07/15 BIALY 93/10/15 KONOPKA 93/10/01 HAPKE 92/09/01 Cechy operatora projekcji kolejność atrybutów w relacji wynikowej jest taka sama, jak kolejność atrybutów w liście projekcji operatora jeśli na liście projekcji nie ma atrybutów klucza podstawowego (czyli w relacji wynikowej mogą się pojawić duplikaty), to operator projekcji usuwa wszystkie duplikaty liczba krotek w relacji wynikowej jest niewiększa niż liczba krotek w relacji źródłowej operacja projekcji nie jest komutatywna π A (π B (R)) = π A (R), pod warunkiem że A B Przemianowanie 19 Operatory mnogościowe (1/2) 20 ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD NAZWA 100 WEGLARZ 68/01/01 1730.00 420.50 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 120 SLOWINSKI 100 77/09/01 1070.00 130 BRZEZINSKI 100 68/07/01 960.00 140 MORZY 130 75/09/15 830.00 105.00 150 KROLIKOWSKI 130 77/09/01 645.50 160 KOSZLAJDA 130 85/03/01 590.00 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 180 MAREK 100 85/02/20 410.20 200 ZAKRZEWICZ 140 94/07/15 208.00 210 BIALY 130 93/10/15 250.00 170.60 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 W SLOWINSKI ZAKRZEWICZ BIALY HAPKE π NAZWISKO (σ NAZWA='' (PRACOWNICY)) T σ NAZWA='' (PRACOWNICY) W π NAZWISKO (T) ρ (W) (π NAZWISKO (σ NAZWA='' (PRACOWNICY))) Relacje R(A 1,...,A n ) i S(B 1,...,B n ) są zbiorowo kompatybilne (ang. union compatible) jeśli mają ten sam stopień n i dom(a i )=dom(b i ) dla 1 i n. ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD NAZWA 100 WEGLARZ 68/01/01 1730.00 420.50 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 120 SLOWINSKI 100 77/09/01 1070.00 130 BRZEZINSKI 100 68/07/01 960.00 140 MORZY 130 75/09/15 830.00 105.00 150 KROLIKOWSKI 130 77/09/01 645.50 160 KOSZLAJDA 130 85/03/01 590.00 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 180 MAREK 100 85/02/20 410.20 200 ZAKRZEWICZ 140 94/07/15 208.00 210 BIALY 130 93/10/15 250.00 170.60 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 R S R π (σ NAZWA='' (PRACOWNICY)) S π (σ NAZWA='' (PRACOWNICY))

Operatory mnogościowe (2/2) 21 Produkt kartezjański 22 Typy operatorów suma (ang. union): wynikiem sumy R S jest relacja zawierająca wszystkie krotki z R i S (duplikaty są eliminowane) iloczyn (ang. intersection): wynikiem iloczynu R S jest relacja zawierająca wszystkie krotki należące zarówno do R jak i do S różnica (ang. difference): wynikiem różnicy R-S jest relacja zawierająca te krotki z R, które nie należą do S Cechy operatorów suma i iloczyn są komutatywne: R S=S R, R S=S R suma i iloczyn są łączne: R (S T)=(R S) T, R (S T)=(R S) T różnica nie jest komutatywna: R-S S-R X NAZWA R π (PRACOWNICY) π NAZWA (PRACOWNICY) wynikiem iloczynu kartezjańskiego relacji R(A 1,...,A n ) i S(B 1,...,B m ) jest relacja Q(A 1,...,A n,b 1,...,B m ) zawierająca jedną krotkę dla każdej kombinacji krotek z R i S, Q = R * S iloczyn kartezjański jako samodzielna operacja najczęściej pozbawiony jest sensu NAZWA Połączenie (1/2) ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIPLACA_POD PLACA_DODPID_ZESP 100 WEGLARZ 68/01/01 1730.00 420.50 10 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 40 120 SLOWINSKI 100 77/09/01 1070.00 30 130 BRZEZINSKI 100 68/07/01 960.00 20 140 MORZY 130 75/09/15 830.00 105.00 20 150 KROLIKOWSKI 130 77/09/01 645.50 20 160 KOSZLAJDA 130 85/03/01 590.00 20 170 JEZIERSKI 130 92/10/01 439.70 80.50 20 190 MATYSIAK 140 93/09/01 371.00 20 180 MAREK SEKRETAR 100 85/02/20 410.20 10 200 ZAKRZEWICZ 140 94/07/15 208.00 30 210 BIALY 130 93/10/15 250.00 170.60 30 220 KONOPKA 110 93/10/01 480.00 20 230 HAPKE 120 92/09/01 480.00 90.00 30 ZID_ZESP NAZWA ADRES 10 PIOTROWO 3A 20 PIOTROWO 3A 30 STRZELECKA 14 40 WLODKOWICA 16 50 BADANIA OPERACYJNE MIELZYNSKIEGO 30 R PRACOWNICY ZESPOLY S σ PID_ZESP=ZID_ZESP (R) T π ID_PRAC,NAZWISKO,PID_ZESP,NAZWA (S) U ρ (ID_PRAC,PRACOWNIK,ID_ZESP,ZESPOL) (T) S PRACOWNICY ID_PRAC PRACOWNIK ID_ZESP ZESPOL 100 WEGLARZ 10 180 MAREK 10 160 KOSZLAJDA 20 220 KONOPKA 20 190 MATYSIAK 20 170 JEZIERSKI 20 150 KROLIKOWSKI 20 130 BRZEZINSKI 20 140 MORZY 20 230 HAPKE 30 210 BIALY 30 200 ZAKRZEWICZ 30 PID_ZESP=ZID_ZESPZESPOLY 120 SLOWINSKI 30 110 BLAZEWICZ 40 23 Połączenie (2/2) wynikiem operacji połączenia relacji R(A 1,...,A n ) i S(B 1,...,B m ) jest relacja Q(A 1,...,A n,b 1,...,B m ) zawierająca jedną krotkę dla każdej kombinacji krotek z R i S spełniających warunek połączenia ogólna postać operatora połączenia to R warunek S, gdzie warunek to ciąg wyrażeń A i ΘB j, A i jest atrybutem z R, B j jest atrybutem z S, dom(a i )=dom(b j ) i Θ {=,<,>,,, } rodzaje operacji połączenia połączenie typu theta: dowolny warunek połączenia połączenie równościowe: warunek połączenia tylko z operatorem = połączenie naturalne: połączenie równościowe, w którym pary atrybutów w łączonych relacjach mają tę samą nazwę R PRACOWNICY ZESPOLY relacja wynikowa R S zawiera między 0 i R * S krotek, stosunek liczby krotek do R * S nazywa się selektywnością połączenia 24

Funkcjonalna pełność 25 Iloraz 26 Można udowodnić, że zbiór operatorów algebry relacji {σ,π,,-, } jest zbiorem funkcjonalnie pełnym, tzn. dowolne wyrażenie algebry relacji może zostać przedstawione w postaci sekwencji operatorów z powyższego zbioru iloczyn R S (R S)-((R-S) (S-R)) połączenie R C S σ C (R S) Operator ilorazu zbiorowego (ang. division) stosowany jest do dwóch relacji R(Z) S(X), gdzie X Z. Niech Y=Z-X. Wynikiem ilorazu R(Z) S(X) jest relacja T(Y)={ t[y]: t R s S (t[y] s) R) } Przykład znajdź nazwy zespołów w których występują wszystkie etaty występujące w zespole "Systemy eksperckie" R NAZWA S R S R S Agregacja i grupowanie Funkcje agregujące są wyliczane na podstawie grup wartości, grupy są tworzone na podstawie listy atrybutów grupujących, gdzie wszystkie krotki w jednej grupie posiadają te same wartości atrybutów grupujących rodzaje funkcji: SUM, AVERAGE, MIN, MAX, COUNT ID_PRAC NAZWISKO ID_SZEFA ZATRUDNIONY PLACA_POD PLACA_DOD 150 KROLIKOWSKI 130 77/09/01 645.50 160 KOSZLAJDA 130 85/03/01 590.00 170 JEZIERSKI 130 92/10/01 439.70 80.50 190 MATYSIAK 140 93/09/01 371.00 220 KONOPKA 110 93/10/01 480.00 230 HAPKE 120 92/09/01 480.00 90.00 100 WEGLARZ 68/01/01 1730.00 420.50 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 120 SLOWINSKI 100 77/09/01 1070.00 130 BRZEZINSKI 100 68/07/01 960.00 140 MORZY 130 75/09/15 830.00 105.00 180 MAREK 100 85/02/20 410.20 200 ZAKRZEWICZ 140 94/07/15 208.00 210 BIALY 130 93/10/15 250.00 170.60 COUNT(ID_PRAC) AVG(PLACA_POD) SUM(PLACA_DOD) 2 617.75 4 1052.50 315.00 I COUNT(ID_PRAC) AVG(PLACA_POD) SUM(PLACA_POD) 1 1730.00 420.50 2 229.00 170.60 4 442.68 170.50 1 410.20 27 Połączenie zewnętrzne (1/2) ID_PRAC NAZWISKO ID_SZEFA ZATRUDNI PLACA_POD PLACA_DOD PID_ZESP 100 WEGLARZ 68/01/01 1730.00 420.50 10 110 BLAZEWICZ 100 73/05/01 1350.00 210.00 40 120 SLOWINSKI 100 77/09/01 1070.00 30 130 BRZEZINSKI 100 68/07/01 960.00 20 140 MORZY 130 75/09/15 830.00 105.00 20 150 KROLIKOWSKI 130 77/09/01 645.50 20 160 KOSZLAJDA 130 85/03/01 590.00 20 170 JEZIERSKI 130 92/10/01 439.70 80.50 20 190 MATYSIAK 140 93/09/01 371.00 20 180 MAREK 100 85/02/20 410.20 10 200 ZAKRZEWICZ 140 94/07/15 208.00 30 210 BIALY 130 93/10/15 250.00 170.60 30 220 KONOPKA 110 93/10/01 480.00 20 230 HAPKE 120 92/09/01 480.00 90.00 30 ID_PRAC NAZWISKO ID_ZESP NAZWA 100 WEGLARZ 10 180 MAREK 10 160 KOSZLAJDA 20 220 KONOPKA 20............ null null 50 BADANIA OPERACYJNE??? ZID_ZESP NAZWA ADRES 10 PIOTROWO 3A 20 PIOTROWO 3A 30 STRZELECKA 14 40 WLODKOWICA 16 50 BADANIA OPERACYJNE MIELZYNSKIEGO 30 S PRACOWNICY PID_ZESP=ZID_ZESP ZESPOLY 28

Połączenie zewnętrzne (2/2) 29 Pytania 30 wynikiem tradycyjnego połączenia jest zbiór tylko tych krotek z relacji R i S, które spełniają kryteria połączenia połączenie zewnętrzne (ang. outer join) umożliwia pozostawienie w wyniku także tych krotek, dla których nie znaleziono odpowiednika w łączonej tabeli Typy połączeń zewnętrznych połączenie lewostronne R S: zawiera wszystkie krotki z relacji R połączone z odpowiadającymi im krotkami w relacji S (lub połączone z pustą krotką, jeśli nie znaleziono odpowiednika w S) połączenie prawostronne R S: zawiera wszystkie krotki z relacji S połączone z odpowiadającymi im krotkami w relacji R (lub połączone z pustą krotką, jeśli nie znaleziono odpowiednika w R) połączenie obustronne R S: zawiera wszystkie krotki z obu łączonych relacji R i S wraz z odpowiadającymi im krotkami z drugiej relacji (lub połączone z pustą krotką) Zdefiniuj poniższe pojęcia: domena, atrybut, krotka, schemat relacji, stan relacji, stopień relacji Odpowiedz na pytania: dlaczego porządek krotek w relacji jest nieistotny? jaka jest różnica między kluczem podstawowym a unikalnym? jaka jest różnica między połączeniem i połączeniem zewnętrznym? Zadania: podaj przykład połączenia theta, równościowego i naturalnego podaj przykłady operacji INSERT, UPDATE i DELETE które naruszyłyby spójność relacji PRACOWNICY podaj własny przykład zastosowania operatorów mnogościowych Zadania 31 PRACOWNICY ID_PRAC NAZWISKO ID_SZEFA ZATRUDNI PLACA_POD PLACA_DOD PID_ZESP ZESPOLY ZID_ZESP NAZWA ADRES Wykorzystując powyższy schemat napisz poniższe zapytania przy wykorzystaniu operatorów algebry relacji wyświetl nazwiska adiunktów i asystentów zarabiających poniżej 500 wyświetl nazwiska i etaty pracowników pracujących w zespole o nazwie "Administracja" wyświetl nazwisko pracownika będącego szefem Morzego wyświetl nazwisko najlepiej zarabiającego pracownika wyświetl nazwy zespołów zatrudniających więcej niż 2 pracowników