Bazy danych
Relacyjny model danych -
normalizacja
Relacyjny model danych
Relacyjny model danych jest obecnie
najbardziej popularnym modelem
używanym w systemach baz danych.
Podstawą tego modelu stała się praca
opublikowana przez E.F. Codda w 1970r. W
pracy „Relacyjny model logiczny dla dużych
banków danych” Codd zaprezentował
założenia relacyjnego modelu baz danych,
model ten oparł na teorii mnogości i
rachunku predykatów pierwszego rzędu.
Postulaty Codda
1.
Postulat informacyjny – dane są
reprezentowane jedynie poprzez wartości
atrybutów w wierszach tabel,
2.
Postulat dostępu – każda wartość w bazie
danych jest dostępna poprzez podanie nazwy
tabeli, atrybutu oraz wartości klucza
podstawowego,
3.
Postulat dotyczący wartości NULL – dostępna
jest specjalna wartość NULL dla reprezentacji
wartości nieokreślonej jak i nieadekwatnej, inna
od wszystkich i podlegająca przetwarzaniu
Postulaty Codda
4.
Postulat dotyczący katalogu – wymaga się,
aby system obsługiwał wbudowany katalog
relacyjny z bieżącym dostępem dla
uprawnionych użytkowników używających
języka zapytań,
Postulaty Codda
5.
Postulat języka danych – system musi
dostarczać pełnego języka przetwarzania
danych, który może być używany w trybie
interaktywnym jak i w obrębie
programów aplikacyjnych, obsługuje
operacje definiowania danych, operacje
manipulowania danymi, ograniczenia
związane z bezpieczeństwem i
integralnością oraz operacje zarządzania
transakcjami,
Postulaty Codda
6.
Postulat modyfikowalności perspektyw – system
musi umożliwiać modyfikowanie perspektyw, o
ile jest ono (modyfikowanie) semantycznie
realizowalne,
7.
Postulat modyfikowalności danych – system
musi umożliwiać operacje modyfikacji danych,
musi obsługiwać operatory INSERT, UPDATE
oraz DELETE,
8.
Postulat fizycznej niezależności danych –
zmiany fizycznej reprezentacji danych i
organizacji dostępu nie wpływają na aplikacje,
Postulaty Codda
9.
Postulat logicznej niezależności danych –
zmiany wartości w tabelach nie wpływają na
aplikacje,
10.
Postulat niezależności więzów spójności –
więzy spójności są definiowane w bazie i nie
zależą od aplikacji,
Postulaty Codda
11.
Postulat niezależności dystrybucyjnej –
działanie aplikacji nie zależy od modyfikacji i
dystrybucji bazy,
12.
Postulat bezpieczeństwa względem operacji
niskiego poziomu – operacje niskiego
poziomu nie mogą naruszać modelu
relacyjnego i więzów spójności.
Podstawowe pojęcia
Relacja jest podzbiorem iloczynu
kartezjańskiego dziedzin A
1
, A
2
,..A
n
. Iloczyn
kartezjański oznacza się następująco:
A
1
A
2
A
n
Zawiera on n-tki (a
1
, a
2
,..a
n
) nazywane
krotkami takie, że
a
1
A
1
, a
2
A
2
,... d
n
An
Podstawowe pojęcia
Niech A
1
= [a,b,c], A
2
=[x,y]
Wtedy A
1
A
2
= {(a,x), (a,y), (b,x), (b,y),
(c,x), (c,y)}
Przykłady relacji, które są podzbiorami iloczynu
kartezjańskiego A
1
A
2
:
X = {(a,x), (b,x), (c,x)}
Y = {(a,x), (a,y), (b,y)}
Analogicznie jak dla iloczynu kartezjańskiego
elementy relacji są nazywane krotkami
Baza danych - relacja
Rozważmy relację, której atrybutami są
nazwisko, imię, wiek. Relację tę można
zapisać następująco:
PRAC <nazwisko, imię, wiek>, gdzie
PRAC jest nazwą danej relacji.
A oto trzy krotki relacji PRAC:
<Kowalski, Jan, 36>
<Tomaszewski, Wojciech, 40>
<Wiśniewski, Marek, 50>.
Zasady spełnione dla
każdej relacji
Każda relacja w bazie danych ma
jednoznaczną nazwę,
Każda kolumna w relacji ma jednoznaczną
nazwę w ramach jednej relacji,
Wszystkie wartości w kolumnie muszą być
tego samego typu,
Zasady spełnione dla
każdej relacji
Porządek kolumn w relacji nie jest istotny,
Każdy wiersz w relacji musi być różny,
Porządek wierszy nie jest istotny,
Każde pole leżące na przecięciu
kolumny/wiersza w relacji powinno zawierać
wartość atomową
Schemat relacji
Schematem relacji R o danych atrybutach
A
1
, A
2,…,
A
n
takiej, że
R
D
1
D
2
…
D
n
nazywamy ciąg (A
1
, A
2,
…,
A
n
). W celu jawnej specyfikacji schematu
relacji R piszemy R(A
1
, A
2,…,
A
n
)
Reprezentacja tablicowa
relacji
E
A
1
A
2
. . .
A
j
. . .
A
n
e
1
e
2
.
.
.
e
i
.
.
.
e
m
d
1,1
d
2,1
.
.
.
d
i,1
.
.
.
d
m,1
d
1,2
d
2,2
.
.
.
d
i,1
.
.
.
d
m,1
. . .
. . .
. . .
. . .
d
1,j
d
2,j
.
.
.
d
i,j
.
.
.
d
m,j
. . .
. . .
. . .
. . .
D
1,n
d
2,n
.
.
.
d
i,n
.
.
.
d
m,n
Zbiór identyfikujący
relacji
zbiór atrybutów
który jednoznacznie identyfikuje
wszystkie krotki w relacji R
w żadnej relacji o schemacie R nie mogą
istnieć dwie krotki t
1
i t
2
takie, że
t
1
[S]=t
2
[S]
n
A
A
A
R
,....,
,
2
1
R
S
Klucz
Minimalny zbiór identyfikujący
Taki zbiór atrybutów relacji, których
kombinacje wartości jednoznacznie
identyfikują każdą krotkę tej relacji a żaden
podzbiór tego zbioru nie posiada tej własności
W kluczu nie może zawierać się wartość Null
Klucz
Klucz jest kluczem prostym, jeżeli
powyżej opisany zbiór jest
jednoelementowy - w przeciwnym razie
mówimy o kluczu złożonym
W ogólności, w relacji można wyróżnić
wiele kluczy, które nazywamy kluczami
potencjalnymi. Wybrany klucz spośród
kluczy potencjalnych nazywamy
kluczem głównym (Primary Key PK)
Zależność funkcjonalna
Atrybut B relacji R jest funkcjonalnie zależny
od atrybutu A jeżeli dowolnej wartości a
atrybutu A odpowiada nie więcej niż jedna
wartość b atrybutu B
B
A
Zależność funkcjonalna
Niech X i Y będą podzbiorami zbioru atrybutów
relacji R
X
{A
1
...A
N
}, Y
{A
1
...A
N
}
podzbiór atrybutów Y zależy funkcyjnie od
podzbioru atrybutów X, jeżeli nie jest możliwe, by
relacja R zawierała dwie krotki mające składowe
zgodne tzn. identyczne dla wszystkich atrybutów
ze zbioru X i jednocześnie co najmniej jedną
niezgodną składową dla atrybutów ze zbioru Y
Zależność funkcjonalna
Zbiór atrybutów Y jest w pełni funkcjonalnie
zależny od zbioru atrybutów X w schemacie R,
jeżeli:
Y
X
i nie istnieje
X
X
'
Y
X
'
takie, że
Zależność funkcjonalna
Zbiór atrybutów Y jest częściowo funkcjonalnie
zależny od zbioru atrybutów X w schemacie R,
jeżeli:
Y
X
i istnieje
X
X
'
Y
X
'
takie, że
Zależność funkcjonalna
Niech X, Y i Z będą trzema rozłącznymi
podzbiorami atrybutów danej relacji
Z jest przechodnio funkcjonalnie zależny od X,
jeśli Z jest funkcjonalnie zależny od Y i Y jest
funkcjonalnie zależny od X natomiast X nie
jest zależny od Y i Y nie jest zależny od Z
Zależność funkcjonalna
Podzbiór atrybutów Y jest wielowartościowo
funkcjonalnie zależny od podzbioru X w
schemacie R, jeżeli dla dowolnej relacji r w
schemacie R i dla dowolnej pary krotek t
1
i
t
2
z relacji r istnieje taka para krotek że:
s
1
[X]=s
2
[X]=t
1
[X]=t
2
[X] i
s
1
[Y]= t
1
[Y] i s
1
[R-X-Y]=t
2
[R-X-Y] i
s
2
[Y]= t
2
[Y] i s
2
[R-X-Y]=t
1
[R-X-Y]
Zależność
wielowartościowa
krotka Nazwisko
Imię
dziecka
Znajomość
języków
t
1
Kot
Ania
niemiecki
t
2
Kot
Jaś
angielski
s
1
Kot
Ania
angielski
s
2
Kot
Jaś
niemiecki
Słoń
Ola
niemiecki
Słoń
Ola
angielski
X
Y
R-X-Y
Zależność
wielowartościowa
t
1
[X]=t
2
[X]=s
1
[X]=s
2
[X]=(Kot)
s
1
[Y]= t
1
[Y]=(Ania) i
s
1
[R-X-Y]=t
2
[R-X-Y]=(angielski) i
s
2
[Y]= t
2
[Y]=(Jaś) i
s
2
[R-X-Y]=t
1
[R-X-Y]=(niemiecki)
Dekompozycja schematu
Schemat
zastępujemy zbiorem (niekoniecznie
rozłącznych) schematów relacji
takich, że każdy schemat R
i
stanowi podzbiór
zbioru atrybutów
i
n
A
A
A
R
,....,
,
2
1
m
R
R
R
,....,
,
2
1
n
A
A
A
,....,
,
2
1
n
i
i
A
A
A
R
R
,....,
,
2
1
Dekompozycja schematu
W schemacie
występuje połączeniowa zależność
funkcjonalna
wtedy i tylko wtedy gdy istnieje możliwość
takiej dekompozycji relacji r na relacje r
1
,
r
2
,..., r
n
, że można ją zrekonstruować przy
pomocy operacji połączenia
n
A
A
A
R
,....,
,
2
1
m
R
R
R
R
,....,
,
2
1
*
Dekompozycja schematu
połączeniowa zależność funkcjonalna
wynika z zależności atrybutów schematu
R od klucza wtedy i tylko wtedy gdy w
dowolnej sekwencji połączeń relacji
składowych w celu rekonstrukcji relacji r
operacja wykonywana jest względem
zbioru identyfikującego schematu R
m
R
R
R
R
,....,
,
2
1
*
Pierwsza postać normalna
Jedynymi relacjami dozwolonymi w modelu
relacyjnym są relacje spełniające następujący
warunek:
każda wartość w relacji, tj. każda wartość
atrybutu w każdej krotce, jest wartością
atomową (wartością nie rozkładalną)
(lPN) oznacza, że tabela nie zawiera
powtarzających się grup informacji, co znaczy, że
każda kolumna jest wartością skalarną
(atomową), a nie macierzą lub listą czy też
czymkolwiek, co posiada własną strukturę
Relacja nie
znormalizowana
Pracownik
Języki
Jan Kowalski
angielski – słabo,
niemiecki - dobrze
Adam Kot
rosyjski – bardzo
dobrze
Relacja nie
znormalizowana
Pracownik
Znajomość języków
Język
Poziom
Jan Kowalski
angielski
słabo
niemiecki
dobrze
Adam Kot
rosyjski
bardzo dobrze
Relacja nie
znormalizowana
Relację "przed normalizacją" zdefiniowano
na dwóch dziedzinach: Pracownik i
Znajomość Języków
Elementami dziedziny Znajomość Języków
są również relacje (zdefiniowane na
dziedzinach Język i Poziom)
Relacja jest z punktu widzenia definicji
relacją dwuczłonową, ale nie wszystkie jej
dziedziny są proste (dziedzina prosta to taka,
której wszystkie elementy są atomowe)
Relacja znormalizowana
Pracownik
Język
Poziom
Jan Kowalski
angielski
słabo
Jan Kowalski
niemiecki
dobrze
Adam Kot
rosyjski
bardzo dobrze
Relacja znormalizowana
Relacja jest relacją trójczłonową, której
wszystkie dziedziny są proste, jest więc
znormalizowana
Powodem tego jest uproszczenie struktury
danych, które z kolei powoduje
uproszczenie operatorów w subjęzyku
danych
Uproszczenia te nie ograniczają w niczym
możliwości reprezentowania obiektów
Relacja znormalizowana -
nieporozumienia
Pracownik
Imię dziecka
Data ur.
dziecka
Kowalski
Ania
01.01.2000
Jaś
15.03.2001
Kot
Patrycja
20.10.2001
Filemon
30.07.2003
Relacja znormalizowana -
nieporozumienia
Praco-
wnik
Imię
dziecka1
Data ur.
dziecka1
Imię
dziecka2
Data ur.
dziecka2
Kowal-
ski
Ania
01.01.2000
Jaś
15.03.2001
Kot
Patrycja
20.10.2001
Filemon
30.07.2003
Pierwsza postać normalna
Przedmiot
Prowadzący
Student
Ocena
matematyka
prof. Lis
Jak Kot
2,0
matematyka
prof. Lis
Ewa Osa
3,0
matematyka
prof. Lis
Adam Struś
5,0
Pierwsza postać normalna
Powtarzająca się grupa danych to podzbiór
relacji zawierający co najmniej dwa
atrybuty, posiadająca własny klucz prosty,
w którym istnieją powtarzające się krotki
Powtarzanie się takich samych krotek
wymuszone jest faktem, że mamy do
czynienia z grupą dla której część
atrybutów jest strukturą a nie wartością
skalarną
Pierwsza postać normalna
Przedmiot
Student
Ocena
matematyka
Jak Kot
2,0
matematyka
Ewa Osa
3,0
matematyka
Adam Struś
5,0
Przedmiot
Prowadzący
matematyka
prof. Lis
Anomalie przy usuwaniu,
wstawianiu i aktualizacji
Pracownik
PESEL
Komórka
organizacyjn
a
Stanowisk
o
Zadania
Jan Kowalski 123456789
11
Dział Kadr
kierownik kierowanie
Jan Kowalski 123456789
11
Dział Kadr
kierownik nadzór
Jan Kowalski 123456789
11
Dział Kadr
kierownik analizy
Adam Kot
989777966
66
Dział Kadr
referent
sprawozdania
Adam Kot
989777966
66
Dział Kadr
referent
analizy
Ewa Lis
762819763
72
Dział Kadr
referent
sprawozdania
Ewa Lis
762819763
72
Dział Kadr
referent
analizy
Anomalie przy usuwaniu,
wstawianiu i aktualizacji
Reorganizacja polegająca na likwidacji
Działu Kadr spowoduje utratę informacji o
wszystkich pracownikach działu
Wprowadzając informację o nowym zadaniu
dla referenta działu kadr musimy ją
wprowadzić dla każdego pracownika na tym
stanowisku (anomalia przy wstawianiu)
Zmieniając nazwę działu na Dział
Personalny musimy zaktualizować wszystkie
rekordy (anomalia przy aktualizacji)
Druga postać normalna
Relacja jest w drugiej postaci normalnej,
jeśli każdy atrybut tej relacji nie
wchodzący w skład żadnego klucza
potencjalnego jest w pełni funkcyjnie
zależny wyłącznie od wszystkich
podrelacji klucza głównego
Ta relacja nie jest w drugiej
postaci normalnej
Pracownik
PESEL
Komórka
organizacyjn
a
Stanowisk
o
Zadania
Jan Kowalski 123456789
11
Dział Kadr
kierownik
kierowanie
Jan Kowalski 123456789
11
Dział Kadr
kierownik
nadzór
Jan Kowalski 123456789
11
Dział Kadr
kierownik
analizy
Adam Kot
989777966
66
Dział Kadr
referent
sprawozdania
Adam Kot
989777966
66
Dział Kadr
referent
analizy
Ewa Lis
762819763
72
Dział Kadr
referent
sprawozdania
Ewa Lis
762819763
72
Dział Kadr
referent
analizy
Ta relacja nie jest w drugiej
postaci normalnej bo:
kluczem w relacji jest podzbiór atrybutów
PESEL i Zadania bo powtórzenie krotki o
dwóch identycznych wartościach tych
atrybutów wskazywałoby na powtórne
przydzielenie tego samego zadania tej
samej osobie
atrybut Pracownik zależy funkcjonalnie od
atrybutu PESEL a nie zależy od atrybutu
Zadania (mogą się powtórzyć te same
zadania przydzielone różnym pracownikom)
Pracownik
PESEL
Jan Kowalski
12345678911
Adam Kot
98977796666
Ewa Lis
76281976372
Komórka
organizacyjna
Stanowisko
Zadania
Dział Kadr
kierownik
kierowanie
Dział Kadr
kierownik
nadzór
Dział Kadr
kierownik
analizy
Dział Kadr
referent
sprawozdania
Dział Kadr
referent
analizy
PESEL
Komórka
organizacyjna
Stanowisko
12345678911 Dział Kadr
kierownik
98977796666 Dział Kadr
referent
76281976372 Dział Kadr
referent
Trzecia postać normalna
Relacja jest w trzeciej postaci
normalnej, jeśli:
– jest w drugiej postaci normalnej
– żaden atrybut nie będący kluczem nie jest
funkcjonalnie związany z żadnym innym
atrybutem nie będącym również kluczem
Ta relacja nie jest w trzeciej
postaci normalnej
Pracownik
PESEL
KodPocztow
y
Miejscowoś
ć
Województw
o
Jan
Kowalski
123456789
11
32-082
Bolechowic
e
małopolskie
Adam Kot
989777966
66
30-150
Kraków
małopolskie
Ewa Lis
762819763
72
32-082
Bolechowic
e
małopolskie
Zależność funkcjonalna
przechodnia
Niech X, Y i Z będą trzema rozłącznymi
podzbiorami atrybutów danej relacji
Z jest przechodnio funkcjonalnie zależny od X,
jeśli Z jest funkcjonalnie zależny od Y i Y jest
funkcjonalnie zależny od X natomiast X nie
jest zależny od Y i Y nie jest zależny od Z
Forma normalna Boyce-
Codd’a
Jest uzupełnieniem trzeciej postaci
normalnej i jest niezbędna w przypadku
gdy atrybuty będące kandydatami na
klucze są:
– wielokrotne,
– złożone,
– nakładające się na siebie
Forma normalna Boyce’a-
Codd’a
Relacja jest w postaci Boyce-Codd’a
jeżeli dla każdej nietrywialnej zależności
między podzbiorami relacji zbiór będący
wyznacznikiem jest zbiorem
identyfikującym tej relacji
Zależność X →Y jest trywialna jeżeli Y
jest podzbiorem X
Definicja BCNF zastępuje definicje,
pierwszej, drugiej i trzeciej formy
normalnej dodatkowo je poszerzając
Forma normalna Boyce-
Codd’a
IdPracownik
a
Zawód
Wykształcenie
Stawka
1
ślusarz
podstawowe
5,20
1
tokarz
podstawowe
5,30
2
ślusarz
zawodowe
5,50
3
tokarz
zawodowe
5,30
4
ślusarz
podstawowe
5,20
kluczem w relacji jest podzbiór IdPracownika,
Zawód zależność Zawód, Wykształcenie
Stawka jest funkcjonalna i nietrywialna
a Zawód, Wykształcenie nie jest zbiorem
identyfikującym
Forma normalna Boyce-
Codd’a
IdStudenta
Seminarium
Opiekun
1
marketing
Kowalski
1
kadry
Kozłowski
2
kadry
Janowski
3
marketing
Kowalski
4
informatyka
Macioł
ponieważ opiekun może mieć tylko jedno
seminarium to kluczem w relacji jest podzbiór
IdStudenta, Seminarium lub IdStudenta,
Opiekun zależność Opiekun
Seminarium
jest funkcjonalna i nietrywialna
a Opiekun nie jest zbiorem identyfikującym
Czwarta forma normalna
Relacja jest w czwartej formie normalnej
wtedy i tylko wtedy, gdy jest w trzeciej
postaci normalnej i nie zawiera
wielowartościowej zależności atrybutów
Zależność
wielowartościowa
Podzbiór atrybutów Y jest wielowartościowo
funkcjonalnie zależny od podzbioru X w
schemacie R, jeżeli dla dowolnej relacji r w
schemacie R i dla dowolnej pary krotek t
1
i
t
2
z relacji r istnieje taka para krotek że:
s
1
[X]=s
2
[X]=t
1
[X]=t
2
[X] i
s
1
[Y]= t
1
[Y] i s
1
[R-X-Y]=t
2
[R-X-Y] i
s
2
[Y]= t
2
[Y] i s
2
[R-X-Y]=t
1
[R-X-Y]
Zależność
wielowartościowa
krotka Nazwisko
Imię
dziecka
Znajomość
języków
t
1
Kot
Ania
niemiecki
t
2
Kot
Jaś
angielski
s
1
Kot
Ania
angielski
s
2
Kot
Jaś
niemiecki
Słoń
Ola
niemiecki
Słoń
Ola
angielski
X
Y
R-X-Y
Zależność
wielowartościowa
t
1
[X]=t
2
[X]=s
1
[X]=s
2
[X]=(Kot)
s
1
[Y]= t
1
[Y]=(Ania) i
s
1
[R-X-Y]=t
2
[R-X-Y]=(angielski) i
s
2
[Y]= t
2
[Y]=(Jaś) i
s
2
[R-X-Y]=t
1
[R-X-Y]=(niemiecki)
Więzi
Więź (ang. relationship) to powiązanie
pomiędzy parą tabel. Istnieje ona
wtedy, gdy dwie tabele są połączone
przez klucz podstawowy i klucz obcy.
Każda więź jest opisywana przez typ
więzi istniejący między dwoma
tabelami, typ uczestnictwa oraz stopień
uczestnictwa tych tabel.
Typy więzi
jeden-do-jednego (jeżeli pojedynczemu
rekordowi z pierwszej tabeli
przyporządkowany jest najwyżej jeden
rekord z drugiej tabeli i na odwrót)
Więź jeden-do-jednego
Typy więzi
jeden-do-wielu (jeżeli pojedynczemu
rekordowi z pierwszej tabeli może
odpowiadać jeden lub więcej rekordów z
drugiej, ale pojedynczemu rekordowi z
drugiej tabeli odpowiada najwyżej jeden
rekord z tabeli pierwszej)
Więź jeden-do-wielu
Więzi identyfikujące
Klucz obcy, który jest składnikiem
złożonego klucza głównego w relacji
zależnej określany jest mianem klucza
obcego głównego (Primary Foreign Key)
a tak zbudowana więź więziom
identyfikującą
Więź jeden-do-wielu
(identyfikująca)
Obcy klucz główny
(IdPracownika)
Rok
Miesiac IdPracownika
LiczbaGodzin
2005
01
1
160
2005
01
2
150
2005
02
1
140
2005
02
2
160
Taki wiersz nie może się pojawić
2005
01
1
140
Więź wiele-do-wielu
(dane)
IdAgregat
u
Agrega
t
Data
IdPracownika Nazwisko
Godziny
1
Piła
10.03.05
1
Kowalski
4
1
Piła
10.03.05
2
Lis
4
2
Tokarka
10.03.05
1
Kowalski
4
2
Tokarka
10.03.05
3
Kot
8
1
Piła
11.03.05
1
Kowalski
8
2
Tokarka
11.03.05
3
Kot
2
2
Tokarka
11.03.05
2
Lis
6
Więź wiele-do-wielu
Na jednym agregacie mogą pracować
różni pracownicy, np. na agregacie Piła
10. marca pracowało dwóch
pracowników
Jeden pracownik może pracować na
wielu agregatach, np. Kowalski
pracował 10. marca na Pile i Tokarce)
Więź wiele-do-wielu
Więź wiele-do-wielu (po
rekonstrukcji)
IdAgrega
tu
Data
IdPracownika
Godziny
1
10.03.05
1
4
1
10.03.05
2
4
2
10.03.05
1
4
2
10.03.05
3
8
1
11.03.05
1
8
2
11.03.05
3
2
2
11.03.05
2
6
Typy uczestnictwa
obowiązkowy (jeśli w pierwszej tabeli muszą
znajdować się pewne rekordy zanim
zaczniemy wprowadzać rekordy do tabeli
drugiej)
opcjonalny (jeśli wprowadzanie rekordów do
tabeli drugiej nie wymaga istnienia żadnych
rekordów w tabeli pierwszej).
Stopień uczestnictwa określa minimalną i
maksymalną liczbę rekordów w jednej tabeli,
które można powiązać z pojedynczym
rekordem w tabeli drugiej.
Opcjonalny typ
uczestnictwa
Klucz sztuczny
Klucz stworzony wyłącznie dla potrzeb
więzi w celu zastąpienia złożonego
klucza głównego
Klucz złożony...
...zastąpiony kluczem
sztucznym
Klucz złożony...
...zastąpiony kluczem
sztucznym
Klucz sztuczny
Klucz sztuczny może być wykorzystany do
kodowania atrybutów tekstowych (w
niektórych przypadkach także liczbowych)
o powtarzających się wartościach, dla
których można utworzyć listę
Użycie klucza sztucznego wymaga
stworzenia dodatkowej tabeli (słownika)
pozwalającego na „rozkodowanie” klucza
Więź wiele do wielu
wiele-do-wielu (jeżeli pojedynczemu
rekordowi z pierwszej tabeli może
odpowiadać jeden lub więcej rekordów z
drugiej i na odwrót)
Więź wiele-do-wielu
(dane)
IdAgre
gatu
Agregat Data
IdProduktu NazwaProduktu
Plan
1
Piła
10.03.05
1
tuleja
100
1
Piła
10.03.05
2
wałek
80
2
Tokarka 10.03.05
1
tuleja
90
2
Tokarka 10.03.05
2
wałek
90
1
Piła
11.03.05
1
tuleja
50
1
Piła
11.03.05
2
wałek
50
2
Tokarka 11.03.05
1
tuleja
60
2
Tokarka 11.03.05
2
wałek
40
Więź wiele-do-wielu
(dane)
Jednemu agregatowi (np. Piła)
odpowiada wiele produktów (tuleja i
wałek)
Jednemu produktowi (np. tuleja)
odpowiada wiele agregatów (Piła i
Tokarka)
Więź wiele-do-wielu
Więź wiele-do-wielu (po
rekonstrukcji)
IdAgregatu Data
IdProduktu
Plan
1
10.03.05
1
100
1
10.03.05
2
80
2
10.03.05
1
90
2
10.03.05
2
90
1
11.03.05
1
50
1
11.03.05
2
50
2
11.03.05
1
60
2
11.03.05
2
40