RBD W02

background image

opr. Lech Banachowski, Krzysztof Matejews

opr. Lech Banachowski, Krzysztof Matejews

ki

ki

1

1

Relacyjne Bazy Danych

Relacyjne Bazy Danych

Wykład II

Wykład II

Projektowanie baz danych

Projektowanie baz danych

diagramy związków encji

diagramy związków encji

background image

opr. Lech Banachowski, Krzysztof Matejewski

2

Streszczenie wykładu II

Streszczenie wykładu II

W wykładzie 2 zaprezentowana jest podstawowa metoda tworzenia

W wykładzie 2 zaprezentowana jest podstawowa metoda tworzenia

schematu relacyjnej bazy danych. Jest ona dwustopniowa. W

schematu relacyjnej bazy danych. Jest ona dwustopniowa. W

pierwszej fazie projektujemy

pierwszej fazie projektujemy

model danych

model danych

dla rozważanej

dla rozważanej

dziedziny zastosowań, nazywany

dziedziny zastosowań, nazywany

diagramem związków encji

diagramem związków encji

. W

. W

drugiej fazie przekształcamy otrzymany model danych w schemat

drugiej fazie przekształcamy otrzymany model danych w schemat

bazy danych. Specjalne oprogramowanie (nazywane

bazy danych. Specjalne oprogramowanie (nazywane

narzędziami

narzędziami

CASE

CASE

- Computer Aided System Engineering

- Computer Aided System Engineering

)  dostarcza narzędzi

)  dostarcza narzędzi

graficznych do projektowania i rysowania diagramów na ekranie

graficznych do projektowania i rysowania diagramów na ekranie

komputera. Co więcej, dostarcza narzędzi do automatycznego

komputera. Co więcej, dostarcza narzędzi do automatycznego

generowania schematu bazy danych w konkretnym systemie baz

generowania schematu bazy danych w konkretnym systemie baz

danych, takim jak na przykład Microsoft Access.

danych, takim jak na przykład Microsoft Access.

W wykładzie wprowadzane pojęcia ilustrowane są za pomocą zdjęć

W wykładzie wprowadzane pojęcia ilustrowane są za pomocą zdjęć

ekranów pochodzących z programu

ekranów pochodzących z programu

Microsoft Visio

Microsoft Visio

(wersja

(wersja

2000), który służy do rysowania różnego rodzaju diagramów, w

2000), który służy do rysowania różnego rodzaju diagramów, w

tym także diagramów związków encji.

tym także diagramów związków encji.

background image

opr. Lech Banachowski, Krzysztof Matejewski

3

Diagram związków encji

Diagram związków encji

Celem procesu projektowania schematu bazy danych jest:

Celem procesu projektowania schematu bazy danych jest:

1.

1.

wyspecyfikowanie wymagań użytkowników przyszłej bazy

wyspecyfikowanie wymagań użytkowników przyszłej bazy

danych oraz dokonanie analizy tych wymagań,

danych oraz dokonanie analizy tych wymagań,

2.

2.

utworzenie schematu bazy danych, spełniającego wymagania

utworzenie schematu bazy danych, spełniającego wymagania

użytkowników i jednocześnie gwarantującego poprawne

użytkowników i jednocześnie gwarantującego poprawne

funkcjonowanie bazy danych w ramach całego systemu

funkcjonowanie bazy danych w ramach całego systemu

informacyjnego.

informacyjnego.

Na ogół, zanim utworzy się bazę danych, dokonuje się analizy

Na ogół, zanim utworzy się bazę danych, dokonuje się analizy

wymagań informacyjnych i przedstawia się je w postaci modelu

wymagań informacyjnych i przedstawia się je w postaci modelu

danych nazywanego

danych nazywanego

diagramem związków encji

diagramem związków encji

. W diagramie

. W diagramie

tym abstrahujemy od szczegółów technicznych związanych z

tym abstrahujemy od szczegółów technicznych związanych z

implementacją danych w konkretnym systemie baz danych.

implementacją danych w konkretnym systemie baz danych.

background image

opr. Lech Banachowski, Krzysztof Matejewski

4

Diagram związków encji

Diagram związków encji

pośredni model projektowy

pośredni model projektowy

Diagram związków encji

Diagram związków encji

powinien:

powinien:

w sposób jednoznaczny określać wymagania użytkowników,

w sposób jednoznaczny określać wymagania użytkowników,

umożliwiając im sprawdzenie, czy analityk systemu dobrze

umożliwiając im sprawdzenie, czy analityk systemu dobrze

zrozumiał ich intencje i specyfikę działania firmy (ogólnie –

zrozumiał ich intencje i specyfikę działania firmy (ogólnie –

obiektów stanowiących przedmiot modelowanej bazy danych);

obiektów stanowiących przedmiot modelowanej bazy danych);

być istotnie prostszy od schematu bazy danych, ponieważ

być istotnie prostszy od schematu bazy danych, ponieważ

abstrahuje od szczegółów implementacyjnych, które muszą być

abstrahuje od szczegółów implementacyjnych, które muszą być

później opracowane przez projektanta bazy danych tak, aby

później opracowane przez projektanta bazy danych tak, aby

baza danych mogła powstać i spełniać postawione przed nią

baza danych mogła powstać i spełniać postawione przed nią

zadania.

zadania.

background image

opr. Lech Banachowski, Krzysztof Matejewski

5

Składniki diagramu związków encji

Składniki diagramu związków encji

Encja

Encja

Encja

Encja

(obiekt) to coś, co istnieje, co jest odróżnialne od innych, o czym

(obiekt) to coś, co istnieje, co jest odróżnialne od innych, o czym

informację trzeba znać lub przechowywać. Encje o tych samych

informację trzeba znać lub przechowywać. Encje o tych samych

własnościach tworzą typy (zbiory) encji. Reprezentacją graficzną encji

własnościach tworzą typy (zbiory) encji. Reprezentacją graficzną encji

jest ramka (prostokąt).

jest ramka (prostokąt).

 

 

Należy odróżniać

Należy odróżniać

typ encji

typ encji

od jej

od jej

instancji

instancji

(egzemplarza) np.

(egzemplarza) np.

Osoba

Osoba

jako

jako

typ

typ

i jako konkretny

i jako konkretny

obiekt

obiekt

(instancja, egzemplarz, czyli fizyczna osoba).

(instancja, egzemplarz, czyli fizyczna osoba).

background image

opr. Lech Banachowski, Krzysztof Matejewski

6

Składniki diagramu związków encji

Składniki diagramu związków encji

Atrybut

Atrybut

Atrybut

Atrybut

jest to właściwość encji danego typu, opisywana pewną wartością np.

jest to właściwość encji danego typu, opisywana pewną wartością np.

liczbą całkowitą, liczbą rzeczywistą, napisem, datą. Inaczej mówiąc –

liczbą całkowitą, liczbą rzeczywistą, napisem, datą. Inaczej mówiąc –

atrybut to cecha (właściwość) obiektu, którego modelem jest encja. Zbiór

atrybut to cecha (właściwość) obiektu, którego modelem jest encja. Zbiór

atrybutów opisuje encję, a zbiór konkretnych wartosci atrybutów opisuję

atrybutów opisuje encję, a zbiór konkretnych wartosci atrybutów opisuję

instancję (konkretny egzemplarz) encji.

instancję (konkretny egzemplarz) encji.

Identyfikowany atrybut powinien opisywać encję, przy której się go

Identyfikowany atrybut powinien opisywać encję, przy której się go

umieszcza (a nie związki z innymi encjami!). Na przykład

umieszcza (a nie związki z innymi encjami!). Na przykład

Numer miejsca w

Numer miejsca w

samolocie

samolocie

jest atrybutem encji

jest atrybutem encji

Samolot

Samolot

lub encji

lub encji

Miejsce w samolocie

Miejsce w samolocie

, a nie

, a nie

atrybutem encji

atrybutem encji

Bilet

Bilet

, choć na nim się także pojawia.

, choć na nim się także pojawia.

Pierwsza postać normalna

Pierwsza postać normalna

-

-

dla każdego egzemplarza encji, każdy jej

dla każdego egzemplarza encji, każdy jej

atrybut powinien przyjmować pojedynczą, atomową (niepodzielną)

atrybut powinien przyjmować pojedynczą, atomową (niepodzielną)

wartość. Z tego powodu, atrybut

wartość. Z tego powodu, atrybut

Dzieci pracownika

Dzieci pracownika

nie jest dobrym

nie jest dobrym

kandydatem na atrybut encji

kandydatem na atrybut encji

Pracownik

Pracownik

.

.

Należy pomijać atrybuty wyliczane, czyli takie, których wartości dadzą się

Należy pomijać atrybuty wyliczane, czyli takie, których wartości dadzą się

wyliczyć z innych, już istniejących w bazie wartości. Np. wiek osoby jest

wyliczyć z innych, już istniejących w bazie wartości. Np. wiek osoby jest

wyliczany z daty urodzenia; cena brutto wynika z ceny netto i stawki

wyliczany z daty urodzenia; cena brutto wynika z ceny netto i stawki

podatku VAT, wartość zakupu z liczby zakupionych przedmiotów i ich cen.

podatku VAT, wartość zakupu z liczby zakupionych przedmiotów i ich cen.

background image

opr. Lech Banachowski, Krzysztof Matejewski

7

Składniki diagramu związków encji

Składniki diagramu związków encji

Klucz

Klucz

Klucz

Klucz

(

(

jednoznaczny identyfikator

jednoznaczny identyfikator

)

)

jest to zbiór (może być

jest to zbiór (może być

jednoelementowy)

atrybutów

danej

encji,

których

wartości

jednoelementowy)

atrybutów

danej

encji,

których

wartości

jednoznacznie identyfikują każdą instancję tej encji. Jeden klucz jest 

jednoznacznie identyfikują każdą instancję tej encji. Jeden klucz jest 

główny

główny

, pozostałe

, pozostałe

alternatywne

alternatywne

. Jedna encja może mieć wiele kluczy.

. Jedna encja może mieć wiele kluczy.

Atrybuty klucza głównego wyróżnia się etykietą PK i/lub podkreśleniem.

Atrybuty klucza głównego wyróżnia się etykietą PK i/lub podkreśleniem.

Niektóre encje, w celu jednoznacznego ich zidentyfikowania, wymagają

Niektóre encje, w celu jednoznacznego ich zidentyfikowania, wymagają

powiązania z innymi encjami, czego efektem jest umieszczenie klucza

powiązania z innymi encjami, czego efektem jest umieszczenie klucza

obcego wśród atrybutów klucza głównego. Encje takie nazywają się

obcego wśród atrybutów klucza głównego. Encje takie nazywają się

słabe

słabe

albo

albo

zależne

zależne

. Pozostałe

. Pozostałe

encje to encje

encje to encje

niezależne

niezależne

.

.

Analizę

Analizę

zaczynamy od zidentyfikowania encji niezależnych.

zaczynamy od zidentyfikowania encji niezależnych.

background image

opr. Lech Banachowski, Krzysztof Matejewski

8

Składniki diagramu związków encji

Składniki diagramu związków encji

Typy danych

Typy danych

Typy zmiennych

Typy zmiennych

, czyli

, czyli

dziedziny atrybutów

dziedziny atrybutów

, to zbiory wartości, które

, to zbiory wartości, które

mogą być przyjmowane przez zmienne zapisywane w kolumnach tabel.

mogą być przyjmowane przez zmienne zapisywane w kolumnach tabel.

W MS Visio atrybuty encji określa się w zakładce "Columns".

W MS Visio atrybuty encji określa się w zakładce "Columns".

Odróżnia się dwie specyfikacje typów danych: niezależną od systemu

Odróżnia się dwie specyfikacje typów danych: niezależną od systemu

baz danych (

baz danych (

Portable Data Type

Portable Data Type

), oraz zorientowaną na generowanie

), oraz zorientowaną na generowanie

bazy danych do konkretnego systemu baz danych (

bazy danych do konkretnego systemu baz danych (

Physical Data Type

Physical Data Type

).

).

background image

opr. Lech Banachowski, Krzysztof Matejewski

9

Składniki diagramu związków encji

Składniki diagramu związków encji

Więzy spójności

Więzy spójności

Więzy spójności

Więzy spójności

dla encji w MS Visio określa się zakładce

dla encji w MS Visio określa się zakładce

Check

Check

.

.

Definiowane są przez wyrażenia.

Definiowane są przez wyrażenia.

background image

opr. Lech Banachowski, Krzysztof Matejewski

10

Indeksy

Indeksy

Wśród atrybutów encji wyróżniamy atrybuty bądź grupy atrybutów,

Wśród atrybutów encji wyróżniamy atrybuty bądź grupy atrybutów,

względem wartości których są wyszukiwane egzemplarze encji. Dla

względem wartości których są wyszukiwane egzemplarze encji. Dla

takich atrybutów specyfikujemy

takich atrybutów specyfikujemy

indeksy

indeksy

. Indeks na kluczu głównym

. Indeks na kluczu głównym

jest zakładany automatycznie i nie trzeba dodatkowo go

jest zakładany automatycznie i nie trzeba dodatkowo go

specyfikować. Na diagramie atrybuty posiadające indeksy są

specyfikować. Na diagramie atrybuty posiadające indeksy są

etykietowane literą

etykietowane literą

I

I

ze wskaźnikiem. W MS Visio indeksy specyfikuje

ze wskaźnikiem. W MS Visio indeksy specyfikuje

się w zakładce "Indexes". Przykład pokazany na slajdzie to

się w zakładce "Indexes". Przykład pokazany na slajdzie to

specyfikacja indeksu do wyszukiwania osób według ich nazwisk.

specyfikacja indeksu do wyszukiwania osób według ich nazwisk.

background image

opr. Lech Banachowski, Krzysztof Matejewski

11

Związek

Związek

Związek

Związek

to uporządkowana lista encji, poszczególne encje

to uporządkowana lista encji, poszczególne encje

mogą występować wielokrotnie. Każdy związek określa

mogą występować wielokrotnie. Każdy związek określa

pewną zależność między zbiorami egzemplarzy (instancji)

pewną zależność między zbiorami egzemplarzy (instancji)

encji wchodzącymi w skład związku - instancję związku.

encji wchodzącymi w skład związku - instancję związku.

Związek można formalnie zapisać przy użyciu notacji relacyjnej:

Związek można formalnie zapisać przy użyciu notacji relacyjnej:

Z(E1 ,...,En)

Z(E1 ,...,En)

co oznacza:

co oznacza:

encje E1 ,...,En wchodzą w skład związku Z

encje E1 ,...,En wchodzą w skład związku Z

Można także opisać związek werbalnie, np.:

Można także opisać związek werbalnie, np.:

Pracownik pracuje w dziale

Pracownik pracuje w dziale

(związek pomiędzy encjami

(związek pomiędzy encjami

Dział

Dział

i

i

Pracownik

Pracownik

)

)

Pracownik w projekcie pełni rolę

Pracownik w projekcie pełni rolę

(związek pomiędzy encjami

(związek pomiędzy encjami

Pracownik

Pracownik

i

i

Projekt

Projekt

)

)

Firma produkuje towar

Firma produkuje towar

(związek pomiędzy encjami

(związek pomiędzy encjami

Firma

Firma

i

i

Towar

Towar

)

)

background image

opr. Lech Banachowski, Krzysztof Matejewski

12

Związek binarny - dwuargumentowy

Związek binarny - dwuargumentowy

Związek binarny

Związek binarny

jest reprezentowany graficznie jako linia łącząca

jest reprezentowany graficznie jako linia łącząca

dwie ramki (encje). MS Visio automatycznie tworzy w encji

dwie ramki (encje). MS Visio automatycznie tworzy w encji

Student

Student

atrybut

atrybut

Nr_Grupy

Nr_Grupy

(z etykietą FK1 - klucz obcy ) - określający

(z etykietą FK1 - klucz obcy ) - określający

powiązania instancji encji

powiązania instancji encji

Student

Student

z instancjami encji

z instancjami encji

Grupa

Grupa

.

.

Instancja

Instancja

związku binarnego jest dwuargumentową relacją na

związku binarnego jest dwuargumentową relacją na

iloczynie kartezjańskim zbiorów instancji encji. W naszym

iloczynie kartezjańskim zbiorów instancji encji. W naszym

przykładzie - zbioru studentów, ze zbiorem grup studenckich.

przykładzie - zbioru studentów, ze zbiorem grup studenckich.

background image

opr. Lech Banachowski, Krzysztof Matejewski

13

Związek jednoznaczny i jego implementacja

Związek jednoznaczny i jego implementacja

Związek jednoznaczny

Związek jednoznaczny

Gdy instancja związku binarnego jest funkcją częściową związek

Gdy instancja związku binarnego jest funkcją częściową związek

nazywa się jednoznaczny.

nazywa się jednoznaczny.

Instancja związku jednoznacznego między encjami

Instancja związku jednoznacznego między encjami

Grupa

Grupa

i

i

Student

Student

jest funkcją ze zbioru studentów w zbiór grup studenckich.

jest funkcją ze zbioru studentów w zbiór grup studenckich.

Część związku odpowiadająca dziedzinie funkcji jest nazywana

Część związku odpowiadająca dziedzinie funkcji jest nazywana

stroną

stroną

wiele

wiele

związku (lub

związku (lub

encją podrzędną

encją podrzędną

), a część odpowiadająca

), a część odpowiadająca

przeciwdziedzinie funkcji

przeciwdziedzinie funkcji

stroną jeden

stroną jeden

związku (lub

związku (lub

encją nadrzędną

encją nadrzędną

)

)

– i jest oznaczana strzałką.

– i jest oznaczana strzałką.

Grupa

Grupa

jest encją po stronie jeden (nadrzędną) a

jest encją po stronie jeden (nadrzędną) a

Student

Student

encją po

encją po

stronie wiele (podrzędną).

stronie wiele (podrzędną).

Implementacja związku jednoznacznego

Implementacja związku jednoznacznego

Dwie encje połączone związkiem jednoznacznym są implementowane

Dwie encje połączone związkiem jednoznacznym są implementowane

odpowiednio przez dwie tabele. W encji po stronie wiele jest dodany

odpowiednio przez dwie tabele. W encji po stronie wiele jest dodany

klucz obcy określający powiązanie z instancją encji po stronie jeden.

klucz obcy określający powiązanie z instancją encji po stronie jeden.

W naszym przykładzie do encji

W naszym przykładzie do encji

Student

Student

jest dodany klucz obcy

jest dodany klucz obcy

Nr_grupy

Nr_grupy

etykietowany przez FK1, określający powiązanie z

etykietowany przez FK1, określający powiązanie z

instancją encji

instancją encji

Grupa

Grupa

- przez wartość klucza głównego

- przez wartość klucza głównego

Nr_grupy

Nr_grupy

.

.

background image

opr. Lech Banachowski, Krzysztof Matejewski

14

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Definition"

Zakładka "Definition"

W zakładce

W zakładce

Definition

Definition

związek definiowany jest jako powiązanie

związek definiowany jest jako powiązanie

dwóch zbiorów atrybutów: tworzonego automatycznie klucza

dwóch zbiorów atrybutów: tworzonego automatycznie klucza

obcego w encji po stronie "wiele" i klucza głównego w encji po

obcego w encji po stronie "wiele" i klucza głównego w encji po

stronie "jeden". Pole „Foreign key rrole name” jest miejsscem gdzie

stronie "jeden". Pole „Foreign key rrole name” jest miejsscem gdzie

można opisać rolę, jaką w encji podrzędnej pełni klucz obcy (może

można opisać rolę, jaką w encji podrzędnej pełni klucz obcy (może

być to przekształcone w etykietę kolumny przyszłej tabeli).

być to przekształcone w etykietę kolumny przyszłej tabeli).

W przykładzie

W przykładzie

Student

Student

jest encją po stronie "wiele", a

jest encją po stronie "wiele", a

Grupa

Grupa

jest encją

jest encją

po stronie "jeden".

po stronie "jeden".

background image

opr. Lech Banachowski, Krzysztof Matejewski

15

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka „Name"

Zakładka „Name"

Zakładka

Zakładka

Name

Name

określa sposób odczytywania zawartości związku oraz

określa sposób odczytywania zawartości związku oraz

nazwę dla więzów klucza obcego:

nazwę dla więzów klucza obcego:

Grupa_Student_FK1

Grupa_Student_FK1

.

.

Pola

Pola

Verb phrase

Verb phrase

i

i

Inverse phrase

Inverse phrase

pozwalają opisać verbalnie

pozwalają opisać verbalnie

związek, ułatwiając zrozumienie jego roli. Opis może zostać

związek, ułatwiając zrozumienie jego roli. Opis może zostać

wykonany w ujęciu „od strony wiele do strony jeden” i/lub odwrotnie.

wykonany w ujęciu „od strony wiele do strony jeden” i/lub odwrotnie.

MS Visio pozwala wyświetlić opisy związków na diagramie.

MS Visio pozwala wyświetlić opisy związków na diagramie.

background image

opr. Lech Banachowski, Krzysztof Matejewski

16

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Miscelaneous"

Zakładka "Miscelaneous"

Zakładka

Zakładka

Miscelaneous

Miscelaneous

określa podstawowe własności związku:

określa podstawowe własności związku:

1.

1.

Liczebność

Liczebność

(

(

Cardinality

Cardinality

) - ile egzemplarzy encji po stronie wiele

) - ile egzemplarzy encji po stronie wiele

może być połączone z jednym egzemplarzem encji po stronie

może być połączone z jednym egzemplarzem encji po stronie

jeden. Może to być konkretna liczba np. 2 albo określenie typu

jeden. Może to być konkretna liczba np. 2 albo określenie typu

"zero lub więcej", "jeden lub więcej", "zero lub jeden".

"zero lub więcej", "jeden lub więcej", "zero lub jeden".

background image

opr. Lech Banachowski, Krzysztof Matejewski

17

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Miscelaneous"

Zakładka "Miscelaneous"

2.

2.

Typ związku

Typ związku

(

(

Relationship type

Relationship type

), który może być:

), który może być:

identyfikujący

identyfikujący

– do identyfikacji egzemplarza encji po stronie

– do identyfikacji egzemplarza encji po stronie

wiele jest potrzebny odpowiadający mu egzemplarz encji po

wiele jest potrzebny odpowiadający mu egzemplarz encji po

stronie jeden i wtedy encja po stronie wiele nazywa się encją słabą

stronie jeden i wtedy encja po stronie wiele nazywa się encją słabą

(zależną) - inaczej mówiąc wartość klucza obcego wchodzi w skład

(zależną) - inaczej mówiąc wartość klucza obcego wchodzi w skład

klucza głównego encji po stronie wiele

klucza głównego encji po stronie wiele

nieidentyfikujący

nieidentyfikujący

- wartość klucza obcego nie wchodzi w skład

- wartość klucza obcego nie wchodzi w skład

klucza głównego encji po stronie wiele.

klucza głównego encji po stronie wiele.

background image

opr. Lech Banachowski, Krzysztof Matejewski

18

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka „Miscelaneous”

Zakładka „Miscelaneous”

3.

3.

Opcję

Opcję

Optional

Optional

– czy wartość klucza obcego jest opcjonalna tzn.

– czy wartość klucza obcego jest opcjonalna tzn.

czy dopuszcza wartość NULL. Związek jest opcjonalny gdy wartość

czy dopuszcza wartość NULL. Związek jest opcjonalny gdy wartość

klucza obcego dopuszcza wartość NULL. Związek jest wymagany

klucza obcego dopuszcza wartość NULL. Związek jest wymagany

gdy wartość klucza obcego musi być określona tzn. nie może być

gdy wartość klucza obcego musi być określona tzn. nie może być

NULL (inaczej mówiąc dla każdego egzemplarza encji po stronie

NULL (inaczej mówiąc dla każdego egzemplarza encji po stronie

wiele istnieje odpowiadający mu egzemplarz encji po stronie

wiele istnieje odpowiadający mu egzemplarz encji po stronie

jeden).

jeden).

background image

opr. Lech Banachowski, Krzysztof Matejewski

19

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Ref. Integrity"

Zakładka "Ref. Integrity"

Zakładka

Zakładka

Ref. Integrity

Ref. Integrity

określa akcje referencyjne, które zostaną

określa akcje referencyjne, które zostaną

podjęte w przypadku naruszenia więzów spójności referencyjnej

podjęte w przypadku naruszenia więzów spójności referencyjnej

przez operacje usuwania i aktualizacji wierszy w tabeli nadrzędnej.

przez operacje usuwania i aktualizacji wierszy w tabeli nadrzędnej.

Dostępne są następujące opcje:

Dostępne są następujące opcje:

1.

1.

Odmawiaj wykonania akcji (

Odmawiaj wykonania akcji (

No action, Restricted

No action, Restricted

) - nie wykonuj

) - nie wykonuj

zmiany, jeśli naruszyłaby ona więzy spójności referencyjnej. System

zmiany, jeśli naruszyłaby ona więzy spójności referencyjnej. System

zarządzania bazą danych „odmówi” wykonania polecenia, informując

zarządzania bazą danych „odmówi” wykonania polecenia, informując

o tym użytkownika i/lub zapisując informację o tym w logu.

o tym użytkownika i/lub zapisując informację o tym w logu.

background image

opr. Lech Banachowski, Krzysztof Matejewski

20

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Ref. Integrity"

Zakładka "Ref. Integrity"

2.

2.

Propaguj zmiany do encji podrzędnej (

Propaguj zmiany do encji podrzędnej (

Cascade

Cascade

) - przy aktualizacji

) - przy aktualizacji

instancji encji nadrzędnej uaktualnij wartość klucza obcego w

instancji encji nadrzędnej uaktualnij wartość klucza obcego w

encji podrzędnej, a przy usuwaniu, razem z egzemplarzem encji

encji podrzędnej, a przy usuwaniu, razem z egzemplarzem encji

nadrzędnej, usuń wszystkie powiązane przez wartość klucza

nadrzędnej, usuń wszystkie powiązane przez wartość klucza

obcego egzemplarze encji podrzędnej. Ta akcja jest w

obcego egzemplarze encji podrzędnej. Ta akcja jest w

szczególności naturalna dla wszystkich związków identyfikujących.

szczególności naturalna dla wszystkich związków identyfikujących.

3.

3.

Wstaw NULL (

Wstaw NULL (

Set Null

Set Null

) - w przypadku aktualizacji lub usuwania instancji

) - w przypadku aktualizacji lub usuwania instancji

encji nadrzędnej, w miejsce wartość klucza obcego w odpowiadających

encji nadrzędnej, w miejsce wartość klucza obcego w odpowiadających

jej instancjach encji podrzędnej wstaw NULL.

jej instancjach encji podrzędnej wstaw NULL.

background image

opr. Lech Banachowski, Krzysztof Matejewski

21

Okienko właściwości związku ("Database

Okienko właściwości związku ("Database

properties")

properties")

Zakładka "Ref. Integrity"

Zakładka "Ref. Integrity"

4.

4.

Wyłącz więzy spójności referencyjnej i wykonaj operację (

Wyłącz więzy spójności referencyjnej i wykonaj operację (

Do

Do

not enforce

not enforce

). System zarządzania bazą danych przestaje

). System zarządzania bazą danych przestaje

odpowiadać za spójność danych.

odpowiadać za spójność danych.

Niektóre systemy dopuszczają jeszcze jedną opcję:

Niektóre systemy dopuszczają jeszcze jedną opcję:

5.

5.

Wstaw wartość domyślną (

Wstaw wartość domyślną (

Set Default

Set Default

) - w przypadku

) - w przypadku

aktualizacji lub usuwania instancji encji nadrzędnej, zamiast

aktualizacji lub usuwania instancji encji nadrzędnej, zamiast

wartości klucza obcego w odpowiadających jej instancjach encji

wartości klucza obcego w odpowiadających jej instancjach encji

podrzędnej wstaw wartość domyślną.

podrzędnej wstaw wartość domyślną.

background image

opr. Lech Banachowski, Krzysztof Matejewski

22

Transformacja związku niejednoznacznego

Transformacja związku niejednoznacznego

Każdy związek niejednoznaczny (czyli taki związek, który nie jest

Każdy związek niejednoznaczny (czyli taki związek, który nie jest

jednoznaczny) trzeba sprowadzić do związków jednoznacznych.

jednoznaczny) trzeba sprowadzić do związków jednoznacznych.

Dla związku o liczbie argumentów większej niż dwa

Dla związku o liczbie argumentów większej niż dwa

Z(E1

Z(E1

,...,En),

,...,En),

n>2

n>2

wprowadzamy nową encję

wprowadzamy nową encję

E0

E0

i n jednoznacznych

i n jednoznacznych

związków binarnych

związków binarnych

Zi(E0,Ei)

Zi(E0,Ei)

łączących nową encję z encjami

łączących nową encję z encjami

już istniejącymi. Klucz encji

już istniejącymi. Klucz encji

E0

E0

jest sumą kluczy encji

jest sumą kluczy encji

E1,...,En

E1,...,En

.

.

Dla

niejednoznacznego

związku

binarnego

Dla

niejednoznacznego

związku

binarnego

Z(E1,E2)

Z(E1,E2)

wprowadzamy nową encję

wprowadzamy nową encję

E0

E0

i dwa związki jednoznaczne

i dwa związki jednoznaczne

Z1(E0,E1)

Z1(E0,E1)

oraz

oraz

Z2(E0,E2)

Z2(E0,E2)

łączące nowy zbiór encji ze starymi.

łączące nowy zbiór encji ze starymi.

Klucz encji

Klucz encji

E0

E0

jest sumą kluczy encji

jest sumą kluczy encji

E1

E1

i

i

E2

E2

.

.

Wprowadzana encja reprezentująca związek nazywa się

Wprowadzana encja reprezentująca związek nazywa się

encją

encją

asocjacyjną

asocjacyjną

. Jest ona zawsze encją słabą (zależną), bo związki

. Jest ona zawsze encją słabą (zależną), bo związki

łączące

z

encjami

-

argumentami

związku

łączące

z

encjami

-

argumentami

związku

niejednoznacznego są związkami identyfikującymi.

niejednoznacznego są związkami identyfikującymi.

background image

opr. Lech Banachowski, Krzysztof Matejewski

23

Transformacja związku niejednoznacznego -

Transformacja związku niejednoznacznego -

przykład

przykład

Powyżej przedtawiony jest przykład opisanej transformacji dla związku

Powyżej przedtawiony jest przykład opisanej transformacji dla związku

trójargumentowego: wykładowca prowadzi zajęcia dla grupy studenckiej

trójargumentowego: wykładowca prowadzi zajęcia dla grupy studenckiej

z przedmiotu nauczania. Stosując opisaną metodę wprowadzimy nową

z przedmiotu nauczania. Stosując opisaną metodę wprowadzimy nową

encję asocjacyjną

encję asocjacyjną

, której zadaniem będzie opisanie związku, jaki

, której zadaniem będzie opisanie związku, jaki

zachodzi pomiędzy

zachodzi pomiędzy

wykładowcami

wykładowcami

,

,

przedmiotami nauczania

przedmiotami nauczania

i

i

grupami

grupami

.

.

background image

opr. Lech Banachowski, Krzysztof Matejewski

24

Transformacja związku niejednoznacznego -

Transformacja związku niejednoznacznego -

przykład

przykład

Jednoznaczny identyfikator nowej encji tworzą trzy wprowadzone

Jednoznaczny identyfikator nowej encji tworzą trzy wprowadzone

związki tj. klucze obce do encji

związki tj. klucze obce do encji

Grupa

Grupa

,

,

Wykladowca

Wykladowca

i

i

Przedmiot

Przedmiot

.

.

Istotne jest ustawienie typu tych związków jako identyfikujących. To

Istotne jest ustawienie typu tych związków jako identyfikujących. To

właśnie spowoduje umieszczenie kluczy obcych z encji

właśnie spowoduje umieszczenie kluczy obcych z encji

Grupa

Grupa

,

,

Wykladowca

Wykladowca

i

i

Przedmiot

Przedmiot

w części identyfikującej (czzyli wśród

w części identyfikującej (czzyli wśród

atrybutów klucza głównego) encji asocjacyjnej

atrybutów klucza głównego) encji asocjacyjnej

Zajęcia

Zajęcia

.

.

W encji asocjacyjnej można umieszczać atrybuty charakteryzujące

W encji asocjacyjnej można umieszczać atrybuty charakteryzujące

związek np. między osobami, projektami i rolami - atrybut

związek np. między osobami, projektami i rolami - atrybut

G

G

odz_rozp

odz_rozp

,

,

Czas_trwania

Czas_trwania

,

,

Sala

Sala

.

.

background image

opr. Lech Banachowski, Krzysztof Matejewski

25

Związek rekurencyjny

Związek rekurencyjny

Związek rekurencyjny jest to związek zachodzący pomiędzy tą samą

Związek rekurencyjny jest to związek zachodzący pomiędzy tą samą

encją, np. „Jedna

encją, np. „Jedna

Osoba

Osoba

jest kierownikiem drugiej

jest kierownikiem drugiej

osoby

osoby

. W

. W

pokazanym przykładzie na kluczach obcych zostały utworzone

pokazanym przykładzie na kluczach obcych zostały utworzone

(przez projektanta bazy) indeksy, co jest często stosowaną

(przez projektanta bazy) indeksy, co jest często stosowaną

praktyką.

praktyką.

background image

opr. Lech Banachowski, Krzysztof Matejewski

26

Związek jedno-jednoznaczny, jeden-do-jeden

Związek jedno-jednoznaczny, jeden-do-jeden

Zwiazek jedno-jednoznaczny to związek jednoznaczny, kórego

Zwiazek jedno-jednoznaczny to związek jednoznaczny, kórego

instancja jest różnowartościową funkcją częściową . Inaczej

instancja jest różnowartościową funkcją częściową . Inaczej

mówiąc, każdej instancji encji po stronie „wiele” odpowiada co

mówiąc, każdej instancji encji po stronie „wiele” odpowiada co

najwyżej jedna instancja encji po stronie „jeden” - na przykład

najwyżej jedna instancja encji po stronie „jeden” - na przykład

związek "Każdy student jest osobą" (Osoba może być studentem,

związek "Każdy student jest osobą" (Osoba może być studentem,

ale nie musi nim być).

ale nie musi nim być).

background image

opr. Lech Banachowski, Krzysztof Matejewski

27

Metody odwzorowania związku jedno-

Metody odwzorowania związku jedno-

jednoznacznego

jednoznacznego

Związek jedno-jednoznaczny może zostać odwzorowany w tabele bazy

Związek jedno-jednoznaczny może zostać odwzorowany w tabele bazy

danych na jeden z trzech sposobów (na przykładzie związku między

danych na jeden z trzech sposobów (na przykładzie związku między

encjami

encjami

Osoba

Osoba

i

i

Student

Student

):

):

1.

1.

(Stosowana przez MS Visio) Używamy dwóch tabel:

(Stosowana przez MS Visio) Używamy dwóch tabel:

Student

Student

i

i

Osoba

Osoba

.

.

W tabeli

W tabeli

Osoba

Osoba

zapisujemy atrybuty wspólne dla wszystkich osób. W

zapisujemy atrybuty wspólne dla wszystkich osób. W

tabeli

tabeli

Student

Student

zapisujemy klucz główny z tabeli

zapisujemy klucz główny z tabeli

Osoba

Osoba

(identyfikujący

(identyfikujący

studenta jako osobę) oraz atrybuty charakterystyczne tylko dla

studenta jako osobę) oraz atrybuty charakterystyczne tylko dla

studentów.

studentów.

Wadą tego rozwiązania jest konieczność częstego używania złączenia

Wadą tego rozwiązania jest konieczność częstego używania złączenia

dwóch tabel, zaletą jest elegancja schematu.

dwóch tabel, zaletą jest elegancja schematu.

2.

2.

Używamy tylko jednej tabeli, w której są przechowywane wszystkie

Używamy tylko jednej tabeli, w której są przechowywane wszystkie

możliwe atrybuty dotyczące osób. Jeśli osoba nie jest studentem,

możliwe atrybuty dotyczące osób. Jeśli osoba nie jest studentem,

wartości atrybutów charakterystycznych tylko dla studentów

wartości atrybutów charakterystycznych tylko dla studentów

pozostają NULL.

pozostają NULL.

Wadą tego rozwiązania jest potencjalnie duża liczba wartości NULL w

Wadą tego rozwiązania jest potencjalnie duża liczba wartości NULL w

tabeli.

tabeli.

3.

3.

Używamy tylko jednej tabeli

Używamy tylko jednej tabeli

Student

Student

. W przypadku, gdy zajdzie

. W przypadku, gdy zajdzie

potrzeba reprezentowania jeszcze innego typu osób jak np.

potrzeba reprezentowania jeszcze innego typu osób jak np.

Pracownik – dla tej kategorii osób definiujemy osobną tabelę. Gdy

Pracownik – dla tej kategorii osób definiujemy osobną tabelę. Gdy

jest potrzebna informacja obejmująca wszystkie osoby, trzeba wtedy

jest potrzebna informacja obejmująca wszystkie osoby, trzeba wtedy

stosować sumowanie zawartości tabel.

stosować sumowanie zawartości tabel.

Metoda ta jest dobra, gdy podział na kategorie osób jest rozłączny. Gdy

Metoda ta jest dobra, gdy podział na kategorie osób jest rozłączny. Gdy

podział nie jest rozłączny, ta sama informacja będzie powtarzana, np.

podział nie jest rozłączny, ta sama informacja będzie powtarzana, np.

informacja o pracownikach będących jednocześnie studentami.

informacja o pracownikach będących jednocześnie studentami.

background image

opr. Lech Banachowski, Krzysztof Matejewski

28

Generowanie bazy danych z modelu

Generowanie bazy danych z modelu

Po wybraniu docelowego systemu bazodanowego (w naszym przypadku MS Access)

Po wybraniu docelowego systemu bazodanowego (w naszym przypadku MS Access)

możemy wygenerować z programu MS Visio tabele w bazie danych:

możemy wygenerować z programu MS Visio tabele w bazie danych:

1.

1.

Tworzymy pustą bazę danych MS Access.

Tworzymy pustą bazę danych MS Access.

2.

2.

Z menu Visio wybieramy opcję "Database -> Generate" wywołując kreator

Z menu Visio wybieramy opcję "Database -> Generate" wywołując kreator

generacji.

generacji.

3.

3.

W pierwszym okienku dialogowym kreatora wybieramy opcję "Generate new

W pierwszym okienku dialogowym kreatora wybieramy opcję "Generate new

database".

database".

4a

4a

. Przy pierwszym użyciu:

. Przy pierwszym użyciu:

Wybieramy opcję: "Create MDB file" i "New" (data source name - DSN).

Wybieramy opcję: "Create MDB file" i "New" (data source name - DSN).

W kolejnych okienkach wybieramy opcje "System data source", "Microsoft Access

W kolejnych okienkach wybieramy opcje "System data source", "Microsoft Access

driver".

driver".

Po utworzeniu DSN podajemy ścieżkę do utworzonej wcześniej bazy danych MS

Po utworzeniu DSN podajemy ścieżkę do utworzonej wcześniej bazy danych MS

Access.

Access.

4b

4b

. Przy kolejnym użyciu:

. Przy kolejnym użyciu:

Wybieramy opcję: "MDB file already exists".

Wybieramy opcję: "MDB file already exists".

W kolejnych okienkach wybieramy DSN z listy rozwijanej i ścieżkę do utworzonej

W kolejnych okienkach wybieramy DSN z listy rozwijanej i ścieżkę do utworzonej

wcześniej bazy danych Access.

wcześniej bazy danych Access.

UWAGA

UWAGA

:

:

Opcja generowania bazy danych z modelu wykonanego w MS Visio

Opcja generowania bazy danych z modelu wykonanego w MS Visio

dostępna jest w wersjach 2002 i 2003 tylko w wydaniach „Enterprise”. W

dostępna jest w wersjach 2002 i 2003 tylko w wydaniach „Enterprise”. W

powszechnie dostępnych wydaniach „Proffesional” możliwe jest tylko wykonanie

powszechnie dostępnych wydaniach „Proffesional” możliwe jest tylko wykonanie

diagramu związków edncji.

diagramu związków edncji.

background image

opr. Lech Banachowski, Krzysztof Matejewski

29

Słownik

Słownik

encja

encja

(obiekt) coś co istnieje, co jest odróżnialne od innych, o czym

(obiekt) coś co istnieje, co jest odróżnialne od innych, o czym

informację trzeba znać lub przechowywać. Encje o tych samych

informację trzeba znać lub przechowywać. Encje o tych samych

własnościach tworzą typy (zbiory) encji. Reprezentacją graficzną encji

własnościach tworzą typy (zbiory) encji. Reprezentacją graficzną encji

jest ramka (prostokąt). Encja może być niezależna lub zależna (od

jest ramka (prostokąt). Encja może być niezależna lub zależna (od

innych encji przez związek lub związki z nimi).

innych encji przez związek lub związki z nimi).

atrybut

atrybut

jest to właściwość encji danego typu, reprezentowana pewną

jest to właściwość encji danego typu, reprezentowana pewną

wartością np. liczbą całkowitą, liczbą rzeczywistą, napisem.

wartością np. liczbą całkowitą, liczbą rzeczywistą, napisem.

klucz

klucz

(jednoznaczny identyfikator) jest to zbiór (może być

(jednoznaczny identyfikator) jest to zbiór (może być

jednoelementowy)

atrybutów

danej

encji,

których

wartości

jednoelementowy)

atrybutów

danej

encji,

których

wartości

jednoznacznie identyfikują każdą instancję tej encji. Jeden klucz -

jednoznacznie identyfikują każdą instancję tej encji. Jeden klucz -

główny, pozostałe nazywają się alternatywnymi.

główny, pozostałe nazywają się alternatywnymi.

związek

związek

- uporządkowana lista encji, poszczególne encje mogą

- uporządkowana lista encji, poszczególne encje mogą

występować wielokrotnie.

występować wielokrotnie.

instancja

instancja

zwązku

zwązku

- relacja określona między zbiorami egzemplarzy

- relacja określona między zbiorami egzemplarzy

encji wchodzącymi w skład związku. Relacja ta zwykle jest zmienna w

encji wchodzącymi w skład związku. Relacja ta zwykle jest zmienna w

czasie.

czasie.

związek

związek

binarny

binarny

- związek dwuargumentowy (między dwiema

- związek dwuargumentowy (między dwiema

encjami).

encjami).

związek

związek

jednoznaczny

jednoznaczny

(jeden-do-wiele) - związek binarny, którego

(jeden-do-wiele) - związek binarny, którego

instancja jest dwuargumentową funkcją częściową.

instancja jest dwuargumentową funkcją częściową.

background image

opr. Lech Banachowski, Krzysztof Matejewski

30

Słownik

Słownik

liczebność

liczebność

związku

związku

- ile egzemplarzy encji po stronie wiele może

- ile egzemplarzy encji po stronie wiele może

być połączone z jednym egzemplarzem encji po stronie jeden.

być połączone z jednym egzemplarzem encji po stronie jeden.

Może to być konkretna liczba np. 2 albo określenie typu "zero lub

Może to być konkretna liczba np. 2 albo określenie typu "zero lub

więcej", "jeden lub więcej", "zero lub jeden".

więcej", "jeden lub więcej", "zero lub jeden".

związek

związek

identyfikujący

identyfikujący

- klucz obcy wchodzi w skład klucza

- klucz obcy wchodzi w skład klucza

głównego encji po stronie wiele.

głównego encji po stronie wiele.

związek

związek

nieidentyfikujący

nieidentyfikujący

- klucz obcy nie wchodzi w skład

- klucz obcy nie wchodzi w skład

klucza głównego encji po stronie wiele.

klucza głównego encji po stronie wiele.

związek

związek

opcjonalny

opcjonalny

- wartość klucza obcego jest opcjonalna,

- wartość klucza obcego jest opcjonalna,

tzn. dopuszcza wartość NULL.

tzn. dopuszcza wartość NULL.

związek

związek

wymagany

wymagany

- wartość klucza obcego jest wymagana tzn.

- wartość klucza obcego jest wymagana tzn.

nie dopuszcza wartości NULL.

nie dopuszcza wartości NULL.

związek

związek

rekurencyjny

rekurencyjny

- związek binarny, który zachodzi między

- związek binarny, który zachodzi między

tą samą encją w dwóch rolach, np. "Jedna osoba jest kierownikiem

tą samą encją w dwóch rolach, np. "Jedna osoba jest kierownikiem

drugiej osoby".

drugiej osoby".

związek

związek

jedno-jednoznaczny

jedno-jednoznaczny

(jeden-do-jeden) - związek

(jeden-do-jeden) - związek

jednoznaczny którego instancja jest różnowartościową funkcją

jednoznaczny którego instancja jest różnowartościową funkcją

częściową np. związek "Każdy student jest osobą" ("Osoba może

częściową np. związek "Każdy student jest osobą" ("Osoba może

być studentem, ale nie musi nim być").

być studentem, ale nie musi nim być").

background image

opr. Lech Banachowski, Krzysztof Matejews

opr. Lech Banachowski, Krzysztof Matejews

ki

ki

31

31

Koniec wykładu II

Koniec wykładu II

Do zobaczenia na wykładzie III

Do zobaczenia na wykładzie III


Document Outline


Wyszukiwarka

Podobne podstrony:
RBD W02
RBD W02
RBD W02
RBD W02
RBD W04
w02
RBD W03
c cxx w02
Gazownictwo w02
inf2 w02
AISD W02
VBA2, pjwstk PJLinka.pl, RBD
Darmowa Wyszukiwarka - styl RBD, Chomikowa Pomoc, Wyszukiwarki chomikowe
Los peces en el Rio, Teksty i tłumaczenia piosenek RBD
Erwinkil, PJWSTK, 0sem, RBD

więcej podobnych podstron