Transformacja modelu EER do modelu relacyjnego

Slides:



Advertisements
Podobne prezentacje
Relacyjny model danych
Advertisements

Relacyjny model danych
WPROWADZENIE DO BAZ DANYCH
Obiektowe Bazy Danych Paweł Ciach.
MS Access 2000 Normalizacja Paweł Górczyński 2005.
Domknięcie przechodnie (również) w bazach danych
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 7: Relacje i ograniczenia integralnościowe Język definiowania danych - DDL (Data Definition.
(c) 1999, Instytut Informatyki Politechniki Poznańskiej Rozdział 8: Perspektywy i sekwencery.
Relacyjny Model Danych
Modelowanie model związków encji
Język definicji danych (Data Definition Language)
Język definicji danych (Data Definition Language)
POWTÓRZENIE Normalizacja: Pojęcia: redundancja danych;
POWTÓRZENIE Metodologia : Pojęcia:
Projektowanie relacyjnych baz danych
WYKONYWANIE ZAPYTAŃ Przygotował Lech Banachowski na podstawie: 1.Raghu Ramakrishnan, Johannes Gehrke, Database Management Systems, McGrawHill, 2000 (książka.
Modele baz danych - spojrzenie na poziom fizyczny
Język SQL (Structured Query Language) DDL (Data Definition Language)
Projektowanie struktury logicznej (schematu) relacyjnych baz danych
Teoria relacyjnych baz danych
Bazy Danych II prowadzący: mgr inż. Leszek Siwik
OPERACJA DZIELENIA W SQL
Zależności funkcyjne.
DIAGRAMY ER 2 (ENTITY-RELATIONSHIP DIAGRAMS 2) Ćwiczenia 2.
Diagramy ER (Entity-relationship diagrams)
Bazy danych.
Systemy baz danych Wykład 1
Budowanie tabel i relacji
Informatyka Relacyjne bazy danych.
Andrzej Macioł Bazy danych – model relacyjny – cz. 1 Andrzej Macioł
SQL - Structured Query Language
Jak zacząć w MS SQL? USE master; GO IF DB_ID (Nbaza') IS NOT NULL DROP DATABASE baza; GO CREATE DATABASE baza; GO USE baza; GO.
Wybrane zagadnienia relacyjnych baz danych
WPROWADZENIE DO BAZ DANYCH
Model relacyjny.
Bazy danych 1 Literatura: Paul Benon-Davies – Systemy baz danych
Projektowanie relacyjnych baz danych – postacie normalne
Projektowanie bazy danych
Łódź 2008 Banki danych WYKŁAD 2 dr Łukasz Murowaniecki T-109.
1 SBD, L.Banachowski Podstawy SQL - języka relacyjnych i obiektowo-relacyjnych baz danych (SQL2, SQL'1999, Oracle) Powtórzenie wyk ł adu 3.
Wykład I Podstawy relacyjnych baz danych Powtórzenie wiadomości
Systemy Baz Danych Wykład III
Temat 3: Integralność danych. Integralność danych, określana również mianem spójności danych, jest to funkcja SZBD, która gwarantuje, że dane nie zostaną.
Michał Krawczykowski kl. IIIB
Definiowanie kluczy w tabelach RBD
Model obiektowy bazy danych
Slajd 1© J.Rumiński Jacek Rumiński  Bazy danych Kontakt: Katedra Inżynierii Biomedycznej, pk. 106, tel.: , fax: ,
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 SBD, L.Banachowski Zaawansowane cechy SQL Powtórzenie wyk ł adu 5.
Projektowanie relacyjnych baz danych – diagramy związków encji
… pracuje za Ciebie: Arkusz jako relacyjna baza danych Jak efektywnie uporządkować i przetwarzać dane w Excelu.
1 SBD, L.Banachowski Oprogramowanie strony serwera cz. 1 Powtórzenie wyk ł adu 6.
Projektowanie bazy danych z użyciem diagramów UML Obiektowe projektowanie relacyjnej bazy danych Paweł Jarecki.
Relacja (ang.relation) Po podzieleniu danych na tabele i zdefiniowaniu pól kluczy podstawowych trzeba wprowadzić do systemu bazy danych informacje na temat.
Modelowanie model związków encji
Bazy Danych Wprowadzenie
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
1 W wykładzie 2 zaprezentowana jest podstawowa metoda tworzenia schematu relacyjnej bazy danych. Jest ona dwustopniowa. W pierwszej fazie projektujemy.
Modelowanie Danych (ERD) – część 1 (Wspomaganie Modelowania danych)
Prototypowanie w ORACLE DESIGNER Transformacja Modelu danych.
Oracle Data Modeler (4.1). Aplikacja Wymagania biznesowe Tworzenie systemu informacyjnego Procesy Informacje Analiza Projektowanie Browser: Hollywood.
Bazy danych. Baza danych (database) – magazyn danych – informacji powiązanych tematycznie, umożliwiający ich wyszukiwanie według zadanych kryteriów Baza.
Temat: Tworzenie bazy danych
MODELOWANIE DANYCH - DIAGRAMY ENCJI-ZWIĄZKÓW Notacja Barkera.
Indeksy.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Technologie Informacyjne Bazy danych
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Transformacja modelu EER do modelu relacyjnego

Pojęcia podstawowe Schemat logiczny bazy danych Zbiór schematów relacji, na którym operują aplikacje bazy danych. Relacja (tablica) Dwuwymiarowa tablica. Kolumny tablicy nazywamy atrybutami. Wiersze tablicy nazywamy krotkami - każda krotka reprezentuje wystąpienie encji. Atrybut Cecha lub własność encji - kolumna tablicy Klucz potencjalny Atrybut lub zbiór atrybutów jednoznacznie identyfikujący krotki relacji Klucz podstawowy Atrybut lub zbiór atrybutów - wybrany spośród kluczy potencjalnych Klucz obcy Atrybut lub zbiór atrybutów będący kluczem podstawowym innej relacji

Reguły transformacji (1) Podstawowe reguły transformacji modelu EER do modelu relacyjnego generują trzy typy schematów relacji: Schemat relacji encji Schemat relacji encji jest generowany zawsze dla encji występujących w związkach binarnych typu: wiele-do-wiele, jeden-do-wiele (po stronie “jeden”), lub jeden-do-jeden (po jednej wybranej stronie); dla encji występujących w związkach binarnych rekursywnych typu wiele-do-wiele; oraz dla encji występujących w związkach ternarnych lub związkach wyższych stopni relationship, oraz dla hierarchii generalizacji

Reguły transformacji (2) Schemat relacji encji z kluczem obcym Schemat relacji encji z kluczem obcym jest generowany zawsze dla encji występujących w związkach binarnych typu jeden-do-wiele (po stronie “wiele”) lub jeden-do-jeden (po jednej wybranej stronie); dla encji występujących w związkach binarnych rekursywnych typu jeden-do-wiele lub jeden-do-jeden

Reguły transformacji (3) Schemat relacji związku Schemat relacji związku jest generowany zawsze dla związków binarnych typu wiele-do-wiele, dla związków binarnych rekursywnych typu wiele-do-wiele, oraz wszystkich związków ternarnych oraz związków wyższych stopni

Reguły transformacji (4) Następujące reguły odnoszą się do wartości pustych generowanych regułami transformacji: Wartości puste są dozwolone w relacjach encji z kluczem obcym dla kluczy obcych odpowiadających encjom należącym do klasy przynależności opcjonalnej Wartości puste są zabronione w relacjach encji z kluczem obcym dla kluczy obcych odpowiadających encjom należącym do klasy przynależności obowiązkowej Wartości puste są zabronione w relacjach związków dla atrybutów należących do kluczy podstawowych tych relacji

Transformacja encji Reguły transformacji: EMPLOYEE ( Nazwa encji jest odwzorowywana w nazwę schematu relacji Atrybuty encji są odwzorowywane w nazwy atrybutów schematu relacji Unikalny identyfikator encji jest transformowany w klucz podstawowy schematu relacji Obowiązkowość atrybutów encji jest reprezentowana w schemacie relacji w postaci ograniczenia NOT NULL zdefiniowanego na atrybucie schematu relacji Opcjonalność atrybutów encji jest reprezentowana w schemacie relacji w postaci własności NULL zdefiniowanej na atrybucie schematu relacji Pozostałe ograniczenia integralnościowe zdefiniowane dla atrybutów encji są reprezentowane w sposób identyczny dla atrybutów schematu relacji EMPLOYEE # id_employee * first_name * last_name o address_street o address_city EMPLOYEE ( id_employee PRIMARY KEY, first_name NOT NULL, last_name NOT NULL, address_street NULL, address_city NULL )

Transformacja związku 1:1 Związek 1:1 jednostronnie obowiązkowy SALE OF ARTICLE # sale_id * sale_date * value RETURN # id_return * date o reason withdraw concern Reguły transformacji: Klucz obcy jest dodawany do schematu relacji po stronie „obowiązkowy” Ograniczenia referencyjne są definiowane dla klucza obcego SALES ( sale_id PRIMARY KEY, sale_date NOT NULL, value NOT NULL ) RETURNS ( id_return PRIMARY KEY, date NOT NULL, reason NULL, id_sale NOT NULL REFERENCES sales(sale_id)) Związek 1:1 dwustronnie opcjonalny Reguły transformacji: Klucz obcy jest dodawany do schematu relacji o mniejszej liczbie krotek Ograniczenia referencyjne są definiowane dla klucza obcego A # id_A ... B # id_B ...

Transformacja związku 1:N EMPLOYEE # emp_id * first_name * name POSITION # name * wages_min o wages_max works_on is_occupied_by Reguły transformacji: Klucz obcy jest dodawany do schematu relacji po stronie „wiele” Ograniczenia referencyjne są definiowane dla klucza obcego Obowiązkowość związku po stronie “wiele” jest reprezentowana przez ograniczenie NOT NULL definiowane na kluczu obcym schematu relacji Opcjonalność związku po stronie “wiele” jest reprezentowana przez własność NULL definiowaną na kluczu obcym schematu relacji Opcjonalność lub obowiązkowość związku po stronie “jeden” nie jest definiowana w modelu relacyjnym POSITIONS ( name PRIMARY KEY, wages_min NOT NULL, wages_max NULL ) EMPLOYEES ( emp_id PRIMARY KEY, first_name NOT NULL, name NOT NULL, position NOT NULL, REFERENCES positions(name) )

Transformacja związku M:N EMPLOYEE # emp_id * first_name * name PROJECT # project_name * start_date o end_date works_on worked_on Reguły transformacji: Utwórz schemat relacji związku dla związku typu M:N Nowy schemat relacji zawiera klucze obce odpowiadające kluczom podstawowym wiązanych encji Ograniczenia referencyjne są definiowane dla kluczy obcych Klucze obce tworzą klucz podstawowy utworzonego schematu relacji związku EMPLOYEES ( emp_id PRIMARY KEY, first_name NOT NULL, name NOT NULL ) PROJECTS ( project_name PRIMARY KEY, start_date NOT NULL, end_date NULL ) WORKS-ON ( emp_id REFERENCES employees(emp_id), proj_name REFERENCES projects(project_name), PRIMARY KEY(emp_id, proj_name))

Transformacja binarnych związków rekursywnych Reguły transformacji podobne do stosowanych dla związków binarnych typu 1:1, 1:N i M:N. Związek binarny rekursywny 1:1 EMPLOYEES ( emp_id PRIMARY KEY, ..., id_spouse REFERENCES employees(emp_id)) EMPLOYEE # emp_id * first_name * name ... is married is married Związek binarny rekursywny 1:N EMPLOYEES ( emp_id PRIMARY KEY, ..., id_boss REFERENCES employees(emp_id)) EMPLOYEE # emp_id * first_name * name ... monitors subordinate Związek binarny rekursywny M:N substitute EQUIVALENTS ( id_med NOT NULL REFERENCES medicines(id_med), id_equ NOT NULL REFERENCES medicines(id_med), PRIMARY KEY (id_med, id_equ)) MEDICINE # id_medicine * name o comment is equivalent

Transformacja związków ternarnych Typ: „wiele” dla wszystkich encji EMPLOYEE # emp_id ... ROLE # name PROJECT # project_name worked_on works_on as Reguły transformacji: Utwórz schemat relacji związku dla związku ternarnego ternary Nowy schemat relacji zawiera klucze obce odpowiadające kluczom podstawowym wiązanych encji Klucze obce tworzą klucz podstawowy utworzonego schematu relacji związku PARTICIPATION_IN_PROJ ( emp_id NOT NULL REFERENCES employees(emp_id), project NOT NULL REFERENCES projects(project_name), role NOT NULL REFERENCES roles(name), PRIMARY KEY (emp_id, project, role) )

Transformacja związków ternarnych Typ: „jeden” dla jednej z encji works_on Reguły transformacji: Utwórz schemat relacji związku dla związku ternarnego ternary Nowy schemat relacji zawiera klucze obce odpowiadające kluczom podstawowym wiązanych encji Klucz podstawowy schematu relacji składa się z kluczy obcych do encji po stronie „wiele” EMPLOYEE # emp_id ... as ROLE # name ... worked_on PROJECT # project_name ... PARTICIPATION_IN_PROJ ( emp_id NOT NULL REFERENCES employees(emp_id), project NOT NULL REFERENCES projects(project_name), role REFERENCES roles(name), PRIMARY KEY (emp_id, project, ) )

Transformacja hierarchii generalizacji - do trzech schematów relacji EMPLOYEE # emp_id common_attributes Reguły transformacji: Utwórz schemat relacji „supertype” zawierającej klucz podstawowy, atrybuty wspólne oraz jeden atrybut definiujący typ generalizacji. CONTRACT EMPLOYEE specific_attr HOURLY EMPLOYEE specific_attr Dla każdej encji „subtype” utwórz schemat relacji „subtype” zawierającej atrybuty specyficzne i klucz podstawowy dziedziczony z relacji „supertype” EMPLOYEES ( emp_id PRIMARY KEY, common_attributes, job_type NOT NULL ) CONTRACT_EMPLOYEES ( specific_attr ) HOURLY_EMPLOYEES ( CONTRACT_EMPLOYEES (emp_id, common_attributes, specific_attr) AS select emp_id, common_attributes, specific_attr from EMPLOYEES w, CONTRACT_EMPLOYEES cw where w.emp_id = cw.emp_id; HOURLY_EMPLOYEES from EMPLOYEES w, HOURLY_EMPLOYEES fw where w.emp_id = fw.emp_id;

Transformacja hierarchii generalizacji - do dwóch schematów relacji EMPLOYEE # emp_id common_attributes CONTRACT EMPLOYEE specific_attr HOURLY EMPLOYEE specific_attr Reguły transformacji: Dla każdej encji „subtype” utwórz schemat relacji „subtype” zawierającej atrybuty wspólne, atrybuty specyficzne, oraz klucz podstawowy dziedziczony z encji „supertype „ CONTRACT_EMPLOYEES ( emp_id PRIMARY KEY, common_attributes, specific_attr ) HOURLY_EMPLOYEES ( emp_id PRIMARY KEY, EMPLOYEES (emp_id, common_attributes, job_type) AS select emp_id, common_attributes, ‘CONTRACT’ from CONTRACT_EMPLOYEES union select emp_id, common_attributes, ‘HOURLY’ from HOURLY_EMPLOYEES;

Transformacja hierarchii generalizacji - do jednego schematu relacji EMPLOYEE # emp_id common_attributes Reguły transformacji: Utwórz jeden schemat relacji zawierający: atrybuty wspólne, atrybuty specyficzne oraz atrybut definiujący typ generalizacji CONTRACT EMPLOYEE specific_attr HOURLY EMPLOYEE specific_attr EMPLOYEES ( emp_id PRIMARY KEY, common_attribute, specific_attr NULL, job_type NOT NULL ) CONTRACT_EMPLOYEES (emp_id, common_attributes, specific_attr) AS select emp_id, common_attributes, specific_attr from EMPLOYEES where job_type = ‘CONTRACT’; HOURLY_EMPLOYEES from EMPLOYEES where job_type = ‘HOURLY’;

Transformacja łuków Metoda 1. Wspólny klucz obcy ACCOUNT INDIVIDUAL COMPANY concerns Metoda 1. Wspólny klucz obcy ACCOUNT ( account_number INTEGER(6) PRIMARY KEY, ... , concerns CHAR(1) NOT NULL CHECK(concerns IN (’I’,’C’)), account_balance INTEGER(8) NOT NULL) Wtedy, gdy identyfikatory encji posiadają wspólną domenę Metoda 2. Indywidualny klucz obcy ACCOUNT ( account_number INTEGER(6) PRIMARY KEY, ... , id_ind_account CHAR(5) NULL REFERENCES individuals(kod_śr), id_comp_account INTEGER(8) NULL REFERENCES companies(id_furn) ) Wtedy, gdy identyfikatory encji posiadają różne domeny