Matematyczne podstawy
relacyjnych baz danych
Model relacyjny i algebra relacji
Pojęcia podstawowe
" Algebra = dział matematyki, zajmujący się strukturami algebraicznymi i
relacjami
" Struktura algebraiczna = intuicyjnie: zbiór elementów + działania na tym
zbiorze i ich własności
Przykłady:
" Algebra Boole a
" Algebra liniowa
" Algebra zbiorów
" Algebra liczb całkowitych
" Algebra macierzy
" &
Krzysztof Molenda, Bazy danych I
2013-01-10
Algebra zbiorów przegląd pojęć (1)
" Zbiór (A, B, & ), przynależność do zbioru (aÎðA), zbiór pusty (Ćð),
uniwersum (U).
" Relacje między zbiorami:
równość (A=B), inkluzja (AÍðB), zbiory rozÅ‚Ä…czne (AÇðB=Ćð)
" Działania na zbiorach:
suma (AÈðB), iloczyn (AÇðB ), różnica (A-ðB), różnica symetryczna (A¸ðB),
dopeÅ‚nienie (A ), iloczyn kartezjaÅ„ski (A´ðB), zbiór potÄ™gowy (2A)
" Prawa rachunku zbiorów:
przemienność sumy (A Èð B = B Èð A) i iloczynu (A Çð B = B Çð A),
Å‚Ä…czność sumy (AÈðB)ÈðC = AÈð(BÈðC) i iloczynu (AÇðB)ÇðC = AÇð(BÇðC),
rozdzielność iloczynu wzglÄ™dem sumy A Çð (B Èð C) = (A Çð B) Èð (A Çð C),
rozdzielność sumy wzglÄ™dem iloczynu A Èð (B Çð C) = (A Èð B) Çð (A Èð C),
prawa de Morgana dla zbiorów
" (A Çð B)' = A' Èð B'
" (A Èð B)' = A' Çð B'
" Zbiory skończone/nieskończone, moc zbioru (card, #), równoliczność
Krzysztof Molenda, Bazy danych I
2013-01-10
Algebra zbiorów przegląd pojęć (2)
" Brak duplikatów elementów w zbiorze.
Koncepcja MULTIZBIORU {3*a, 4*b, 1*c} jako funkcji f : A Ä…ð N
Działania na multizbiorach (suma, iloczyn, różnica)
" Brak zdefiniowanego porządku elementów w zbiorze.
" Zbiory uporzÄ…dkowane
Porządek częściowy relacja na zbiorze
Porządek całkowity (liniowy) relacja na zbiorze
Krzysztof Molenda, Bazy danych I
2013-01-10
Algebra relacji
" Algebra relacji = relacje + działania na nich + ich własności
" Definicja relacji (w sensie matematycznym)
Niech dane będą zbiory D1, D2, .., Dn.
RelacjÄ… matematycznÄ… R nad zbiorami D1, D2, .., Dn nazywamy dowolny
podzbiór iloczynu kartezjańskiego
R Íð D1´ðD2 ´ð .. ´ð Dn = {(d1, d2, .., dn): di Îð Di, i=1, 2, .., n}
Krzysztof Molenda, Bazy danych I
2013-01-10
Reprezentacja relacji (matematycznej) grafy, tabele
" A = {a1, a2, a3}
" B = {b1, b2}
" A´ðB = { (a1, b1), (a1, b2), (a2,
b1), (a2, b2), (a3, b1), (a3, b2) }
" Relacja R Íð A´ðB jest
zdefiniowana następująco:
R = { (a1, b1), (a1, b2), (a2, b1),
(a3, b2) }
" Uwagi:
Ważna kolejność w parach
Nie ma duplikatów par
Zbiór pusty jest relacją (pustą)
Nie każdy element z A musi mieć
swój odpowiednik w B
Krzysztof Molenda, Bazy danych I
2013-01-10
Relacja jako tabela (w bazach danych)
" W bazach danych rozróżnienie między:
StrukturÄ… tabeli (schema)
Zawartością tabeli, instancją (instance)
" Analogia do imperatywnych języków programowania:
Struktura = typ
Instancja = wartość
Lista atrybutów
Nazwa relacji
R A1 A2 .. An
a11 a12 .. a1n
Krotka (ang.
a21 a22 .. a2n
tuple)
(odwzorowanie
encji)
am1 am2 .. amn
Krzysztof Molenda, Bazy danych I
2013-01-10
Schemat relacji (struktura tabeli)
Schemat relacji
R(A1:D1, A2:D2, & , An:Dn)
składa się z:
nazwy relacji (tu: R)
niepustego zbioru atrybutów (tu: A1, & , An)
typu lub dziedziny Di = dom(Ai) dla każdego atrybutu Ai
" Przykład:
Czytelnik( Numer : integer, Nazwisko : nazwa, ImiÄ™ : nazwa,
DataUrodzenia : data, Adres : varchar(50))
Uwaga:
" Jeśli nie jest to konieczne lub jest oczywiste, nie podaje się dziedzin
atrybutów
" Podkreśleniami zaznacza się atrybuty kluczowe
Krzysztof Molenda, Bazy danych I
2013-01-10
Typy i dziedziny atrybutów
" Typ = klasa wartości atomowych, np.
Liczby całkowite, rzeczywiste, napisy
Liczby całkowite między 15 a 80, napisy nie przekraczające 50 znaków
" Dziedzina = nazwany zbiór wartości atomowych, pełniący specjalne
znaczenie w modelu bazy danych lub aplikacji, np.
Nazwa, Wiek, &
" Dziedzina posiada typ, np.
Wiek = Integer[5..80]
Nazwa = Varchar(50)
PLN = Decimal(10, 2)
" Dziedzina może posiadać wartość domyślną
" Używanie dziedziny zamiast typu wprowadza dodatkowy poziom
abstrakcji dla modelu i aplikacji
Krzysztof Molenda, Bazy danych I
2013-01-10
Instancja relacji
Czytelnik
Dla relacji o schemacie:
Numer Nazwisko ImiÄ™ DataUrodz Adres
Czytelnik( Numer : integer, Nazwisko :
enia
nazwa, ImiÄ™ : nazwa, DataUrodzenia :
133 Nowak Jan 10.03.1957 31-950
data, Adres : varchar(50))
Kraków, ul.
Warszawsk
krotka może być reprezentowana
a 3
134 Kowalski Jan 1.01.1964 31-950
jako ciąg wartości atrybutów
Kraków, ul.
Warszawsk
ustawionych zgodnie z kolejnością
a 3
atrybutów w schemacie relacji
135 Nowak Piotr 3.03.1993 30-199
Kraków, ul.
(133, Nowak, Jan, 10.03.1957, 31-950
Balicka 100
Kraków, ul. Warszawska 3 )
& & & & &
2034 Molenda Jan 2.09.1972 30-199
Kraków, ul.
Instancja relacji = zbiór krotek
Balicka 100
spełniających relację (tzn.
składowe krotki są typu lub
dziedziny odpowiadajÄ…cego im
atrybutu)
Krzysztof Molenda, Bazy danych I
2013-01-10
Schemat bazy danych i jej instancja
" Schemat bazy danych = zbiór schematów relacji + ograniczenia
dotyczące integralności danych
" Przykład:
Deklaracja dziedzin:
" Nazwa = Varchar(30); PLN = Decimal(10,2);
Schematy relacji:
" Produkt( NazwaProduktu : Nazwa, Cena: PLN, Kategoria : Nazwa, Producent :
Nazwa)
" Sprzedawca( NazwaSprzedawcy : Nazwa, Adres : Varchar(50), Telefon :
Character(11))
Ograniczenia integralnościowe: &
" Instancja bazy danych = zbiór instancji relacji, po jednej dla każdego
schematu
" WAŻNE:
Schemat bazy niezmienny w długim przedziale czasu
Instancja bazy zmienna
Krzysztof Molenda, Bazy danych I
2013-01-10
Aktualizacje
" Baza danych odzwierciedla stan pewnego wycinka rzeczywistości.
" Åšwiat siÄ™ zmienia Ä…ð baza danych siÄ™ zmienia
" Aktualizacja instancji:
Dodawanie krotek
Usuwanie krotek
Modyfikowanie atrybutu krotki
" Aktualizacja danych Ä…ð czÄ™sta
" Aktualizacja struktury danych Ä…ð relatywnie rzadko, raczej bolesna
Krzysztof Molenda, Bazy danych I
2013-01-10
Wartości NULL
" Wartości atrybutów:
sÄ… atomowe
są określonego typu, pochodzą ze znanej dziedziny
czasami mogą być puste (NULL)
" Trzy przyczyny występowania NULL
Wartość nie ma zastosowania
Wartość nie jest znana
Wartość nie wprowadzona (ale znana)
" Dla potrzeb algebry relacji, konieczność rozszerzenia dziedziny atrybutu
o wartość NULL oraz konieczność stosowania logiki trójwartościowej
(TRUE, FALSE, UNKNOWN)
" NULL należy do dziedziny każdego atrybutu
Krzysztof Molenda, Bazy danych I
2013-01-10
Wartości NULL i logika trójwartościowa
" Dowolne porównania z NULL zwracają wartość nieznaną UNKNOWN
" Logika trójwartościowa z UNKNOWN:
OR:
" (UNKNOWN or true) = true,
" (UNKNOWN or false) = UNKNOWN,
" (UNKNOWN or UNKNOWN) = UNKNOWN.
AND:
" (true and UNKNOWN) = UNKNOWN,
" (false and UNKNOWN) = false,
" (UNKNOWN and UNKNOWN) = UNKNOWN.
NOT:
" (not UNKNOWN) = UNKNOWN
" SQL: Wynik wyrażenia w klauzuli where jest traktowany jako false,
jeżeli obliczenia wyrażenia dają wartość UNKNOWN.
" SQL: Można testować czy wartość atrybutu jest nieokreślona stosując
predykat IS NULL lub IS NOT NULL
Krzysztof Molenda, Bazy danych I
2013-01-10
PorzÄ…dek i duplikaty
" W relacjach matematycznych:
Kolejność atrybutów jest znacząca (bo iloczyn kartezjański)
Kolejność krotek nie ma znaczenia (bo zbiór)
Nie występują duplikaty krotek (bo zbiór)
" W tabelach (jako reprezentacji relacji)
Kolejność atrybutów (tzn. kolumn) może być bez znaczenia, jeśli kolumny
identyfikowane sÄ… przez unikalne nazwy
Kolejność krotek (tzn. wierszy) może być bez znaczenia lub mieć znaczenie,
zależne od interpretacji tabeli
Duplikaty krotek (tzn. wierszy) mogą wystąpić
" Problem w jaki sposób użyć fundamentów matematycznych dla
reprezentowania relacji w formie takich właśnie tabel?
Krzysztof Molenda, Bazy danych I
2013-01-10
Relacja w sensie Codd a
Tabelka w postaci:
R A1 A2 .. An
a11 a12 .. a1n
a21 a22 .. a2n
am1 am2 .. amn
reprezentuje relacjÄ™
R(X), X={A1, A2, .., An} (w sensie Codd a), jeżeli:
1. Nazwa tabeli jest nazwÄ… relacji.
2. Nie ma dwóch różnych kolumn o tej samej nazwie.
3. UporzÄ…dkowanie kolumn jest nieistotne.
4. W kolumnie o nazwie Ai występują tylko elementy ze zbioru
Dom(Ai).
5. Nie ma dwóch równych wierszy i ich kolejność jest nieistotna.
Krzysztof Molenda, Bazy danych I
2013-01-10
Relacja w sensie Codd a
" Niech U oznacza zbiór atrybutów, np.
U = {NazwaProduktu, Cena, Kategoria, Producent}
" Niech D oznacza sumę dziedzin atrybutów, np.
D = dom(NazwaProduktu) Èð dom(Cena) Èð dom(Kategoria) Èð
dom(Producent)
" Krotka jest funkcjÄ…:
t : U ®ð D
np.
{ NazwaProduktu ®ð Nikon D90,
Cena ®ð 3000.00,
Kategoria ®ð fotografia,
Producent ®ð Nikon }
" Kolejność atrybutów w krotce jest bez znaczenia, nazwy atrybutów są
ważne
" Taki model reprezentacji matematycznej zastosowany jest w SQL
Krzysztof Molenda, Bazy danych I
2013-01-10
Oznaczenia
" Dla schematu R(A1, ..., An), niech krotka t spełnia ten schemat.
" Wtedy:
t[Ai] = wartość krotki t dla atrybutu Ai
t[Ai, Aj, Ak] = podkrotka t, z wartościami z atrybutów Ai, Aj, Ak
" Przykład:
Schemat: Produkt( NazwaProduktu : Nazwa, Cena: PLN, Kategoria : Nazwa,
Producent : Nazwa)
Krotka: t = (Nikon D90, 3000.00, fotografia, Nikon)
t[Cena] = 3000.00
t[NazwaProduktu, Producent] = (Nikon D90, Nikon)
Krzysztof Molenda, Bazy danych I
2013-01-10
" Dwie definicje relacji:
1. jako podzbiór iloczynu kartezjańskiego; kolejność atrybutów w krotce jest
istotna, nazwy atrybutów nieistotne (zapis pozycyjny)
2. jako funkcja (mapowanie) atrybutów w sumę ich dziedzin; krotka jest
wartością takiego odwzorowania, kolejność atrybutów jest nieistotna,
ważne są nazwy atrybutów
" Obie definicje wykorzystywane sÄ… w praktyce:
SQL: ad. 2 krotki jako funkcje
QBE (query by example): ad. 1 krotki w zapisie pozycyjnym
" Dlaczego model relacyjny dla składowania i dostępu do danych?
Bo bardzo prosty
Bo dostarcza prostej koncepcji (tabele) reprezentacji danych
Bo ma silne podstawy matematyczne, bazuje na teorii zbiorów i logice
Bo dostarcza abstrakcji dla języka dostępu do danych (SQL najważniejszy
język dla Systemów Zarządzania Bazami Danych)
" !!! W SQL używamy MULTIZBIORÓW, tymczasem abstrakcyjny model relacyjny
bazuje na teorii zbiorów
Krzysztof Molenda, Bazy danych I
2013-01-10
Ograniczenia integralnościowe
" Przesłanki:
Sytuacja idealna: Baza danych odzwierciedla świat rzeczywisty
Rzeczywistość: Nie zawsze jest to możliwe
Cel: Wiedzieć, kiedy baza danych się rozsynchronizowuje
Obserwacja: Nie każda matematycznie możliwa instancja (sytuacja) ma
rzeczywisty sens
Pomysł:
" Opisać warunki, które muszą być spełnione dla wszystkich sensownych instancji
(sytuacji)
" Sprawdzić, czy warunki są utrzymane po wykonanej aktualizacji
" Takie warunki nazywane są ograniczeniami integralnościowymi (ang.
integrity constraint)
Krzysztof Molenda, Bazy danych I
2013-01-10
Typy ograniczeń integralnościowych
" Zależności funkcyjne (ang. functional dependencies, FDs)
A ®ð B, każdej wartoÅ›ci z dziedziny atrybutu A przypisana jest nie wiÄ™cej niż jedna wartość z
dziedziny atrybutu B
Pracownicy tego samego działu mają tego samego kierownika
" Klucze (ang. keys) specjalny przypadek zależności funkcyjnej
Pracownicy z tym samym numerem PESEL sÄ… identyczni
" Integralność referencyjna (ang. referential integrity) klucze obce (ang. foreign
keys constraints, FKs)
Każda wartość danego atrybutu w relacji R istnieje jako wartość pewnego atrybutu w innej relacji
S
Pracownik może być przyporządkowany tylko do tego działu, który jest wymieniony w
relacji Działy
" Zawężenia dziedziny (ang. domain constraints) - check
Nie ma pracownika młodszego niż 15 lat i starszego niż 80 lat
" Unikalność (ang. unique), obligatoryjność (NULL / not NULL)
" Ograniczenia integralnościowe stanowią część schematu (relacji, bazy). DBMS
zezwala jedynie na instancje spełniające takie ograniczenia.
Krzysztof Molenda, Bazy danych I
2013-01-10
Zależności funkcyjne przykład
" Dla schematu:
Pracownik(Nazwisko, PESEL, Dział, Kierownik)
" Zapisujemy zależności funkcyjne:
DziaÅ‚ ®ð Kierownik
" czytamy: Kierownik zależy funkcyjnie od Działu, lub Dział funkcyjnie determinuje
Kierownika
PESEL ®ð Nazwisko, DziaÅ‚, Kierownik
" czytamy: Nazwisko, Dział, Kierownik zależą funkcyjnie od PESEL, lub PESEL
funkcyjnie determinuje Nazwisko, Dział oraz Kierownika
W tej sytuacji stan relacji Pracownik, w którym istnieją dwie krotki:
z tym samym Działem i różnymi Kierownikami, albo
z tym samym PESELEM, ale z różnym Nazwiskiem lub Działem lub
Kierownikiem
jest sprzeczny z założonymi zależnościami funkcyjnymi (baza jest
rozsynchronizowana)
Krzysztof Molenda, Bazy danych I
2013-01-10
Zależności funkcyjne - formalizmy
Niech R będzie relacją (w sensie
baz danych), niech A1, & , Am, B1,
& , Bn, będą atrybutami tej
relacji.
Zależność funkcyjna w relacji R
jest wyrażeniem:
A1, & , Am ®ð B1, & , Bn
" Instancja r relacji R spełnia tę
" Problem, ile w danej relacji może
zależność funkcyjną, jeśli dla
wystąpić zależności funkcyjnych?
dowolnych krotek t1 i t2 relacji R
Rozważ przypadek relacji z
zachodzi implikacja:
trzema atrybutami R(A, B, C).
Wypisz wszystkie możliwe
jeśli t1[A1, & , Am] = t2[A1, & , Am],
sytuacje.
to t1[B1, & , Bn] = t2[B1, & , Bn]
Krzysztof Molenda, Bazy danych I
2013-01-10
Zależności funkcyjne - przykład
Id Nazwisko Telefon Rola
Rozważmy schemat relacji:
1 Kowalski 1234 prawnik
Pracownik( Id, Nazwisko, Telefon,
2 Nowak 9876 sprzedawca
Rola)
3 Kowalski 9876 sprzedawca
4 Molenda 1234 informatyk
Rozważmy instancję tej relacji
(tabela po prawej stronie)
" Które z zależności funkcyjnych są spełnione dla tej instancji?
Id Nazwisko, Telefon, Rola
Rola Telefon
Telefon Rola
Nazwisko, Telefon Rola
Nazwisko Rola
Nazwisko Telefon, Rola
2013-01-10 Krzysztof Molenda, Bazy danych I
Zależności funkcyjne, superklucze, klucze
Przykłady schematów z zapisem zależności funkcyjnych:
" Osoba (PESEL, Nazwisko, DataUrodzenia)
PESEL Nazwisko, DataUrodzenia
" Produkt (Nazwa, Cena, Producent)
Nazwa Cena, Producent
Nazwa Nazwa, Cena, Producent
Nazwa, Cena Nazwa, Cena, Producent
" Książka (Autor, Tytuł, Wydanie, Cena)
Autor, Tytuł, Wydanie Cena
" Podzbiór atrybutów relacji jest superkluczem, jeśli funkcyjnie
determinuje wszystkie atrybuty tej relacji. (W szczególności cały
schemat relacji jest superkluczem).
" Superklucz jest kluczem kandydującym, jeśli żaden z jego podzbiorów
nie jest superkluczem (tzn. usunięcie z niego dowolnego atrybutu
powoduje, że przestaje być superkluczem)
" Klucz kandydujÄ…cy jest minimalnym superkluczem
Krzysztof Molenda, Bazy danych I
2013-01-10
Superklucze, klucze kandydujące, klucz główny
" Superklucz zbiór atrybutów, których wartości zawsze jednoznacznie
identyfikujÄ… krotkÄ™ w relacji.
" Klucz kandydujący superklucz, który nie zawiera superklucza nie
bÄ™dÄ…cego nim samym Jð (tzn. minimalny superklucz)
Dla danej relacji może być więcej niż jeden klucz kandydujący
" Klucz główny wybrany klucz kandydujący,
jeden na każdą relację
" Zapis klucza głównego w schemacie relacji: podkreślenie linią ciągłą i
pogrubienie
Student( NrAlbumu, Nazwisko, ImiÄ™, Rocznik, Promotor, IdObrony )
" Klucze:
{NrAlbumu, Nazwisko, ImiÄ™, Rocznik, Promotor} - superklucz
{NrAlbumu} superklucz, klucz kandydujący, klucz główny
{Promotor, IdObrony} superklucz, klucz kandydujÄ…cy
Krzysztof Molenda, Bazy danych I
2013-01-10
Klucze obce (foreign keys)
" Klucz obcy = zbiór atrybutów w relacji, który dokładnie odpowiada
kluczowi głównemu w innej relacji
Nazwy atrybutów nie muszą być identyczne, ale muszą być z tej samej
dziedziny
Student (NrAlbumu, Nazwisko, Kierunek, Rocznik, Promotor)
Pracownik(Wykładowca, Pokój, Przełożony)
" Notacja:
FK1: Student(Promotor) references Pracownik(Wykładowca)
FK2: Pracownik(Przełożony) references Pracownik(Wykładowca)
Ograniczenie referencyjne klucza obcego FK: R(A) references S(B)
jest spełnione przez instancje relacji R oraz S, jeśli dla każdej krotki t1 w R
istnieje krotka t2 w S taka, że
t1[A] = t2[B],
przy założeniu, że t1[A] IS NOT NULL
Krzysztof Molenda, Bazy danych I
2013-01-10
Aktualizacje
" Aktualizacje = wstawianie, usuwanie, modyfikacja krotek
" Aktualizacje mogą naruszać ograniczenia.
" Pytania:
Co może pójść nie tak?
Jak na taką sytuację ma zareagować System Zarządzania Bazą Danych?
Przykład wiodący:
Student (NrAlbumu, Nazwisko, Kierunek, Rocznik, Promotor)
Pracownik(Wykładowca, Pokój, Przełożony)
" FK1: Student(Promotor) references Pracownik(Wykładowca)
" FK2: Pracownik(Przełożony) references Pracownik(Wykładowca)
Student Pracownik
NrAlbumu Nazwisko Kierunek Rocznik Promotor Wykładowca Pokój Przełożony
s1 abacki adm 2 busz nowak IT206 wilusz
s2 babacki zarz 2 nowak busz 2.26 kapon
s3 cacacki inf 2 molenda molenda 2.82 kapon
s4 dadacki adm 1 molenda zobel 2.34 wilusz
s5 abacki inf 1 zobel wilusz IT212 kowalski
s6 lalacki adm 3 nowak woda IT204 kowalski
kapon A14 wilusz
lula 2.10 woda
kowalski 2.125 null
Krzysztof Molenda, Bazy danych I
2013-01-10
Wstawianie krotek i problemy
Student Pracownik
NrAlbumu Nazwisko Kierunek Rocznik Promotor Wykładowca Pokój Przełożony
s1 abacki adm 2 busz nowak IT206 wilusz
s2 babacki zarz 2 nowak busz 2.26 kapon
s3 cacacki inf 2 molenda molenda 2.82 kapon
s4 dadacki adm 1 molenda zobel 2.34 wilusz
s5 abacki inf 1 zobel wilusz IT212 kowalski
s6 lalacki adm 3 nowak woda IT204 kowalski
kapon A14 wilusz
lula 2.10 woda
kowalski 2.125 null
" Co się stanie i dlaczego, jeśli do relacji Student dodana zostanie
krotka
(s1, abacki, zarz, 3, kapon)
(null, abacki, zarz, 3, kapon)
(s7, abacki, zarz, 3, null)
(s7, abacki, zarz, 3, barbaszewski)
Krzysztof Molenda, Bazy danych I
2013-01-10
Usuwanie krotek i problemy
Student Pracownik
NrAlbumu Nazwisko Kierunek Rocznik Promotor Wykładowca Pokój Przełożony
s1 abacki adm 2 busz nowak IT206 wilusz
s2 babacki zarz 2 nowak busz 2.26 kapon
s3 cacacki inf 2 molenda molenda 2.82 kapon
s4 dadacki adm 1 molenda zobel 2.34 wilusz
s5 abacki inf 1 zobel wilusz IT212 kowalski
s6 lalacki adm 3 nowak woda IT204 kowalski
kapon A14 wilusz
lula 2.10 woda
kowalski 2.125 null
" Co się stanie i dlaczego, jeśli z relacji Student usunięta zostanie
krotka
(s2, babacki, zarz, 2, nowak)
" Co się stanie i dlaczego, jeśli z relacji Pracownik usunięta zostanie
krotka
(nowak, IT206, wilusz)
Krzysztof Molenda, Bazy danych I
2013-01-10
Modyfikowanie krotek i problemy
Student Pracownik
NrAlbumu Nazwisko Kierunek Rocznik Promotor Wykładowca Pokój Przełożony
s1 abacki adm 2 busz nowak IT206 wilusz
s2 babacki zarz 2 nowak busz 2.26 kapon
s3 cacacki inf 2 molenda molenda 2.82 kapon
s4 dadacki adm 1 molenda zobel 2.34 wilusz
s5 abacki inf 1 zobel wilusz IT212 kowalski
s6 lalacki adm 3 nowak woda IT204 kowalski
kapon A14 wilusz
lula 2.10 woda
kowalski 2.125 null
" Co się stanie i dlaczego, jeśli w relacji Student zmodyfikowana
zostanie krotka
(s1, abacki, adm, 2, busz) na (s1, abacki, adm, 2, wilusz)
(s2, babacki, zarz, 2, nowak) na (s1, abacki, adm, 2, dadacki)
" Co się stanie i dlaczego, jeśli w relacji Pracownik zmodyfikowana
zostanie krotka
(lula, 2.10, woda) na (lala, 2.10, woda)
(molenda, 2.82, kapon) na (molęda, 2.82, kapon)
Krzysztof Molenda, Bazy danych I
2013-01-10
Podsumowanie
" Model relacyjny bazuje na koncepcji
teorii zbiorów i logiki
" Formalizuje koncepcjÄ™ tabel
Reakcje na naruszenie
" Wyróżnia:
więzów integralności SZBD
Schemat relacji: nazwÄ™, atrybuty i ich typy
(dziedziny)
może:
InstancjÄ™ relacji: relacjÄ™ na dziedzinach
" Odrzucić aktualizację
atrybutów
" Naprawić efekt naruszenia
" Dwa formalizmy krotek
integralności poprzez:
Notacja pozycyjna versus funkcyjna
Wstawienie NULL
" Ograniczenia integralnościowe:
Wstawienie wartości
domyślnej
zawężenie dziedziny, zależności
Kaskadowe usuwanie
funkcyjne, klucze, klucze obce
KaskadowÄ… modyfikacjÄ™
" Aktualizacje mogą naruszać
ograniczenia integralnościowe i SZBD
musi na to reagować
Krzysztof Molenda, Bazy danych I
2013-01-10
Wyszukiwarka
Podobne podstrony:
Microsoft PowerPoint 04 algebra relacji i rachunek relacyjnyAlgebra Relacjealgebra relacji4 Relacja człowiek środowisko2 Dynamika cz1Mikrokontrolery ARM cz1CZ1 roz 1 12Wstęp do pakietu algebry komputerowej MapleRelacjawięcej podobnych podstron