Modelowanie i analiza systemowa - wykład IV
Etapy modelowania danych:
Określenie zakresu odwzorowanej rzeczywistości
Analiza i listy wymagań stawianych modelowi
Wymagania stawiane bazie danych
Projekt koncepcyjny (buduje się semantyczny model danych niezależny od serwera bazy danych - diagram ERD i/lub SERM)
Projekt logiczny (budowa modelu logicznego - np. napisanie lub wygenerowanie w narzędziu CASE skryptu SQL-owego - zbioru instrukcji DDL do utworzenia bazy danych w konkretnym systemie zarządzania bazami danych)
Realizacja fizyczna ( fizycznie zbudowanie bazy danych - np. wykonanie skryptu SQL-owego na dedykowanym serwerze)
DDL (język definiowania danych)- zbiór instrukcji SQL-a służących tworzeniu i modyfikacji struktury bazy danych (create table..., alter table itp.)
Projektowanie koncepcyjne
ERD - diagram związków encji
E - encja (zbior encji) -obiekt bazodanowy, który musi odtwarzać jakiś część rzeczywistości, którą modelujemy
R - relacja - obiekt który definiuje relacji pomiędzy encjami. Cechy relacji:
Stopień relacji - ilość encji wchodzących w relacji ( domyślnie ilość wynosi 2)
Złożoność relacji - jak złożone są relacje pomiędzy encjami (notacja 1;M;N)
(1:1) jedna encja ze zbioru encji A może połączyć się tylko z jedną encją ze zbioru B, a jedna encja ze zbioru encji B może połączyć się też tylko z jedną encją ze zbioru A
(1:N) jedna encja ze zbioru encji A może połączyć się z wieloma encjami ze zbioru B, ale jedna encja ze zbioru encji B może połączyć się tylko z jedną encją ze zbioru A
(M:N) jedna encja ze zbioru encji A może połączyć się z wieloma encjami ze zbioru B, a z kolei jedna encja ze zbioru encji B może połączyć się też z wieloma encjami ze zbioru A.
SERM - rozszerzony model związków encji
E - typ encji, który jest szczególnym przypadkiem E z ERD czyli takim, który nie zależy od istnienia innych obiektów (występuje zawsze w roli obiektu-rodzica tzn. nie zawiera kluczy obcych).
ER - typ encji odpowiadający wszystkim pozostałym E z ERD zawierającym w sobie relację (1;1) i (1;N).
R - jest szczególnym przypadkiem typu R z ERD charakteryzującym się złożonością relacji (M:N)
Notacja złożoności relacji (min;max), gdzie min oznacza minimalną ilość wystąpień relacji, a max - maksymalną ilość wystąpień relacji.
min: 0 - relacja nie musi wystąpić,1 - musi wystąpić przynajmniej raz
max :1 - relacja wystąpi tylko raz, * - relacja może wystąpić wiele razy
Cztery przypadki wystąpienia złożoności relacji:
(0:1)
(1:1)
(0:*)
(1:*)
Dwa sposoby dziedziczenia kluczy:
PK - klucz obcy w obiekcie-dziecku stanowi klucz główny lub jego część
FK - klucz obcy w obiekcie-dziecku stanowi atrybut lokalny
Typy atrybutów:
Proste - niepodzielna informacja (np. nazwisko)
Złożone -który składa się ze zbioru danych czyli atrybutów prostych (np. adres składa się z ulicy, miasta, nr domu, kodu pocztowego itp.)
Jednowartościowe- dla jednego wystąpienia encji przyjmuje tylko dokładnie jedną wartość (data urodzenia)
Wielowartościowy - dla jednego wystąpienia encji może przyjąć wiele wartości (np. nr telefonu w przypadku posiadania więcej niż jednego telefonu)
Zapamiętane - zapisany w bazie danych (np. data urodzenia)
Wyliczeniowe - cecha wyliczana na podstawie atrybutu zapamiętanego (np. wiek wyliczany na podstawie bieżącej daty i zapisanej w bazie daty urodzenia)
Metodyka konstruowania związków encji
1). Kiedy atrybut modelujemy jako nową encje? Wówczas, gdy wystąpi przynajmniej jeden z podanych niżej warunków:
Gdy chcemy mieć zapamiętany dynamiczny zbiór wartości atrybutu (tworzymy słownik)
Gdy dla danego wystąpienia encji atrybut może przyjąć wiele wartości (np. numer telefonu)
3. Gdy atrybut sam jest opisywany innymi cechami
2). Kiedy relację (M:N) z ERD modelujemy jako nową encję, a kiedy pozostaje tylko relacją?
Encja - gdy relacja jest opisana dodatkową cechą
Relacja - gdy nie będzie opisana żadną dodatkową cechą
Zastępowanie relacji (M:N) nową encją :
Jeden związek (M;N) zastępujemy nową encją i dwoma związkami (1:N)
Związki (1:N) są obligatoryjne po stronie „wiele”, niezależnie od obligatoryjności czy opcjonalności związku (M:N)
Obligatoryjność związku (M;N) przenosimy jako obligatoryjność związków (1;N) po stronie „jeden”
Związek N-arny zastępujemy nową encją i N związkami (1:N). Pozostałe warunki dotyczące obligatoryjności i opcjonalności relacji są takie same jak powyżej.
Jak modelujemy atrybuty złożone (ich wartość dla jednego wystąpienia encji jest złożeniem kilku elementarnych wartości)?
Atrybuty złożone modelujemy tak, że w definicji encji umieszczamy tylko atrybuty elementarne, które możemy w sposób nieformalny pogrupować poprzez dodanie do ich nazwy przedrostka (adres_ulica, adres_miasto itd.).
Jak modelujemy atrybuty wielowartościowe (dla jednego wystąpienia encji mogą przyjąć wiele wartości)?
Atrybuty wielowartościowe modelujemy jako nową encję.
Agregacja - obiekt często abstrakcyjny zbudowany z innych elementarnych obiektów.
Przykłady:
oddziały składające się z działów firmy
grupy pracowników
produkt i jego części składowe (car and parts)
Jak modelujemy agregację?
Agregację modelujemy jako nową encję, którą łączymy związkiem (1;N) z obiektem, dla którego została stworzona. Obiekt reprezentujący agregację zawsze jest rodzicem w stosunku do obiektu wyjściowego.