Wprowadzenie do projektowania

Transkrypt

Wprowadzenie do projektowania
Model Entity-Relationship
Model związków encji (lub model jednostka-związek, z ang. Entity-Relationship model), opisuje
dziedzinę przedmiotową (świat rzeczywisty) za pomocą pojęć:
• jednostek (lub encji, z ang. entities),
• atrybutów (z ang. attributes),
• związków (z ang. relationships).
Jednostka reprezentuje przedmioty, byty, zjawiska, zdarzenia itp. świata rzeczywistego, które mogą
być:
• materialne - np.: osoba, książka, samochód, itp.,
• pojęciowe - np.: zawód, adres, przedmiot, egzamin, itp.
Każda jednostka posiada zbiór atrybutów (nazw, cech), np.: nazwisko, wiek, adres, datę, itp. charakteryzujących jej typ, gdzie dla każdego atrybutu określamy jego możliwe wartości. Każda jednostka ma
wyróżniony jeden atrybut, którego wartość pozwala na jednoznaczną identyfikację jednostki w klasie jednostek tego samego typu jednostki – atrybut ten nazywamy atrybutem kluczowym lub w skrócie
kluczem.
Typ jednostki jest to opis własności, jakie musi posiadać jednostka, czyli definiuje:
• zbiór atrybutów, które muszą posiadać jednostki danego typu,
• dla każdego atrybutu podaje zbiór wartości zwany dziedziną atrybutu (atrybut może przyjmować
wartości tylko ze swojej dziedziny),
• atrybut kluczowy – atrybut taki nie może przyjmować wartości NULL .
Klasa jednostek jest to zbiór jednostek jednakowego typu, to jest posiadających te same atrybuty,
chociaż różne wartości atrybutów.
Na przykład typem jednostki STUDENT może być następujący opis:
• nr indeksu – atrybut kluczowy (klucz), łańcuch znakowy długości sześciu znaków 0-9,
• imie – łańcuch znakowy długości 30 znaków, nie może zawierać wartości NULL ,
• nazwisko – łańcuch znakowy długości 30 znaków, nie może zawierać wartości NULL ,
• adres – łańcuch znakowy długości 30 znaków, może zawierać wartość NULL ,
co w skrócie możemy zapisać: STUDENT(nr indeksu, imie, nazwisko, adres), oczywiście nie zapominając
o określeniu dziedzin atrybutów.
Z kolei klasą jednostek typu STUDENT jest zbiór:
nr indeksu imie
nazwisko
adres
100149
Urszula Kowalczyk Krakow
100150
Adam
Kowalski
Torun
Notacja graficzna
Typy jednostek oznaczamy za pomocą prostokątów, wewnątrz których umieszczamy nazwę typu jednostki. Atrybuty oznaczane są za pomocą elipsy z wpisaną w nią nazwą atrybutu. Krawędzie łączące klasy
(prostokąty) z atrybutami (elipsami) oznaczają, że typ jednostek przedstawiony za pomocą prostokąta
posiada atrybut o nazwie zawartej w elipsie. Podkreślenie nazwy atrybutu oznacza, że jest to atrybut
kluczowy (klucz).
Poniższy rysunek realizuje graficzną reprezentację typu jednostek z poprzedniego przykładu:
STUDENT
adres
nr_indeksu
imie
nazwisko
Związki – klasy i typy związków
Związek (z ang. relationship) reprezentuje fakt istnienia powiązania między dwiema lub większą liczbą
jednostek – o każdej takiej jednostce mówimy, że uczestniczy w związku. Jednostki w związku mogą być
tego samego lub różnych typów, przy czym związki nie mogą uczestniczyć w związkach.
Podobnie jak jednostka związek może posiadać atrybuty, ale w przeciwieństwie do jednostki związek nie
posiada niezależnego identyfikatora (klucza). Związek jest jednoznacznie identyfikowany przez zbiór kluczy
jednostek w nim uczestniczących.
Na przykład poniższy rysunek przedstawia możliwy związek EGZAMINY opisujący stan przebiegu sesji
egzaminacyjnej:
STUDENT
PRZEDMIOT
EGZAMINY
ocena
data
który charakteryzują:
• klucz jednostki STUDENT,
• klucz jednostki PRZEDMIOT,
• ocena – jedna z liczb ze zbioru {2, 3, 3.5, 4, 4.5, 5},
• data – data w formacie DD-MM-RRRR HH:MM:SS.
Charakterystyka związków
W czasie projektowania przykładowego związku EGZAMINY należy odpowiedzieć na następujące
pytania:
1. Z ilu przedmiotów może być egzaminowany student?
2. Ilu studentów może być egzaminowanych z jednego przedmiotu?
3. Czy każdy student musi mieć zdany jakiś egzamin?
4. Czy z każdego przedmiotu musi być egzamin?
Odpowiedzi na te pytania pozwolą nam we właściwy sposób scharakteryzować projektowany związek
EGZAMINY, a mianowicie:
ad.1. Student może podchodzić do egzaminów z wielu przedmiotów – reprezentacja graficzna: etykieta
N po stronie jednostki PRZEDMIOT.
ad.2. Z jednego przedmiotu może być egzaminowanych wielu studentów – reprezentacja graficzna: etykieta N po stronie jednostki STUDENT.
ad.3. Niekoniecznie – reprezentacja graficzna: pojedyncza krawędź po stronie jednostki STUDENT.
ad.4. Tak. Jest to tak zwane całkowite (obowiązkowe) uczestnictwo jednostki PRZEDMIOT w związku
typu EGZAMINY – reprezentacja graficzna: podwójna krawędź po stronie jednostki PRZEDMIOT.
Poniżej znajduje się pełna reprezentacja graficzna związku EGZAMINY oraz jednostek STUDENT
i PRZEDMIOT:
nazwisko
imie
adres
STUDENT
nr_indeksu
N
punkty
N
EGZAMINY
ocena
nazwa
PRZEDMIOT
data
symbol
Zastanówmy się teraz nad związkiem WYDZ PRZED reprezentującym dostępne przedmioty na wydziałach pewnej uczelni i odpowiedzmy na pytania:
1. Na ilu wydziałach może być proponowany konkretny przedmiot?
2. Ile przedmiotów może być oferowanych przez jeden wydział?
3. Czy wydział musi oferować jakiekolwiek przedmioty?
4. Czy przedmioty mogą „istnieć” bez wydziału?
a możliwymi odpowiedziami są (poniżej reprezentacja graficzna związku):
ad.1. Tylko na jednym, ponieważ nawet tak samo nazywające się przedmioty na różnych wydziałach
różnią się istotnie programem, co wynika z odmiennych profili wydziałów – reprezentacja graficzna:
etykieta 1 po stronie jednostki WYDZIAL.
ad.2. Wiele – reprezentacja graficzna: etykieta N po stronie jednostki PRZEDMIOT.
ad.3. Tak, ponieważ wydziały pełnią również funkcję dydaktyczną – reprezentacja graficzna: podwójna
krawędź po stronie jednostki WYDZIAL.
ad.4. Nie, gdyż każdy przedmiot musi być oferowany przez jakiś wydział – reprezentacja graficzna: podwójna krawędź po stronie jednostki PRZEDMIOT.
adres
nazwa
WYDZIAL
1
punkty
WYDZ_PRZED
N
nazwa
PRZEDMIOT
id_wydzialu
symbol
Reprezentacja tabelaryczna (relacyjna) związków
Związki typu 1 : N reprezentujemy za pomocą dwóch tabel (relacji), przy czym:
• pierwsza tabela obejmuje klasę jednostek jednostki znajdującej się po stronie z etykietą N oraz
reprezentuje związek (atrybuty klasy związkowej i klucz klasy jednostek znajdujących się po stronie
z etykietą 1),
• druga tabela odpowiada klasie jednostek jednostki znajdującej się po stronie z etykietą 1,
czyli w przypadku związku WYDZ PRZED będziemy mieli do czynienia z następującymi tabelami
(relacjami):
WYDZIAL(id wydzialu, nazwa, adres),
PRZEDMIOT(symbol, nazwa, punkty, id wydzialu), gdzie id wydzialu jest kluczem obcym.
Związki typu N : N reprezentujemy za pomocą trzech tabel (relacji):
• dwóch tabel reprezentujących klasy jednostek,
• jednej tabeli reprezentującej klasy związków wraz z atrybutami, przy czym klucz tej tabeli składa
się z kluczy klas jednostek uczestniczących w klasie związku,
czyli w przypadku związku EGZAMINY będziemy mieli następujące tabele (relacje):
STUDENT(nr indeksu, imie, nazwisko, adres),
PRZEDMIOT(symbol, nazwa, punkty),
EGZAMINY(nr indeksu, symbol, ocena, data)