PODSTAWY BAZ DANYCH 2009/ / Notatki do wykładu "Podstawy baz danych"

Podobne dokumenty
Systemy baz danych. Notatki z wykładu

Zależności funkcyjne

Cel normalizacji. Tadeusz Pankowski

Normalizacja. Pojęcie klucza. Cel normalizacji

Pojęcie zależności funkcyjnej

PLAN WYKŁADU BAZY DANYCH ZALEŻNOŚCI FUNKCYJNE

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

PODSTAWY BAZ DANYCH Wykład 2 2. Pojęcie Relacyjnej Bazy Danych

Model relacyjny. Wykład II

Jak wiernie odzwierciedlić świat i zachować występujące w nim zależności? Jak implementacja fizyczna zmienia model logiczny?

1 Wstęp do modelu relacyjnego

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

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

Tadeusz Pankowski Definicja. Definicja

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

Technologie baz danych

Bazy danych. Andrzej Łachwa, UJ, /15

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

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

Model relacyjny. Wykład II

PRZEWODNIK PO PRZEDMIOCIE

Bazy Danych i Usługi Sieciowe

Bazy Danych. C. J. Date, Wprowadzenie do systemów baz danych, WNT - W-wa, (seria: Klasyka Informatyki), 2000

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

WYKŁAD 1. Wprowadzenie do problematyki baz danych

BAZY DANYCH. Anomalie. Rozkład relacji i normalizacja. Wady redundancji

Bazy danych. Andrzej Łachwa, UJ, /15

Bazy danych i usługi sieciowe

BAZY DANYCH. Wykłady dla studentów Wydziału Matematyki i Informatyki UAM. Dr inż. Anna Stachowiak B4-27

Baza danych. Modele danych

Relacyjny model danych

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

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

K1A_W11, K1A_W18. Egzamin. wykonanie ćwiczenia lab., sprawdzian po zakończeniu ćwiczeń, egzamin, K1A_W11, K1A_W18 KARTA PRZEDMIOTU

PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W NOWYM SĄCZU SYLABUS PRZEDMIOTU. Obowiązuje od roku akademickiego: 2011/2012

Bazy danych. Dr inż. Paweł Kasprowski

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

Bazy danych - wykład wstępny

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

Systemy baz danych. mgr inż. Sylwia Glińska

Wykład I. Wprowadzenie do baz danych

Projektowanie relacyjnych baz danych

PRZEWODNIK PO PRZEDMIOCIE

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Bazy danych Teoria projektowania relacyjnych baz danych. Wykła. Wykład dla studentów matematyki

Zależności funkcyjne pierwotne i wtórne

Wykład :45 BD-1 W_3

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Projektowanie relacyjnych baz danych

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

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

LITERATURA. C. J. Date; Wprowadzenie do systemów baz danych WNT Warszawa 2000 ( seria Klasyka Informatyki )

Przestrzenne bazy danych Podstawy języka SQL

Baza danych. Baza danych to:

mail: strona: konsultacje: na stronie (po wcześniejszym umówieniu drogą mailową)

Projektowanie Systemów Informacyjnych

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

Bazy danych. Algebra relacji

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

Normalizacja baz danych

Ogólny plan przedmiotu. Strony WWW. Literatura BAZY DANYCH. Materiały do wykładu:

Wykład 2. Relacyjny model danych

Cel przedmiotu. Wymagania wstępne w zakresie wiedzy, umiejętności i innych kompetencji 1 Język angielski 2 Inżynieria oprogramowania

Bazy danych 2. Zależności funkcyjne Normalizacja baz danych

forma studiów: studia stacjonarne Liczba godzin/tydzień: 1, 0, 2, 0, 0

S y s t e m y. B a z D a n y c h

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Transformacja modelu ER do modelu relacyjnego

Postać normalna Boyce-Codd (BCNF)

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

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

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

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

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Wykład XII. optymalizacja w relacyjnych bazach danych

Relacyjny model danych

Model relacyjny bazy danych

Autor: Joanna Karwowska

Bazy danych 3. Normalizacja baz danych

System zarządzania bazą danych SZBD (ang. DBMS -Database Management System)

Bazy danych w sterowaniu

RBD Relacyjne Bazy Danych

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Karta (sylabus) modułu/przedmiotu Mechanika i Budowa Maszyn Studia I stopnia

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

PODSTAWY BAZ DANYCH Wykład 3 2. Pojęcie Relacyjnej Bazy Danych

Normalizacja schematów logicznych relacji

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Projektowanie baz danych

Konstruowanie Baz Danych SQL UNION, INTERSECT, EXCEPT

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Bazy danych 2. Wykład 1

WPROWADZENIE DO BAZ DANYCH

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

BAZY DANYCH. Wykład 1: Wprowadzenie do baz danych. Marcin Czajkowski. Przygotowanie wykładu: Małgorzata Krętowska

Normalizacja relacyjnych baz danych. Sebastian Ernst

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

Technologia informacyjna

Transkrypt:

PODSTAWY BAZ DANYCH 2009/2010 1

Literatura 1. Connolly T., Begg C.: Systemy baz danych. Tom 1 i tom 2. Wydawnictwo RM 2004. 2. R. Elmasri, S. B. Navathe: Wprowadzenie do systemu baz danych, Wydawnictwo Helion 2005. 3. Garcia-Molina H., Ullman J.D.,:Widom J.: Implementacja systemów baz danych. WNT 2003. 4. Ullman J.D., Widom J. : Podstawowy wykład z systemów baz danych. PWN, 1999. 5. Ladanyi H.: SQL. Księga eksperta. Wydawnictwo Helion 2000. 6. Barker R.: Case metod - modelowanie funkcji i procesów 2004. 7. Barker R.: Case metod - modelowanie związków encji. 2004. 2

PODSTAWY BAZ DANYCH 1. Pojęcie Bazy Danych i Systemu Zarządzania Bazą Danych 3

System zarządzania bazą danych (SZBD) Proces przechodzenia od świata rzeczywistego do jego informacyjnej reprezentacji w komputerze nazywać będziemy modelowaniem, a pewien dobrze zdefiniowany sposób jego opisu modelem danych, przy czym sposób zapisania wyselekcjonowanych informacji jaka będzie potrzebna użytkownikowi schematem danych. Pomiędzy informacjami mogą występować powiązania (też są informacjami). Zbiór danych (razem z powiązaniami) nazywać będziemy bazą danych (BD). Środki sprzętowe i oprogramowanie umożliwiające współpracę z bazą danych nazywamy systemem zarządzania bazą danych, (SZBD). 4

Fakty świata rzeczywistego, o których wiedza reprezentowana jest w bazach danych występowanie obiektów (entity encja) - przedmiotów materialnych lub abstrakcyjnych reprezentowanych przez pewne nazwy o których chcemy pamiętać informacje, np. osoba, zatrudnienie. pozostawanie tych obiektów we wzajemnych powiązaniach (relationship) między sobą wyrażonych przez n-argumentową funkcję zdaniową (n > 1), której argumentami są nazwy obiektów, np. osoba jest zatrudniona posiadanie przez obiekty wartości atrybutów (value attribute). np. pesel, nazwisko, imie, data_ur dla obiektu osoba 5

Funkcje systemu zarządzania bazą danych opis danych - logiczny, - fizyczny; możliwości korzystania z bazy; integralność danych; - określenie pewnych warunków, które muszą być spełnione w bazie danych, niezależnie od tego, jakie są w niej aktualnie zapisane wartości; poufność danych; - prawa dostępu poszczególnych użytkowników; ( ustawa o tajności danych) współbieżność dostępu; - mechanizmy wykrywające sytuacje konfliktowe w przypadku korzystania jednocześnie z BD przez wielu użytkowników i ich rozwiązywanie; niezawodność. 6

Poziomy opisu baz danych 7

Poziomy opisu baz danych Poziom pojęciowy w procesie modelowania tworzenie przez projektanta bazy danych przy pomocy pewnego języka opisu schematu danych (DDL - Date Description Language ) i ściśle z nim związanego modelu danych schematu pojęciowego. Poziom wewnętrzny schemat fizyczny określający sposoby organizacji danych w pamięci zewnętrznej. Poziom zewnętrzny sposób widzenia danych przez poszczególnych użytkowników. 8

Modele danych W zależności od języka opisu schematu danych ( DDL - Data Description Language ), języka manipulowania danymi ( DML - Data Manipulation Language ) wyróżnia się następujące modele danych: model hierarchiczny i model sieciowy; (historia) model relacyjny, (E. F. Cood - 1970); (obecny) model relacyjno obiektowy; model zorientowany obiektowo; (przyszłość) model semistrukturalny. (przyszłość) 9

Organizacja systemu bazy danych W zależności od organizacji systemu bazy danych można dokonać następujących podziałów: 1. ze względu na rozproszenie: lokalne bazy danych - pamiętanie i udostępnianie danych odbywa się w obrębie jednej instalacji komputerowej; 10

Organizacja systemu bazy danych rozproszone bazy danych - składają się z wielu lokalnych baz danych znajdujących się w różnych instalacjach komputerowych; 11

Organizacja systemu bazy danych 2. ze względu na liczbę modeli danych: jednomodelowe bazy danych - przyjmuje się jeden model danych (np. relacyjny); 12

Organizacja systemu bazy danych wielomodelowe bazy danych - dla jednej bazy danych może współistnieć wiele schematów utworzonych na podstawie danych. różnych modeli 13

Wybór SZBD Wybór odpowiedniego SZBD model danych (relacyjny, obiektowy, ); rozmiar bazy; koszty oprogramowania; wydajność; niezawodność; bezpieczeństwo;. kadra. 14

Oprogramowanie systemu zarządzania bazą danych UNIX Linux Windows As 400 Oracle, 8, 8i, 9i, 10i, 11 X X X X DB2 7, 8, 9 X X X X SQL Server 2000/ /2008 X Sybase X Informix X MySQL 4, 5 (darmowe)? X X PostgreSQL (darmowe) X Access X Wspomnienia: dbase, FoxPro, Paradox, 15

Języki programowania wykorzystywane do baz danych SQL Structured Query Language Rozszerzenia np. PL/SQL, Kompilatory C++, Visual Basic, C#... Java PHP XML inne 16

Plan dalszych wykładów Modelowanie danych. Pojęcie modelu relacyjnego. Projektowanie 2PN, 3PN,... Metody implementacji baz danych. indeksy, pamiętanie danych, SQL. PL/SQL. Optymalizacja zapytań. Transakcje. Współbieżność. Pojęcie modelu obiektowego. 17

PODSTAWY BAZ DANYCH 2. Pojęcie modelu relacyjnego 18

Pojęcie modelu danych Model danych definiuje: struktury danych, operacje, ograniczenia integralnościowe. Relacyjny model danych: relacje, selekcja, projekcja, połączenie, operacje na zbiorach, klucz podstawowy, klucz obcy, zawężenie dziedziny, unikalność, wartość pusta/niepusta. 19

Pojęcie krotki - definicja Definicja. Niech dany będzie skończony zbiór U := { A 1, A 2,..., A n }, którego elementy nazywać będziemy atrybutami. Niech każdemu atrybutowi A i U przyporządkowany będzie zbiór wartości DOM(A i ) (może zawierać wartość pustą NULL) zwany dziedziną atrybutu A i (domeną). Niech KROTKA( U ) : DOM( Elementy tego zbioru nazywać będziemy krotkami. Uwaga. Zbiór KROTKA(U) może być zbiorem nieskończonym (gdy jeden ze zbiorów DOM(A i ) jest zbiorem nieskończonym). Definicja. Relacją typu U nazywamy dowolny skończony podzbiór zbioru KROTKA(U). Zbiór wszystkich relacji typu U oznaczać będziemy przez REL(U). X i 1..n A i ) 20

Pojęcie krotki i relacji - oznaczenia Relację typu U oznaczać będziemy przez R(U), S(U), T(U),.. Jeżeli z kontekstu wynikać będzie jednoznacznie o jaki zbiór atrybutów chodzi, pisać będziemy R, S, T,... Krotki typu U oznaczać będziemy r(u), s(u), t(u)... Jeżeli z kontekstu wynikać będzie jednoznacznie typ krotki, pisać będziemy r, s, t,... Podzbiory zbioru atrybutów U oznaczać będziemy dużymi literami X, Y, Z,... Do oznaczenia sumy dwóch zbiorów X, Y U stosować będziemy zapis XY zamiast X Y. Dla zbioru atrybutów { A, B } zamiast pisać R({A, B}), stosować będziemy zapis R(A,B). 21

Pojęcie krotki i relacji - przykład Przykład. Relacja typu U := { I, N, P, O } U := { nr_indeksu, Nazwisko_studenta, nr_przedmiotu, Ocena} I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 R 1 R 2 R 3 krotka wiersz rekord ang. tuple 22

Operacje na relacjach - Operacje mnogościowe Na relacjach definiuje się pewne operacje: operacje mnogościowe, operacje relacyjne. Definicja. Sumą, różnicą, przekrojem i dopełnieniem relacji R(U) nazywamy odpowiednio zbiory (a) { t KROTKA(U) t R(U) t S(U) }; (b) { t KROTKA(U) t R(U) t S(U) }; (c) { t KROTKA(U) t R(U) t S(U) }; (d) KROTKA(U) - R(U), przy czym zbiór KROTKA(U) musi być zbiorem skończonym, gdyż w przeciwnym wypadku byłaby sprzeczność z definicją relacji. 23

Operacje na relacjach - Operacje mnogościowe Zbiory te będziemy oznaczać odpowiednio przez R(U) S(U), R(U) S(U), R(U) - S(U), - R(U). Zauważmy, że definicje te dotyczą relacji tego samego typu. Przykład. Mamy dwie relacje Osoby i Osoby1 postaci: ID_OS NAZWISKO IMIE 1 Lis Jan 2 Kot Adam 3 Norek Tadeusz 4 Krawczyk Adam 5 Lis Anna 24

Operacje na relacjach - Operacje mnogościowe Przykład. Operacje mnogościowe w SQL. SELECT id_os, nazwisko, imie FROM osoby UNION /* suma */ SELECT id_os, nazwisko, imie FROM osoby1; SELECT id_os, nazwisko, imie FROM osoby INTERSECT /* część wspólna */ SELECT id_os, nazwisko, imie FROM osoby1; SELECT id_os, nazwisko, imie FROM osoby MINUS SELECT id_os, nazwisko, imie FROM osoby1; /* różnica */ 25

Operacje na relacjach Operacja selekcji Operacja selekcji polega na wyborze z relacji podzbioru krotek spełniających określony warunek selekcji, gdzie warunek selekcji może np. być postaci: <atrybut> <operator relacyjny> <atrybut> <atrybut> <operator relacyjny> <wyrażenie> Te predykaty mogą być łączone operatorami logicznymi AND,OR. Przykład. Przykład operacji selekcji w SQL. SELECT * FROM osoby WHERE nazwisko = Lis AND imie = Anna ; ( * oznacza, że wybieramy wszystkie atrybuty ) 26

Złączenie krotek - definicja Definicja. Niech U będzie zbiorem atrybutów i X, Y U, r KROTKA(X), s KROTKA(Y), Z := X Y. Krotkę t KROTKA(Z) nazywamy złączeniem krotki r i s, co oznaczamy t = r s, gdy t[x] = r i t[y ] = s, gdzie t[x] i t[y ] oznacza obcięcie krotki t do atrybutów X i Y. Przykład. Niech U := { I, N, P, O } i X := { I, N } i Y := { I, P, O } oraz Z := X Y = { I, N, P, O }. Jeżeli r(x) = { 10, Nowak } i s(y) = { 10, a, 3 } to krotka t typu Z postaci t(z) = { 10, Nowak, a, 3 } jest złączeniem krotek r(x) i s(y), bo t[x] = { 10, Nowak } i t[y] = { 10, a, 3 }. 27

Projekcja - definicja Definicja. Dla danej relacji R(U) oraz zbioru X U zbiór R[X]: ={ t KROTKA(X) ( r R(U) ( t = r[x] ) }. nazywamy projekcją R na X. Stwierdzenie. Jeżeli dana jest relacja R(U) i X U to R[X]={ t KROTKA(X) ( s KROTKA(U-X) ) (t s R(U))}. Przykład. Mamy relację Student typu U := { I, N, P, O }, gdzie U :={ nr_indeksu, Nazwisko_studenta, nr_przedmiotu, Ocena} I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 28

Projekcja - przykład Przykład. Przykłady dwóch projekcji: Student[IN] I N 10 Nowak 11 Norek 12 Burek SELECT I,N FROM Student; Przyjmijmy, że SELECT zwraca tylko różne wiersze. SELECT DISTINCT I,N FROM Student; Student[IPO] I P O 10 a 3 10 b 4 11 a 3 12 a 3 SELECT I,P,N FROM Student; SELECT DISTINCT I,P,N FROM Student; 29

Złączenie relacji - definicja Definicja. Dla danych relacji R(X) i S(Y) relację T := { t KROTKA(X Y) ( t[x] R ) ( t[y] S ) } typu X Y nazywamy złączeniem relacji i oznaczamy przez R S. Stwierdzenie. Jeżeli dane są relacje R(X) i S(Y) to R S={ t KROTKA( X Y ) ( r R(X) ) ( s S(Y) ) ( t = r s ) }. 30

Złączenie relacji - przykład Przykład. Student(X), X = { I, N } i Oceny(Y), Y = { I, P, O } U = X Y = { I, N, P, O } Student (X) I N 10 Nowak 11 Norek 12 Burek Oceny (Y) I P O 10 a 3 10 b 4 11 a 3 12 a 3 31

Złączenie relacji - przykład W języku SQL realizuje to polecenie: SELECT s.i, s.n, o.p, o.o FROM Student s JOIN Oceny o ON s.i = o.i; lub równoważne SELECT s.i, s.n, o.p, o.o FROM Student s, Oceny o WHERE s.i = o.i; Relacja Student Oceny typu U := { I, N, P, O } ma postać: I N P O 10 Nowak a 3 10 Nowak b 4 11 Norek a 3 12 Burek a 3 32

Złączenie relacji - przykład Przykład. Student(X), X = { I, N } i Oceny(Y), Y = { P, O } U = X Y = { I, N, P, O } Student(X) I N 10 Nowak 11 Norek 12 Burek Oceny(Y) P O a 3 b 4 W języku SQL realizuje to polecenie: SELECT s.i, s.n, o.p, o.o FROM Student s, Oceny o; lub równoważne SELECT s.i, s.n, o.p, o.o FROM Student s CROSS JOIN Oceny o; 33

Zależności funkcyjne - definicja Definicja. Niech U będzie zbiorem atrybutów i X,Y U. Mówimy, że istnieje zależność funkcyjna między X i Y, co oznaczamy X Y, gdy w każdej relacji R(U) KROTKA(U) istnieje pewna funkcja R[X] R[Y], ( przy różnych relacjach R(U) funkcje te mogą być różne ). Gdy X = { A 1, A 2..., A n } i Y = { B 1, B 2..., B m }, gdzie A i, B i oznaczają pojedyncze atrybuty z U, to będziemy również używać oznaczenia A 1 A 2...A n B 1 B 2...B m. 34

Zależności funkcyjne - definicja Definicja. Dla danej relacji R(U), X, Y U, mówimy, że w R(U) spełniona jest zależność funkcyjna X Y, gdy ( ) ( r 1, r 2 R(U) ) [ ( r 1 [X] = r 2 [X] ) ( r 1 [Y] = r 2 [Y] ) ]. Przykład. Niech dany będzie U:={nr_Indeksu, Nazwisko_studenta, nr_przedmiotu, Ocena} i relacja R(U) będzie określona następująco: 35

Zależności funkcyjne - przykład I N P O 1 A 101 3 1 A 102 4 2 B 101 3 3 C 101 3 W relacji R(U) spełnione są następujące zależności funkcyjne (nasze założenie): I N, IP O. Zauważmy, że dla zbiorów { P } i { O } warunek z ( ) jest również spełniony, ale między tymi zbiorami nie istnieje zależność funkcyjna. Istotnie, po dodaniu krotki ( 3, C, 102, 3 ) warunek z ( ) nie będzie spełniony. 36

Aksjomaty Armstronga - przykład Przykład. Niech U := { Przedmiot, nr_indeksu, Ocena, nr_egzaminatora, Godzina_egzaminu, Sala } tzn. U := { P, I, O, E, G, S }. Na tym zbiorze atrybutów można określić np. następujący zbiór zależności funkcyjnych: F := { P GS, GS P, PI O, GI PS, PGS E }. Zamiast zależności funkcyjnej P GS można łatwo wprowadzić dwie zależności P G i P S. Poza tym np. z zależności P GS i PGS E wynika zależność P E. 37

Aksjomaty Armstronga - domknięcie zbioru F Definicja. Niech U będzie zbiorem atrybutów i niech F { X Y ( X U ) ( Y U ) }. Przez F + oznaczmy najmniejszy (ze względu na relację zawierania) zbiór zależności funkcyjnych, który zawiera zbiór F i dla dowolnych X, Y, Z U spełnia następujące aksjomaty: F1. ( Y X ) [ (X Y ) F + ], (zwrotność); F2. [ (X Y ) F + ] [ (XZ YZ ) F + ], (poszerzalność); F3. [ (X Y ) F + (Y Z ) F + ] [ (X Z ) F + ], Zbiór F + nazywamy najmniejszym domknięciem zbioru F. (przechodniość). 38

Aksjomaty Armstronga Uwaga. Armstrong (1974) wykazał, że zbiór F + można otrzymać ze zbioru F używając tylko reguł wnioskowania F1, F2 i F3. Uwaga. Niech U będzie zbiorem atrybutów i niech F będzie zbiorem zależności funkcyjnych. Wykazano, że zbiór F + jest zbiorem wszystkich możliwych zależności funkcyjnych, które można w sposób logiczny wyprowadzić z zależności ze zbioru F. Stwierdzenie. (wynikające z aksjomatów Armstronga). F4. [ (X Y ) F + (YW Z ) F + ] [ (XW Z ) F + ], F5. [ (X Y ) F + (X Z ) F + ] [ (X YZ ) F + ], F6. [ (X YZ ) F + ] [ (X Y ) F + (X Z ) F + ]. 39

Schemat relacyjny i jego związek z relacją - definicja Definicja. Niech dla danego zbioru atrybutów U zbiór F będzie zbiorem zależności funkcyjnych określonych na U. Parę uporządkowaną R := ( U, F ) nazywamy schematem relacyjnym o zbiorze atrybutów U i ze zbiorem zależności F. Definicja. Mówimy, że relacja R jest przypadkiem schematu relacyjnego R := ( U, F ), (lub, że jej schematem jest R ), gdy R jest relacją typu U i spełniona jest w niej każda zależność funkcyjna X Y F. Zbiór wszystkich relacji R o schemacie R oznaczać będziemy przez INST(R). 40

Schemat relacyjny - projekcja Definicja. Dla danego schematu relacyjnego R := ( U, F ) i X U schemat relacyjny ( X, G ) nazywamy projekcją schematu R na zbiór X, co oznaczamy przez R[X], gdy G + = { (Y Z ) F + Y Z X } +, tzn. G jest podzbiorem zbioru tych zależności ze zbioru F +, w których występują tylko atrybuty ze zbioru X. 41

Schemat relacyjny - złączenie Definicja. Dla schematów relacyjnych R := ( X, F ) i S := ( Y, G ) schemat relacyjny ( Z, H ) nazywamy złączeniem schematów R i S, co oznaczamy przez R S, gdy Z = X Y i H = F G. 42

Rozkładalność schematów relacyjnych Definicja. Mówimy, że schemat relacyjny R := ( U, F ) jest rozkładalny bez straty danych na dwa schematy relacyjne R[X] i R[Y], gdy a) X Y = U, b) ( R INST(R ) ) ( R = R[X] R[Y]). Twierdzenie. Schemat relacyjny R := ( U, F ) jest rozkładalny bez straty danych na schematy relacyjne R[XY] i R[XZ], X Y Z = U, Y Z = wtedy i tylko wtedy, gdy X Y Z ( X Y ) F + lub ( X Z ) F + tzn., gdy dla każdej relacji R o schemacie R := ( U, F ) mamy ( R = R[XY] R[XZ] ) [ (X Y) F + (X Z ) F + ]. 43

Rozkładalność schematów relacyjnych Przykład. Relacja EGZ(U), U := { I, N, P, O }, gdzie I N P O 10 f a 3 10 f b 4 11 g a 3 12 h a 3 jest przypadkiem schematu relacyjnego EGZ := ( { I, N, P, O }, { I N, IP O } ). W zależności od wyboru zbioru zależności funkcyjnych jako podstawy rozkładu relację tą można rozłożyć bez straty danych na dwa sposoby: 44

Rozkładalność schematów relacyjnych E 1 : I N E 2 : I P O 10 f 10 a 3 11 g 10 b 4 12 h 11 a 3 12 a 3 E 3 : I P O E 4 : I P N 10 a 3 10 a f 10 b 4 10 b f 11 a 3 11 a g 12 a 3 12 a h W obydwu przypadkach mamy: EGZ=E 1 E 2, EGZ=E 3 E 4. 45

Rozkładalność schematów relacyjnych Definicja. Mówimy, że schemat relacyjny R := ( U, F ) jest rozkładalny bez straty zależności na dwa schematy relacyjne gdy a) X Y = U, b) F + = ( G H ) +. R 1 := ( X, G ), R 2 := ( Y, H ), Przykład. Oba rozkłady ze slajdu 45 są rozkładami bez straty zależności. E 1 := ( { I, N }, { I N } ), E 2 := ( { I, P, O }, { I PO } ), E 3 := ( { I, P, O }, { I PO } ), E 4 := ( { I, P, N }, { I N } ), 46

Rozkładalność schematów relacyjnych Przykład. Dla schematu relacyjnego R := ( U, F ) U := { A, B, C, D }, F := { A B, BC D, D B, D C } rozważmy następujące schematy: R 1 := ( { A, B }, { A B } ), R 2 := ( { B, C, D }, { BC D, D B, D C } ), będące rozkładami schematu R bez straty zależności. Rozkład ten nie jest jednak rozkładem bez straty danych. Istotnie, rozważmy relację R INST(R) postaci: R: A B C D a b c d a 1 b c 1 d 1 a 2 b c 1 d 1 47

Rozkładalność schematów relacyjnych Wówczas relacje: mają postać: R 1 := R[AB] i R 2 := R[BCD] R 1 : A B R 2 : B C D a b b c d a 1 b b c 1 d 1 a 2 b i R R 1 R 2 (następny slajd). Zauważmy, że zależności B A i B CD nie należą do F +, tzn. nie są spełnione założenia twierdzenia o warunku koniecznym i dostatecznym rozkładalności bez straty danych. 48

Rozkładalność schematów relacyjnych R 1 R 2 A B C D a b c d a b c 1 d 1 a 1 b c d a 1 b c 1 d 1 a 2 b c d a 2 b c 1 d 1 R: A B C D a b c d a 1 b c 1 d 1 a 2 b c 1 d 1 49

Pojęcie klucza Definicja. Mówimy, że zbiór K U jest kluczem dla schematu relacyjnego R := ( U, F ), gdy spełnia warunki: a) ( K U ) F +, b) ( X U ) ( [ ( X U ) F + ] [ ( X K ) ] ) c) wartościami K nie mogą być wartości NULL. Jeżeli zbiór K spełnia tylko warunek a) i c) to nazywamy go nadkluczem. Elementy zbioru K nazywamy atrybutami kluczowymi. 50

Pojęcie klucza Przykład. Dla schematu relacyjnego E := ( { I, N, P, O }, { I N, IP O } ) warunek a) definicji klucza spełniają zbiory { I, P }, { I, N, P }, { I, N, P, O }. Warunek b) definicji klucza spełnia tylko zbiór { I, P } i ten zbiór jest kluczem schematu E. 51

Pojęcie klucza Uwaga. Schemat relacyjny może posiadać wiele kluczy (klucze kandydujące). Jeden z nich nazywamy kluczem głównym (Primary key). Atrybuty nie należące do żadnego klucza nazywamy atrybutami niekluczowymi. K 1 Atrybuty niekluczowe K 2 52

PODSTAWY BAZ DANYCH 3. Normalizacja schematów relacyjnych 53

Normalizacja schematów relacyjnych - 1PN Definicja. Schemat relacyjny R := ( U, F ) jest w pierwszej postaci normalnej (1PN), gdy dla każdego atrybutu A U zbiór DOM(A) składa się z wartości elementarnych (atomic value). Przykład. Np. gdybyśmy przyjęli, że mamy atrybut Adres i wartościami byłyby np. 95-003 Łódź ul. Piotrkowska 5 m.6 to dziedzina tego atrybutu nie składałaby się z wartości elementarnych (o ile w jakimś zapytaniu występowałyby tylko np. miasta). 54

Normalizacja schematów relacyjnych - 2PN Definicja. Niech X, Y U i X Y =. Mówimy, że Y jest w pełni funkcyjnie zależny od X, gdy istnieje zależność funkcyjna X Y i nie istnieje zależność z żadnego właściwego podzbioru X 1 zbioru X w Y. X Y F + X Y X 1 X 1 Y F + 55

Normalizacja schematów relacyjnych - 2PN Definicja. Schemat relacyjny R := ( U, F ) jest w drugiej postaci normalnej (2PN), gdy każdy niekluczowy atrybut A U jest w pełni zależny od każdego klucza tego schematu. Oznacza to, że nie ma miejsca przypadek: K 1 K 1 A F + A K 2 K 11 A F + 56

Normalizacja schematów relacyjnych - 2PN Przykład. Schemat relacyjny E = ( U, F ) gdzie U := { Indeks, Nazwisko, Kierunek, Adres, Przedmiot, Ocena }, F := { I NAK, IP O } z kluczem K := { I, P } nie jest w 2PN, bo np. niekluczowy atrybut N jest zależny funkcyjnie tylko od { I } K. Niech E będzie relacją o schemacie E = ( U, F ) określoną następująco: E: I N A K P O 10 f x mat a 3 10 f x mat b 4 11 g y inf a 3 12 h x inf a 3 10 f x mat c 5 57

Normalizacja schematów relacyjnych - 2PN W relacji tej można zauważyć następujące anomalia: usuwania - np. przy unieważnieniu egzaminu studenta o indeksie 11 należy usunąć całą krotkę, co spowoduje utratę informacji o studencie. aktualizacji - zmiana adresu studenta wymaga zmiany w kilku krotkach; dołączania - nie można dołączyć studenta, który nie zdał żadnego egzaminu; E: I N A K P O 10 f x mat a 3 10 f x mat b 4 11 g y inf a 3 12 h x inf a 3 10 f x mat c 5 58

Normalizacja schematów relacyjnych - 2PN Dla każdej relacji E INST(E) mamy E = E[INKA] E[IPO] tzn. uzyskaliśmy dwa schematy relacyjne E 1 := ( { I, N, K, A }, { I NAK } ) i E 2 := ( { I, P, O }, { IP O } ) odpowiednio z kluczami { I } i { I, P }. Jest to rozkład bez straty danych. 59

Normalizacja schematów relacyjnych - 2PN Relację E można zastąpić dwiema relacjami: E 1 : I N A K E 2 : I P O 10 f x mat 10 a 3 11 g y inf 10 b 4 12 h x inf 11 a 3 12 a 3 10 c 5 Każdy ze schematów E 1 i E 2 jest w 2PN. Stwierdzenie. Jeżeli każdy klucz schematu jest zbiorem jednoelementowym to schemat jest w 2PN. 60

Normalizacja schematów relacyjnych - 3PN Definicja. Niech X, Z U. Zbiór atrybutów Z jest tranzytywnie zależny od zbioru X, gdy a) X Z =, b) ( Y U ) { ( Y X = Y Z = ) [ ( X Y ) F + ( Y X ) F + ( Y Z) F + ] }. X Y Z (X Y ) F + (Y X) F + (Y Z) F + 61

Normalizacja schematów relacyjnych - 3PN Definicja. Schemat relacyjny R := ( U, F ) jest w trzeciej postaci normalnej ( 3PN ), gdy jest w 2PN; każdy zbiór niekluczowych atrybutów Z U nie jest tranzytywnie zależny od każdego zbioru atrybutów K będącego kluczem tego schematu. 62

Normalizacja schematów relacyjnych - 3PN Przykład. Rozważmy schemat relacyjny E := ( U, F ) gdzie U :={ Wykonawca, Adres, Projekt, Data_zakonczenia }, z kluczem K := { W } jest w 2PN. Zakładamy, że F := { W APD, P D } 1. wykonawca może realizować tylko jeden projekt, 2. wszyscy wykonawcy dany projekt muszą zakończyć tego samego dnia. Niech E będzie relacją o schemacie E := (U, F) określoną następująco: E: W A P D 30 x a 01/01/2000 40 y a 01/01/2000 50 y b 01/01/1999 60 z c 01/01/2000 63

Normalizacja schematów relacyjnych - 3PN Ponieważ W P P D to W D tzn. zbiór { D } jest tranzytywnie zależny od zbioru { W }. W relacji tej można zauważyć następujące anomalia: dołączania, aktualizacji i usuwania. Dla każdej relacji E INST(E) mamy E = E[WAP] E[PD] tzn. uzyskamy dwa schematy relacyjne będące w 3PN i E 1 := ( { W, A, P }, { W A, W P } ) E 2 := ( { P, D }, { P D } ). Jest to rozkład bez straty danych. 64

Normalizacja schematów relacyjnych - 3PN Relację E można zastąpić dwoma relacjami: E 1 : W A P E 2 : P D 30 x a a 01/01/2000 40 y a b 01/01/1999 50 y b c 01/01/2000 60 z c Uwaga. W każdym schemacie będącym w 3PN między atrybutami niekluczowymi nie ma zależności funkcyjnych. Zadanie. Sprawdzić, czy schemat relacyjny jest w 3PN. E := ( { A, B, C }, { AB C, C A } ) 65

Normalizacja schematów relacyjnych - 3PN - Przykład Przykład. Pesel Nip Nazwisko Imie D_urodzenia Plec Przyjmijmy założenie, że każda osoba posiada Pesel i Nip. Wtedy kluczami mogą być np. zbiór { Pesel } lub { Nip }. Niekluczowymi atrybutami są { Nazwisko, Imie, D_urodzenia, Plec }. Ten schemat relacyjny jest w 3PN (dlaczego?). 66

Normalizacja schematów relacyjnych - PNB-C Definicja. Schemat relacyjny R := ( U, F ) jest w postaci normalnej Boyce'a-Codda, (PNB-C), gdy z faktu ( X Y ) F +, Y U - X, wynika, że ( X U ) F +. Przykład. Schemat relacyjny E := ( { Student, Przedmiot, Wykładowca }, { W P, SP W } ) z kluczem K := { S, P } nie jest w PNB-C, bo mimo, że W P F +, to nie istnieje zależność W U. Uwaga. Każdy schemat w PNB-C jest w 3PN. Jest bardziej restrykcyjny niż schemat w 3PN. 67

Normalizacja schematów relacyjnych - PNB-C Gdyby nie był w 2PN to z faktu K 11 A F + K 1 K11 A F + A K 2 wynikałoby z B-C, że K 11 U tzn. K 1 nie byłoby kluczem. Gdyby nie był w 3PN to istniałyby atrybuty niekluczowe Y, Z K 1 Y Z (K 1 Y ) F + (Y K 1 ) F + (Y Z) F + i z B-C Y U F + tzn. Y albo jego podzbiór byłby kluczem co jest sprzeczne z tym, że Y jest atrybutem niekluczowym. 68

Normalizacja schematów relacyjnych - PNB-C Przykład. Niech E będzie relacją o schemacie R := ( U, F ) określoną następująco: E: S P W 10 a x 11 a x 10 b y 11 b z W relacji E występują anomalia usuwania i dołączania: Nie można dołączyć wykładowcy i przedmiotu jeżeli brak chociaż jednego studenta uczęszczającego na wykład. Nie można również usunąć ostatniego studenta uczęszczającego na dany przedmiot. 69

Normalizacja schematów relacyjnych - PNB-C Schemat E można rozłożyć na dwa schematy relacyjne E 1 := ( { W, P }, { W P } ) i E 2 := ( { W, S }, ), z których każdy jest w PNB-C. Wtedy relację E można przedstawić w postaci: E 1 : W P E 2 : W S x a x 10 y b x 11 z b y 10 z 11 Ponieważ E = E 1 E 2, więc rozkład ten jest rozkładem bez straty danych, ale nie jest rozkładem bez straty zależności, bowiem { W P, SP W } + { { W P } } +. 70

Zależność wielowartościowa Definicja. Niech X, Y U, Z := U - XY. X Y Z Mówimy, że istnieje zależność wielowartościowa między zbiorami X i Y, co oznaczamy przez X >>Y, gdy dla każdego zbioru KROTKA(U) istnieje pewna funkcja : KROTKA(X) (KROTKA(YZ)), gdzie (KROTKA(YZ)) oznacza zbiór wszystkich podzbiorów zbioru KROTKA(YZ), taka, że jeżeli do zbioru (x) należą krotki (y, z) i (y, z ), to należą również krotki ( y, z ) i (y, z ). 71

Zależność wielowartościowa Definicja. Niech dana będzie relacja R(U), X, Y U i Z:=U-XY. X Y Z Mówimy, że w R spełniona jest zależność wielowartościowa X >>Y, gdy spełniony jest jeden z równoważnych warunków: a),, x R X y y R Y z z R Z { x y z R x y z R x y z R x y z R } b) R R XY R XZ. 72

Zależność wielowartościowa Uwaga. Każda zależność funkcyjna X Y F + jest zależnością wielowartościową tzn. mamy X >> Y. Spełniony jest warunek konieczny rozkładu bez straty danych (punkt b). Uwaga. Zależności X >> U i X >> spełnione są w każdej relacji R(U). Istotnie R R XY R XZ., Z =, Y = U R R XY R XZ., Z = U-X, Y = Nazywamy je trywialnymi zależnościami wielowartościowymi. 73

Zależność wielowartościowa Przykład. U := { Pracownik, Imię_Dziecka, Zarobki, Rok } E: P D Z R a x 1000 1983 D >> P a y 1000 1983 P >> ZR a x 1500 1984 a y 1500 1984 b z 1200 1983 b z 1600 1984 E 1 : P D E 2 : P Z R a x a 1000 1983 a y a 1500 1984 b z b 1200 1983 b 1600 1984 ( D > P ) PR > Z 74

Zależność wielowartościowa Definicja. Niech U będzie zbiorem atrybutów i M { X >> Y X U Y U }. Przez M + oznaczmy najmniejszy (ze względu na relację ) zbiór zależności wielowartościowych takich, że M M + i dla ( X, Y, Z U ) ( X Y = X Z = Z Y = ) spełnione są następujące aksjomaty: 75

Zależność wielowartościowa M0. M1. M2. M3. M4. M5. M6. Y X X Y M, X Y M X U XY M, X Y M XZ YZ M, M X Z M, X Y M Y Z X Y M YZ W (zwrotność), (dopełnialność), (poszerzalność), M XZ W M, X Y M X Z (przechodniość), (pseudo-przechodniość), M X YZ M, (addytywność), X Y M X Z M X Y Z M, (dekompozycja). 76

Zależność wielowartościowa Uwaga. Między zależnościami funkcyjnymi i wielowartościowymi zachodzą następujące związki: FM1. FM2. X Y F X Y M, X Z M Y V M V Z Y Z X V F. X Y Z V 77

Schemat relacyjny Definicja. Dla zbioru atrybutów U i zbiorów F i M, (zakładamy, że zbiór M nie zawiera zależności funkcyjnych), parę R := ( U, F M ) nazywamy schematem relacyjnym i mówimy, że relacja R jest przypadkiem schematu relacyjnego R jeśli jest relacją typu U oraz każda zależność funkcyjna i wielowartościowa jest spełniona w R. 78

Zależność wielowartościowa - 4PN Definicja. Mówimy, że schemat relacyjny R := ( U, F M ) jest w czwartej postaci normalnej (4PN) gdy jest w 3PN i X U F. X Y M Y U X Przykład. Dla schematu relacyjnego R := ( { P, D, Z, R }, { D P, PR - Z, P > D, P > ZR } ) który nie jest w 4PN i relacji E z przykładu ze slajdu 74 rozważmy dwa schematy R 1 := ( { P, D }, {D P }), R 2 := ( { P, Z, R }, { PR Z }). Wtedy schematy R 1 i R 2 są w 4PN. E P D Z R a x 1000 1983 D >> P a y 1000 1983 P >> ZR a x 1500 1984 a y 1500 1984 b z 1200 1983 b z 1600 1984 79

Postacie normalne - Podsumowanie Uwaga. Między postaciami normalnymi zachodzą następujące relacje zawierania: 1PN 2PN 3PN B-C 4PN 5PN - 80

Schemat relacyjnej bazy danych Definicja. Schematem relacyjnej bazy danych nazywamy zbiór := { R i := ( U i, F i ) i = 1,2,..,n }. wszystkich schematów relacyjnych występujących w danej bazie danych 81

PODSTAWY BAZ DANYCH 4. Projektowanie Schematu Bazy Danych 82

Algorytm tworzenia schematu relacyjnej bazy danych 1. Określamy jeden schemat relacyjnej bazy danych { R := ( U, F ) }, gdzie U jest zbiorem wszystkich atrybutów występujących w bazie danych, przy czym zbiór U dobieramy w taki sposób aby można było na zbiorze U określić zależności funkcyjne. 2. Rozkładając schemat relacyjny R na schematy R := ( U i i, F i ), i = 1,2,..,n spełniające wybrane przez nas warunki normalizacji otrzymamy schemat bazy danych := { R := ( U i i, F i ) i = 1,2,..,n }. 83

Równoważność schematów Niech dane będą następujące schematy baz danych: 1 := { R := ( U, F ) }, 2 := { R i := ( U i, F i ) i = 1,2,..,n }, U, (n 2). Wprowadzimy definicję równoważności schematów. Definicja. Mówimy, że dane schematy 1 i 2 są EQ1-równoważne, gdy dla każdej relacji R INST( 1 ) n R R U. i 1 Definicja. Mówimy, że dane schematy 1 i 2 są EQ2-równoważne, gdy F n UF i i 1 i n i 1 U i 84

Równoważność schematów Definicja. Mówimy, że dane schematy 1 i 2 są EQ3-równoważne, gdy są EQ1 i EQ2-równoważne. Uwaga. Rozkład 2 EQ1-równoważny rozkładowi 1 jest rozkładem bez straty danych. Uwaga. Rozkład 2 EQ2-równoważny rozkładowi 1 jest rozkładem bez straty zależności. Uwaga. Przy rozkładach schematów baz danych wymaga się zazwyczaj aby każdy z wynikowych schematów był w 3PN i aby liczba ich była jak najmniejsza. Uwaga. Rozkłady nie muszą być jednoznaczne. 85

Algorytmy pomocnicze Przy rozkładach schematów baz danych wykorzystywane są algorytmy rozwiązywania następujących zagadnień: A1. Sprowadzenie schematu relacyjnego do 2PN. A2. Sprowadzenie schematu relacyjnego do 3PN. A3. Rozstrzygnięcie, czy dla zadanych X, Y U, zachodzi X Y F +. A4. Usunięcie z lewej strony każdej zależności X Y F + zbędnych atrybutów, tzn. takich atrybutów A X, dla których (X-A) Y F +. A5. Znalezienie minimalnego generatora zbioru F tzn. takiego zbioru G, że F + = G + i żaden jego podzbiór tej własności nie posiada. A6. Sprawdzenie, czy dla zadanych dwóch zbiorów zależności F 1 i F 2 zachodzi równość F 1+ = F 2 +. A7. Określenie wszystkich kluczy w schemacie R:= ( U, F ). 86

Algorytmy pomocnicze Wyznaczenie wszystkich kluczy w schemacie R :=( U, F ), ( algorytm A7 ), jest bardziej złożone. Jednym ze sposobów mogłoby być wyznaczenie, korzystając z aksjomatów Armstronga, całego zbioru F + i wybranie z niego wszystkich zależności spełniających warunki występujące w definicji klucza. Uwaga. Wszystkie algorytmy A3 - A7 można sprowadzić do problemu wyznaczenia zbioru F +. 87

Algorytmy pomocnicze - sprowadzanie do 2PN 88

Algorytmy pomocnicze - sprowadzanie do 3PN 89

Algorytm dekompozycji Dla danego schematu bazy danych := { R := ( U, F ) } należy wykonać następujące czynności: 1. Wyznaczyć wszystkie klucze w schemacie R. 2. Wykrywanie niepełnych zależności funkcyjnych i rozkład schematu relacyjnego na zbiór 1 := {R := (U i i, F i ) i = 1,2,..,m } schematów relacyjnych z których każdy jest w 2PN. 3. Wyznaczyć zbiory atrybutów kluczowych i niekluczowych w każdym schemacie relacyjnym R i 1. 4. Wykrywanie tranzytywnych zależności funkcyjnych w schematach relacyjnych R i, i=1,2,..,m i sprowadzenie ich do 3PN. Otrzymany w ten sposób schemat 1 := { R i := ( U i, F i ) i = 1,2,..,n } jest EQ1-równoważny schematowi := { R := ( U, F ) } tzn. zachowuje dane i nie musi zachowywać zależności funkcyjnych. 90