Transcript Document

Projektowanie baz danych

Etapy procesu projektowania BD

   Określenie celów, jakim ma służyć baza danych (w kontakcie z decydentem z firmy zamawiającej projekt).

Sprecyzowanie zakresu dostępnych danych, kategorii użytkowników oraz funkcji realizowanych poprzez aplikacje. Ewentualny podział projektu na perspektywy użytkowników (w kontakcie z pracownikami firmy zamawiającej).

Modelowanie bazy danych

Modelowanie BD

   konceptualne (bez odniesienia do SZBD) – zapisanie informacji o projekcie w standardowej notacji ER (diagramy Chena lub UML) niezależnej od docelowego SZBD.

logiczne (dla SZBD konkretnego typu, np. relacyjnego lub obiektowego) – podział danych na struktury dostępne w SZBD.

fizyczne (dla konkretnego SZBD) – zdefiniowanie dziedzin, relacji, indeksów, perspektyw, użytkowników z uprawnieniami itp.

Diagramy Chena – zbiór encji

Zbiór jednorodnych elementów, o skończonej, regularnej strukturze, które można wyróżnić w zagadnieniu rzeczywistym.

SAMOCHÓD OSOBA POLISA WYPADEK

Diagramy Chena – atrybuty

Cecha encji (mają ją wszystkie encje z zadanego zbioru); encja ma ustaloną liczbę atrybutów, a w systemie nie zapisujemy innych cech encji niż atrybuty.

data nrRej nr marka rodzaj SAMOCHÓD rokPr POLISA limit

Diagramy Chena – dziedziny

 dla atrybutu określamy typ jego wartości oraz ewentualne ograniczenia nałożone na te wartości (zakres, format itp.)

Diagramy Chena – rodzaje atrybutów

   Proste (atomowe) lub złożone ze składowych (np. adres: miasto, ulica, dom, nr); Jednokrotne (każda encja ma przypisaną tylko jedną wartość) lub wielokrotne (encja może mieć do k wartości danego atrybutu); Wyliczane (wartość „wirtualna” – wyliczana na podstawie pozostałych atrybutów tej encji).

adres ulica złożony dom nr telefon wielokrotny wiek wyliczany

Diagramy Chena – klucze

     Klucz – minimalny podzbiór atrybutów encji pozwalający jednoznacznie wyznaczyć encję; Klucz kandydujący – dowolny klucz zbioru encji; Klucz główny – wybrany jeden klucz spośród kandydujących; Klucze alternatywne – klucze kandydujące oprócz głównego; Atrybuty główne – atrybuty klucza (głównego?).

Na diagramie atrybuty główne oznaczamy przez podkreślenie nazwy.

nr data POLISA rodzaj l imit

Diagramy Chena – związki

Związek określamy pomiędzy zbiorami encji.

 Funkcyjny (1-n) n-1 SAMOCH.

ma OSOBA  Wieloznaczny (n-m) SAMOCH.

ud n-m WYPADEK  Jednoznaczny (1-1) PROTOK.

z 1-1 WYPADEK

Diagramy Chena – atrybuty związku

 Związek może mieć atrybuty SAMOCH.

ma n-1 OSOBA  dataZak cena Inny sposób przedstawienia powyższego SAMOCH.

data ma jest AKT_WŁAS OSOBA cena

Diagramy Chena – wymuszanie związku

 Związek łączący zbiory encji E i F oznacza, że każda encja ze zbioru E może wystąpić w związku z encją ze zbioru F. Na diagramie możemy zaznaczyć, że każda encja z E musi być w związku z przynajmniej jedną encją z F. Poniżej zapisaliśmy, że samochód musi mieć właściciela.

OSOBA SAMOCH.

ma

Diagramy Chena – związki k-arne

Możliwe są związki pomiędzy >2 zbiorami encji. Takie związki wymagają ostrożności przy określaniu jednoznaczności (

wstawianiu strzałek

) i uwzględnianiu braku niektórych encji.

PROTOKÓŁ WYPADEK KLASA PRZEDMIOT dot.

ucz.

LIKWIDATOR NAUCZYCIEL

Diagramy Chena – związki rekurencyjne

 Związek pomiędzy encjami tego samego zbioru. Definiując taki związek określamy rolę każdej z encji w związku.

kupiła OSOBA nabyła sprzedała

Diagramy Chena –słabe zbiory encji

 Zbiór encji E (powiązany z pewnym nadrzędnym zbiorem encji F związkiem funkcyjnym Z), którego elementy są rozróżnialne tylko lokalnie (w grupie encji e

IN

E będących w związku z konkretną encją nadrzędną f

IN

F), a globalnie mogą być identyczne. Taki zbiór encji E nie posiada samodzielnego klucza. Może mieć atrybuty kluczowe tworzące klucz „lokalny”, które w połączeniu z kluczem F, tworzą jego klucz „globalny”. Słaby zbiór encji musi pewnym nadrzędnym zbiorem encji związkiem funkcyjnym lub jednoznacznym.

być powiązany z

Diagramy Chena –słabe zbiory encji

nrWst POLISA_WST dotyczy wystawił AGENT SAMOCHÓD nrId nrRej

Diagramy Chena –słabe zbiory encji

nr lUcz GRUPA_JĘZ uczyJęz ma KLASA jestWych NAUCZYCIEL nazwisko nrId nazwa

Diagramy Chena – związki hierarchiczne (IS A)

 Występuje, gdy zbiór encji E stanowi podklasę zbioru encji F, czyli encje E mają wszystkie atrybuty encji F i wchodzą we wszystkie związki, w jakie wchodzą encje F. Dodatkowo encje E mogą mieć własne atrybuty i wchodzić w dodatkowe związki.

Diagramy Chena – związki hierarchiczne (IS A)

OSOBA isa SPRAWCA WYPADEK spowodował stan procWiny

Diagramy Chena – związki hierarchiczne (IS A)

 Zbiór encji nadrzędnych F można rozbić na „podklasy” E1, E2,…, Ek. Możemy wówczas wskazać, czy każda encja ze zbioru F musi wystąpić w przynajmniej jednej podklasie ( Mandatory , przeciwnie Optional ) i czy może wystąpić w więcej niż jednej podklasie ( And , przeciwnie Or )

Diagramy Chena – związki hierarchiczne (IS A)

OSOBA isa Optional SPRAWCA spowodował WYPADEK isa Mandatory, Or ZE_SPR NIE_WYKR stan procWiny

Diagramy Chena – dodatkowe więzy integralności

 Warunki, których nie da się przedstawić na diagramie zapisujemy w komentarzach do projektu przedstawionego w postaci diagramu

Typowe błędy - związki

 FAN TRAP – zgubienie związku funkcyjnego A:1-n:B przez zastosowanie  A:n-1:C i C:1-m:B; CHASM TRAP – zgubienie związku funkcyjnego A:1-n:B przez zastosowanie związków A:1-n:C:1-n:B

Typowe błędy – encje i atrybuty

  Stosowanie związku 1-1 może być zastąpione połączeniem encji w jedną; Umieszczenie wśród atrybutów encji atrybutów kluczowych innych encji służących do zaznaczenia istnienia związku;

Użytkownicy i perspektywy

  Metoda syntezy – stworzenie odrębnych modeli konceptualnych dla różnych użytkowników i połączenie ich w jeden model bazy.

Metoda wydzielania perspektyw – tworzymy jeden model globalny i wydzielamy w nim obszary danych dostępnych dla poszczególnych użytkowników.

Weryfikacja transakcji

Dla każdej transakcji użytkownika: na diagram nanosimy ścieżki biegnące po liniach związków łączących dane potrzebne do wykonania transakcji. W ten sposób sprawdzamy, czy realizacja transakcji jest możliwa, wykrywamy miejsca krytyczne w diagramie itp.

gs KLUB w gś ZAWODNIK MECZ gra zawodnicy grający w meczu; kontrola, czy są z właściwych klubów;

Większy przykład

Podsumowanie procesu tworzenia modelu konceptualnego

1.

2.

3.

4.

5.

6.

określ zbiory encji; określ związki pomiędzy zbiorami encji i ich rodzaj; określ atrybuty encji i związków (uwaga na atrybuty redundantne); wyznacz dziedziny atrybutów i ich ograniczenia; wyznacz klucze kandydujące i wybierz klucze główne; określ więzy ogólne;

Podsumowanie – cd.

7.

8.

9.

10.

zweryfikuj projekt sprawdzając, czy warto zastosować specjalizację/generalizację lub agregację/kompozycję; zweryfikuj związki 1-1 i usuń ewentualne związki redundantne; nanieś na diagram ścieżki związane z transakcjami użytkownika i sprawdź, czy realizacja transakcji jest możliwa; zweryfikuj model z klientem.

UML – unified modeling language