TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO



Podobne dokumenty
Transformacja modelu EER do postaci relacyjnego modelu danych. Zbyszko Królikowski

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

Transformacja modelu ER do modelu relacyjnego

Transformacja modelu ER do modelu relacyjnego

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

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

Temat: Modelowanie schematu bazy danych za pomocą diagramów związków encji (Entity Relationship Diagrams ERD)

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

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

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

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

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

Modelowanie danych, projektowanie systemu informatycznego

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

Model relacyjny. Wykład II

Modelowanie danych. Biologiczne Aplikacje Baz Danych

Spis treści. 1 Modelowanie logiczne. Plan wykładu. 1 Modelowanie logiczne 1

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

Bazy danych. Plan wykładu. Diagramy ER. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych. Podstawy modeli relacyjnych

PLAN WYKŁADU BAZY DANYCH MODEL DANYCH. Relacyjny model danych Struktury danych Operacje Integralność danych Algebra relacyjna HISTORIA

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

Wykład 2. Relacyjny model danych

Transformacja modelu pojęciowego. do logicznego

1 Wstęp do modelu relacyjnego

MODELOWANIE DANYCH. Biologiczne Aplikacje Baz Danych. dr inż. Anna Leśniewska

Zasady transformacji modelu DOZ do projektu tabel bazy danych

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Autor: Joanna Karwowska

Relacyjny model danych

1. Mapowanie diagramu klas na model relacyjny.

Diagramy związków encji ERD Ćwiczenia w modelowaniu danych

Modelowanie danych Model związków-encji

Bazy danych. Algebra relacji

Projektowanie bazy danych

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

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

Bazy Danych. Modele danych. Krzysztof Regulski WIMiIP, KISiM,

Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko

Tworzenie modelu logicznego i fizycznego danych.

1 Projektowanie systemu informatycznego

WPROWADZENIE DO BAZ DANYCH

1. Analiza wymagań Opis środowiska

Przykłady normalizacji

Bazy danych. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski

Bazy danych wykład trzeci. trzeci Przekształcenie modelu ER na model relacyjny 1 / 19

Technologia informacyjna

Bazy danych 2. Wykład 2 czyli Kilka słów o tworzeniu aplikacji bazodanowej

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

Agnieszka Ptaszek Michał Chojecki

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

Aplikacje bazodanowe. Laboratorium 1. Dawid Poªap Aplikacje bazodanowe - laboratorium 1 Luty, 22, / 37

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Bazy danych Wykład zerowy. P. F. Góra

Baza danych. Modele danych

Projektowanie Systemów Informacyjnych

Bazy danych Ćwiczenia projektowe

Modelowanie związków encji. Oracle Designer: Diagramy związków encji. Encja (1)

Modelowanie związków encji. Etapy budowy systemu informatycznego przedsiębiorstwa (1/4) Etapy budowy systemu informatycznego przedsiębiorstwa (2/4)

FUNKCJE SZBD. ZSE - Systemy baz danych 1

Modelowanie związków encji. Etapy budowy systemu informatycznego przedsiębiorstwa (1/4) Etapy budowy systemu informatycznego przedsiębiorstwa (2/4)

Cel normalizacji. Tadeusz Pankowski

Projektowanie baz danych

Model relacyjny bazy danych

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

Technologie baz danych

Projekt aplikacji prywatnej przychodni weterynaryjnej

Paweł Kurzawa, Delfina Kongo

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Relacyjny model danych

Modelowanie danych Model związków-encji

Model relacyjny. Wykład II

Bazy Danych egzamin poprawkowy, 2012 rozwiazania

Wykład 8. SQL praca z tabelami 5

Bazy danych i usługi sieciowe

Bazy danych. Andrzej Bobyk

Bazy danych. Bazy danych. Podstawy języka SQL. Dr inż. Paweł Kasprowski.

I. Język manipulowania danymi - DML (Data Manipulation Language). Polecenia INSERT, UPDATE, DELETE

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

Program wykładu. zastosowanie w aplikacjach i PL/SQL;

- Przedmiot kończy się egzaminem - Egzamin ma formę testu teoretycznego

Technologie baz danych

Wykład II Encja, atrybuty, klucze Związki encji. Opracowano na podstawie: Podstawowy Wykład z Systemów Baz Danych, J.D.Ullman, J.

Podstawowe pakiety komputerowe wykorzystywane w zarządzaniu przedsiębiorstwem. dr Jakub Boratyński. pok. A38

Aspekty aktywne baz danych

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Baza danych. Baza danych to:

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

SQL DDL DML TECHNOLOGIE BAZ DANYCH. Wykład 5: Język DDL i DML. Małgorzata Krętowska

Normalizacja relacyjnych baz danych. Sebastian Ernst

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Normalizacja. Pojęcie klucza. Cel normalizacji

Bazy danych. Plan wykładu. Zależności funkcyjne. Wykład 2: Relacyjny model danych - zależności funkcyjne. Podstawy SQL.

Modelowanie konceptualne model EER

Bazy danych i usługi sieciowe

Wykorzystanie oprogramowania Oracle Designer do budowy systemów informatycznych

Bazy danych wykład trzeci. trzeci Modelowanie schematu bazy danych 1 / 40

Tworzenie baz danych i tabel

Krzysztof Kadowski. PL-E3579, PL-EA0312,

MSI dr. Inż. Mariusz Trzaska. obiektowych językach programowania

Relacyjny model danych. Relacyjny model danych

Transkrypt:

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO Biologiczne Aplikacje Baz Danych dr inż. Anna Leśniewska alesniewska@cs.put.poznan.pl

REPETYTORIUM Schemat bazy danych zbiór schematów relacji Relacja (tabela) dwuwymiarowa tabela będąca implementacją encji. Kolumny tabeli są atrybutami. Wiersze tabeli to krotki - reprezentują wystąpienia encji Klucz podstawowy (główny) (identyfikator): atrybut lub zbiór atrybutów wybrany spośród kluczy potencjalnych do identyfikacji krotek relacji. Klucz obcy: atrybut lub zbiór atrybutów relacji, który jest kluczem podstawowym w innej relacji. Klucz obcy służy do logicznego powiązania krotek dwóch relacji.

TRANSFORMACJA Transformacja modelu ER jest konieczna, ponieważ jak pamiętamy jest on modelem abstrakcyjnym, niezależnym od implementacji. Transformujemy do modelu relacyjnego, który jest modelem implementacyjnym baz danych. Transformacji podlegają wszystkie obiekty modelu ER, czyli encje z atrybutami, związki i hierarchie encji.

TRANSFORMACJA DO SCHEMATU RELACYJNEGO - SCENARIUSZ 1. Transformacja encji Dla każdej encji, która nie tworzy hierarchii encji, utwórz relację odwzorowując atrybuty encji na nazwy kolumn relacji. Utwórz klucz podstawowy relacji na podstawie unikalnego identyfikatora encji. Hierarchie encji transformuj zgodnie z odpowiednimi regułami # Id_pracownika * Imię * Nazwisko o Adres_ulica o Adres_miasto

TRANSFORMACJA ENCJI # Id_pracownika * Imię * Nazwisko o Adres_ulica o Adres_miasto PRACOWNICY ( id_pracownika PRIMARY KEY, imię NOT NULL, nazwisko NOT NULL, adres_ulica NULL, adres_miast NULL ) Reguły transformacji encji: Nazwę encji wyrażoną w liczbie mnogiej przenosimy jako nazwę relacji. Atrybuty encji przenosimy jako nazwy kolumn (atrybuty) relacji. Unikalny identyfikator encji przenosimy jako klucz podstawowy relacji. Obligatoryjność atrybutu encji przenosimy jako ograniczenie NOT NULL atrybutu relacji. Opcjonalność atrybutu encji przenosimy jako własność NULL atrybutu relacji.

TRANSFORMACJA ZWIĄZKÓW Reguły transformacji związków: Związek binarny 1:1 transformuje się do klucza obcego we wskazanej tabeli. Związek unarny 1:1 transformuje się do klucza obcego w tej samej tabeli. Związek binarny 1:M transformuje się do klucza obcego w tabeli po stronie "wiele". Związek binarny M:N transformuje się do tabeli. Związek unarny M:N transformuje się do tabeli.

ZWIĄZEK BINARNY Związek binarny 1:1 obligatoryjny lub opcjonalny Jednostronnie bądź obustronnie # Id_pracownika * Imię * Nazwisko o Adres_ulica o Adres_miasto DZIAŁ # Id_działu *Nazwa o Adres

TRANSFORMACJA ZWIĄZKÓW 1:1 ZWIĄZEK DWUSTRONNIE OPCJONALNY Zasady transformacji: Tworzymy klucz obcy w relacji o mniejszej liczbie krotek, na podstawie klucza podstawowego drugiej relacji. Na atrybuty klucza obcego nakładamy ograniczenie referencyjne.

TRANSFORMACJA ZWIĄZKÓW 1:1 ZWIĄZEK DWUSTRONNIE OPCJONALNY # Id_pracownika * Imię * Nazwisko o Adres_ulica zarządza jest kierowany przez DZIAŁ # Id_działu * Nazwa o Adres Zasady transformacji: Tworzymy klucz obcy w relacji o mniejszej liczbie krotek, na podstawie klucza podstawowego drugiej relacji. Która tabela będzie miała mniejszą liczbę krotek?

TRANSFORMACJA ZWIĄZKÓW 1:1 ZWIĄZEK DWUSTRONNIE OPCJONALNY # Id_pracownika * Imię * Nazwisko o Adres_ulica PRACOWNICY ( Id_P PRIMARY KEY... DZIAŁY ( Id_D PRIMARY KEY... zarządza Id_Kierownika FOREIGN KEY NULL REFERENCE Pracownicy (Id_P)) jest kierowany przez DZIAŁ # Id_działu * Nazwa o Adres Uzasadnienie: Tylko np. 10% pracowników pełni funkcje kierownicze

ZWIĄZEK DWUSTRONNIE OPCJONALNY Pracownik # IdPracownika * Nazwisko * Etat * Pensja wykorzystuje wykorzystywany przez Komputer # NrInwentarzowy * Biuro Pracownicy Komputery IdPracownika PRIMARY KEY Nazwisko NOT NULL Etat NOT NULL Pensja NOT NULL NrInwentarzowy FOREIGN KEY NrInwentarzowy PRIMARY KEY Biuro NOT NULL IdPracownika FOREIGN KEY IdPracownika NULL REFERENCES Pracownicy(IdPracownika) NrInwentarzowy NULL REFERENCES Komputery(NrInwentarzowy)

Transformacja związków 1:1 związek dwustronnie opcjonalny 1. Pracownicy IdPracownika PRIMARY KEY... NrInwentarzowy FOREIGN KEY Komputery NrInwentarzowy PRIMARY KEY Biuro NOT NULL IdPracownika FOREIGN KEY 2. Pracownicy IdPracownika PRIMARY KEY... Komputery NrInwentarzowy PRIMARY KEY Biuro NOT NULL IdPracownika FOREIGN KEY 3. Pracownicy IdPracownika PRIMARY KEY... NrInwentarzowy FOREIGN KEY Komputery NrInwentarzowy PRIMARY KEY Biuro NOT NULL

# id_pracownika * imię * nazwisko TRANSFORMACJA ZWIĄZKÓW 1:N zatrudniony na zajmowane przez PRACOWNICY ( Id_pracownika PRIMARY KEY Imię NOT NULL Nazwisko NOT NULL Stanowisko FOREIGN KEY NOT NULL REFERENCE Stanowiska(Nazwa) ) STANOWISKA ( Nazwa PRIMARY KEY Płaca_min NOT NULL Płaca_max NULL STANOWISKO # nazwa * płaca_min o płaca_max Zasady transformacji: Tworzymy klucz obcy w relacji po stronie "wiele" na podstawie klucza podstawowego relacji po stronie "jeden". Na atrybuty klucza obcego nakładamy ograniczenie referencyjne. Obligatoryjność związku po stronie "wiele" przenosimy jako ograniczenie NOT NULL atrybutów klucza obcego. Opcjonalność związku po stronie "wiele" przenosimy jako własność NULL atrybutów klucza obcego

TRANSFORMACJA ZWIĄZKÓW M:N Zasady transformacji: Związek M:N przenosimy jako nową relację Tworzymy klucze obce na podstawie kluczy podstawowych dwóch pozostałych relacji. Na atrybuty jednego i drugiego klucza obcego nakładamy dwa ograniczenia referencyjne. Wszystkie atrybuty relacji tworzą klucz podstawowy.

TRANSFORMACJA ZWIĄZKÓW M:N # id_pracownika * imię * nazwisko bierze udział w realizowany przez PROJEKT # nazwa_proj * data_rozpocz o data_zakoncz Relacja systemowa (związku) stanowiąca implementację związku M:N PRACOWNICY ( Id_pracownika PRIMARY KEY Imię NOT NULL Nazwisko NOT NULL ) PROJEKTY ( Nazwa_projektu PRIMARY KEY Data_rozpocz NOT NULL Data_zakoncz NULL ) UDZIAŁY_W_PROJEKTACH ( Id_pracownika REFERENCE Pracownicy(id_pracownika), Nazwa_projektu REFERENCE Projekty(Nazwa_projektu), PRIMARY KEY (Id_pracownika, Nazwa_projektu) )

TRANSFORMACJA ZWIĄZKÓW M:N # id_pracownika * imię * nazwisko pracuje nad jest realizowany przez PROJEKT # nazwa_proj * data_rozpocz o data_zakoncz A co w przypadku gdybyśmy chcieli przechowywać informację o liczbie godzin tygodniowo przepracowanych przez pracownika nad określonym projektem?

TRANSFORMACJA ZWIĄZKÓW M:N # id_pracownika * imię * nazwisko pracuje nad jest realizowany przez PROJEKT # nazwa_proj * data_rozpocz o data_zakoncz Jest to przypadek atrybutu charakteryzującego związek!

TRANSFORMACJA ZWIĄZKÓW M:N # id_pracownika * imię * nazwisko pracuje nad jest realizowany przez PROJEKT # nazwa_proj * data_rozpocz o data_zakoncz PRACOWNICY ( Id_pracownika PRIMARY KEY Imię NOT NULL Nazwisko NOT NULL ) PROJEKTY ( Nazwa_projektu PRIMARY KEY Data_rozpocz NOT NULL Data_zakoncz NULL ) UDZIAŁY_W_PROJEKTACH ( Id_pracownika REFERENCE Pracownicy(id_pracownika), Nazwa_projektu REFERENCE Projekty(Nazwa_projektu), Godziny NULL PRIMARY KEY (Id_pracownika, Nazwa_projektu) ) Atrybut związku

Ćwiczenie 1 Lecznica zwierząt Chcemy pamiętać w systemie podstawowe informacje o pacjentach lecznicy zwierząt, przy czym dla danego gatunku (np. pies) trzeba pamiętać rasę pacjenta (np. seter irlandzki). Lecznica zatrudnia lekarzy weterynarii. Lekarze w ramach swoich obowiązków przyjmują określonych pacjentów (wizyty). Wizyty mogą mieć różny charakter, tj. w ich trakcie mogą być wykonywane badania, zabiegi i operacje. Oczywiście za wizyty lecznica pobiera określone płatności. Chcemy wiedzieć jacy lekarze jakich pacjentów przyjmowali w ramach wizyt oraz jakie badania, zabiegi lub operacje tym pacjentom były wykonywane i przez kogo. O wszystkich wymienionych tutaj elementach tej dziedziny rzeczywistości, będziemy chcieli przechowywać odpowiednie informacje w projektowanej bazie danych. Zadanie: Dokonaj transformacji opracowanego modelu ER do postaci schematu relacyjnej bazy danych.

TRANSFORMACJA ZWIĄZKÓW REKURENCYJNYCH # id_prac * imię * nazwisko... kieruje podlega PRACOWNICY ( Id_pracownika PRIMARY KEY..., id_szefa REFERENCE Pracownicy(id_pracownika) ) Zasady transformacji: Zasady transformacji związków rekurencyjnych analogicznie jak w przypadku związków 1:1, 1:N oraz M:N.

TRANSFORMACJA ZWIĄZKÓW REKURENCYJNYCH zastępuje Lek # IdLeku * Nazwa jest zastępowany Leki IdLeku PRIMARY KEY Nazwa NOT NULL Zastępniki IdLeku1 IdLeku2 IdLeku1 NOT NULL REFERENCES Leki(IdLeku) IdLeku2 NOT NULL REFERENCES Leki(IdLeku) PRIMARY KEY (IdLeku1, IdLeku2)

TRANSFORMACJA HIERARCHII ENCJI DO TRZECH RELACJI # id_prac atrybuty_wspólne KRAJOWY ZAGRANICZNY atr_specyf_kraj atr_specyf_zagr PRACOWNICY ( Id_pracownika PRIMARY KEY atrybuty_wspólne, typ_prac NOT NULL ) PRACOWNICY_KRAJ ( Id_pracownika PRIMARY KEY atr_specyf_kraj ) PRACOWNICY_ZAGR ( Id_pracownika PRIMARY KEY atr_specyf_zagr ) Zasady transformacji: Tworzymy jedną relację zawierająca atrybuty wspólne i atrybut określający typ specjalizacji Dla każdej specjalizacji tworzymy relację zawierającą jej atrybuty specyficzne i klucz podstawowy dziedziczony z generalizacji.

TRANSFORMACJA HIERARCHII ENCJI DO DWÓCH RELACJI # id_prac atrybuty_wspólne KRAJOWY atr_specyf_kraj ZAGRANICZNY atr_specyf_zagr PRACOWNICY_KRAJ ( Id_pracownika PRIMARY KEY atrybuty wspólne atr_specyf_kraj ) PRACOWNICY_ZAGR ( Id_pracownika PRIMARY KEY atrybuty wspólne atr_specyf_zagr ) Zasady transformacji: Dla każdej specjalizacji tworzymy relację zawierającą atrybuty wspólne, atrybuty specyficzne danej specjalizacji i klucz podstawowy dziedziczony z generalizacji.

TRANSFORMACJA HIERARCHII ENCJI DO JEDNEJ RELACJI # id_prac atrybuty_wspólne KRAJOWY atr_specyf_kraj ZAGRANICZNY atr_specyf_zagr PRACOWNICY ( Id_pracownika PRIMARY KEY atrybuty wspólne atr_specyf_kraj NULL atr_specyf_zagr NULL typ_prac NOT NULL) Zasady transformacji: Tworzymy relację zawierającą atrybuty wspólne, atrybuty specyficzne wszystkich specjalizacji i atrybut określający typ specjalizacji. Wszystkim atrybutom specyficznym poszczególnych specjalizacji nadajemy własność NULL.

TRANSFORMACJA HIERARCHII ENCJI ZWIĄZKI WYŁĄCZNE (ŁUK) Rachunek bankowy # Numer * Rodzaj * Saldo * Data Osoba fizyczna # NIP * Nazwisko Osoba prawna # REGON * Nazwa Rachunki_Bankowe Numer PRIMARY KEY Rodzaj NOT NULL Saldo NOT NULL Data NOT NULL NIP NULL REFERENCES OsobyFizyczne(NIP) REGON NULL REFERENCES OsobyPrawne(REGON)