Bazy danych 1

Transkrypt

Bazy danych 1
Bazy danych 1
Wykład 4
Metodologia projektowania baz danych
Fazy cyklu Ŝycia aplikacji bazodanowych
Planowanie bazy
danych
Definicja systemu
Gromadzenie i analiza
wymagań
Projektowanie
bazy danych
Konceptualne
projektowanie bazy
danych
Logiczne projektowanie
bazy danych
Fizyczne projektowanie
bazy danych
Projektowanie
aplikacji
Fazy cyklu Ŝycia aplikacji bazodanowych (cd)
Implementacja
Powrót do
początku
Konwersja i
przenoszenie danych
Faza
Testowanie
BieŜąca konserwacja
Cykl Ŝycia aplikacji bazy
danych
Faza
Głłówne czynnoś
ści
Planowanie bazy danych
Planowanie najbardziej skutecznych i wydajnych metod realizacji faz cyklu życia.
Definicja systemu
Okreś
ślenie zakresu i granic stosowania danej aplikacji bazy danych, , wskazanie jej
uż
żytkowników oraz obszarów zastosowań
ń.
Gromadzenie i analiza
wymagań
ń
Zbieranie i analiza wymagań
ń pochodzą
ących od uż
żytkowników i wynikają
ących z
obszarów zastosowań
ń.
Projektowanie bazy danych
Projektowanie konceptualne, logiczne i fizyczne bazy danych.
Selekcja DBMS (opcjonalnie)
Wybór DBMS odpowiedniego dla aplikacji bazy danych.
Projektowanie aplikacji
Projektowanie interfejsów uż
żytkowników i programów uż
żytkowych, które bę
ędą
ą
przetwarzać
ć bazę
ę danych.
Tworzenie prototypów
(opcjonalnie)
Budowanie działłają
ącego modelu aplikacji bazy danych, który pozwala projektantom i
uż
żytkownikom zobrazować
ć i ocenić
ć sposób działłania i wyglą
ąd koń
ńcowego systemu.
Implementacja
Tworzenie zewnę
ętrznych, konceptualnych i wewnę
ętrznych definicji bazy danych i
programów uż
żytkowych.
Konwersja i przenoszenie
danych
Testowanie
Przenoszenie danych ze starego systemu do nowego.
Bieżą
żąca
żą konserwacja
Testowanie i usuwanie błę
łędów
z aplikacji bazy danych oraz sprawdzanie zgodnoś
ści z
łę
wymaganiami uż
żytkowników.
Aplikacja bazy danych jest w pełłni zaimplementowana. System jest na bieżą
żąco
żą
monitorowany i konserwowany. W razie potrzeby do aplikacji bazy danych są
ą
wprowadzane nowe wymagania poprzez ponowne przejś
ście przez powyż
ższe fazy.
Metody projektowania bazy danych
Metoda wstępująca – nadaje się do projektowania prostych baz
danych zawierających względnie małą liczbę atrybutów, proces
projektowania bazy danych rozpoczyna się od zidentyfikowania
wszystkich atrybutów, a następnie poprzez analizę zaleŜności
funkcyjnych (powiązań) pomiędzy atrybutami łączy się je w relacje
(tabele)
Metoda zstępująca – nadaje się do projektowania złoŜonych baz
danych zawierających względnie duŜą liczbę atrybutów, proces
projektowania bazy danych rozpoczyna się od zidentyfikowania
istotnych encji (bytów) oraz związków pomiędzy nimi, a następnie
stosując metodę kolejnych uściśleń wprowadza się encje, związki oraz
atrybuty niŜszego poziomu.
Etapy projektowania bazy danych
Konceptualne projektowanie bazy danych – to proces konstrukcji modelu
danych, który jest niezaleŜny od wszelkich aspektów fizycznych (specyficzny
model danych, docelowy SZBD, programy uŜytkowe, języki programowania,
platforma sprzętowa)
Logiczne projektowanie bazy danych – to proces konstrukcji modelu,
który jest oparty na specyficznym modelu danych (np. model relacyjny,
model obiektowy) ale niezaleŜny od konkretnego SZBD i innych aspektów
fizycznych.
Fizyczne projektowanie bazy danych – to proces tworzenia opisu
implementacji bazy danych w pamięci zewnętrznej. Opis ten zawiera
bazowe relacje oraz organizacje plików i indeksów zapewniających
efektywny dostęp do danych, realizacje więzów integralności i środków
bezpieczeństwa danych.
Metodologie tworzenia systemów
Obecnie stosowane są dwie główne metodologie
tworzenia systemów informatycznych.
Metodologia strukturalna – podejście starsze,
ale ciągle jeszcze rozpowszechnione w praktyce.
Metodologia obiektowa – podejście nowsze,
zdobywające coraz większą popularność na rynku.
Podejście strukturalne
czyli encje i związki
Modelowanie strukturalne
W podejściu strukturalnym do modelowania danych
wykorzystujemy głównie diagram związków encji
Diagram związków encji (ang. Entity Relationship Diagram, ERD)
opisuje warstwę danych w systemie; składa się ze zbioru obiektów encji i struktury powiązań między nimi.
Diagramy ERD szczególnie dobrze nadają się do modelowania
relacyjnych baz danych, poniewaŜ umoŜliwiają prawie bezpośrednie
przejście od diagramu do końcowego schematu relacyjnego.
PowyŜsza cecha sprawia, Ŝe diagramy ERD i obejmująca je
metodologia strukturalna są ciągle rozpowszechnione w praktyce firm
rozwijających oprogramowanie.
Diagramy ERD posiadają ograniczenia reprezentacji
charakterystyczne dla relacyjnego modelu danych (m.in. problemy z
modelowaniem dziedziczenia) i mogą sprawiać problemy przy
integracji warstwy danych z obiektowym modelem reszty aplikacji.
Cechy te skłaniają wytwórców oprogramowania do stopniowego
zastępowania metodologii strukturalnej obiektową.
Diagram związków encji (ERD)
Podstawowe pojęcia
zbiór (typ) encji (ang. entity type) – to grupa „obiektów” wziętych z
„rzeczywistego świata” o tych samych właściwościach (cechach).
wystąpienie (instancja) encji (ang. entity) – to unikalny i
rozpoznawalny obiekt ze zbioru encji;
związek (ang. relationship) – to zbiór powiązań pomiędzy jednym lub
większą liczbą uczestniczących w tym związku encji.
wystąpienie związku – to unikalne i identyfikowalne powiązanie
zachodzące pomiędzy pojedynczymi wystąpieniami encji z uczestniczących
w związku zbiorów encji
atrybut (ang. attribute) – własność, cecha encji lub związku
asocjacja (ang. association) – reprezentuje związek między encjami,
który posiada pewne cechy, ale nie ma bezpośredniej interpretacji jako
obiekt świata rzeczywistego.
Encje
Encja
Encja jest „rzeczą”, która w modelowanej organizacji jest rozpoznawana jako
istniejący niezaleŜnie obiekt, zdarzenie lub pojęcie. Encja daje się wyodrębnić i
odróŜnić od pozostałych elementów opisu świata.
ENCJE
Charakter fizyczny
np. Personel,
Nieruchomość.
Charakter pojęciowy
np. Wizyta,
SprzedaŜ.
Encja jest wystąpieniem typu encji, czyli obiektem, który jest elementem
pewnej klasy (np. encja „Sieciowe bazy danych” jest wystąpieniem typu encji
„Przedmiot”). JednakŜe w metodologiach projektowych powszechnie uŜywa się
terminu „encja” w znaczeniu „typ encji”.
Związki
Związek reprezentuje powiązanie między encjami, wynikające z opisu
modelowanego fragmentu rzeczywistości
Przykład: Biuro zatrudnia Personel
Zazwyczaj rozpatrujemy związki binarne, to znaczy łączące jednocześnie dwie
encje. Związki mogą być równieŜ wieloelementowe – łączące wiele encji.
Przykład: Związek binarny - Biuro zatrudnia Personel
Związek potrójny – Personel rejestruje Klienta w Biurze
Kontekst związku między encjami jest często wyznaczany przez rolę, którą
jedna encja pełni względem drugiej (np. encja „Grupa” składa się ze „Studentów”; „Wykładowca” prowadzi „Przedmiot”).
Między dwiema encjami moŜe istnieć więcej niŜ jeden związek, co moŜe
wynikać z róŜnych ról, które są wzajemnie pełnione przez encje (np. „Grupa”
składa się ze „Studentów”, ale jednocześnie „Student” jest starostą w „Grupie”).
Związki
KaŜdy związek jest opisywany przez dwie cechy: liczebność
i uczestnictwo.
Liczebność (stopień) – określa liczbę wystapień encji
biorących udział w związku:
1:1 (jeden-do-jednego),
1:N (jeden-do-wielu),
N:M (wiele-do-wielu).
Związki
Uczestnictwo (opcjonalność):
opcjonalne - jeśli istnieje przynajmniej
jedna instancja encji, która nie bierze
udziału w związku (w diagramach
reprezentowane przez kółko przy encji);
wymagane - jeśli wszystkie instancje
muszą brać udział w związku (w
diagramach reprezentowane przez
kreskę przy encji).
Związki
Przykład: PoniŜszy diagram mówi, Ŝe kaŜdy student moŜe naleŜeć do jednej
grupy, a grupa musi się składać się przynajmniej z jednego studenta. Tak więc
uczestnictwo encji „Grupa” w związku jest opcjonalne (w danym okresie student
moŜe nie naleŜeć do Ŝadnej grupy – na przykład w czasie urlopu
dziekańskiego), natomiast uczestnictwo encji „Student” w związku jest
obowiązkowe (nie moŜe powstać grupa, w której nie ma Ŝadnych studentów).
Związki
Liczebność i uczestnictwo moŜna wyraŜać poprzez
podanie przedziałów (Min, Max) lub Min, Max lub
Min..Max po kaŜdej stronie encji:
– 0, 1 lub 0..1
- znaczenie „1 : ?”, opcjonalne;
– 1, 1 lub 1..1
- znaczenie „1 : ?”, wymagane;
– 0, N lub 0..N - znaczenie „N : ?”, opcjonalne;
– 1, N lub 1..N - znaczenie „N : ?”, wymagane.
Wybór konkretnej formy reprezentacji liczebności i
uczestnictwa zaleŜy od moŜliwości narzędzia, w którym
tworzymy diagramy ERD.
Związki
Związek rekurencyjny – to związek, w którym ten sam
zbiór encji występuje więcej niŜ jeden raz w róŜnych rolach
•
Przykład:
Związek rekurencyjny – Personel (kierownik) kieruje
Personelem (kierowanymi)
Asocjacja
(ang. association) – reprezentuje związek między
encjami, który posiada pewne cechy, ale nie ma
bezpośredniej interpretacji jako obiekt świata rzeczywistego.
asoscjacja posiada więc swoje własne atrybuty
asocjacja
Atrybuty
Atrybut – to cecha encji lub związku
Dziedzina atrybutu – to zbiór dopuszczalnych wartości dla danego
atrybutu
Atrybut prosty – to atrybut zawierający tylko jedną składową, która moŜe
istnieć niezaleŜnie.
Przykład: Atrybuty stanowisko i pensja w encji Personel
Atrybut złoŜony – to atrybut zbudowany z wielu składowych z których kaŜda
moŜe istnieć niezaleŜnie.
Przykład: Atrybut adres w encji Biuro ma składowe ulica,
miasto, kod
Atrybuty
Atrybut jednowartościowy – to atrybut, który ma tylko jedną wartość dla
kaŜdego wystąpienia encji.
Przykład: Atrybut biuroNr w encji Biuro
Atrybut wielowartościowy – to atrybut, który moŜe zawierać wiele wartosci
dla pojedynczego wystąpienia encji.
Przykład: Atrybut telNr moŜe przyjmować wiele wartości dla
kaŜdego wystąpienia encji Biuro
Atrybut pochodny – to atrybut reprezentujący wartość, która jest wyliczana z
innego atrybutu lub zbioru atrybutów, niekoniecznie pochodzących z tego
samego zbioru encji
Przykład: Atrybut okresNajmu moŜe być wyliczony z
atrybutów wynajeteOd i wynajeteDo
Klucze
Klucz kandydujący – to najmniejszy zbiór atrybutów, który jednoznacznie
identyfikuje kaŜde wystąpienie encji w zbiorze encji.
Przykład: Atrybut biuroNr jest kluczem kandydującym dla
zbioru encji Biuro
Klucz główny (ang. primary key) – to klucz kandydujący. Który został wybrany
do jednoznacznej identyfikacji kaŜdego z wystąpień encji w zbiorze encji.
Klucz złoŜony – to klucz kandydujący, który składa się co najmniej z dwóch
atrybutów.
Pułapki
Pułapka wachlarzowa – występuje w sytuacji, gdy model
przedstawia związek pomiędzy pewnymi zbiorami encji
(klasami), ale wynikające z tego ścieŜki pomiędzy
wystąpieniami encji (obiektami) nie są jednoznaczne;
pułapka taka moŜe wystąpić, gdy co najmniej dwa związki
typu 1:* wychodzą z tej samej encji (klasy)
Problem:
Rozwiązanie:
Pułapki
Pułapka szczelinowa – występuje gdy model sugeruje
istnienie związku pomiędzy zbiorami encji (klasami), ale nie
istnieje ścieŜka łącząca pewne wystąpienia tych encji
(obiekty); pułapka ta moŜe wystąpić, gdy w modelu
znajduje się co najmniej jeden związek o minimalnej
krotności zero , który jest elementem ścieŜki pomiędzy
powiązanymi encjami (klasami)
Problem:
Rozwiązanie:
Projektowanie konceptualne –
przegląd krok po kroku
1.
2.
3.
4.
5.
6.
7.
8.
9.
Określ występujące zbiory encji
Ustal typy występujących związków
Określ atrybuty odpowiadające poszczególnym
encjom
Określ dziedziny poszczególnych atrybutów
Ustal klucze kandydujące i klucze główne
RozwaŜ moŜliwość zastosowania zaawansowanych
metod modelowania
Zweryfikuj utworzony model pod kątem
występowania redundancji
Zweryfikuj moŜliwość realizacji transakcji
Omów konceptualny model z uŜytkownikiem
Projektowanie konceptualne (krok 1)
Określ występujące zbiory encji
Nazwa zbioru
encji
Opis
Aliasy
Własności
Firma
Pojęcie ogólne
opisujące
wszystkie firmy
koncernu
Zakład
Wydział
Pojęcie ogólne
opisujące
wszystkie
oddziały firm
koncernu
KaŜdy oddział naleŜy
do jednej firmy i
Wydział- kaŜdy wydział
zatrudnia
firmy
przynajmniej
jednego pracownika
KaŜda firma ma 4
wydziały
Rozmiar
zbioru
20
80
Projektowanie konceptualne (krok 2)
Ustal typy występujących związków
•
•
•
•
•
UŜywaj diagramów związków encji
Ustal krotności w poszczególnych związkach encji
Sprawdź, czy nie występują pułapki wachlarzowe lub szczelinowe
Sprawdź, czy kaŜdy zbiór występuje przynajmniej w jednym związku
Udokumentuj typy związków
Nazwa
encji
Rola
Krotność
Związek
Nazwa encji
Krotność
Rola
Firma
x
1..1
Ma
Wydział
4..4
x
Wydział
Pracodawca
1..1
1..*
Pracobiorca
Zatrudnia Pracownik
Projektowanie konceptualne (krok 3)
Określ atrybuty odpowiadające
zbiorom encji i związkom
– Potencjalne problemy
• Atrybut naleŜy do więcej niŜ jednego zbioru encji
– Zidentyfikowaliśmy zbiory encji, które powinny być
reprezentowane jako jedna encja
– Wykryliśmy nowy związek między encjami
– Opis atrybutów
Firma
Id_Firmy, Nazwa, Adres_siedziby (złoŜony:
ulica, nr, Kod, Miejscowość), Nr_Wpisu_KRG
Projektowanie konceptualne (krok 3)
Określ atrybuty odpowiadające
zbiorom encji i związkom
– Dokumentowanie informacji o atrybutach
• Nazwa i opis atrybutu
• Typ danych, długość i dziedzina atrybutu
• Wszystkie aliasy danego atrybutu
• Czy atrybut jest złoŜony
• Czy jest to atrybut wielowartościowy
• Czy jest to atrybut pochodny, formuła słuŜąca do wyliczenia
• Domyślna wartość atrybutu
Projektowanie konceptualne (krok 3)
Określ atrybuty odpowiadające
zbiorom encji i związkom
Nazwa
zbioru encji
Atrybuty
Opis
Typ
danych
Długość
Dziedzina
Aliasy
Pracownik
ID_Pracownika
Jednoznacznie
identyfikuje
pracownika
Łańcuch
4
Numer
Personel
Imię
pracownika
Nazwisko
pracownika
Data
urodzenia
pracownika
Łańcuch
maks.
15
maks.
20
Tekst
X
Tekst
X
Data_ur
x
ImięNazwisko
Imię
Nazwisko
DataUrodzenia
Łańcuch
Data
Projektowanie konceptualne (krok 3)
Określ atrybuty odpowiadające
zbiorom encji i związkom
Atrybut
Wartości
puste
Wielowartościowy
Pochodny
Wartość
domyślna
ID_Pracownika
Nie
Nie
Nie
Brak
ImięNazwisko
Imię
Nie
Nie
Nie
Brak
Nazwisko
Nie
Nie
Nie
Brak
Data urodzenia
Tak
Nie
Nie
Brak
Projektowanie konceptualne (krok 4)
Określ dziedziny poszczególnych atrybutów
•
•
•
Dziedzina to zbiór wartości, które moŜe przyjmować
jeden atrybut
Określenie dziedziny powinno obejmować:
–
Dopuszczalny zbiór wartości atrybutu
–
Dopuszczalny zakres długości i format atrybutu
NaleŜy dokumentować zdefiniowane dziedziny w
słowniku danych
Nazwa
dziedziny
Typ
danych
Długość
Format
Dopuszczalny zbiór
wartości atrybutu
Płeć
Znak
1
X
„M” lub „K”
Data
Data_ur
x
rrrr-mm-dd
od 1945-01-01
do data bieŜąca – 18 lat
Projektowanie konceptualne (krok 5)
Ustal klucze kandydujące i klucze główne
• W tym kroku ustalamy klucze kandydujące i klucze główne
• Przy wyborze klucza głównego warto rozwaŜyć
–
–
–
–
–
Klucz o najmniejszej liczbie atrybutów
Klucz, którego wartości najrzadziej ulęgają zmianom
Klucz kandydujący o najmniejszej liczbie znaków
Klucz o najmniejszej wartości maksymalnej
Klucz z którego najłatwiej będzie korzystać uŜytkownikowi
Nazwa encji
Klucze kandydujące
Klucz główny
Firma
Id_Firmy
Nazwa
Nr_Wpisu_KRG
Id_Firmy
Projektowanie konceptualne (krok 5)
Ustal klucze kandydujące i klucze główne
•
Encję nazywamy silną jeśli jej istnienie nie jest zaleŜne od innych zbiorów
encji, cechą charakterystyczną jest jednoznaczna identyfikacja kaŜdego
wystąpienia encji przez atrybut(y) klucza głównego
•
Encję nazywamy słabą jeśli jej istnienie zaleŜy od innych zbiorów encji, cechą
charakterystyczną jest brak jednoznacznej identyfikacji kaŜdego wystąpienia
encji za pomocą atrybutów przypisanych wyłącznie tej encji.
•
Przykład:
Klient
Nr_klienta
•
Określa
Preferencje
Typ_preferencji
Encja Personel nie ma swojego klucza głównego, zidentyfikowanie klucza
głównego tej encji jest moŜliwe dopiero po odwzorowaniu tego zbioru encji na
relacje (klucz obcy)
Projektowanie konceptualne (krok 6)
RozwaŜ moŜliwość zastosowania zaawansowanych
metod modelowania (krok opcjonalny)
• Brak jest ścisłych reguł wskazujących, w jakich sytuacja ch naleŜy
zastosować w modelu związków encji zaawansowane metody
modelowania, wybór jest zazwyczaj subiektywny i zaleŜy od
specyfiki modelowanego zagadnienia.
• Przy wyborze naleŜy kierować się zasadą wyboru jak
najczytelniejszej reprezentacji w diagramie ER dla istotnych zbiorów
encjii związków miedzy nimi.
• Po wykonaniu tego kroku wykonujemy pełny digram związków encji
Uogólnienie
Relacja uogólnienia jest jednym z elementów nie
występujących w modelowaniu strukturalnym. Reprezentuje
ona informację, Ŝe dana klasa (nadklasa) jest uogólnieniem
innej klasy (podklasy).
Podklasa posiada wszystkie cechy nadklasy oraz cechy
dodatkowe.
Przykład: Klasa „Pracownik” posiada wszystkie cechy klasy
„Osoba”, a ponadto szereg atrybutów dodatkowych,
charakterystycznych tylko dla pracowników.
Nadklasa i podklasa odnoszą się do tego samego obiektu.
Uogólnienie
Podklasa jest niezaleŜną klasą i dlatego moŜe sama
posiadać podklasy. Wtedy powstaje hierarchia uogólnienia:
– obiekty znajdujące się niŜej w hierarchii dziedziczą
atrybuty i związki od obiektów, które są nad nimi;
– uczestnictwo nadklasy w związku uogólnienia jest
zawsze opcjonalne i ma liczebność 1, natomiast
uczestnictwo podklasy w związku uogólnienia jest
zawsze wymagane i ma liczebność *
Uogólnienie
Podklasy rozłączne nie mają Ŝadnych wspólnych obiektów.
Przykład: Klasy Pracownik administracyjny i Pracownik
techniczny (nadklasa Pracownik) są rozłączne, poniewaŜ
Ŝaden pracownik nie moŜe być jednocześnie
pracownikiem administracyjnym i technicznym.
Podklasy przecinające się mogą zawierać wspólne obiekty.
Przykład: Klasy Student i Pracownik (nadklasa Osoba) są
przecinające się, poniewaŜ dana osoba moŜe być
jednocześnie studentem i pracownikiem.
Projektowanie konceptualne (krok 7)
Zweryfikuj utworzony model pod kątem
występowania redundancji
• Ponowne sprawdzenie zwiazków wzajemnie jednoznacznych (1:1)
– W trakcie ustalania występujących zbiorów encji moŜe dojść do utworzenia
dwóch róŜnych zbiorów reprezentujących te same obiekty ze świata
rzeczywistego, naleŜy w tej sytuacji te zbiory encji połączyć
• Usunięcie związków redundantnych
– O związku moŜna powiedzieć, Ŝe jest redundantny (nadmiarowy), jeśli
informacje, których on dostarcza, moŜna uzyskać w oparciu o inny związek.
Związki nadmiarowe mogą zostać usunięte, poniewaŜ nie wnoszą nowej
informacji. Zalecana ostroŜność.
• Sprawdzenie, czy nie występują pułapki wachlarzowe i szczelinowe
Projektowanie konceptualne (krok 8)
Transakcja – to jedna lub kilka operacji odwołujących się do
zawartości bazy danych lub ją modyfikujących, które
przeprowadza pojedynczy uŜytkownik lub aplikacja
Własności transakcji to:
• niepodzielność – transakcja jest wykonywana w całości
albo wcale
• spójność – transakcja zachowuje spójność bazy danych
• izolacja – transakcje, są całkowicie od siebie niezaleŜne
• trwałość – zmiany dokonane przez pomyślnie
zakończoną transakcję są zachowywane na trwale
• Weryfikacji opisanej w punkcie 8 moŜemy dokonać poprzez:
• sporządzenie opisu transakcji
• wykorzystanie ścieŜek transakcji
Na tę chwilę to koniec (uff)
c.d.n.
Dziękuję za uwagę!

Podobne dokumenty