Diagramy ERD zajęcia 1 28 września 2012 Strona 1

Transkrypt

Diagramy ERD zajęcia 1 28 września 2012 Strona 1
Diagramy ERD
zajęcia 1
Diagramy związków encji lub inaczej diagram ERD (Entity-Relationship Diagam) jest używany do
graficznego przedstawienia związków pomiędzy encjami podczas projektowania relacyjnych baz
danych.
Za pomocą diagramu ERD obrazujemy graficznie związki pomiędzy encjami posiadające następujące
cechy:
 Krotność określająca ile encji wchodzi w skład związku. Możliwe są następujące typy:
o 1:1 – danej encji odpowiada dokładnie jedna encja (np.: pacjent szpitala ma
przyporządkowany numer PESEL). Potocznie mówimy o relacji jeden do jeden.
o 1:N – danej encji odpowiada jedna lub więcej encji (np.: klient banku ma
przyporządkowane numery kont jakie posiada). Potocznie mówimy o relacji jeden do
wielu.
o N:M – jednej lub więcej encji odpowiada jedna lub więcej encji (np.: ksiązka w
bibliotece jest wypożyczana przez wielu czytelników, ale każdy z czytelników może
wypożyczać wiele książek). Potocznie mówimy o relacji wiele do wielu. W przypadku
relacji N:M często stosuje się normalizację diagramu poprzez stworzenie dodatkowej
encji pośredniczącej i zastąpienie relacji N:M dwoma relacjami typu 1:N z nową
encją.
 Opcjonalność, która definiuje czy każda encja musi czy tylko może być powiązana z inną (np.:
każdy pacjent przyjęty do szpitala musi mieć przyporządkowany numer PESEL, a z kolei w
bibliotece mogą znajdować się książki, które nie były jeszcze przez nikogo wypożyczone.
Do wizualizacji związków stosowane jest kilka notacji:
Rysunek 1 Przykłady diagramów ERD w róznych notacjach (za wikipedia.pl)
28 września 2012
Strona 1
Diagramy ERD
zajęcia 1
Do tworzenia diagramów używa się narzędzi „CASE” za pomocą których często można automatycznie
generować skrypty służące do tworzenia struktury bazy danych w konkretnej platformie lub wprost
generować strukturę wykorzystując połączenia natywne lub pośrednie jak np. ODBC. Często
narzędzia te umożliwiają tzw. „Reverse engineering” czyli tworzą obraz związków encji na podstawie
istniejącej bazy danych.
Program DB-Designer Fork jest produktem rozpowszechnianym na licencji GNU General Public
Licence (GPL) pozwalającym na graficzne projektowanie diagramów ERD, łączenie z wybranymi
systemami RDBS poprzez mechanizmy natywne lub sterowniki ODBC pozwalając na zdalne
wykonywanie zapytań oraz export zaprojektowanej struktury w postali skryptu SQL.
Program dostępny jst pod adresem:
http://aurora.ftj.agh.edu.pl/~zimnoch/files/dydaktyka/zima1213/DBDesignerFork-1.5-bin-i386win32-beta5.zip
Opis programu
Po uruchomieniu programu pojawia się główne okno przedstawione na rys. 2
Rysunek 2 Widok głównego okna programu DB-Designer Fork
Z lewej strony umieszczony jest pasek narzędziowy zawierający wszystkie potrzebne opcje. U góry
ekranu znajduje się menu pozwalające na konfigurację programu, wczytanie, zapis lub export w
postaci SQl tworzonego projektu. W prawej części ekranu domyślnie znajduje się zestaw okienek
ułatwiających nawigację, oraz dostęp do poszczególnych elementów projektowanego systemu.
Centralna część głównego okna zawiera tworzony diagram, który może być uzupełniony o dodatkowe
opisy tekstowe lub grafike wczytaną z zewnętrznych plików w formacie png lub bmp.
Podstawowe polecenia
Definicja regionu
28 września 2012
Strona 2
Diagramy ERD
zajęcia 1
Za pomoca tej ikony możemy zdefiniować region obejmujący część bazy danych zaierający
spójny podzbiór informacji. Narzędzie służy zwiększeniu czytelności diagramu.
Definicja tabeli
Za pomocą tej ikony definiujemy nową tabelę. Po wybraniu tej opcji i kliknięciu w wybranym
miejscu diagramu, pojawi się tam pusta tabela. Podwójne kliknięcie powoduje otwarcie okna
służącego do definicji tabeli (rys. 3)
Rysunek 3 Wygląd okna definiującego atrybuty encji.
Definicja relacji
W programie dostępne jest 6 typów relacji (3 ?? i 3 ???) :
Relacja ??? typu 1:N
Relacja ??? typu 1:1
Relacja ??? typu N:M
28 września 2012
Strona 3
Diagramy ERD
zajęcia 1
Rysunek 4 Wyglad okna definiującego relację.
Ponadto aby zwiększyć czytelność diagramu można w jego obszarze zdefiniować dodatkowe pola
tekstowe oraz wstawić grafikę z zewnętrznego pliku.
wstawianie pola tekstowego
wstawianie grafiki (format png lub bmp)
Eksport projektu w postaci skryptu SQL
Po utworzeniu diagramu jest możliwość wyeksportowania go w postaci skryptu SQL. Po wybraniu
opcji z menu File/Export pojawia się okno, w którym możemy określić różne opcje dotyczące importu
i zatwierdzić klawiszem „Save script to file” powodując zapis skryptu do pliku lub klawiszem „Copy
Script to Clipboard” aby skopiować zawartość skryptu do schowka. Rysunek 5 przedstawia okno
exportu SQL.
28 września 2012
Strona 4
Diagramy ERD
zajęcia 1
Rysunek 5 Wygląd okna definiującego opcje exporu SQL
W wyniku wykonania tej operacji otrzymujemy zestaw poleceń SQL powodujących wygenerowanie
zaprojektowanej struktury bazy danych w wybranym systemie zarządzania bazą (RDBMS).
Przykładowy skrypt zamieszczony jest poniżej.
CREATE TABLE Miasta (
Id_miasta SERIAL NOT NULL ,
Nazwa Miasta VARCHAR
NOT NULL
PRIMARY KEY(Id_miasta) );
,
CREATE INDEX Miasta_index1027 ON Miasta (Nazwa Miasta);
CREATE TABLE Osoby (
Id SERIAL NOT NULL ,
Miasta_Id_miasta ENUM
NOT NULL ,
Imie VARCHAR
,
Nazwisko VARCHAR
,
PRIMARY KEY(Id) ,
FOREIGN KEY(Miasta_Id_miasta)
REFERENCES Miasta(Id_miasta));
CREATE INDEX Osoby_FKIndex1 ON Osoby (Miasta_Id_miasta);
CREATE INDEX IFK_Rel_01 ON Osoby (Miasta_Id_miasta);
28 września 2012
Strona 5
Diagramy ERD
zajęcia 1
Zadanie
Proszę przygotować projekt struktury bazy danych w postaci diagramu ERD dla następujących
założeń:
1. Baza zawiera 3 tabele
a. Tabela Ksiazki
i. Pole Ksiazka_id – autonumerowany klucz główny tabeli
ii. Pole Autor_id – klucz obcy tabeli Autorzy (tworzony automatycznie podczas
definiowania relacji)
iii. Pole Tytuł – typu varchar
iv. Pole ISBN
b. Tabela Autorzy
i. Pole Autor_id – autonumerowany klucz główny tabeli
ii. Imie – varchar
iii. Nazwisko – varchar
c. Tabela Czytelnicy
i. Pole czytelnik_id – autonumerowany klucz główny tabeli
ii. Imie – varchar
iii. Nazwisko – varchar
iv. Aktywny – boolean
2. Relacje między tabelami
a. Relacja 1:N między tabelami Ksiazki i Autorzy – ustalamy możliwość zdefiniowania
tylko 1 autora dla każdej książki.
b. Relacja N:M między tabelami Ksiazki oraz Czytelnicy – tabela zostanie stworzona
automatycznie podczas definiowania relacji.
c. Dodatkowo w tabeli pośredniczącej dla relacji N:M dodefiniowujemy następujęce
pola:
i. Pole data_wypozyczenia – pole typu timestamp
ii. Pole data-zwrotu – pole typu timestamp
28 września 2012
Strona 6