jv sbd2012 cw1N

background image

Baza danych – ćwiczenia 1


opr. J.Vogelgesang

background image

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

background image

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

background image

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

background image

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

.

background image

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)

background image

Podstawy matematyczne

background image

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

background image

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”)

background image

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

background image

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

background image

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

background image

Ć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

background image

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

background image

Modelowanie

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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.

background image

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

background image

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

background image

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

background image

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

background image

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ą

background image

Dekompozycje, analizy przypadków

związków encji

background image

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

background image

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

background image

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

background image

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

background image
background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

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

background image

zaś drugiej kreski związek wymagany

dodanie symbolu zera oznacza związek opcjonalny

lub w innym objaśnieniu

background image

Przykład zastosowania opisanej symboliki związków (oznaczenie pozostałe
będą wyjaśniane na następnych cwiczeniach)


Wyszukiwarka

Podobne podstrony:
jv sbd2012 cw2N
jv Power Tools 1 4
Cw1n
JV Marketing

więcej podobnych podstron