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