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
• …
2013-01-10
Krzysztof Molenda, Bazy danych I
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 (2
A
)
• 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ść
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Algebra relacji
• Algebra relacji = relacje + działania na nich + ich własności
• Definicja relacji (w sensie matematycznym)
Niech dane będą zbiory D
1
, D
2
, .., D
n
.
Relacją matematyczną R nad zbiorami D
1
, D
2
, .., D
n
nazywamy dowolny
podzbiór iloczynu kartezjańskiego
R
D
1
D
2
..
D
n
= {(d
1
, d
2
, .., d
n
): d
i
D
i
, i=1, 2, .., n}
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
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ść
R
A
1
A
2
..
A
n
a
11
a
12
..
a
1n
a
21
a
22
..
a
2n
a
m1
a
m2
..
a
mn
Nazwa relacji
Lista atrybutów
Krotka (ang.
tuple)
(odwzorowanie
encji)
2013-01-10
Krzysztof Molenda, Bazy danych I
Schemat relacji (struktura tabeli)
Schemat relacji
R
(
A
1
:
D
1
,
A
2
:
D
2
, …,
A
n
:
D
n
)
składa się z:
– nazwy relacji (tu:
R
)
– niepustego zbioru atrybutów (tu:
A
1
, …,
A
n
)
– typu lub dziedziny
D
i
= dom(
A
i
) dla każdego atrybutu
A
i
• 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
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Instancja relacji
Dla relacji o schemacie:
Czytelnik
(
Numer
:
integer
,
Nazwisko
:
nazwa
,
Imię
:
nazwa
,
DataUrodzenia
:
data
,
Adres
:
varchar(50)
)
krotka może być reprezentowana
jako ciąg wartości atrybutów
ustawionych zgodnie z kolejnością
atrybutów w schemacie relacji
(133, Nowak, Jan, 10.03.1957, ‘31-950
Kraków, ul. Warszawska 3’)
Instancja relacji
= zbiór krotek
spełniających relację (tzn.
składowe krotki są typu lub
dziedziny odpowiadającego im
atrybutu)
Czytelnik
Numer
Nazwisko
Imię
DataUrodz
enia
Adres
133
Nowak
Jan
10.03.1957
31-950
Kraków, ul.
Warszawsk
a 3
134
Kowalski
Jan
1.01.1964
31-950
Kraków, ul.
Warszawsk
a 3
135
Nowak
Piotr
3.03.1993
30-199
Kraków, ul.
Balicka 100
…
…
…
…
…
2034
Molenda
Jan
2.09.1972
30-199
Kraków, ul.
Balicka 100
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
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”
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
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?
2013-01-10
Krzysztof Molenda, Bazy danych I
Tabelka w postaci:
reprezentuje relację
R(X), X={A
1
, A
2
, .., A
n
} (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 A
i
występują tylko elementy ze zbioru
Dom(A
i
).
5. Nie ma dwóch równych wierszy i ich kolejność jest nieistotna.
R
A
1
A
2
..
A
n
a
11
a
12
..
a
1n
a
21
a
22
..
a
2n
a
m1
a
m2
..
a
mn
Relacja w sensie
Codd’a
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Oznaczenia
• Dla schematu
R(A
1
, ..., A
n
)
, niech krotka
t
spełnia ten schemat.
• Wtedy:
– t[A
i
]
= wartość krotki
t
dla atrybutu
A
i
– t[A
i
, A
j
, A
k
]
= podkrotka
t
, z wartościami z atrybutów
A
i
, A
j
, A
k
• 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)
2013-01-10
Krzysztof Molenda, Bazy danych I
• 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
2013-01-10
Krzysztof Molenda, Bazy danych I
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)
2013-01-10
Krzysztof Molenda, Bazy danych I
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.
2013-01-10
Krzysztof Molenda, Bazy danych I
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)
2013-01-10
Krzysztof Molenda, Bazy danych I
Zależności funkcyjne - formalizmy
Niech
R
będzie relacją (w sensie
baz danych), niech
A
1
, …,
A
m
,
B
1
,
…,
B
n
, będą atrybutami tej
relacji.
Zależność funkcyjna
w relacji
R
jest wyrażeniem:
A
1
, …, A
m
B
1
, …, B
n
• Instancja
r
relacji
R
spełnia tę
zależność funkcyjną, jeśli dla
dowolnych krotek
t
1
i
t
2
relacji
R
zachodzi implikacja:
jeśli t
1
[A
1
, …, A
m
] = t
2
[A
1
, …, A
m
],
to t
1
[B
1
, …, B
n
] = t
2
[B
1
, …, B
n
]
• Problem, ile w danej relacji może
wystąpić zależności funkcyjnych?
Rozważ przypadek relacji z
trzema atrybutami
R(A, B, C)
.
Wypisz wszystkie możliwe
sytuacje.
2013-01-10
Krzysztof Molenda, Bazy danych I
Zależności funkcyjne - przykład
Rozważmy schemat relacji:
Pracownik( Id, Nazwisko, Telefon,
Rola)
Rozważmy instancję tej relacji
(tabela po prawej stronie)
Id
Nazwisko
Telefon
Rola
1
Kowalski
1234
prawnik
2
Nowak
9876
sprzedawca
3
Kowalski
9876
sprzedawca
4
Molenda
1234
informatyk
• 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
2013-01-10
Krzysztof Molenda, Bazy danych I
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 (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
2013-01-10
Krzysztof Molenda, Bazy danych I
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
t
1
w
R
istnieje krotka
t
2
w
S
taka, że
– t
1
[A] = t
2
[B]
,
– przy założeniu, że
t
1
[A] IS NOT NULL
2013-01-10
Krzysztof Molenda, Bazy danych I
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Wstawianie krotek i problemy
• 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)
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Usuwanie krotek i problemy
• 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)
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Modyfikowanie krotek i problemy
• 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)
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
2013-01-10
Krzysztof Molenda, Bazy danych I
Podsumowanie
• Model relacyjny bazuje na koncepcji
teorii zbiorów i logiki
• Formalizuje koncepcję
tabel
• Wyróżnia:
– Schemat relacji
: nazwę, atrybuty i ich typy
(dziedziny)
– Instancję relacji
: relację na dziedzinach
atrybutów
• Dwa formalizmy krotek
– Notacja pozycyjna versus funkcyjna
• Ograniczenia integralnościowe:
zawężenie dziedziny, zależności
funkcyjne, klucze, klucze obce
• Aktualizacje mogą naruszać
ograniczenia integralnościowe i SZBD
musi na to reagować
Reakcje na naruszenie
więzów integralności – SZBD
może:
• Odrzucić
aktualizację
• Naprawić
efekt naruszenia
integralności poprzez:
– Wstawienie NULL
– Wstawienie wartości
domyślnej
– Kaskadowe usuwanie
– Kaskadową modyfikację
2013-01-10
Krzysztof Molenda, Bazy danych I