Relacyjny model danych. 2 Model danych Struktury danych Ograniczenia integralnościowe Operacje.

Slides:



Advertisements
Podobne prezentacje
2.Relacyjny model baz danych
Advertisements

Bazy danych 4. Algebra relacji P. F. Góra
Relacyjny model danych
Bazy danych 8. SQL podstawy P. F. Góra semestr letni 2004/05.
4. Relacyjny model baz danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 2: Język bazy danych - SQL Proste zapytania.
SQL-owskie szlaki górskie
Język SQL – ciąg dalszy DML (Data Manipulation Language)
Język SQL (Structured Query Language) DDL (Data Definition Language)
SQL – zapytania posumowanie
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
Temat 2: Podstawy programowania Algorytmy – 1 z 2 _________________________________________________________________________________________________________________.
Proces doboru próby. Badana populacja – (zbiorowość generalna, populacja generalna) ogół rzeczywistych jednostek, o których chcemy uzyskać informacje.
1 TREŚĆ UMOWY O PRACĘ : Umowa o pracę określa strony umowy, rodzaj umowy, datę jej zawarcia oraz warunki pracy i płacy, w szczególności: 1) rodzaj pracy,
Równowaga chemiczna - odwracalność reakcji chemicznych
Ekonometria WYKŁAD 10 Piotr Ciżkowicz Katedra Międzynarodowych Studiów Porównawczych.
1 Dr Galina Cariowa. 2 Legenda Iteracyjne układy kombinacyjne Sumatory binarne Sumatory - substraktory binarne Funkcje i układy arytmetyczne Układy mnożące.
1. 2 Przed sprawdzianem/egzaminem 3 Przygotowania do sprawdzianu/egzaminu Przygotowania Styczeń – ostatnie zmiany w danych przekazanych OKE Luty – powołanie.
Przewodnik po raportach rozliczeniowych w Condico Clearing Station (Rynek finansowy)
Postanowienie Śląskiego Kuratora Oświaty w Katowicach z dnia 29 stycznia 2016 r. w sprawie terminów składania dokumentów i terminów rekrutacji uczniów.
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.
SPORZĄDZANIE PROJEKTÓW UMÓW. Inter – Group sp.k. sp. z.o.o. jest właścicielem nieruchomości, składającej się z działki gruntu zabudowanej budynkiem biurowym,
Teoria gry organizacyjnej Każdy człowiek wciąż jest uczestnikiem wielu różnych gier. Teoria gier zajmuje się wyborami podejmowanymi przez ludzi w warunkach.
Wyszukiwanie informacji w Internecie. Czym jest wyszukiwarka? INTERNET ZASOBY ZAINDEKSOWANE PRZEZ WYSZUKIWARKI Wyszukiwarka to mechanizm, który za pomocą.
© 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.
Sesja czerwcowa 2010 Organizacja etapu praktycznego egzaminu potwierdzającego kwalifikacje zawodowe.
WYBORY DO SEJMU I DO SENATU RZECZYPOSPOLITEJ POLSKIEJ 2015 zarządzone na dzień 25 października 2015 r. WARUNKI WAŻNOŚCI GŁOSU.
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.
 Czasem pracy jest czas, w którym pracownik pozostaje w dyspozycji pracodawcy w zakładzie pracy lub w innym miejscu wyznaczonym do wykonywania pracy.
Ryzyko a stopa zwrotu. Standardowe narzędzia inwestowania Analiza fundamentalna – ocena kondycji i perspektyw rozwoju podmiotu emitującego papiery wartościowe.
Poczta elektroniczna – e- mail Gmail zakładanie konta. Wysyłanie wiadomości.
Literary Reference Center Przewodnik
EWALUACJA PROJEKTU WSPÓŁFINANSOWANEGO ZE ŚRODKÓW UNII EUROPEJSKIE J „Wyrównywanie dysproporcji w dostępie do przedszkoli dzieci z terenów wiejskich, w.
EGZAMIN USTNY ZGŁASZANIE SIĘ NA EGZAMIN Zdający winien zgłosić się ok. 20 minut przed wyznaczonym czasem zdawania egzaminu.
Analiza wariancji (ANOVA) Zakład Statystyki Stosowanej Instytut Statystyki i Demografii Kolegium Analiz Ekonomicznych Szkoła Główna Handlowa w Warszawie.
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ą
Analiza tendencji centralnej „Człowiek – najlepsza inwestycja”
Funkcja liniowa Przygotował: Kajetan Leszczyński Niepubliczne Gimnazjum Przy Młodzieżowym Ośrodku Wychowawczym Księży Orionistów W Warszawie Ul. Barska.
Algorytmy Informatyka Zakres rozszerzony
Opodatkowanie spółek Podziały Spółek. Podziały spółek Rodzaje podziałów wg KSH Przewidziane są cztery sposoby podziału: 1) podział przez przejęcie, który.
KOMBINATORYKA.
MATURA 2007 podstawowe informacje o zmianach w egzaminie.
Matematyka przed egzaminem czyli samouczek dla gimnazjalisty Przygotowała Beata Czerniak FUNKCJE.
Teoria masowej obsługi Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Menu Jednomiany Wyrażenia algebraiczne -definicja Mnożenie i dzielenie sum algebraicznych przez jednomian Mnożenie sum algebraicznych Wzory skróconego.
Python. Języki Programistyczne Microcode Machine code Assembly Language (symboliczna reprezentacja machine code) Low-level Programming Language (FORTRAN,
I T P W ZPT 1 Realizacje funkcji boolowskich Omawiane do tej pory metody minimalizacji funkcji boolowskich związane są z reprezentacją funkcji w postaci.
Optymalna wielkość produkcji przedsiębiorstwa działającego w doskonałej konkurencji (analiza krótkookresowa) Przypomnijmy założenia modelu doskonałej.
Metody sztucznej inteligencji - Technologie rozmyte i neuronowe 2015/2016 Perceptrony proste nieliniowe i wielowarstwowe © Kazimierz Duzinkiewicz, dr hab.
Usługa ePodatki (MF) Michał Dobrzyński, Departament Informatyki MRPiPS tel
Usługa PUE-ZUS (Platforma Usług Elektronicznych Zakładu Ubezpieczeń Społecznych) Michał Dobrzyński, Departament Informatyki MRPiPS
W KRAINIE CZWOROKĄTÓW.
WYDZIAŁ OSWIATY URZEDU MIASTA POZNANIA REKRUTACJA ZASADY REKRUTACJI DO SZKÓŁ PONADGIMAZJALNYCH WSPOMAGANEJ SYSTEMEM KOMPUTEROWYM.
Warszawska Wyższa Szkoła Informatyki Andrzej Kuska Promotor : dr inż. Paweł Figat Konsultant : mgr inż. Andrzej Ptasznik.
Zapraszam na spotkanie z wyrażeniami algebraicznymi!
Algebra relacyjna Przykłady:
Minimalizacja automatu
Schematy blokowe.
Liczby pierwsze.
Elementy fizyki kwantowej i budowy materii
Tytuł – [najlepiej aby jak najtrafniej oddawał opisywane rozwiązanie]
ALGORYTMY I STRUKTURY DANYCH
Tytuł – [najlepiej aby jak najtrafniej oddawał opisywane rozwiązanie]
Grazyna Mirkowska Matematyka Dyskretna PJWSTK 2001
Zapis prezentacji:

Relacyjny model danych

2 Model danych Struktury danych Ograniczenia integralnościowe Operacje

3 Struktury danych Baza danych jest zbiorem relacji (tablic) Domena D jest zbiorem wartości atomowych Domena jest definiowana przez podanie typu danych, które mogą przyjmować wartości danych danej domeny Schemat relacji R, oznaczony przez R(A 1, A 2,..., A n ), składa się z nazwy relacji R oraz listy nazw atrybutów A 1, A 2,..., A n

4 Struktury danych Atrybut A i schematu relacji R opisuje rolę jaką pełni domena D w schemacie R D nazywamy domeną atrybutu A i w schemacie R i oznaczamy przez dom(A i ) Liczba atrybutów składających się na schemat relacji R nazywamy stopniem relacji STUDENT(Pesel, Nazwisko, Adres, Tel, Wiek, GPA)

5 Struktury danych Relacją r o schemacie R(A 1, A 2,..., A n ), oznaczoną r(R), nazywamy zbiór n-tek (krotek) postaci r={t 1, t 2,..., t m }. Pojedyncza krotka t jest uporządkowaną listą n wartości t=, gdzie v i, 1<i<n, jest elementem dom(A i ) lub specjalną wartością pustą (null value) I-ta wartość krotki t, odpowiadająca wartości atrybutu A i, będzie oznaczana przez t[A i ]

6 Struktury danych Relacja jest zbiorem krotek (k-wartości), które są listami wartości.

7 Alternatywna definicja relacji Wyświetlana relacja ma postać tablicy: krotki są wierszami tej tablicy. Nagłówki kolumn są atrybutami Relacja r(R) jest relacją matematyczną stopnia n zdefiniowaną na zbiorze domen dom(A 1 ), dom(A 2 ),..., dom(A n ) będącą podzbiorem iloczynu kartezjańskiego domen definiujących R: r(R)  dom(A 1 ) x dom(A 2 ) x... x dom(A n )

8 Baza danych Baza danych = zbiór relacji Schemat bazy danych = zbiór schematów relacji Relacja = zbiór krotek Schemat relacji = zbiór {atrybut, typ danej, [ograniczenia integralnościowe]} Krotka = lista atomowych wartości

9 Charakterystyka relacji Uporządkowanie krotek w relacji – nie jest elementem definicji Uporządkowanie wartości w ramach krotki – nie jest istotne Wartości atrybutów w ramach krotki (NFNF, puste, atomowe) Interpretacja relacji – rodzaj predykatu lub asercji

10 Ograniczenia integralnościowe (1) Ograniczenie domeny atrybutu Zbiór wartości domeny atrybutu może być zawężony przez wyrażenie logiczne do pewnego podzbioru: przedziału lub wyliczeniowej listy wartości Ograniczenie integralnościowe klucza relacji – unikalność krotek relacji Relacja jest zbiorem krotek, stąd, z definicji zbioru, wszystkie krotki relacji muszą być unikalne

11 Ograniczenia integralnościowe (2) Ograniczenie na unikalność krotek relacji (cd) Każdy podzbiór SK atrybutów relacji R, taki że dla każdych dwóch krotek ze zbioru r(R) zachodzi t1[SK]  t2[SK], jest nazywany nadkluczem (ang. super key) relacji R. Każda relacja musi mieć co najmniej jeden klucz – cały schemat relacji SK = {STUDENT.NrIndeksu}

12 Ograniczenia integralnościowe (3) Ograniczenie na unikalność krotek relacji (cd) Superklucz może posiadać nadmiarowe atrybuty. Kluczem K schematu relacji R nazywamy superklucz schematu R o takiej własności, że usunięcie dowolnego atrybutu A z K powoduje, że K’=K-A nie jest już superkluczem. Klucz jest minimalnym superkluczem zachowującym własność unikalność krotek relacji Schemat relacji może posiadać więcej niż jeden klucz

13 Ograniczenia integralnościowe (4) Ograniczenie integralności klucza podstawowego Jeden z kluczy relacji może być wyróżniony jako klucz podstawowy jednoznacznie identyfikujący krotki relacji. W związku z tym klucz podstawowy nie może przyjmować wartości pustych Pozostałe klucze schematu relacji nazywamy kluczami wtórnymi lub kandydującymi

14 Ograniczenia referencyjne Dane są relacje R1 i R2. Podzbiór FK atrybutów relacji R1 nazywany jest kluczem obcym R1 (ang. foreign key), jeżeli: Atrybuty w FK mają taką samą domenę jak atrybuty klucza podstawowego PK relacji R2 ; Dla każdej krotki t1 relacji R1 istnieje krotka t2 relacji R2, taka że: t1 [FK] = t2 [PK], lub t1 [FK] = null

15 Przykład Dane dwie relacje z ograniczeniami referencyjnymi Pracownicy Zespoły

16 Przykład (cd) Wstaw do relacji Pracownicy krotkę: t = Zmodyfikuj krotkę relacji Zespoły: t[Zespoły.IdZesp] = 30 dla t[Zespoły.IdZesp]=20 Usuń krotkę relacji Pracownicy, taką że: t[Nazwisko] = 'Tarzan'

17 Relacyjne języki dostępu do danych Algebra relacji, rachunek krotek SQL (Structured Query Language)- IBM, Oracle Quel- Ingres QBE (Query by Example)- IBM

18 Standard SQL Początek prac nad standardem języka bazy danych (DBTG – CODASYL) Początek prac nad standardem języka relacyjnej bazy danych (SQL) NDL (Network-structured Data Language) SQL86 ANSI SQL86 ISO SQL89 (ISO/ANSI) początek prac nad SQL SQL92 (ISO/ANSI) 1999/2000 – SQL 3 SQL 4

19 Podstawowe operacje algebry relacji Operacje na zbiorach –UNION, INTERSECTION, SET DIFFERENCE –CARTESIAN PRODUCT, DIVISION Operacje ‘relacyjne’ (opracowane dla relacyjnego modelu danych) –SELECT, PROJECT, JOIN –OUTER JOIN, GROUP BY

20 Operacja selekcji - SELECT przeznaczenie: wyodrębnienie podzbioru krotek relacji, które spełniają warunek selekcji notacja:  ( ), gdzie warunek selekcji jest zbiorem predykatów postaci: lub połączonych operatorami logicznymi: AND lub OR. Zbiór operatorów relacyjnych zawiera następujące elementy: {=, ,,  }

21 Operacja selekcji - Przykłady  IdPrac = 100 (Pracownicy)  Płaca > 1000 (Pracownicy)  (IdZesp=10 AND Płaca>1000) OR (IdZesp=20) AND Płaca>800) (Pracownicy)  Etat=‘Analityk’ AND (Płaca>=700 AND Płaca<1200) (Pracownicy) własności: operacja selekcji jest komutatywna:  (  (R))=  (  (R))

22 Operacja selekcji w języku SQL SELECT * FROM studenci WHERE rok_studiów = 4 AND średnia_ocen > 4.5 SELECT * FROM studenci WHERE UPPER(nazwisko) = ‘MORZY’ OR stypendium < zasiłek SELECT * FROM studenci WHERE (rok_studi ó w, typ_studi ó w, średnia) = (3, ‘ podyplomowe ’, 5)

23 Operacja projekcji - Project przeznaczenie: wyodrębnienie wybranych atrybutów relacji notacja:  ( ), gdzie lista atrybutów jest podzbiorem atrybutów ze schematu relacji własności: operacja projekcji nie jest komutatywna. Składanie operacji projekcji jest możliwe przy spełnieniu pewnych dodatkowych warunków:  (  (R))=  (R) jeżeli lista2 zawiera wszystkie atrybuty listy1

24 Operacja projekcji - Przykłady  Nazwisko, Etat (Pracownicy )  Etat (Pracownicy )  IdPrac, Nazwisko (Pracownicy )

25 Operacja projekcji w języku SQL (1) Rozszerzenia języka SQL Operacje na danych: +, -, *, /, || 1,22 * cena, cena – rabat, dochód / 12, imię || nazwisko Funkcje: arytmetyczne, znakowe, na datach, konwersji, ogólne UPPER(nazwisko), SIN(kąt), LN(podstawa), ROUND(składka, 1), TO_CHAR(data, ‘Day DD-MM-YYYY)

26 Operacja projekcji w języku SQL (2) SELECT upper(nazwisko), 12*płaca, nullif(premia, 0) FROM pracownicy Aliasy wyrażeń: wyrażenie AS alias TO_CHAR(data, ‘Day DD-MM-YYYY) AS data ROUND(składka, 1) AS składka_zaokrąglona

27 Usuwanie duplikatów SELECT [DISTINCT | ALL]... Przykłady: SELECT adres_miasto FROM studenci SELECT DISTINCT adres_miasto FROM studenci

28 Porządkowanie relacji wynikowej ORDER BY wyrażenie1 [ASC | DESC],... SELECT nazwisko FROM pracownicy ORDER BY zespół ASC, etat ASC, płaca DESC

29 Składanie operacji Sekwencja wielu operacji, w której kolejne operacje są wykonywane na pośrednich wynikach operacji poprzednich, może być zastąpiona pojedynczą operacją złożoną, powstałą przez zagnieżdżenie operacji elementarnych: Przykłady: PracownicyZesp10  IdZesp = 10 (Pracownicy) Wynik  IdPrac, Nazwisko (PracownicyZesp10 )  IdPrac, Nazwisko (  IdZesp = 10 (Pracownicy))

30 Operacje na zbiorach Kompatybilność relacji Dwie relacje: R(A 1,..., A n ) i S(B 1,...,B n ) są kompatybilne, jeżeli mają ten sam stopień i jeżeli dom(A i ) = dom(B i ) dla 1  i  n Operacje na zbiorach Dane są dwie kompatybilne relacje: R(A 1,..., A n ) i S(B 1,...,B n ). Operacje sumy, iloczynu i różnicy relacji R i S są zdefiniowane następująco:

31 Operacje na zbiorach suma: Wynikiem tej operacji, oznaczanej przez R  S, jest relacja zawierająca wszystkie krotki, które występują w R i wszystkie krotki, które występują w S, z wyłączeniem duplikatów krotek. Operacja sumy jest operacją komutatywną: R  S = S  R iloczyn: Wynikiem tej operacji, oznaczonej przez R  S, jest relacja zawierająca krotki występujące zarówno w R i S. Operacja iloczynu jest operacją komutatywną: R  S = S  R różnica: Wynikiem tej operacji, oznaczonej przez R- S, jest relacja zawierająca wszystkie krotki, które występują w R i nie występują w S. Operacja różnicy nie jest operacją komutatywną: R - S  S - R

32 Operacje na zbiorach - Przykłady UczniowieInstruktorzy Uczniowie  Instruktorzy Uczniowie  Instruktorzy Uczniowie - Instruktorzy Instruktorzy - Uczniowie

33 Operacje na zbiorach - SQL SELECT nr_konta, saldo FROM filia_A WHERE saldo > UNION SELECT konto_nr, SUM(operacje) FROM filia_B GROUP BY konto_nr SELECT imię, nazwisko, data_urodzenia FROM filia_A INTERSECT SELECT imię, nazwisko, data_urodzenia FROM filia_B SELECT imię, nazwisko, data_urodzenia FROM filia_A EXCEPT SELECT imię, nazwisko, data_urodzenia FROM filia_B

34 Iloczyn Kartezjański Dane są dwie relacje: R(A 1,..., A n ) i S(B 1,...,B m ). Wynikiem iloczynu kartezjańskiego relacji R i S, oznaczonym przez R x S, jest relacja Q stopnia n+m i schemacie: Q(A 1,..., A n, B 1,...,B m ). Krotkom w relacji Q odpowiadają wszystkie kombinacje krotek z relacji R i S. Jeżeli relacja R ma n r krotek, a relacja S ma n s krotek, to relacja Q będzie miała n r *n s krotek

35 Iloczyn Kartezjański - Przykład Pracownicy Zespoły Pracownicy x Zespoły

36 Operacja połączenia - JOIN przeznaczenie: łączenie na podstawie warunku połączeniowego wybranych krotek z dwóch relacji w pojedynczą krotkę notacja: operacja połączenia relacji R(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R S gdzie warunek połączeniowy jest zbiorem predykatów połączonych operatorami logicznymi AND. Predykaty są postaci: Ai θ Bj, gdzie Ai i Bj są atrybutami połączeniowymi, i Ai jest atrybutem R, a Bj jest atrybutem S, dom(Ai) = dom(Bj), i θ jest operatorem relacyjnym ze zbioru { , , , , ,  }.

37 Operacja połączenia - JOIN Ogólna postać operacji połączenia, gdzie jest dowolnym operatorem relacyjnym jest nazywana połączeniem typu THETA (ang. THETA JOIN) Operacja połączenia, dla której θ jest operatorem =, nazywana jest połączeniem równościowym (ang. EQUI JOIN) Operacja połączenia, dla której θ jest operatorem różnym od =, nazywana jest połączeniem nierównościowym (ang. NON-EQUI JOIN) Operacja połączenia równościowego, w której jeden z atrybutów połączeniowych jest usunięty ze schematu relacji wynikowej, jest nazywana połączeniem naturalnym (ang. NATURAL JOIN). Połączenie naturalne jest oznaczane jako: R * S, przy czym wymagane jest, by atrybuty połączeniowe w obu relacjach miały taką samą nazwę

38 Operacja połączenia - Przykłady PracownicyZespoły Pracownicy Szef=IdPrac Pracownicy Pracownicy * Zespoły

39 Operacja połączenia zewnętrznego – OUTER JOIN przeznaczenie: łączenie na podstawie warunku połączeniowego wybranych krotek z dwóch relacji w pojedynczą krotkę; w przypadku gdy danej krotce relacji nie odpowiada żadna krotka drugiej relacji, krotka ta jest łączona z krotką pustą operacja połączenia zewnętrznego lewostronnego relacji R(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R S oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji R (lewostronnej).

40 Operacja połączenia zewnętrznego – OUTER JOIN operacja połączenia zewnętrznego prawostronnego relacji R(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R S oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji S (prawostronnej)

41 Operacja połączenia zewnętrznego – OUTER JOIN operacja połączenia zewnętrznego dwustronnego relacji R(A 1,..., A n ) i S(B 1,...,B m ), jest oznaczona jako: R S oznacza, że w relacji wynikowej znajdą się krotki odpowiadające wszystkim krotkom relacji R i wszystkim krotkom relacji S

42 Operacja połączenia zewnętrznego – Przykład Pracownicy

43 Operacja połączenia - SQL Stary styl: SELECT a.*, b.* FROM konta AS a, operacje AS b WHERE a.id_konta = b.id_konta AND a.data_założenia > ‘ ’ SELECT a.*, b.* FROM konta AS a, operacje AS b WHERE a.id_konta = b.id_konta (+)

44 Operacja połączenia - SQL Nowy styl: SELECT * FROM konta NATURAL JOIN operacje SELECT a.*, b.* FROM konta AS a LEFT OUTER JOIN operacje AS b ON a.id_konta = b.id_konta

45 Wartości puste Zbiory wartości wszystkich typów danych zawierają dodatkowo wyróżnioną wartość pustą – NULL, np. INTEGER(3) -  NULL Możliwość występowania wartości pustych wymaga specyficznej obsługi wartości pustych NULL = NULL 1024*118 + NULL*119 = NULL SUM(płaca) = NULL, gdy choć jedna z sumowanych wartości jest wartością pustą Funkcja NULLIF(wyrażenie, wartość jeśli NULL) SELECT SUM(NULLIF(dochód, 1500)) FROM...

46 Wartości puste Również wyrażenia logiczne oprócz wartości prawda i fałsz mogą przyjmować wartości nieokreślone WHERE płaca >= 2000 OR płaca < 2000 OR płaca IS NULL

47 Wartości puste Logika trójwartościowa

48 Definiowanie struktur danych SQL - Typy danych