Przedmiot |
Bazy danych |
Laboratorium | |
Temat |
Diagramy związków encji |
Przykład 1: Narysuj diagram związków encji (E-R) dla encji: autor, książka, wydawnictwo.
Rysunek 8 - Przykładowy diagram związków encji (E-R) dla encji: autor, książka, wydawnictwo
Ćwiczenie: narysuj diagram związków encji (E-R) dla następujących encji: uczelnia, wydział, kierunek, student.
5. Rozszerzanie diagramu związków encji
Rozszerzenie diagramu związków encji do postaci umożliwiającej dalsze wykorzystanie w procesie projektowania bazy danych wymaga wykonania następujących czynności:
1) Każdy zbiór encji staje się tabelą (nazwa tabeli taka jak zbiór encji)
2) Każdy z atrybutów danej encji staje się kolumną w odpowiedniej tabeli. Można na tym etapie dodatkowo określić typ danej kolumny w zależności od typu danych, które mają odzwierciedlać atrybut. Podstawowe typy kolumn dla MySQL:
int - liczba całkowita
bool - wartość logiczna: prawda/ fałsz
float - liczba zmiennoprzecinkowa
datę - data
blob - obiekt binarny
char(n) - łańcuch tekstowy o stałej długości n-znaków varchar(n) - łańcuch tekstowy o zmiennej długości, max. n-znaków
3) Każda tabela powinna posiadać swój klucz główny - jest to taka kolumna tabeli bądź kombinacja kolumn, które jednoznacznie identyfikują dany wiersz tabeli. Najwygodniej jest dodać do każdej z tabel odpowiednią kolumnę o nazwie „ID" przechowującą liczbowe wartości całkowite (int) tzw. identyfikatory wierszy. Taka kolumna będzie stanowić klucz główny danej tabeli. Operację dodawania klucza głównego należy przeprowadzić dla wszystkich tabel określonych w pkt 1}-
4) Wszystkie związki między zbiorami encji należy przenieść do rozszerzonego diagramu E-R zgodnie z regułą:
a. Związki jeden-do-jeden - scalamy tak połączone zbiory encji w jedną tabelę
b. Związki jeden-do-wiele - należy umieścić na rozszerzonym diagramie E-R dodając klucz obcy (tj. nową kolumnę wskazującą na klucz główny innej tabeli) w tabeli po stronie „wiele". Połączoną parę klucz główny-klucz obcy należy
Strona 5 z 6
Joanna Szlapczyńska (asiasz@am.gdynia.pl)