background image

 

 

Projektowanie bazy danych

Projektowanie bazy danych

Projektowanie bazy danych

Projektowanie bazy danych

Wyspecyfikowanie i analiza wymagań przyszłego 
użytkownika. 

Opracowanie modelu 

koncepcyjnego

 

(konceptualnego).

Uzyskanie modelu 

logicznego

 

(implementacyjnego).

Uzyskanie modelu 

fizycznego

.

background image

 

 

Charakterystyka modeli

Charakterystyka modeli

Charakterystyka modeli

Charakterystyka modeli

Model koncepcyjny

 opisuje model za pomocą 

pojęć,         z których korzystają użytkownicy. 
Opis jest całkowicie niezależny od rozważań na 
temat pamięci, efektywności    i innych 
szczegółów implementacyjnych.

Model implementacyjny 

operuje pojęciami 

zrozumiałymi dla użytkowników, ale bliżej 
związanymi z konkretną strukturą (logiczną)  
danych w pamięci komputera.

Model fizyczny 

opisuje dane w kategoriach 

sposobu ich przechowywania w pamięci 
komputera i nie jest zrozumiały dla 
użytkowników.

background image

 

 

Model koncepcyjny

Model koncepcyjny

Model koncepcyjny

Model koncepcyjny

1.

Powinien jednoznacznie określać wymagania 
użytkowników.

2.

Powinien być czytelny dla użytkownika 
końcowego.

3.

Powinien abstrahować od szczegółów 
implementacyjnych.

Model koncepcyjny buduje się z 
wykorzystaniem 

diagramu modelowania związków encji (ang. 
Entity Relationship Diagram
ERD)

background image

 

 

Składniki diagramu ERD

Składniki diagramu ERD

Składniki diagramu ERD

Składniki diagramu ERD

1. Encji

 (obiektów)

2. Atrybutów

3. Związków

Graficzny element koncepcyjnego modelu 
danych, który służy do przedstawienia 
struktury danych projektowanego systemu. 
Złożony z:

background image

 

 

Encje

Encje

Encje

Encje

Coś, co istnieje, jest odróżnialne, o czym 
informację trzeba znać lub przechowywać. 
Może oznaczać zarówno obiekt rzeczywisty, 
jak i pojęcie abstrakcyjne.

Encje o tych samych własnościach tworzą 

typy

 

(zbiory) encji. Typ encji jest 

kategorią

, a encja 

jest 

instancją

 (wystąpieniem) typu. Przykłady: 

Klient, Produkt, Rachunek.

Encje zwykle służą do definiowania logicznego 
grupowania danych. Posiadają własności (cechy, 
atrybuty).

background image

 

 

Atrybut

Atrybut

Atrybut

Atrybut

Atrybut 

jest to własność encji danego typu, 

reprezentowana przez pewną wartość, np. 
nazwa, waga, cena. Encje różnych typów mają 
różne atrybuty.

Dla każdej instancji encji każdy atrybut 
powinien przyjmować 

pojedynczą

 atomową 

wartość (ale w trakcie projektowania mogą 
pojawić się atrybuty złożone).

Należy pomijać atrybuty 

wyliczane

, tzn. takie, 

które da się obliczyć na podstawie innych 
atrybutów, np. wiek na podstawie daty 
urodzenia.

background image

 

 

Atrybut 

Atrybut 

 klucz główny

 klucz główny

Atrybut 

Atrybut 

 klucz główny

 klucz główny

Klucz 

– taki atrybut lub grupa atrybutów danej 

encji, których wartości identyfikują każdą 
instancję encji.  Jedna encja może mieć wiele 
takich kluczy. Jeden klucz jest 

główny

, pozostałe 

alternatywne

.

 Klucz główny oznacza się symbolem PK 

i / lub
   podkreśleniem.

 Klucz alternatywny określa się za pomocą 

jednoznacznych
   indeksów.

background image

 

 

Związki

Związki

Związki

Związki

Związek 

określa relację między encjami 

wchodzącymi 
w skład związku (ich powiązanie w świecie 
rzeczywistym).

Z (E

1

, E

2

, . . ., E

n

)

1.

 Liczebność

Reguły definiowania związków:

2.

 Uczestnictwo

Zbiór powiązań łączących encje należące do 
określonych typów stanowi określony 

typ 

związku

.

background image

 

 

Związki 

Związki 

 liczebność

 liczebność

Związki 

Związki 

 liczebność

 liczebność

Liczebność (stopień) 

dotyczy liczby instancji 

biorących udział w związku.

1.

 1 : 1 („jeden do jeden” – jedno-jednoznaczny).

Typy związków:

2.

 1 : N („jeden do wielu” – związek jednoznaczny).

a)

 

identyfikujący

 – do identyfikacji egzemplarza po 

stronie N potrzebny jest egzemplarz po stronie 1; 
encja po stronie N nazywana jest wtedy słabą
 
(wartość klucza obcego wchodzi w skład klucza 
głównego encji słabej). 

b)

 

nieidentyfikujący

 – do zidentyfikowania encji po 

stronie N nie jest potrzebny egzemplarz po stronie 
1. 

     =>

background image

 

 

Związki 

Związki 

 liczebność (2)

 liczebność (2)

Związki 

Związki 

 liczebność (2)

 liczebność (2)

3.  (I)

 N : M („wiele do wielu” 

– związek 

niejednoznaczny

).

Dla niejednoznacznego związku 

binarnego

 (o 

liczbie argumentów = 2):

Z (E

1

, E

2

)

wprowadzamy:

nową encję 

E

0

 

2

 związki jednoznaczne 

Z (E

0

, E

1

),

 

Z (E

0

, E

2

)

łączące nową encję ze starymi.

Klucz

 encji E

jest sumą kluczy encji 

E

1

i

 E

2

.

background image

 

 

Związki 

Związki 

 liczebność (3)

 liczebność (3)

Związki 

Związki 

 liczebność (3)

 liczebność (3)

3.  (II)

 N : M („wiele do wielu” 

– związek 

niejednoznaczny

).

Dla związku niejednoznacznego

 o liczbie 

argumentów większej niż 2:

Z (E

1

, . . . E

n

), > 2

 

 wprowadzamy:

nową encję 

E

0

n

 jednoznacznych związków binarnych 

(E

0

, E

i

)

  

łączących nową encję ze starymi. 

Klucz

 encji E

jest sumą kluczy encji 

E

1

, . . . E

n

.

Encja 

E

– encja asocjacyjna, słaba, zależna.

 

n

i

,

1

background image

 

 

Związki 

Związki 

 uczestnictwo

 uczestnictwo

Związki 

Związki 

 uczestnictwo

 uczestnictwo

Uczestnictwo (opcjonalność) 

dotyczy udziału encji    

            w związku.

Uczestnictwo encji jest 

opcjonalne

,

 

jeżeli 

przynajmniej jedna jej instancja nie bierze udziału 
w związku.

Uczestnictwo 

opcjonalne 

zaznacza się kółkiem. 

Domyślnym uczestnictwem jest uczestnictwo 

wymagane

.

W niektórych podejściach uczestnictwo modeluje się za 
pomocą liczebności minimalnej i maksymalnej:
(1, M) lub (0, 1).

background image

 

 

ERD 

ERD 

 notacje

 notacje

ERD 

ERD 

 notacje

 notacje

Modelowanie związków encji cechuje się brakiem 
jednolitego standardu. Dostępne są różnorodne 
notacje:

1. Chen

 (1976) – pierwsza notacja zaproponowana 

dla diagramów związków encji. 

2.

Martin

3. IDEF1X 

(dostępna w ErWin, MS Visio)

4.

Bachman

background image

 

 

ERD 

ERD 

 notacja Chena

 notacja Chena

ERD 

ERD 

 notacja Chena

 notacja Chena

Konwencja notacyjna:

1. Encja 

– prostokąt

2. Atrybut

 – koło 

3. Związek 

– romb

Wykłady

Wykładowca

prowadzi

IdW

Nazwisko

Kod

N

1

background image

 

 

ERD 

ERD 

 notacja IDEF1X

 notacja IDEF1X

ERD 

ERD 

 notacja IDEF1X

 notacja IDEF1X

Konwencja notacyjna:

1. Encja 

– prostokąt

2. Związek identyfikujący

 – linia ciągła 

3. Związek nieidentyfikujący 

– linia przerywana

4. Strona „wiele” związku 

– czarne kółko

5. Związek opcjonalny 

– romb przy encji po stronie 

„jeden”

background image

 

 

ERD 

ERD 

 przykłady

 przykłady

ERD 

ERD 

 przykłady

 przykłady

Pracownik

Zespol

należy

N

1

Tematy

wykonuje

N

M

Kwota

„wronie (kurze) łapki”

związek 1 : N

background image

 

 

ERD 

ERD 

 przykłady (2)

 przykłady (2)

ERD 

ERD 

 przykłady (2)

 przykłady (2)

Student

Kierunek

studiuje

N

1

Przedmiot

zalicza

N

M

Ocena

background image

 

 

ERD 

ERD 

 przykłady (3)

 przykłady (3)

ERD 

ERD 

 przykłady (3)

 przykłady (3)

Pacjent

Oddział

leży

N

1

Lekarstwo

zażywa

N

M

Dawka

background image

 

 

Atrybuty złożone

Atrybuty złożone

Atrybuty złożone

Atrybuty złożone

Atrybut jest 

złożony

, gdy jego wartość dla 

jednej instancji encji jest złożeniem kilku 
bardziej elementarnych wartości, np. atrybut 
Adres 
encji Osoba składa się z nazwy 
miejscowości, kodu pocztowego, nazwy ulicy, 
numeru domu i numeru mieszkania.

W definicji encji umieszczamy tylko atrybuty 
elementarne.

Atrybuty elementarne można w nieformalny 
sposób grupować przez stosowanie 
jednakowego przedrostka w ich nazwach, 
np. Adres_Miasto, Adres_Kod, Adres_Ulica 
itp.

background image

 

 

Atrybuty wielowartościowe

Atrybuty wielowartościowe

Atrybuty wielowartościowe

Atrybuty wielowartościowe

Pracownik

Języki

Imiona

Atrybut jest 

wielowartościowy

, gdy posiada 

wiele wartości dla jednej instancji encji.

background image

 

 

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

1.

Utwórz schemat relacji dla każdego typu encji;    
            do schematu wchodzą atrybuty 
pojedyncze,            kluczem relacji jest klucz 
encji.

2.

Utwórz dodatkowy schemat relacji dla 
każdego atrybutu wielowartościowego;             
                          wchodzi do niego atrybut 
wielowartościowy i klucz encji.

background image

 

 

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

3.

Utwórz schemat relacji dla każdego typu 
związku;           do schematu wchodzą klucze 
encji, które należą do związku oraz atrybuty 
związku.

4.

Scal schematy o identycznych kluczach.

1 : N – klucz encji wchodzącej przez 
krawędź N

N : M – złożenie kluczy wszystkich encji 
należących do związku

1 : 1 – dowolny z kluczy

Kluczem relacji jest dla 

związku:

background image

 

 

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

1.

Krok 1: relacje dla typów encji

3.

Krok 3: relacje dla typów związków

Pracownik (nrp, nazwisko)
Zespol (nrz, nazwaZ)
Temat (nrt, nazwaT)

2.

Krok 2: relacje dla atrybutów 
wielowartościowych

Jezyki (nrp, jezyk)

należy (nrp, nrz)
wykonuje (nrp, nrt, kwota)

background image

 

 

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

Przekształcenie do modelu 

Przekształcenie do modelu 

logicznego

logicznego

4.

Krok 4: scalenie schematów

Zespol (nrz, nazwaZ)
Temat (nrt, nazwaT)
wykonuje (nrp, nrt, kwota)

Pracownik (nrp, 

nazwisko)

należy (nrp, nrz)

Pracownik (nrp, nazwisko, 

nrz

)

background image

 

 

Związek 1 : 1

Związek 1 : 1

Związek 1 : 1

Związek 1 : 1

Szkoła

Dyrektor

ma

1

1

Szkoła ma jednego dyrektora, dyrektor może 
kierować tylko jedną szkołą.

Szkoła (nrs,  ...)

Dyrektor (nr_dyr, ...)

Ze względu na alternatywne klucze schematu ma 
możliwe są 2 sposoby scalenia schematów:

ma (nrs, nr_dyr)

Szkoła (nrs, ...)
Dyrektor (nr_dyr, ..., 

nrs

)

Szkoła (nrs, ..., 

nr_dyr

)

Dyrektor (nr_dyr, ...)

background image

 

 

Wiele związków między dwoma 

Wiele związków między dwoma 

obiektami

obiektami

Wiele związków między dwoma 

Wiele związków między dwoma 

obiektami

obiektami

Szkoła

Nauczyciel

rządzi

1

1

Nauczyciel uczy w szkole, nauczyciel kieruje szkołą.  

uczy

N

1

=>

background image

 

 

Wiele związków między dwoma 

Wiele związków między dwoma 

obiektami

obiektami

Wiele związków między dwoma 

Wiele związków między dwoma 

obiektami

obiektami

Szkoła (nrs, ..., 

nrN

)                  Nauczyciel (nrN, 

..., 

nrs

Po scaleniu 

schematów:

Szkoła (nrs, ...)

Nauczyciel (nrN, ...)

uczy (nrN, nrs)

rządzi (nrN, nrs)

background image

 

 

Związki hierarchiczne

Związki hierarchiczne

Związki hierarchiczne

Związki hierarchiczne

Nauczyciel

kieruje

1

Każdy nauczyciel, poza dyrektorem, ma przełożonego.  

N

Nauczyciel (nrN, ..., 

nrN_nadrz

Nauczyciel (nrN, ...) 

kieruje (nrN, nrN_nadrz) 

Po scaleniu: 

background image

 

 

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

Uwzględnienie zmian danych w czasie – 
dodatkowa encja „

temporalna

”, której zadaniem 

jest reprezentowanie zmian w czasie dotyczących:

 wartości atrybutów 

 związków z inną encją

N : 1

background image

 

 

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

  zmiany w czasie dotyczące wartości 

atrybutów, 

     np. wysokości zarobków i stanowiska 

background image

 

 

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

Modelowanie czasu

  zmiany w czasie dotyczące związków z inną 

encją, 

     np. zmiany działu (departamentu) 

background image

 

 

FAQ

FAQ

FAQ

FAQ

Czy dana rzecz lub cecha, nazwana za pomocą 
rzeczownika, jest atrybutem encji, czy 
samodzielną encją ?

Ten element traktujemy jako nową encję, gdy 
sam jest opisany dodatkowymi informacjami.

background image

 

 

Ćwiczenia

Ćwiczenia

Ćwiczenia

Ćwiczenia

Klient składa zamówienie na towary. Klient 
opisany jest przez: IDK
nazwiskoKadresK
Klient może złożyć wiele zamówień, każde 
zamówienie jest składane tylko przez 1 
klienta. Zamówienie jest opisane przez IDZ
      
  i datęZ
. Zamówienie może obejmować wiele 
towarów,  a każdy towar może znaleźć się w 
wielu zamówieniach. Towar jest 
charakteryzowany przez: IDT
nazwęT           i 
opisT
. Dany towar na danym zamówieniu 
występuje  w określonej ilości.

Zamowienie(IDK, nazwiskoK, adresK, IDZ, 
dataZ, IDT, nazwaT, opisT, iloscTwZ)

background image

 

 

Zadania

Zadania

Zadania

Zadania

Z1. Dana jest następująca rzeczywistość: pewna firma lotnicza 
(która  nie  występuje  jako  obiekt  w  bazie  danych)  prowadzi 
ewidencję  samolotów,  które  posiadają  unikalny  numer 
identyfikacyjny, i dla których podaje się rok ich produkcji. Dla 
każdego typu samolotu charakteryzującego się unikalną nazwą 
typu  definiuje  się  zasięg  i  liczbę  miejsc.  Z  każdym  samolotem 
związanych jest kilku pilotów. Pilot może pilotować tylko jeden 
samolot.  Pilot  identyfikowany  jest  przez  numer  PESEL 
i posiada  dane  personalne.  Firma  lotnicza  prowadzi  loty  na 
różnych  trasach  (bez  międzylądowań),  identyfikowanych 
nazwami  miast  będących  początkiem    i  końcem  trasy.  Dla 
każdej  trasy  podaje  się  jej  długość      w  kilometrach.  Każda 
trasa może być obsługiwana przez samoloty różnych typów. W 
bazie danych należy zapamiętać czas, jaki potrzebują samoloty 
poszczególnych typów na przelot danej trasy.

Zaprojektować diagram ER dla zbioru powyższych faktów, a 
następnie utworzyć schemat relacyjnej bazy danych metodą 
bezpośredniej transformacji diagramu ER w zbiór schematów 
relacji. 

background image

 

 

Zadania (2)

Zadania (2)

Zadania (2)

Zadania (2)

Z2. Dana jest następująca rzeczywistość: w miastach znajdują 
się  kina  identyfikowane  numerem  i noszące  swoje  nazwy.  W 
bazie  danych  mają  się  znaleźć  nazwy  i  liczby  mieszkańców 
miast.  Każde  kino  ma  kierownika                          o  określonym 
nazwisku.  Kierownik  odpowiada  za  pracę  tylko  jednego  kina. 
Baza  danych  powinna  również  zawierać  informację  o 
dochodach, jakie w poszczególnych kinach przyniosły projekcje 
poszczególnych filmów.

Zaprojektować  diagram  ER  dla  zbioru  powyższych  faktów,  a 
następnie  utworzyć  schemat  relacyjnej  bazy  danych  metodą 
bezpośredniej  transformacji  diagramu  ER  w  zbiór  schematów 
relacji. 

background image

 

 

Zadania (3)

Zadania (3)

Zadania (3)

Zadania (3)

Z3.  W  bazie  danych  tworzonej  dla  spółdzielni  lekarskiej 
powinny  znaleźć  się  informacje  o wizytach  pacjentów  u 
poszczególnych  lekarzy  obejmujące  datę  wizyty,  rozpoznaną 
jednostkę chorobową (może być ich kilka) oraz zaordynowane 
medykamenty  wraz  z dawkami  (jak  często  i  ile).  Dla  pacjenta 
przechować:  nazwisko,  imię  i  adres,  dla  lekarza:  numer,  imię 
i nazwisko,  dla  lekarstwa:  kod  i  nazwę,  dla  jednostki 
chorobowej: identyfikator i krótki opis.

Zaprojektować  diagram  ER  dla  zbioru  powyższych  faktów,  a 
następnie  utworzyć  schemat  relacyjnej  bazy  danych  metodą 
bezpośredniej  transformacji  diagramu  ER  w  zbiór  schematów 
relacji. 

background image

 

 

Zadania (4)

Zadania (4)

Zadania (4)

Zadania (4)

Z4.  Dana  jest  następująca  rzeczywistość:  klienci  składają  w 
hurtowni zamówienia na towary. Każdy klient ma identyfikator, 
nazwisko  i  adres.  Zamówienia  dotyczą  towarów,  które  są 
opisane  przez  identyfikator  i  nazwę.  Pojedyncze  zamówienie 
składane jest przez jednego klienta, ale może obejmować wiele 
towarów.  Na  zamówieniu  wyszczególniona  jest  data  jego 
złożenia i ilość poszczególnych towarów. 

Zaprojektować  diagram  ER  dla  zbioru  powyższych  faktów,  a 
następnie  utworzyć  schemat  relacyjnej  bazy  danych  metodą 
bezpośredniej  transformacji  diagramu  ER  w  zbiór  schematów 
relacji. 

background image

 

 

Zadania (5)

Zadania (5)

Zadania (5)

Zadania (5)

Z5.  Dana  jest  następująca  rzeczywistość:  przedsiębiorstwa 
będące  klientami  pewnej  firmy  informatycznej  opisane  są 
przez identyfikator, nazwę, adres          i numer telefonu. Ich 
obsługą  zajmują  się  pracownicy  o określonym  numerze            i 
nazwisku, zatrudnieni na określonym stanowisku i należący do 
jednego  z zespołów,  którym  przydzielono  numer  i  nazwę. 
Ponadto  każdy  pracownik  charakteryzuje  się  pewnym 
zestawem  umiejętności  (lista  zagadnień,  w  których  się 
specjalizuje).  Z  danym  klientem  może  współpracować  wielu 
pracowników.  Dany  pracownik  może  obsługiwać  wielu 
klientów.  Istotne  jest,  aby  zapamiętać  liczbę  godzin,  które 
pracownik poświęcił klientowi w określonym dniu. 

Zaprojektować  diagram  ER  dla  zbioru  powyższych  faktów,  a 
następnie  utworzyć  schemat  relacyjnej  bazy  danych  metodą 
bezpośredniej  transformacji  diagramu  ER  w  zbiór  schematów 
relacji. 


Document Outline