Baza danych – ćwiczenia 1
opr. J.Vogelgesang
Harmonogram
• cw. 1 –
wiadomości ogólne: tabele relacje,
powiązania, modelowanie, przykłady
• ćw. 2 narzędzia wspomagające modelowanie, powiązania cd ,
• ćw. 3 normalizacja, podstawy SQL , omówienie sprawdzianu
Sprawdzian po zakończonym ćwiczeniu 3
Przykłady wykorzystania baz danych
-
przebieg leczenia w szpitalu danego pacjenta
- biblioteka i wypożyczanie
- operacje bankowe
- dziekanat
- działalność handlowa i biznesowa
- komunikacja (rozkłady jazdy, zatrudnienie… )
-
- - - - - - -
Bazy danych służą do przechowywania licznych, złożonych informacji. Użytkownik
korzysta z potrzebnej, szczegółowej i na ogół mało złożonej informacji.
Baza może być uaktualniana poprzez uzupełnianie lub usuwanie posiadanych
informacji….
Dane w bazie danych są przechowywane w sposób ustrukturalizowany
Baza wyposażona jest w system zarządzania bazą danych (SZBD). Dane za
pośrednictwem SZBD mogą być wykorzystywane dla różnych celów np. aplikacji
(programu) który je w określony sposób przetwarza
Tworzenie projektu - p
oziomy rozważań
• Poziom użytkowy – widoki na dane i programy, którymi
posługuje się końcowy użytkownik.
• Poziom logiczny (koncepcyjny) – zbiór tabel, perspektyw i
indeksów.
• Poziom fizyczny – zbiór plików z danymi i z indeksami.
projektant bazy danych musi rozważyć wszystkie
poziomy
Model danych
jest zbiorem koncepcji stosowanych do opisu struktury i
zachowania bazy danych i obejmuje:
– zbiór typów danych oraz związków pomiędzy nimi;
– zbiór operacji służących do definiowania, wyszukiwania oraz uaktualniania
bazy danych;
-
zbiór więzów integralności
-
. . . .
Model danych
jest formalnym opisem części świata
rzeczywistego, obszarem analizy związanym z dziedziną
przedmiotową.
Jest podstawą projektu bazy danych
.
Modele danych
• Model konceptualny
, pojęciowy obejmujący poziom
logiczny (diagramy UML, ERD, inne)
• model implementacyjny (realizacyjny) lub fizyczny
jest taką reprezentacją modelu konceptualnego,
która umożliwia programowanie (kodowanie) dla
konkretnego środowiska ( konkretnego typu bazy
danych)
Podstawy matematyczne
zbiór
B
B = {a,b}
zbiór
A
A = {1, 2, 3}
Relacje
iloczyn kartezjanski jest
zbiorem
(wszystkich)
uporządkowanych par jakie można utworzyć ze
zbiorów A oraz B
Uporządkowanych:
na
pierwszym miejscu pary
jest element A , na drugim element B
Relacja R jest
podzbiorem
iloczynu kartezjańskiego IK
Relacja jest więc zbiorem. Tworzą ją wybrane elementy
pobrane ze zbioru IK
Matematyka
(1,
b
)
(
1,
a
)
(3,
a
)
(3,
b
)
(2,
b
),
(2,
a
)
A x B
zbiór
iloczyn
kartezjański IK=
(
1,
a
)
(2,
b
),
(2,
a
)
zbiór: Relacja R
dowolny podzbiór IK np
R
IK
każda para jest elementem (niepodzielnym
atomem) zbioru IK
Rozszerzenie - relacje wieloargumentowe
zbiór A
A = {adam,
marek,
anna}
zbiór B
B = {a, b}
zbiór C
C = {4,5}
zbiór D
D = {c,d, e}
I jedna z możliwych przykładowych relacji (dowolny lub wg narzuconych reguł wybór
niektórych czwórek z 36 możliwości):
Iloczyn kartezjański zbiorów A, B, C, D jest tutaj zbiorem wszystkich możliwych czwórek
uporządkowanych (el1
A, el2
B, el3
C, el4
D). Możemy utworzyć 36 różnych
„czwórek”. Iloczyn kartezjański z przykładu posiada więc 36 elementów.
Matematyka
Relacja
(adam, a, 4, c)
(adam, a, 5, d)
(anna, b, 5, e)
(anna, b, 4, a)
(marek, a, 4, c)
Relację złożono z 5 elementów (pięć „czwórek”)
element z A
el. z B
el. z C
el. z D
adam
a
4
c
adam
a
5
d
anna
b
5
e
anna
b
4
a
marek
a
4
c
Omawianą relację (
zbiór 5 elementowy !)
można przedstawić w formie poniższej
tabeli:
Tabela: Relacja
Każdy wiersz tabeli określa jeden element relacji
Relacja
(adam, a, 4, c)
(adam, a, 5, d)
(anna, b, 5, e)
(anna, b, 4, a)
(marek, a, 4, c)
element relacji
element relacji
Matematyka
Matematyka
możemy uważać za podzbiór iloczynu kartezjańskiego zbiorów:
I
– Imiona, Z – Zawody, W – Wiek osoby
Imiona
Zawody
Wiek
Maria
Nauczyciel
34
Karol
Lekarz
56
Anna
Student
21
Jan
Tokarz
37
Przykładową relację o nazwie „PrezentacjaOsoby”:
R = {(Maria, Nauczyciel, 34), (Karol, Lekarz, 56), (Anna , Student,21), (Jan, Tokarz, 37)
Każdy wiersz tabeli odpowiada jednemu elementowi relacji
element relacji
element relacji
i przedstawić w formie tabeli:
Nazwa „
relacyjna baza danych
” pochodzi od metod
gromadzenia danych w relacjach przedstawianych w formie
tabel
Iloczyny kartezjańskie i ich podzbiory- relacje przedstawiamy albo w postaci n-tek (krotek)
(np. par, trójek ,…) albo w postaci tabel.
Tabela jest formą prezentacji zbioru „Relacja” i możemy na tabelach wykonywać
operacje tak, jak na zbiorach. Elementami zbioru wynikowego są wiersze tabeli
wynikowej
Matematyka
A
B
C
Maria
A
34
Karol
L
22
Anna
R
21
Jan
O
45
A
B
C
Ewa
A
34
Anna
R
21
Józef
L
22
=
A
B
C
Maria
A
34
Karol
L
22
Anna
R
21
Jan
O
45
Ewa
A
34
Józef
L
22
T1
T2
T1
T2
suma tabel
T1
T2
A
B
C
Anna
R
21
Iloczyn tabel
T1
T2
operacje powyższe dotyczą tabel, które opisują te same obiekty
Ćwiczenie
1. Utwórz sumę , iloczyn, różnicę relacji
R1= { (2,a, 2), (1,b,4), (3, d, 2)}
R2 = { (3,f, 6), (3, d, 2)}
2. Przedstaw powyższe relacje i ich sumę, iloczyn, różnicę w postaci tabel
3. Utwórz iloczyn kartezjański A x B
tabel
Uwaga. W operacjach na tabelach dbamy o zachowanie jednolitej
struktury danych. Np. operację sumy wykonujemy na tabelach, które
posiadają tę samą liczbę kolumn i odpowiadające sobie kolumny
zawierają ten sam typ danych
1
a
2
2
b
4
5
d
2
3
f
2
b
A
B
Matematyka
1
a
2
2
b
4
5
d
2
3
f
2
b
X
Odp. dla iloczynu kartezjańskiego
=
1
a
2
3
f
1
a
2
2
b
2
b
4
3
f
2
b
4
2
b
5
d
2
3
f
5
d
2
2
b
Kolory mają ułatwić zrozumienie tabeli wynikowej. Przekonamy się,
że baza Access może wygenerować iloczyn kartezjański tabel (najczęściej jako
wynik niepożądany)
Matematyka
Modelowanie
zmieniamy nazewnictwo:
Od tej pory Relację reprezentuje Tabela
Nazwę Relacji określa Tytuł tabeli np.
Student
Wybrana kolumna tabeli jest atrybutem (cechą) w pewien sposób związanym z
każdym studentem.
Każdy atrybut o nazwie np. A jest zbiorem elementów (wartości liczbowych,
leksykalnych , innych) z tzw. dominium atrybutu ( dom(A)) (dominium lub domena –
inaczej dziedzina).
Np. każdy student ma atrybuty
Nazwisko
: gdzie dom(nazwisko) jest zbiorem napisów np. do 40 liter alfabetu (typ
varchar(40) )
Imię:
gdzie dom(imię) jest zbiorem jw.,
Nr indeksu
: gdzie dom(nr indeksu) jest np. 8 cyfrową liczbą całkowitą (typ Integer)
Modelowanie
Tabela jest podstawą modelu danych
tabela:
Student
Nazwisko
Imię
Nr.indeksu
ygrekowski
karol
232345111
zetowski
Jan
345678212
iksowska
maria
342789078
pierwszy wiersz jest nagłówkiem: nazwą atrybutów.
kolumny w tabeli mogą występować w dowolnej kolejności
uporządkowanie krotek jest też dowolne
Modelowanie
Nazwisko
Imię
Nr.indeksu
ygrekowski
karol
232345111
zetowski
Jan
345678212
iksowska
maria
342789078
Zapis:
T(A1, A2,…. AN)
jest
schematem tabeli T
np.
STUDENT(Nazwisko, Imię, Nr_ Indeksu)
jest schematem tabeli
Modelowanie
Schematami tabel posługujemy się w języku programowania tzw SQL (eskuel)
Tabelę tworzy instrukcja :
CREATE TABLE
Student
Nazwisko TEXT(30)
Imię TEXT(20)
Nr_ Indeksu LICZBA();
Schematy tabel
tabela:
Student
Schematy tabel
Schematowi
STUDENT(Nazwisko varchar(),
Imię varchar(), Nr_ Indeksu varchar())
odpowiada forma rysunkowa stosowana na projektach baz danych. (określanie
typów danych w etapach początkowych można pominąć)
Student
Nazwisko:varchar()
Imię: varchar()
NrIndeksu:varchar()
Nagłówki kolumn zawierające nazwy atrybutów, które zwykle czytamy na tabelach w układzie
poziomym, rysunek projektowy przedstawia w układzie pionowym
Typ danych np. varchar
(), liczba() …. inne powiadamiają system zarządzający komputerem o
odpowiednim rezerwowaniu pamięci a także o dopuszalnych operacjach. Np. Jeśli 12 jest
liczbą możemy wykonać obliczenia arytmetyczne, co nie będzie możliwe gdy 12 uznamy za
napis (string
tutaj określony słowem varchar())
oznaczenie tabeli na projektach
baz danych
Modelowanie
Encje
(entity
) identyfikujemy wyodrębniając
pojęcia.
Pojęcia „modelują rzeczywistość” wyróżniają obiekty z rzeczywistości
.
Jakkolwiek każdy obiekt „ z rzeczywistości” jest inny, część z nich możemy grupować z
uwagi na wspólne cechy, które posiadają np. wszystkie obiekty „stół” mają wspólne cechy
wynikające z ich budowy, funkcjonalności itp. Rozważając te obiekty nie bierzemy pod
uwagę wszystkich ich cech a tylko te, które są istotne w naszym modelu danych. Np. jeśli
stół ma być oferowanym towarem istotne stają się podstawowe wymiary, wykończenie,
nazwa firmy, cena, itp.
Obiekty o tym samym znaczeniu (semantyce) w naszym modelu, które opisuje
jednakowy zestaw cech (atrybutów) nazywamy
encją
.
Modelowanie
„Cofamy się” do pojęć podstawowych – naszym celem jest modelowanie czegoś z
rzeczywistości . . . a tabele i relacje to tylko środki wypowiedzi (język)
Modelowanie – diagramy Chena (1970).
Encja
jest kolekcją obiektów podobnych, wyróżnionych „z
rzeczywistości” opisywanych jednakowym zespołem cech,
istotnych dla celów modelowania
Modelowanie
Konkretne wystąpienie encji nazywamy
instancją encji.
Zatem
instancja encji
jest „paczką danych” charakteryzujących tylko jeden obiekt z
kolekcji „encja”
Np. Encja „STOŁY” jest kolekcją danych opisujących wiele stołów o wspólnych atrybutach
– dla uproszczenia przyjmijmy że jest to (NrID, TYP, POWIERZCHNIA, CENA). Opisywany
stół o parametrach: NrID=54, TYP = BIUROWY, POWIERZCHNIA = 2m
2
CENA =400zł jest
instancją encji „STOŁY”
Encje będziemy opisywali wykorzystując tabelę.
Każdy wiersz tabeli opisuje
jeden obiekt
(konkretny lub
abstrakcyjny).
Każdy wiersz jest instancją encji.
Encje
to rzeczy, role, zdarzenia (konkretne, abstrakcyjne). Tylko niektóre encje (jako
zbiory danych) nie posiadają odniesień do obiektów rzeczywistych, ale służą dla
zachowania formalnych więzów spójności.
Czym różnią się wprowadzone pojęcia
: „relacja”, „tabela”, „encja” ?
Są to niemal synonimy. Różni je perspektywa (punkt widzenia) modelowanej
sytuacji i jej opisu.
Relacja
jest pojęciem matematycznym, ogólnym i abstrakcyjnym należącym
do teorii mnogości.
Tabele
są formą , w której można reprezentować większość relacji (jednak nie
wszystkie) a szczególnie te, które są przydatne w modelowaniu danych.
Ponadto tabele są praktycznym i intuicyjnym przedstawieniem zbioru danych.
Wiersz w tabeli odpowiada elementowi zbioru „relacja”
Encja
ma również reprezentację w postaci tabeli. Słowo encja ma podkreślić
perspektywę modelowania danych w odniesieniu do rzeczywistości. Tabela
jako encja jest przede wszystkim częścią modelu modelowanego „wycinka”
świata w jakimś konkretnym aspekcie, ujmuje zbiór obiektów o podobnej
semantyce. W tym języku wiersz tabeli nie jest „elementem abstrakcyjnego
zbioru” ale opisem konkretnego obiektu z kolekcji przedmiotów podobnych
– instancją encji.
Encje i ich związki oddają semantykę modelu
.
Modelowanie
Projektant bazy danych musi przywidywać wszystkie możliwe sytuacje
podczas identyfikowania encji i określania jej atrybutów a następnie
wypełniania tabeli konkretnym danymi, powinien zwrócić uwagę
przede wszystkim na konstrukcję klasy encji (schemat tabeli)
Przykład : relacji R ( imię, dziedzina wiedzy, kurs dolara, liczba pi) prawdopodobnie
nie przypiszemy jakiegoś obiektu z rzeczywistości. Nie każda relacja obrazuje encję.
Przykłady encji : stół, zamówienie, sprzedawca, przedmiot nauczania, rysunek ..
Ale nie wszystkie rzeczy można łatwo określić poprzez ich atrybuty- jak opisać „uczucie” ?
Czy wszystkie problemy mają „informatyczny” charakter?
Tak jak rzeczy są proste i złożone takimi mogą być ich encje i ich atrybuty. Opanowaniem,
identyfikacją złożoności rzeczy zajmuje się
analiza systemowa
Modelowanie
Instancja encji to zbiór danych odpowiadający konkretnemu obiektowi
np. : konkretnemu studentowi odpowiada wiersz:
zetowski, jan, 345678212
Zbiór wierszy w tabeli jest zbiorem obiektów np. zbiorem Studentów
Klasa lub typ encji
to zbiór wszystkich możliwych (także przyszłych) instancji encji
odpowiadających schematowi tabeli. Zatem schemat tabeli określa klasę encji i nie
można go utożsamiać z aktualnym zbiorem encji w tabeli. Pewne obiekty mogą być w
czasie dodawane a niektóre usuwane
Modelowanie
Inspekcja sadu
przychodzi
na
1
rozpoznanie
Choroba
roślin
Środek
Ochrony
zapobiega
zaleca
wchodzi
w interakcje
M
M
N
N
M
N
M
Ekspert
Diagram encji Chena
Prostokąty to encje (tabele z atrybutami) – owale to atrybuty, romby to związki między encjami.
Czytamy „jeden ekspert przychodzi na N inspekcji”
N
s
specjali
zacja
objawy
Modelowanie - logika
wchodzenie w interakcję oznacza
współdziałąnie składników: wpływ danego
środka zależy od innego, aplikowanego
wspólnie. Dla bazy danych oznacza to, że
obiekt danej tabeli (wiersz) ma
powiązanie z innym obiektem tej tabeli
Tabele jako reprezentancje
encji są ze sobą powiązane
(relationship
), tak jak powiązane są obiekty rzeczywiste
np. Studenci są związani z Przedmiotami. Konto jest związane z Klientem. Typ
Książki jest związany z Egzemplarzem książki. Odpowiednie encje są ze sobą
związane. Używamy też określenia:
tabele są zależne
Formalnie, zależne tabel e wyrażają również relację - [(rekord tabeli A, rekord tabeli B)]
ale w bazach danych tej nazwy nie stosuje się.
Modelowanie- logika
Na poziomie implementacyjnym i użytkowym wiersz odpowiadający
encji nazywamy
krotką
lub
rekordem
a kolumnę odpowiadającą
danemu atrybutowi:
polem
Model logiczny – koncepcyjny (jak diagram Chena lub inny) będzie dalej przekształcany na
model fizyczny składający się z powiązanych tabel. Model fizyczny zawiera dodatkowe
aspekty realizacyjne zbędne w modelu logicznym. W modelu logicznym wyrażamy sposób
funkcjonowania modelowanego systemu
Ćw. Wymień kilka encji, przedstaw je w formie tabel i nazwij związki jakie je łączą
Dekompozycje, analizy przypadków
związków encji
Przykład tabeli jednorodnej
Nr
ISBN
Tytuł
AuID AuNazwisko AuTel
efon
WydID
WydN
azwa
WydTelef
on
Cena
11
Aa
1
Kacper
111
1
NOWA 243
32
11
Aa
2
Mach
112
1
NOWA 243
32
13
Cc
3
Romek
118
2
PWT
255
24
14
Dd
3
Romek
118
3
KP
244
33
Modelowanie, dekompozycje– analiza typu top - down
utrudniona aktualizacja – np. autor zmienił nr.telefonu trzeba przeszukać wszystkie
powtarzające się pola, w których występował stary numer,
błędy usuwania - jeżeli usuniemy ostatnią książkę danego autora, zostanie utracona
informacja na jego temat,
utrudnione nowe wpisy
Ogólnie przyczyną wad jest: redundancja (nadmiarowość)
czyli wielokrotne powtarzanie tej samej informacji w bazie; powoduje to
niepotrzebne zajmowanie pamięci przez tą samą informację.
Wyobrażamy sobie tabelę o setkach tysięcy wierszy i kilkudziesięciu kolumnach.
Nadmiarowość stwarza niepotrzebne bariery dla hard i softwaru
Nadmiarowość danych
ograniczamy stosując zamiast jednej
tabeli
strukturę tabel
, z których każda powinna spełniać reguły
nazywane
normalizacją bazy danych
analiza typu top - down
Wady tabeli jednorodnej
Projektując bazę danych stoimy przed dwoma problemami dekompozycji tj.
utworzenia struktury tabel:
Tabele powinny reprezentować pewne typy encji
– a więc
reprezentować koncepcję modelowanej rzeczywistości (obiekty i ich powiązania)
Tabele powinny spełniać wymogi formalne
związane z
normalizacją.
Operacje dekompozycji , przekształcania tabel nie powinny gubić informacji oraz
związków (zależności) między tabelami
Operacjami ważnymi z punktu widzenia baz danych są:
- rozdzielanie tabel (ten zabieg w
analizie systemowej nazywa się
d
ekompozycją
)
- łączenie (sprzężenie) tabel
oznacza
składanie, kompozycję
- a także inne, bardziej specjalistyczne operacje należące do algebry relacyjnej
dekompozycje, analiza typu top - down
ISBN
Tytuł
AuID
AuNazwisko
AuTel
efon
WydID
WydNa
zwa
WydTelefo
n
Cena
11
Aa
1
Kacper
111
1
NOWA
242
32
11
Aa
2
Mach
112
1
NOWA
243
32
13
Cc
3
Romek
118
2
PWT
255
24
14
Dd
3
Romek
118
3
KP
244
33
ISBN Tytuł
Cena
Wy
dID
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
AuID
AuNazwisko
AuTele
fon
1
Kacper
111
2
Mach
112
3
Romek
118
WydID
WydNaz
wa
WydTelefon
1
NOWA
243
2
PWT
255
3
KP
244
ISBN
AuID
11
1
11
2
13
3
14
3
Tabela jednorodna
Tabela : Książka
Tabela : Autor
Tabela : Wydawnictwo
Tabela : Książka/Autor
i jej dekompozycja na strukturę tabel
Tabela jedn. 4 x 9 = 36 danych
Struktura tabel:
Książka 3 x 4 = 12
Autor 3 x 3 = 9
Wyd 3 x 3 = 9
K/a 4 x 2 = 8
====
38 danych
na razie nie widać korzyści. Jednak to
początek wypełniania. Gdyby te same
wydawnictwa i ci sami autorzy wydali
jeszcze 5 książek wtedy:
Tabela jedn. 9 x 9 = 81 danych
Struktura tabel:
Książka 8 x 4 = 32
Autor 3 x 3 = 9
Wyd 3 x 3 = 9
K/A np. 12 x 2 =24
====
74 dane
Wniosek: Struktura ogranicza redundancję
w miarę wzrostu bazy danych
ISBN
Tytuł
Cena
Wy
dID
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
AuID
AuNazwisko
AuTele
fon
1
Kacper
111
2
Mach
112
3
Romek
118
WydID
WydNaz
wa
WydTelefon
1
NOWA
243
2
PWT
255
3
KP
244
ISBN
AuID
11
1
11
2
13
3
14
3
Tabela : Książka
Tabela : Autor
Tabela : Wydawnictwo
Tabela : Książka/Autor
Czy możliwa jest dalsza dekompozycja ? Czy struktrura pozwala odszukać książki
„przygodowe” ? Takie pytania powinny pojawić się wcześniej, na etapie analizy
systemowej i konceptualizacji.
cwiczenie
:
na podstawie tej struktury tabel podaj autorów wydawnictwo dla ISBN =11
Modelowanie - dekompozycje
Koncepcja:
Każda tabela (za wyjątkiem ISBN/AuID) przedstawia dobrze wyodrębniony typ encji odpowiadający obiektom świata
rzeczywistego (Książka, Autor, Wydawnictwo). Dekompozycja, uszczegóławianie itp., zależy od celu, dla którego
tworzymy model danych (podejście z góry do dołu)
Być może warto rozpocząć modelowanie od rozpoznania encji (tabel) składowych (np. ksiązka przygodowa, inna) – i
z nich budować strukturę bazy (podejście od dołu do góry)
Logika:
struktura przedstawionych tabel na podstawie analiz pozwala jednoznacznie odtworzyć
tabelę jednorodną – nie nastąpiła więc utrata informacji. Taką cechę struktury tabel
nazywamy:
integralnością referencyjną
Integralność możemy zaburzyć manipulując od teraz na
każdej
tabeli oddzielnie.
Od tej chwili należy pamiętać, że dokonując zmian w tabeli powstałej w wyniku dekompozycji, trzeba dokonać zmian
w tabelach z nią związanych – dbają też o to mechanizmy baz danych
UWAGA !
Realizacja: w warstwie fizycznej, implementacyjnej model jest niewystarczający !
Powinniśmy jawnie pokazać jak tabele z przykładu są związane między sobą.
W tym celu wprowadzimy określenie „klucz tabeli”
Modelowanie - dekompozycje
Klucz główny, podstawowy (PK –primary key)to najmniejszy zbiór atrybutów
jednoznacznie identyfikujący wiersz (rekord) . Klucze tworzymy często numerując obiekty
nadając im tzw ID (czyt (aj-di) tj unikalny numer identyfikacyjny. Zakładając, że każda
książka ma oryginalny nr ISBN, numer ten może być kluczem PK tabeli: Książka. Atrybut
WydID może być natomiast PK tabeli :Wydawnictwo. Klucz PK może też definiować kilka
atrybutów a więc klucz może być prosty lub złożony.
Atrybut WydID w tabeli Książka nie jest cechą Książki ale Wydawnictwa. Umieszczenie go
było konieczne z uwagi na przewidywane operacje sprzęgania tabel
(niezależnie od kolejności
ułożenia wierszy).
Taki atrybut w tabeli Książka nazywamy kluczem obcym ( FK foreign key).
Wprowadzanie kluczy obcych jest aspektem modelowania fizycznego
DEFINICJE
ISBN Tytuł
Cena
Wy
dID
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
Tabela : Książka
WydID
WydNaz
wa
WydTelefon
1
NOWA
243
2
PWT
255
3
KP
244
Tabela : Wydawnictwo
ISBN
PK
Tytuł
Cena
WydID
FK
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
WydID
PK
WydNaz
wa
WydTelefon
2
PWT
255
1
NOWA
243
3
KP
244
Tabela : Książka
Tabela :
Wydawnictwo
Rozdzielanie i łączenie (sprzężenie) tabel jest w poniższym przykładzie trywialne i
odbywa się wzdłuż kolumny WydID. W kolumnach wprowadzono oznaczenia PK i FK
Modelowanie
ISBN Tytuł
Cena
WydID
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
WydID WydNazwa
WydTelefon
1
NOWA
243
2
PWT
255
3
KP
244
Tabela : Książka
Tabela : Wydawnictwo
PK
FK
PK
15
Ee
24
2
16
Ff
33
4
4
PWN
333
ISBN Tytuł
Cena
11
Aa
32
13
Cc
24
14
Dd
33
WydNazwa
WydTelefon
NOWA
243
PWT
255
KP
244
Tabela : Książka
Tabela : Wydawnictwo
PK
PK
1. Rozdzielenie tabel - odłącz wszystkie kolumny z atrybutami wydawnictwa. Otrzymasz dwie
nowe tabele: Książka , Wydawnictwo. Modelowanie można też od razu rozpocząć od
narysowania oddzielnych tabel ( tzn. pomijając tabelę jednorodną)
2. Utwórz klucz PK dla nowej tabeli Wydawnictwo z istniejących atrybutów lub dodając nowy
atrybut porządkowy ( np. WydID). W przykładzie wybrano: PK = WydNazwa
3. Ustal nowy klucz główny dla nowej tabeli Książka lub pozostaw poprzedni bez zmian.
5. Do nowej tabeli Książka dopisz kolumnę (kolumny) identyczną jaką obejmuje klucz główny
tabeli Wydawnictwo; jest to klucz obcy FK. Zakończyliśmy modelowanie fizyczne
WydNazwa
NOWA
PWT
KP
FK
6. Opisana czynność: propagacja kluczy obcych. Koniec.
Teraz bardziej szczegółowy tok postępowania - zauważ, że pominęliśmy kolumnę WydID:
4 . Oznaczamy, że tabele są zależne. Wydawnictwo może wydać wiele kiążek, ale książka może
być wydana tylko przez jedno wydawnictwo. Zakończyliśmy modelowanie logiczne
1
Posługujemy się albo schematami tabel:
Książka (ISBN, Tytuł , Cena, WydID)
Autor (AuID, Nazwisko, Nr.tel.)
lub ich postacią graficzną
:
ta symbolika oznacza że książka może mieć wielu autorów zaś autor może napisać
wiele książek. Posługując się tabelami o schematach jak wyżej nie odtworzymy tabeli
jednorodnej
Związek typu „wiele do wiele” (lub konkretnie np. N:M np 3:5) jest
niejednoznaczny
Modelowanie –schematy tabel –liczebność związku
AUTOR
AuID PK
Nazwisko
NrTelef
KSIĄŻKA
ISBN PK
Tytuł
Cena
WydID
KSIĄŻKA
ISBN PK
Tytuł
Cena
WydID
WYDAWNICTWO
WydID PK
Nazwa
NrTelef
1
Dana książka może mieć tylko jedno wydawnictwo. Tzn. książki nie mogą wydać dwa
wydawnictwa. Tabela po stronie jeden jest nadrzędna.
Związek typu jeden do wiele (1: N lub M:1) jest
jednoznaczny
Zakładamy że Mąż może mieć tylko jedną Żonę i Żona tylko jednego Męża.
Związek typu 1: 1 nie wnosi komplikacji i jest
jednoznaczny
(w bardziej ogólnym przypadku służy do implementacji dziedziczenia)
Modelowanie –schematy tabel –liczebność związku
tabela
nadrzędna
tabela
podrzędna
Żona
Mąż
1
1
Przy pomocy kluczy obcych zyskujemy integralność referencyjną związków
typu 1:1, 1:N lub jeden do wielu. Kolumna WydID jest kluczem głównym w tabeli
Wydawnictwo (
tabela nadrzędna
) oraz występuje w tabeli Książka
(tabela
podrzędna
) jako klucz obcy FK
ISBN
PK
Tytuł Cena
WydID
FK
11
Aa
32
1
13
Cc
24
2
14
Dd
33
3
15
Ee
11
1
20
Ff
15
3
WydID
PK
WydNaz
wa
WydTelefon
1
NOWA
243
2
PWT
255
3
KP
244
Tabela : Książka
Tabela : Wydawnictwo
1
Związek typu „wiele do wiele” (N:M) jak wspomniano, nie jest jednoznaczny i
problemu nie można dobrze rozwiązać przy pomocy kluczy obcych. Metodą jest
wstawienie tabeli pośredniczącej ISBN/Autor – w przykładzie dekompozycji tabeli
jednorodnej był to jedyny powód jej utworzenia
Książka
Książka/Autor
Autor
1
1
– jeśli związek jest typu M:N (lub wiele do wiele), to rozwiązaniem dla uzyskania
jednoznaczności złożenia staje tabela pośrednia, będąca złożeniem kluczy głównych
obu encji. Tabela Książka/Autor posiada atrybuty „PK tabeli Książka” i „PK tabeli
Autor”. Taka tabela reprezentuje encje słabe - niekoniecznie modeluje rzeczywiste
byty.
KSIĄŻKA
ISBN PK
Tytuł
Cena
WydID
AUTOR
AuID PK
Nazwisko
NrTelef
Access generuje diagram, który odzwierciedla związki między tabelami utworzonymi
w podanym przykładzie tabeli jednorodnej. Access utworzy poniższy diagram jeśli
tabele zachowują integralność referencyjną. Zwróćmy uwagę na oznaczenie:
symbol nieskończoności oznacza stronę „wiele”.
Linie między tabelami kreśli się
poczynając od klucza głównego tabeli nadrzędnej do klucza obcego tabeli
podrzędnej.
Notacje
Oprócz notacji związków w Access spotyka się inne. Np. poniższy typ symboliki IE (jeden z
dwóch dostępnych w środowisku TOAD) oznacza:
Notacje
zaś drugiej kreski związek wymagany
dodanie symbolu zera oznacza związek opcjonalny
lub w innym objaśnieniu
Przykład zastosowania opisanej symboliki związków (oznaczenie pozostałe
będą wyjaśniane na następnych cwiczeniach)