POWT1

advertisement
Powtórzenie
wykładu 1
Projektowanie relacyjnych baz
danych – diagramy związków
encji
SBD, L.Banachowski
1
Projektowanie schematu bazy danych
Celem procesu projektowania schematu bazy danych jest:
1. wyspecyfikowanie wymagań użytkowników przyszłej bazy
danych, dokonanie analizy tych wymagań;
2. utworzenie schematu bazy danych spełniającego wymagania
użytkowników i jednocześnie gwarantującego poprawne
funkcjonowanie bazy danych w ramach całego systemu
informacyjnego, zaprojektowanie schematu bazy danych.
SBD, L.Banachowski
2
Pośredni model - diagram związków
encji ERD (notacja Erwin firmy LogicWorks)
• Ten pośredni model powinien w sposób jednoznaczny określać
wymagania użytkowników - umożliwiając im sprawdzenie czy
analityk systemu rzeczywiście dobrze zrozumiał ich intencje i
specyfikę działania firmy.
• Ten pośredni model powinien być istotnie prostszy od schematu
bazy danych, abstrahując od szczegółów implementacyjnych, które
muszą być później opracowane przez projektanta bazy danych aby
baza danych mogła powstać i spełniać postawione przed nią zadania.
SBD, L.Banachowski
3
Związek (nazywany przez niektórych relacją)
• Uporządkowana lista
encji, poszczególne encje mogą
występować wielokrotnie (w Erwinie związki są tylko binarne).
• Każdy związek określa pewną relację między zbiorami
egzemplarzy encji wchodzącymi w skład związku. Relację tę
nazywamy instancją związku.
•
Związek można formalnie zapisać przy użyciu notacji relacyjnej:
Z(E1,...,En)
SBD, L.Banachowski
lub w postaci graficznej:
4
Reprezentacja związku jednoznacznego
W relacyjnej bazie danych dwie encje połączone związkiem
jednoznacznym są reprezentowane przez dwie tabele, a sam związek
jednoznaczny jest reprezentowany powiązaniem przez wartość
klucza obcego w tabeli odpowiadającej encji po stronie wiele
związku i klucza głównego w tabeli odpowiadającej encji po stronie
jeden.
SBD, L.Banachowski
5
Reprezentowanie związku nie-jednoznacznego
1. Związek >2 argumentowy.
2. Związek binarny wieloznaczny.
Metoda:
Do reprezentowania takiego związku Z(E1,E2,…,En) używamy
dodatkowej encji nazywanej asocjacyjną, którą łączymy związkami
jednoznacznymi (encja asocjacyjna po stronie wiele tych związków)
z encjami E1, E2,….,En.
SBD, L.Banachowski
6
Normalizacja bazy danych
Każdy fakt przechowywany w bazie danych powinien
być wyrażalny w niej tylko na jeden sposób.
• Informacja o przedmiocie powinna być zapisana tylko w jednym
miejscu, a nie przy każdym studencie, który uczęszcza na zajęcia z
tego przedmiotu.
• Jeśli w bazie danych zapisujemy informację o rodzicach każdej
osoby, nie ma już potrzeby zapisywać informacji o dziadkach, gdyż ta
informacja daje się wyprowadzić z informacji o rodzicach.
• W modelu firmy lotniczej (przykład rozważany w następnym
punkcie) Pasażerowie i Personel to dwie odrębne encje. Jeśli
jedna osoba będzie figurować w bazie danych - raz jako pasażer, a raz
jako pracownik firmy lotniczej, wówczas dane dotyczące takiej osoby
(np. adres zamieszkania) będą zapisane w dwóch różnych miejscach.
SBD, L.Banachowski
7
Pożądane cechy modelu danych
•
poprawność modelu;
• istotność każdego elementu modelu dla funkcjonowania firmy
(organizacji);
•
pełność modelu – to znaczy, gwarancja, że żaden element modelu
danych - istotny dla funkcjonowania firmy (organizacji), nie został
pominięty.
Użytkownicy muszą:
•
rozumieć tworzony model danych i
• po dokładnym przeanalizowaniu wszystkich szczegółów, biorąc za
to odpowiedzialność, zaakceptować go.
Projektant bazy danych dla tego modelu buduje bazę danych i
aplikację bazy danych.
SBD, L.Banachowski
8
Akcje referencyjne dla
zachowania więzów
referencyjnych
• CASCADE - gdy usuwa się dane pasażera, system bazy danych usunie wszystkie
rezerwacje dokonane przez tego pasażera.
• RESTRICT - dopóki są rezerwacje dokonane przez pasażera nie można go usunąć z
bazy danych.
• SET-TO-NULL - przy usuwaniu pasażera wstawia się NULL do klucza obcego
wskazującego w rezerwacji na pasażera, którego dotyczy ta rezerwacja. (możliwe dla
związków nieidentyfikujących z opcją NULL).
• SET-TO-DEFAULT - przy usuwaniu pasażera zmieniamy rezerwację na ustalonego
z góry użytkownika np. system.
• NONE – usuwamy pasażera bez zmiany rezerwacji (niemożliwe ze względu na
spójność referencyjną).
SBD, L.Banachowski
9
Forward Engineering
• Erwin może wygenerować gotowy schemat bazy danych w
jednym z wielu systemów zarządzania bazą danych. Po wybraniu z
menu
Server  Target Server
ustalamy docelowy system, a z kolei po wybraniu z menu
Tasks  Forward Engineer
mamy możliwość bezpośredniego połączenia z systemem bazy danych
(np. Oracle, Access lub SQL Server) i utworzenia w nim bazy danych.
SBD, L.Banachowski
10
Reverse Engineering
• Jest też możliwość wprowadzania zmian dokonywanych w
systemie bazy danych z powrotem do diagramu w ErWinie:
Tasks 
SBD, L.Banachowski
Reverse Engineer
11
Download