Modelowanie związków encji

Podobne dokumenty
Diagramy ERD. Model struktury danych jest najczęściej tworzony z wykorzystaniem diagramów pojęciowych (konceptualnych). Najpopularniejszym

Projektowanie baz danych za pomocą narzędzi CASE

PODSTAWY BAZ DANYCH. 5. Modelowanie danych. 2009/ Notatki do wykładu "Podstawy baz danych"

Bazy danych. Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Wykład 3: Model związków encji.

030 PROJEKTOWANIE BAZ DANYCH. Prof. dr hab. Marek Wisła

WPROWADZENIE DO BAZ DANYCH

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Systemy baz danych. 1. Plan: 2. Zadania: Projekt Bazy Danych - wybór tematów, wstępna kategoryzacja 8. Projekt Bazy Danych - diagram ER

Język UML w modelowaniu systemów informatycznych

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Instytut Mechaniki i Inżynierii Obliczeniowej fb.com/groups/bazydanychmt/

PLAN WYKŁADU BAZY DANYCH GŁÓWNE ETAPY PROJEKTOWANIA BAZY MODELOWANIE LOGICZNE

Projekt aplikacji prywatnej przychodni weterynaryjnej

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Bazy danych 1. Wykład 5 Metodologia projektowania baz danych. (projektowanie logiczne)

Bazy danych TERMINOLOGIA

Technologia informacyjna

Tworzenie modelu logicznego i fizycznego danych.

Autor: Joanna Karwowska

Modelowanie danych, projektowanie systemu informatycznego

1 Projektowanie systemu informatycznego

Diagramu Związków Encji - CELE. Diagram Związków Encji - CHARAKTERYSTYKA. Diagram Związków Encji - Podstawowe bloki składowe i reguły konstrukcji

Zachodniopomorski Uniwersytet Technologiczny w Szczecinie. Bazy danych. Wykład 4: Model SERM. dr inż. Magdalena Krakowiak

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Autor: Joanna Karwowska

Transformacja modelu ER do modelu relacyjnego

Projektowanie bazy danych przykład

Tworzenie bazy danych na przykładzie Access

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych Bazy Danych - Projekt. Zasady przygotowania i oceny projektów

Przykładowa baza danych BIBLIOTEKA

Baza danych. Baza danych to:

Informatyka Ćwiczenie 10. Bazy danych. Strukturę bazy danych można określić w formie jak na rysunku 1. atrybuty

Bazy danych - wykład wstępny

Technologie baz danych

Baza danych sql. 1. Wprowadzenie

Kod składa się z kodu głównego oraz z odpowiednich kodów dodatkowych (akcesoriów). Do kodu można przyłączyć maksymalnie 9 kodów dodatkowych.

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Przykłady normalizacji

Podstawowe zagadnienia z zakresu baz danych

BAZY DANYCH model związków encji. Opracował: dr inż. Piotr Suchomski

Access - Aplikacja. Tworzenie bazy danych w postaci aplikacji

ZSE - Systemy baz danych 1 ZASADY PROJEKTOWANIA BAZ DANYCH

Połączenie AutoCad'a z bazą danych

Inżynieria Programowania Laboratorium 3 Projektowanie i implementacja bazy danych. Paweł Paduch paduch@tu.kielce.pl

SIECI KOMPUTEROWE I BAZY DANYCH

Systemy informatyczne. Modelowanie danych systemów informatycznych

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

5. Integracja stron aplikacji, tworzenie zintegrowanych formularzy i raportów

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Program dla praktyki lekarskiej. Instrukcja Modułu Importu Dokumentacji Zewnętrznej

Modelowanie obiektowe - Ćw. 1.

Ćwiczenie 1. Modelowanie prostego procesu

Polecenie 3.1: Uruchom SQL Server Management Studio, zaloguj się do serwera.

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Język SQL. Rozdział 9. Język definiowania danych DDL, część 2.

Systemy baz danych. mgr inż. Sylwia Glińska

Lokalizacja jest to położenie geograficzne zajmowane przez aparat. Miejsce, w którym zainstalowane jest to urządzenie.

Projektowanie systemów informatycznych. Roman Simiński siminskionline.pl. Modelowanie danych Diagramy ERD

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

5.2. Pierwsze kroki z bazami danych

Rysunek 1: Przykłady graficznej prezentacji klas.

PTI S1 Tabele. Tabele. Tabele

Platforma e-learningowa

Plan wykładu: Relacyjny model danych: opis modelu, podstawowe pojęcia, ograniczenia, więzy.

Relacyjne bazy danych. Normalizacja i problem nadmierności danych.

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

1. Przypisy, indeks i spisy.

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Język UML w modelowaniu systemów informatycznych

Laboratorium z przedmiotu: Inżynieria Oprogramowania INP

Praca w Gabinecie lekarskim

D D L S Q L. Co to jest DDL SQL i jakie s jego ą podstawowe polecenia?

Zapytania i wstawianie etykiet z bazy danych do rysunku

Systemy baz danych Prowadzący: Adam Czyszczoń. Systemy baz danych. 1. Import bazy z MS Access do MS SQL Server 2012:

OBIEKTY TECHNICZNE OBIEKTY TECHNICZNE

Miejski System Zarządzania - Katowicka Infrastruktura Informacji Przestrzennej

Krzysztof Kluza proste ćwiczenia z baz danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA. Modelowanie danych. Model związków-encji

Baza danych przestrzennych modelowa reprezentacja fragmentu świata rzeczywistego

Wykład 2. Relacyjny model danych

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

I. Interfejs użytkownika.

Wprowadzenie do baz danych

KSS: Modelowanie konceptualne przykład

Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. podstawie kluczy podstawowych wiązanych relacji.

System imed24 Instrukcja Moduł Analizy i raporty

Modelowanie konceptualne. Modelowanie konceptualne przykład. Modelowanie konceptualne model ER. Model ER Entity-Relationship

Tworzenie raportów. Ćwiczenie 1. Utwórz Autoraport przedstawiający tabelę Studenci

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski SYSTEMY SCADA

onfiguracja serwera DNS w systemie Windows Server 2008 /2008 R2

Relacyjny model baz danych, model związków encji, normalizacje

Założenia do ćwiczeń: SQL Server UWM Express Edition: \SQLEXPRESS. Zapoznaj się ze sposobami użycia narzędzia T SQL z wiersza poleceń.

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

INFORMATYKA GEODEZYJNO- KARTOGRAFICZNA Relacyjny model danych. Relacyjny model danych Struktury danych Operacje Oganiczenia integralnościowe

4. Budowa prostych formularzy, stany sesji, tworzenie przycisków

Instalacja Webroot SecureAnywhere przy użyciu GPO w Active Directory

Transkrypt:

Modelowanie związków encji Instrukcja 1. Projekt danych metodą modelowania związków encji Do projektowania struktury bazy danych wykorzystuje się metodę Modelowania Związków Encji Jest to powszechnie stosowana metoda inżynierii informacji autorstwa Chen'a (I976r), służąca do konstruowania wysokiej jakości modeli danych. Metoda Modelowania Związków Encji obejmuje identyfikację: rzeczy ważnych w świecie rzeczywistym, za pomocą obiektów (encji), sposobów jakimi te obiekty są powiązane tzw. związków własności tych obiektów i własności powiązań tj. ich atrybutów. Obiekt (encja) to rzecz istotna, rzeczywista bądź wyobrażona, o której informacje muszą być znane lub przechowywane. Informacje te to np. wartości atrybutów obiektu oraz zależności, w jakich pozostaje dany obiekt z innymi obiektami. Graficzną reprezentacją obiektów jest prostokąt z umieszczoną w środku jego nazwą. NAZWA Związek jest nazwanym, istotnym powiązaniem, jakie istnieje między dwoma lub więcej obiektami. W szczególnym przypadku może być powiązaniem tego samego obiektu z samym sobą (związek rekurencyjny). Związek jest przedstawiany za pomocą rombu z przypisaną mu nazwą etykiety. Version 2.0 Gliwice 2009

NAZWA Każdy związek ma przypisaną liczebność (liczbę wystąpień). Mogą istnieć związki 1:1, związki M:N, oraz związki 1:N. Atrybut jest to odwzorowanie typu obiektu lub typu związku w zbiór wartości. Atrybuty możemy podzielić na: atrybuty pojedyncze, atrybuty wielowartościowe. Atrybuty są reprezentowane przez elipsy przyłączone do odpowiedniego obiektu bądź związku. NAZWA Za pomocą tych symboli tworzy się logiczny model danych (Entity Relationship Diagram), przedstawiający informację przetwarzaną w modelowanym wycinku rzeczywistości, abstrahując od ograniczeń narzuconych przez implementację. Aby przekształcić model logiczny utworzony metodą Modelowania Związków Encji w schemat relacyjnej bazy danych (czyli zbiór schematów relacji) należy zastosować następujący algorytm: 1. Utworzyć schemat relacji dla każdego typu obiektu Do schematu wchodzą wszystkie atrybuty pojedyncze opisujące ten obiekt. Trzeba wyróżnić atrybuty w tym atrybuty kluczowe, identyfikujące w sposób jednoznaczny wystąpienie danego obiektu. Klucz obiektu jest kluczem schematu. 2. Utworzyć dodatkowy schemat relacji dla każdego atrybutu wielowartościowego Do schematu tego wchodzi klucz obiektu oraz atrybut wielowartościowy. Kluczem jest cały schemat relacji. 3. Utworzyć schemat relacji dla każdego typu związku Do schematu tego wchodzą atrybuty własne związku oraz klucze obiektów wchodzących w związek. 2

jeśli związek jest typu 1: N, to kluczem relacji jest atrybut kluczowy tego obiektu, który wchodzi przez krawędź N, jeśli związek jest typu M:N, to kluczem staje się złożenie kluczy obu encji. jeśli związek jest typu 1:1, to kluczem jest dowolny z kluczy obiektów wchodzących w związek. 4. Dokonać optymalizacji schematów, które powstają dla związków 1:N i 1:1, scalić schematy o identycznych kluczach 3

2. Przykład Rozważmy następujący problem (który jest z konieczności uproszczeniem analizowanego wycinka rzeczywistości): Mała spółdzielnia lekarska zamówiła projekt bazy danych mającej usprawnić jej działalność. Baza ma przechowywać dane o wizytach pacjentów lekarza, datę wizyty, rozpoznaną jednostkę chorobową (może być kilka) oraz zaordynowane medykamenty wraz z dawkami (jak często i ile). Dla pacjenta przechować: nazwisko, imię i adres; dla lekarza: numer, imię i nazwisko; dla lekarstwa: kod i nazwę; dla jednostki chorobowej: numer, nazwę, krótki opis i symptomy. Pacjenci nie są przypisani do lekarzy umawiają się na wizyty, obsługiwane przez dostępnych lekarzy. Baza powinna przechowywać katalog lekarstw. Dalsze analiza ujawniła, że użyteczne byłoby przechowanie opisu objawów i standardowego leczenia poszczególnych chorób oraz rekomendowanych lekarstwach i ich dawkach. Również interakcje pomiędzy lekami byłyby interesujące. Można przy tym założyć, że wystarczy zapamiętać interakcje pomiędzy parami lekarstw. Jak wspomniano w rozdziale pierwszym, na początku należy zidentyfikować obiekty (ang. entities), a w następnym kroku określić związki między nimi. Dla omawianego przykładu uzyskuje się diagram przedstawiony na rysunku 1. Kolejnym krokiem jest wyznaczenie atrybutów poszczególnych obiektów i związków, co zaprezentowano na rysunku 2. Na diagramie tym warto zauważyć, że dawka jaką zaleca się konkretnemu pacjentowi przy zażywaniu określonego leku umieszczona została w związku między obiektem Pacjent oraz obiektem Lekarstwo. Następnie model logiczny przekształcony zostaje do modelu fizycznego. Związki o liczności 1:N są implementowane jako klucze obce (ang. foreign keys) a związki z licznością M:N zostaną razem z obiektami przekształcone w tabele bazy danych. Model fizyczny stanowiący podstawę opisujący wszystkie tabele i kolumny, które mają być utworzone w bazie danych przedstawiony jest na rysunku 3. 4

Fig. 1. Logiczny (koncepcyjny) model danych bez atrybutów 5

Fig. 2. Logiczny (koncepcyjny) model danych z atrybutami. 6

Fig. 3. Fizyczny model danych Na podstawie fizycznego modelu danych można utworzyć skrypt tworzący bazę danych. Całość prezentowanego procesu może być wspomagana przez narzędzia klasy CASE (ang. Computer- Aided Software Engineering). Przykładem takiego programu może być opisany dalej program EasyCASE, w którym wygenerowane zostały wszystkie rysunki oraz poniższy skrypt. CREATE TABLE PACJENCI (NR_UBEZPIECZENIA CHAR (30) NOT NULL, NAZWISKO CHAR (50) NOT NULL, ADRES CHAR (100), TELEFON CHAR (20), PRIMARY KEY (NR_UBEZPIECZENIA)); CREATE TABLE LEKARZE (NR_LEKARZA CHAR (6) NOT NULL, NAZWISKO CHAR (50) NOT NULL, ADRES CHAR (100), TELEFON CHAR (20), PRIMARY KEY (NR_LEKARZA)); 7

CREATE TABLE WIZYTY (NR_WIZYTY INTEGER NOT NULL, NR_UBEZPIECZENIA CHAR (30) NOT NULL, NR_LEKARZA CHAR (6) NOT NULL, DATA_WIZYTY DATE NOT NULL, CZAS_WIZYTY TIME NOT NULL, OBJAWY CHAR (200) NOT NULL, NOTATKI CHAR (200), PRIMARY KEY (NR_WIZYTY), FOREIGN KEY (NR_UBEZPIECZENIA) REFERENCES PACJENCI, FOREIGN KEY (NR_LEKARZA) REFERENCES LEKARZE); CREATE TABLE LEKARSTWA (KOD_LEKARSTWA CHAR (12) NOT NULL, DRUG_NAME CHAR (70) UNIQUE NOT NULL, SKLAD CHAR (200) NOT NULL, PRZECIWSKAZANIA CHAR (200), SKUTKI_UBOCZNE CHAR (200), PRIMARY KEY (KOD_LEKARSTWA)); CREATE TABLE CHOROBY (KOD_CHOROBY CHAR (12) NOT NULL, NAZWA_CHOROBY CHAR (100) NOT NULL, OBJAWY CHAR (200) NOT NULL, LECZENIE CHAR (200), PRIMARY KEY (KOD_CHOROBY)); CREATE TABLE PRZEPISANE (NR_WIZYTY INTEGER NOT NULL, KOD_LEKARSTWA CHAR (12) NOT NULL, DAWKA NUMERIC (12,6) NOT NULL, JEDNOSTKA_MIARY CHAR (3), DAWKOWANIE CHAR (30) NOT NULL, OKRES CHAR (20) NOT NULL, PRIMARY KEY (NR_WIZYTY, KOD_LEKARSTWA), FOREIGN KEY (NR_WIZYTY) REFERENCES WIZYTY, FOREIGN KEY (KOD_LEKARSTWA) REFERENCES LEKARSTWA); CREATE TABLE LECZY (KOD_LEKARSTWA CHAR (12) NOT NULL, KOD_CHOROBY CHAR (12) NOT NULL, TYPOWA_DAWKA NUMERIC (12,6), JEDNOSTKA_MIARY CHAR (3), TYPOWE_DAWKOWANIE CHAR (200), TYPOWY_OKRES CHAR (20), PRIMARY KEY (KOD_LEKARSTWA, KOD_CHOROBY), FOREIGN KEY (KOD_LEKARSTWA) REFERENCES LEKARSTWA, FOREIGN KEY (KOD_CHOROBY) REFERENCES CHOROBY); CREATE TABLE INTERAKCJE (KOD_LEKARSTWA1 CHAR (12), KOD_LEKARSTWA2 CHAR (12), 8

DESCRIPTION CHAR (200), PRIMARY KEY (KOD_LEKARSTWA1, KOD_LEKARSTWA2), FOREIGN KEY (KOD_LEKARSTWA2) REFERENCES LEKARSTWA, FOREIGN KEY (KOD_LEKARSTWA1) REFERENCES LEKARSTWA); 3. Podstawy korzystania z programu EasyCASE Program EasyCASE jest prostym narzędziem klasy CASE (ang. Computer-Aided Software Engineering), tzn. narzędziem wspierającym analizę, projektowanie, implementację, testowanie i ewolucję oprogramowania. Obejmuje zarówno modelowanie danych (w tym w notacji Chen a) jak i strukturalne modelowanie procesów. Na laboratorium będzie wykorzystywane tylko modelowanie danych. 3.1. Tworzenie projektu Program EasyCASE przechowuje wszystkie elementy projektu, w tym diagramy, w jednej kartotece systemu operacyjnego tworzonej podczas tworzenia nowego projektu. Operacja ta przebiega w następujących krokach: 1. wybór z menu File pozycję Project. 2. wskazanie w oknie dialogowym lokalizacji projektu podając jego nazwę na końcu ścieżki w polu Directory. 3. akceptacja tworzenia projektu przyciskiem Open. 4. potwierdzenie chęci utworzenia kartoteki z projektem. Następnie EasyCASE wyświetla okno dialogowe Create New Project Configuration umożliwiające konfigurację projektu. EasyCASE ułatwia utrzymanie spójności projektu poprzez wybór metodyki modelowania danych i procesów, co w konsekwencji ograniczy wybór elementów do zdefiniowanych w wybranych metodykach. 9

Fig. 4. Konfiguracja nowego projektu Podczas konfiguracji nowego projektu musi zostać notacja Chena. 3.2. Tworzenie diagramów Wszystkie tworzone elementy są przechowywane w repozytorium projektu. Graficzne reprezentacje wybranych elementów są umieszczane na diagramach.. Aby utworzyć diagram typu ERD (Entity Relationship Diagram) należy: 1. Wybrać New... z menu File lub kliknąć przycisk New Chart w pasku narzędzi. 2. EasyCASE wyświetli okno dialogowe New Chart (fig.9). 3. Z listy Chart Type należy wybrać Entity Relationship Diagram i podać jego nazwę w polu Chart Name. Fig. 5. Tworzenie diagramu ERD 10

3.3. Tworzenie encji i związków Encje i związki należy dodawać rysując je na diagramie z użyciem palety przedstawionej na rysunku 6. Tryb edycji Encja Split Entity Związek identyfikujący Atrybut klucza głównego Atrybut wielowartościowy Asocjacja Encja słaba Związek Atrybut Atrybut klucza obcego Atrybut wywiedziony Podtyp / Nadtyp Blok tekstu Fig. 6. Paleta obiektów (ang. Object palette) wykorzystywana na diagramach ERD w notacji Chen a Dodanie elementu do diagramu powoduje zapisanie go w słowniku danych z nadaną mu podczas tworzenia nazwą. Nazwa ta jest ograniczona do 32 znaków. Usunięcie nazwy powoduje usunięcie związanego z nią obiektu. Łączenie elementów na diagramach polega na przeciąganiu łączących ich linii, nazywanych w programie EasyCASE asocjacjami. Linie te można przeciągać pomiędzy portami obiektów oznaczanymi małymi prostokątami. Narzędzie sprawdza poprawność tworzonych połączeń. 3.4. Definiowanie rekordów Symbol obiektu jest połączony ("explodes") z obiektem rekordu, który definiuje strukturę tabeli bazy danych. W notacji Chen a także związki M:N oraz związki n-arne powinny być związane z rekordem. W rekordzie definiujemy nazwę tabeli, nazwę indeksu (jeśl istnieje taka potrzeba) oraz listę kolumn tabeli. Każda kolumna definiowana jest poprzez nazwę (do 32 znaków) i odnosi się do element słownika danych, który umożliwia uszczegółowienie danych o kolumnie, takich jak: typ, długość czy ograniczenia. Aby połączyć obiekt lub związek z definicją rekordu należy: 1. Wybrać: a. Define Child... z menu Edit b. lub z Edit menu prawego klawisza myszy, c. lub kliknąć przycisk Define Child w oknie Toolbar. EasyCASE wyświetla okno dialogowe Define Child (rysunek 7). 11

Fig.7. Rozwijanie encji lub związku w rekord 2. Wybrać Record z listy Child Type. EasyCASE automatycznie wypełni pole Child Name nazwą obiektu. 3. Nazwę tę można zaakceptować lub wprowadzić własną i zatwierdzić przyciskiem OK. 4. Przejść do definicji rekordu przez wybór Goto Child z menu Explodes. EasyCASE wyświetli okno dialogowe Record DDE Screen. Fig.8. Definiowanie kolumn (komponentów rekordu) 12

3.5. Tworzenie kolumn, kluczy głównych, kluczy alternatywnych i kluczy obcych Kolumny odpowiadające atrybutom obiektów lub związków powinny być definiowane jako komponenty rekordu. Nazwa kolumny może być wprowadzone we własnym zakresie lub wybrana z listy Component Name. W pierwszym należy zdefiniować pozostałe cechy elementu w edytorze elementu dostępnym po dwukrotnym klknięciu kolumny lub wybraniu przycisku Explode. Fig.9. Definiowanie właściwości kolumny (elementu rekordu) Po zdefiniowaniu kolumn dla tabeli można określić klucze główne (primary key PK), klucze alternatywne (alternate keys AK) oraz klucze obce (foreign keys FK). 1. Aby utworzyć klucz główny należy wybrać właściwą kolumnę lub kolumny i w polu PK wpisać Y 2. Aby utworzyć kolumnę klucza obcego należy dodać ją samodzielnie do tabeli wybierając z listy komponentów i połączyć ją za pomocą przycisku Link z właściwą tabelą. Dodatkowo kolumna ta musi zostać oznaczona za pomocą dwuznakowego kodu FK uzupełnionego opcjonalnie numerami od 1 do 99. Numer ten jest obowiązkowy, jeśli w tabeli znajduje się więcej niż jeden klucz obcy. Podobna zasada nazewnictwa dotyczy kluczy alternatywnych. 13