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)