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

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

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

Bazy danych 2. Relacyjny model baz danych

Bazy danych 3. Zależności funkcyjne Normalizacja relacyjnych baz danych

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

Technologie baz danych

1 Wstęp do modelu relacyjnego

Systemy baz danych. Notatki z wykładu

Model relacyjny. Wykład II

Bazy danych. Andrzej Łachwa, UJ, /14

Bazy danych 3. Normalizacja baz danych

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

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

Wykład 2. Relacyjny model danych

Bazy danych. Andrzej Łachwa, UJ, /15

Pojęcie zależności funkcyjnej

RBD Relacyjne Bazy Danych Więzy realcji

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

Model relacyjny. Wykład II

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

Bazy danych. Algebra relacji

Bazy danych wykład drugi. Konrad Zdanowski

Cel normalizacji. Tadeusz Pankowski

Normalizacja. Pojęcie klucza. Cel normalizacji

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

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

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

Bazy Danych i Usługi Sieciowe

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

Projektowanie Systemów Informacyjnych

Bazy danych 3. Normalizacja baz danych (c.d.)

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

Zależności funkcyjne

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

Projektowanie baz danych

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

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

Projektowanie relacyjnych baz danych

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

Agnieszka Ptaszek Michał Chojecki

Technologia informacyjna

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

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

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

Baza danych. Baza danych to:

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

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

Zależności funkcyjne pierwotne i wtórne

Baza danych. Modele danych

domykanie relacji, relacja równoważności, rozkłady zbiorów

Model relacyjny bazy danych

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

Zasady transformacji modelu DOZ do projektu tabel bazy danych

RBD Relacyjne Bazy Danych

Bazy danych i usługi sieciowe

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

Autor: Joanna Karwowska

Normalizacja relacyjnych baz danych. Sebastian Ernst

WPROWADZENIE DO BAZ DANYCH

Bazy danych TERMINOLOGIA

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

Systemy GIS Tworzenie zapytań w bazach danych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Teoretyczne podstawy informatyki

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

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

Bazy danych 6. Przykłady

WPROWADZENIE DO BAZ DANYCH

Relacyjny model danych

Pierwsza postać normalna

Przestrzenne bazy danych Podstawy języka SQL

Relacyjny model danych

Microsoft Access materiały pomocnicze do ćwiczeń cz. 1

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Pierwsza postać normalna

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

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

Bazy danych i usługi sieciowe

Oracle11g: Wprowadzenie do SQL

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Technologie baz danych

1. Zakłada się, że każda operacja (read, write) w harmonogramie obejmuje również blokowanie i odblokowanie jednostki. Czy następujący harmonogram

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

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

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Tadeusz Pankowski Definicja. Definicja

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM, regulski@metal.agh.edu.pl

Bazy danych 11. Algorytmy złaczeń. P. F. Góra

SZKOLENIE: Administrator baz danych. Cel szkolenia

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

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

Transformacja modelu ER do modelu relacyjnego

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Uzupełnij pola tabeli zgodnie z przykładem poniżej,

BAZY DANYCH NORMALIZACJA BAZ DANYCH. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

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

Zależności funkcyjne c.d.

Zadanie 1. Suma silni (11 pkt)

BAZY DANYCH Podstawowe pojęcia

Transkrypt:

Bazy danych 2. Algebra relacji Zależności funkcyjne P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2011/12

Relacyjne systemy baz danych... zdominowały rynek. Systemy nierelacyjne maja status eksperymentalny lub sa stosowane w specjalnych kontekstach. W relacyjnym systemie baz danych istnieje jedna struktura, służaca do przechowywania danych: tabela. Wiersze tabeli nazywa się krotkami, kolumny tabeli nazywa się atrybutami. Przecięcie kolumny i wiersza nosi nazwę składowej krotki. Copyright c 2010-12 P. F. Góra 2 2

Tabela Tabela stanowi zbiór krotek. Krotka stanowi uporzadkowany zbiór atrybutów. Intuicja kryjaca się za słowem tabela może być mylaca, gdyż skoro tabela w systemie relacyjnym jest zbiorem, kolejność krotek nie ma znaczenia. W tabeli (w zasadzie!) nie moga wystapić dwie takie same krotki. W terminologii angielskiej tabele dość często nazywa się relacjami. Stad bierze się nazwa relacyjny system baz danych, zaś program utrzymujacy i obsługujacy taki system nazywa się Relational DataBase Management System, w skrócie RDBMS. Copyright c 2010-12 P. F. Góra 2 3

Więzy Więzy to pewne ograniczenia nakładane na dane. Typowymi więzami sa Klucze, czyli zbiory atrybutów jednoznacznie identyfikujacych krotkę (patrz niżej). Więzy jednoznaczności jakiś atrybut musi być powiazany z co najwyżej jednym innym atrybutem (być może z innej tabeli). Więzy integralności referencyjnej jakiś atrybut musi być powiazany z dokładnie jednym innym atrybutem (być może z innej tabeli). Obiekt wskazywany przez więz integralności referencyjnej musi istnieć. Więzy domenowe, więzy zakresu. Copyright c 2010-12 P. F. Góra 2 4

Dane a metadane Tabela to obiekt abstrakcyjny. Ma swoje atrybuty i więzy. Zbiór wszystkich takich projektów tabel nazywa się schematem bazy danych. Schemat, wraz z informacjami o użytkownikach i ich uprawnieniach, stanowi metadane ( dane o danych ). Schemat tabeli w zasadzie w czasie normalnego użytkowania nie zmienia się w czasie. Zbiór wszystkich krotek danej tabeli ( zawartość tabeli ) może się zmieniać w czasie. Zbiór taki nazywa się instancja tabeli. Instancję istniejac a teraz, w tym właśnie momencie, nazywa się instancja bieżac a. Copyright c 2010-12 P. F. Góra 2 5

Dwanaście zasad Codda dla RDBMS 1. Informacje sa reprezentowane logicznie w tabelach. 2. Dane sa logicznie dostępne przez podanie nazwy tabeli, wartości klucza i nazwy kolumny. 3. Wartości NULL sa traktowane w jednolity sposób jako brakujace informacje. Nie moga być traktowane jako puste łańcuchy czy zera. 4. Metadane sa umieszczone w bazie danych tak, jak zwykłe dane. 5. Język obsługi danych ma możliwość definiowania danych i widoków (perspektyw), więzów integralności, przeprowadzania autoryzacji, obsługi transakcji i manipulacji danymi. 6. Widoki reaguja na zmiany swoich tabel bazowych. Zmiana w widoku powoduje zmianę w tabeli bazowej. Copyright c 2010-12 P. F. Góra 2 6

7. Istnieja pojedyncze operacje pozwalajace na wyszukanie, wstawienie, uaktualnienie i usunięcie danych. 8. Operacje użytkownika sa logicznie oddzielone od fizycznych danych i metod dostępu. 9. Operacje użytkownika pozwalaja na zmianę schematu bazy danych bez konieczności tworzenia bazy od nowa. 10. Więzy sa umieszczone w metadanych, nie w zewnętrznej aplikacji. 11. Język manipulacji danymi powinien działać bez względu na to jak i gdzie sa rozmieszczone fizyczne dane oraz nie powinien wymagać zmian, gdy fizyczne dane sa centralizowane lub rozpraszane. 12. Operacje na pojedynczych rekordach przeprowadzane w systemie podlegaja tym samym zasadom i więzom, co operacje na zbiorach danych. Copyright c 2010-12 P. F. Góra 2 7

Dziesiata zasada Codda Jeśli modelowany fragment rzeczywistości zawiera jakieś ograniczenia, powinny one się znaleźć w samym projekcie bazy danych, nie w aplikacji obsługujacej tę bazę. Dlaczego ograniczenia umieszczamy w metadanych, nie w aplikacji? Bo osoba piszaca aplikację może nie wiedzieć o tych ograniczeniach, może nie uznać je za istotne i może nie umieścić ich w swoim projekcie. Bo osoba piszaca kolejna aplikację może nie umieścić ich w swoim projekcie (z powodów jak wyżej). Bo doświadczenie uczy, że jeśli ograniczenia nie sa wbudowane w projekt bazy, prędzej czy później zdarzy się jakieś nieszczęście... Copyright c 2010-12 P. F. Góra 2 8

Zasady projektowania baz danych Dokładność projekt powinien odpowiadać specyfikacji, tabele powinny odzwierciedlać świat rzeczywisty. Unikanie redundancji bo zajmuje się zbyt wiele miejsca i ryzykuje się, że nie wszystkie wystapienia danej informacji będa uaktualnione. Prostota tylko tyle elementów, ile naprawdę potrzeba. Dobór właściwych elementów nie wszystko modelujemy jako atrybuty! Projekt ma odpowiadać rzeczywistości, nie widzimisię lub (na ogół błędnej) intuicji projektanta. Copyright c 2010-12 P. F. Góra 2 9

Algebra relacji Podstawowe operacje na tabelach: Działania teoriomnogościowe: Suma mnogościowa (unia) Przecięcie (iloczyn) zbiorów Różnica zbiorów \ Iloczyn kartezjański Rzutowanie π Selekcja σ Przemianowanie ρ Złaczenie Copyright c 2010-12 P. F. Góra 2 10

Wynikiem każdej operacji jest tabela, można więc tworzyć operacje złożone. Algebra relacji jest domknięta! Copyright c 2010-12 P. F. Góra 2 11

Operacje teoriomnogościowe Schematy obu tabel wejściowych musza mieć identyczne zbiory atrybutów Zanim zostanie obliczona suma mnogościowa, przecięcie lub różnica zbiorów, należy uporzadkować atrybuty obu tabel tak, aby kolejnośc atrybutów była taka sama. Copyright c 2010-12 P. F. Góra 2 12

Uwaga na wielozbiory! Tabele w modelu relacyjny powinny być zbiorami (krotki nie moga się powtarzać), ale niekiedy nie sa jeśli dopuszczamy powtórzenia krotek, czyli zbiory zastępujemy wielozbiorami, zmieniaja się definicje operacji mnogościowych. Suma R S krotka w wyniku występuje tyle razy, ile występuje w R plus tyle razy, ile występuje w S. Uwaga: jeśli nawet R i S sa zbiorami, R S może być wielozbiorem! Iloczyn R S krotka w wyniku występuje tyle razy, ile wynosi minimum jej wystapień w R i S. Różnica R\S krotka w wyniku występuje tyle razy, ile występuje ona w R minus tyle razy, ile występuje ona w S, ale nie mniej niż 0 razy. Copyright c 2010-12 P. F. Góra 2 13

Przykład R = {A, B, B}, S = {A, B, C, C} R S = {A, A, B, B, B, C, C} R S = {A, B} R\S = {B} Wielozbiory pojawiaja się (i to dość często) jako tabele wynikowe pewnych zapytań. Tabele te moga być tabelami wejściowymi kolejnych zapytań... Copyright c 2010-12 P. F. Góra 2 14

Selekcja σ C R Wybierz z tabeli R tylko te wiersze, które spełniaja warunek wyboru C. W warunku wyboru moga pojawiać się operatory logiczne! Schemat wyjściowej tabeli jest taki sam, jak tabeli wejściowej. Jeśli R jest zbiorem, nie ma duplikatów. W praktyce duplikaty niekiedy się pojawiaja; w SQL rozróżnienie SELECT( ) vs SELECT(DISTINCT ) Copyright c 2010-12 P. F. Góra 2 15

Rzutowanie π A1,A 2,...(R) Utwórz nowa tabelę, która zawiera tylko te kolumny tabeli R, które wymienione sa na liście rzutowania A 1, A 2,... Schemat tabeli wyjściowej zawiera tylko kolumny występujace na liście rzutowania. W formalizmie matematycznym operator rzutowania eliminuje duplikaty W praktyce (SQL) eliminowania duplikatów trzeba zażadać explicite. Copyright c 2010-12 P. F. Góra 2 16

Przemianowanie ρ S(A1,A 2,...,A n ) (R) W wyniku operacji ρ S(A1,A 2,...,A n )(R) z tabeli R otrzymujemy tabelę S, majac a tyle samo atrybutów, co R. Nowymi nazwami atrybutów staja się A 1, A 2,..., A n. Kolejność atrybutów zostaje zachowana. Jeśli chcemy tylko zmienić nazwę samej tabeli, bez zmiany nazw atrybutów, piszemy ρ S (R). Copyright c 2010-12 P. F. Góra 2 17

Iloczyn kartezjański R S każda krotka (wiersz) z R zostaje połaczona z każda krotka (wierszem) S Schemat wyniku ma po jednym atrybucie (kolmnie) na każdy atrybut R i po jednym atrybucie na każdy atrybut S. Nazwy atrybutów sa, o ile to możliwe, dziedziczone. Jeżeli wystapi a jakieś konflikty w nazwach kolumn, trzeba je rozwiazać przez przemianowanie przed dokonaniem iloczynu kartezjańskiego. Copyright c 2010-12 P. F. Góra 2 18

Złaczenie wewnętrzne R C S... zwane także złaczeniem warunkowym lub złaczeniem Θ (theta). Złaczenie wewnętrzne jest podzbiorem iloczynu kartezjańskiego tabel. R C S = σ C (R C) Z iloczynu kartezjańskiego R S wybieramy tylko te krotki, które spełniaja warunek C. Warunek C może być złożony! (Na ogół) znacznie mniej krotek, niż w iloczynie kartezjańskim. Schemat wyniku taki, jak schemat iloczynu kartezjańskiego. Copyright c 2010-12 P. F. Góra 2 19

Złaczenie równościowe (equijoin): złaczenie warunkowe, w którym warunek C zawiera wyłacznie równości pomiędzy atrybutami łaczonych tabel. Jeżeli złacze- nie równościowe zachodzi po atrybutach (kolumnach) o takich samych nazwach, schemat wyniku jest podobny do schematu iloczynu kartezjańskiego, ale zawiera tylko jedno wystapienie każdego atrybutu, dla którego zażadano równości. Złaczenie naturalne to złaczenie równościowe po wszystkich powtarzajacych się nazwach atrybutów (kolumn). Złaczenie wewnętrzne, będace podzbiorem iloczynu kartezjańskiego, nie jest operacja elementarna, ale jest tak ważne dla relacyjnych systemów baz danych, że otrzymało własna nazwę. Istnieja także specjalne algorytmy konstruowania złaczeń. W zdecydowanej większości przypadków złaczenia wewnętrznego nie implementuje się z definicji, to znaczy przez konstrukcję iloczynu kartezjańskiego, z którego później wybierany jest odpowiedni podzbiór. Copyright c 2010-12 P. F. Góra 2 20

Zależności funkcyjne Definicja: Mówimy, że atrybut B jest zależny funkcyjnie od atrybutów A 1,..., A n, co zapisujemy A 1, A 2,..., A n B, wtedy, gdy dwie krotki zgodne w atrybutach A 1,..., A n musza być zgodne w atrybucie B. Zależności funkcyjne sa matematycznym modelem więzów jednoznaczności w modelu relacyjnym baz danych. Zależności funkcyjne należa do schematu bazy. Nie można o nich wnioskować jedynie na podstawie instancji (faktycznych wystapień) tabel. Copyright c 2010-12 P. F. Góra 2 21

X Y X Y Z x y z 1 x y z 2 jeżeli sa zgodne tutaj...... to musza być zgodne tutaj Na przykład spodziewamy się, że w osobowej bazie danych obowiazuje zależność funkcyjna PESEL Nazwisko. Jeżeli dwie krotki maja taki sam numer PESEL, musza odnosić się do osób majacych to samo Nazwisko. Copyright c 2010-12 P. F. Góra 2 22

Jeżeli zachodzi A 1, A 2,..., A n B 1 A 1, A 2,..., A n B 2... A 1, A 2,..., A n B m piszemy w skrócie A 1, A 2,..., A n B 1, B 2,..., B m Copyright c 2010-12 P. F. Góra 2 23

Zależności trywialne Zależność funkcyjna A 1, A 2,..., A n B nazywam trywialna, jeśli atrybut B jest równy któremuś atrybutowi A 1,2,...,n. Jeśli przyjmiemy skrótowy zapis zależności z wieloczłonowa prawa strona, zależność jest Trywialna, jeśli zbiór złożony z atrybutów B jest podzbiorem zbioru złożonego z atrybutów A Nietrywialna, jeśli co najmniej jeden B nie jest A Całkowicie nietrywialna, jeśli żadnen B nie jest A. Copyright c 2010-12 P. F. Góra 2 24

Reguły wnioskowania (aksjomaty Armstronga) zwrotność: Jeżeli {B 1, B 2,..., B m } {A 1, A 2,..., A n }, to A 1, A 2,..., A n B 1, B 2,..., B m. rozszerzenie: Jeżeli A 1, A 2,..., A n B 1, B 2,..., B m, to A 1, A 2,..., A n, C 1, C 2,..., C k B 1, B 2,..., B m, C 1, C 2,..., C k dla dowolnych C 1, C 2,..., C k. przechodniość: Jeżeli A 1, A 2,..., A n B 1, B 2,..., B m oraz B 1, B 2,..., B m C 1, C 2,..., C k, to A 1, A 2,..., A n C 1, C 2,..., C k. Copyright c 2010-12 P. F. Góra 2 25

Dodatkowe reguły wnioskowania Można udowodnić, że poniższe reguły wniokowania wynikaja wprost z aksjomatów Armstronga: Relacja zwrotna: X X Rozszerzanie: jeżeli X Y, wtedy X, Z Y Sumowanie: jeżeli X Y oraz X Z, wtedy X Y, Z Rozkład: jeżeli X Y oraz Z Y, to X Z Przechodniość: jeżeli X Y oraz Y Z, to X Z Pseudoprzechodniość: jeżeli X Y oraz Y, Z W, to X, Z W. Copyright c 2010-12 P. F. Góra 2 26

Domknięcia Niech {A 1, A 2,..., A n } będzie pewnym zbiorem atrybutów, S niech będzie zbiorem zależności funkcyjnych. Domknięciem zbioru {A 1, A 2,..., A n } nad S nazywamy taki zbiór atrybutów B, że jeśli jego elementy spełniaja wszystkie zależności funkcyjne z S, to spełniaja także zależność A 1, A 2,..., A n B, a zatem zależność A 1, A 2,..., A n B wynika z S. Domknięcie oznaczam cl{a 1, A 2,..., A n }. Mówiac niezbyt ściśle, domknięcie to zbiór wszystkich atrybutów determinowanych, w sensie zależności funkcyjnych, przez atrybuty zbioru wyjściowego. Copyright c 2010-12 P. F. Góra 2 27

Algorytm obliczania domknięcia 1. Na poczatku X oznacza zbiór {A 1, A 2,..., A n }. 2. Znajdujemy wszystkie zależności funkcyjne postaci B 1, B 2,..., B m C, gdzie B i należa do X, a C nie należy. Dołaczamy C do X. 3. Powtarzamy krok 2 tak długo, jak długo do X można dołaczyć jakiś nowy atrybut. Ponieważ X może się tylko rozszerzać, zaś zbiór atrybutów jest skończony, po skończonej liczbie kroków nastapi moment, w którym do X nie da się niczego dołaczyć. 4. W tym momencie X = cl{a 1, A 2,..., A n }. Copyright c 2010-12 P. F. Góra 2 28

Powyżej przedstawiony algorytm jest poprawny i intuicyjnie prosty, ale nie jest efektywny może być algorytmem kwadratowym (w czasie) w najgorszym przypadku. Znacznie rozsadniej jest tak uporzadkować zależności funkcyjne, aby każda była używana ( odpalana ) dokładnie w tym momencie, w którym wszystkie atrybuty jej lewej strony znajda się w kandydacie X. Dla dużych baz (i tabel) domknięć nie oblicza się ręcznie! software, który to robi. Istnieje specjalny Copyright c 2010-12 P. F. Góra 2 29

Przykład Rozważmy zbiór atrybutów {A, B, C, D, E, F }. Załóżmy, że w tym zbiorze zachodza zależności A, B C, B, C A, D, D E, C, F B. Obliczmy cl{a, B}. X = {A, B}. Wszystkie atrybuty poprzednika zależności A, B C sa w X, więc do X dołaczamy C. X = {A, B, C}. Lewa strona zależności B, C A, D jest w X, A jest już w X, więc do X dołaczamy D. X = {A, B, C, D}. Na mocy zależności D E, dołaczamy do X atrybut E. X = {A, B, C, D, E}. Zleżności C, F B nie możemy wykorzystać, ponieważ F X i nie ma jak dołożyć F do X. Ostatecznie cl{a, B} = {A, B, C, D, E}. Copyright c 2010-12 P. F. Góra 2 30

Bazy zależności funkcyjnych Każdy zbiór zależności funkcyjnych pewnego zbioru atrybutów, z którego można wyprowadzić wszystkie inne zależności funkcyjne zachodzace pomiędzy elementami tego zbioru, nazywam baza zbioru zależności funkcyjnych. Jeśli żaden podzbiór bazy nie jest baza (nie umożliwia wyprowadzenia wszystkich relacji), bazę tę nazywam baza minimalna. Copyright c 2010-12 P. F. Góra 2 31

Przykład Mam atrybuty A, B, C i zależności A B, A C, B A, B C, C A, C B. Można teraz wyprowadzić zależności nietrywialne A, B C, A, C B, B, C A (oraz zależności trywialne). Baza minimalna jest zbiór {A B, B A, B C, C B}. Inna baza minimalna jest A B, B C, C A. Copyright c 2010-12 P. F. Góra 2 32

Po co jemy tę żabę? Copyright c 2010-12 P. F. Góra 2 33

Klucze Mówimy, że zbiór atrybutów {A 1, A 2,..., A n } tworzy klucz pewnej tabeli, jeśli wszystkie pozostałe atrybuty z tej tabeli sa funkcyjnie zależne od wskazanego zbioru. Dwie różne krotki nie moga mieć tych samych kluczy (jeśli maja takie same klucze, musza mieć równe także pozostałe atrybuty, a zatem nie sa różne). Jeżeli przyjmujemy, że tabele sa zbiorami krotek w zabiorze każdy element występuje co najwyżej raz widzimy, że klucz jednoznacznie identyfikuje krotkę. Copyright c 2010-12 P. F. Góra 2 34

Klucz o tej własności, że żaden jego podziór właściwy nie jest kluczem, nazywamy kluczem minimalnym. Terminologia alternatywna: W niej to, co powyżej nazwaliśmy kluczem minimalnym, nazywa się po prostu kluczem, natomiast każdy nadzbiór klucza nazywamy nadkluczem. Copyright c 2010-12 P. F. Góra 2 35

Zauważmy, że zbiór cl{a 1, A 2,..., A n } zawiera wszystkie atrybuty pewnej tabeli wtedy i tylko wtedy, gdy {A 1, A 2,..., A n } jest (nad)kluczem tej tabeli. Sprawdzenie, czy dany zbiór elementów stanowi klucz tabeli, sprowadza się do sprawdzenia, czy wszystkie atrybuty tabeli należa do domknięcia klucza kandydujacego, czy jakiś właściwy podzbiór klucza kandydujacego także nie ma tej właściwości. Obliczanie domknięć nad zadanym zbiorem zależności funkcyjnych jest formalnym narzędziem służacym do identyfikowania kluczy tabel. Copyright c 2010-12 P. F. Góra 2 36