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

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

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

Transformacja modelu ER do modelu relacyjnego

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

Zasady transformacji modelu DOZ do projektu tabel bazy danych

Transformacja modelu ER do modelu relacyjnego

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

Technologia informacyjna

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

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

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

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

Bazy Danych 2008 Część 1 Egzamin Pisemny

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

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

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

Autor: Joanna Karwowska

Tworzenie tabel. Bazy danych - laboratorium, Hanna Kleban 1

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

1 Wstęp do modelu relacyjnego

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

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

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

Bazy danych 1. Wykład 4 Metodologia projektowania baz danych

Model relacyjny. Wykład II

SIECI KOMPUTEROWE I BAZY DANYCH

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

Projektowanie Systemów Informacyjnych

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

Projektowanie struktury danych

Modelowanie danych, projektowanie systemu informatycznego

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Wykład 8. SQL praca z tabelami 5

Wykład 2. Relacyjny model danych

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

1. Mapowanie diagramu klas na model relacyjny.

1 Projektowanie systemu informatycznego

Przykładowa baza danych BIBLIOTEKA

Bazy danych. Algebra relacji

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

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

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Normalizacja baz danych

WYKŁAD 1. Wprowadzenie do problematyki baz danych

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

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

3 Przygotowali: mgr inż. Barbara Łukawska, mgr inż. Maciej Lasota

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

PRZYKŁAD. Prosta uczelnia. Autor: Jan Kowalski nr indeksu: (przykładowy projekt)

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

SIECI KOMPUTEROWE I BAZY DANYCH

Tworzenie modelu logicznego i fizycznego danych.

System zarządzania bazą danych SZBD (ang. DBMS -Database Management System)

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

Literatura: SQL Ćwiczenia praktyczne Autor: Marcin Lis Wydawnictwo: Helion. Autor: Joanna Karwowska

Księgarnia PWN: Michael J. Hernandez Bazy danych dla zwykłych śmiertelników

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

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

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

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

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

Bazy danych. Bazy danych. Zapytania SELECT. Dr inż. Paweł Kasprowski.

Bazy danych 2. Wykład 3. Metodologia projektowania baz danych (projektowanie fizyczne)

Autor: Joanna Karwowska

Technologie baz danych

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

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

Informacje wstępne Autor Zofia Kruczkiewicz Wzorce oprogramowania 4

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Bazy danych - wykład wstępny

Projektowanie bazy danych przykład

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

WPROWADZENIE DO BAZ DANYCH

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

Projektowanie systemów baz danych

Projekt małej Bazy Danych.

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

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

BAZY DANYCH model relacyjny. Opracował: dr inż. Piotr Suchomski

Aspekty aktywne baz danych

Wykład 05 Bazy danych

Projektowanie warstwy danych

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

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Wprowadzenie do projektowania i wykorzystania baz danych Relacje

Transformacja modelu pojęciowego. do logicznego

Projektowanie baz danych

Relacyjne bazy danych. Podstawy SQL

Wykład 5 Charakterystyka języka SQL. Elementy obliczeń relacyjnych.

PRZEWODNIK PO PRZEDMIOCIE

Obiektowość BD Powtórka Czas odpowiedzi. Bazy Danych i Systemy informacyjne Wykład 14. Piotr Syga

Model relacyjny. Wykład II

W poniŝszej tabeli zestawiono charakterystyki poszczególnych postaci normalnych bazy.

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

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Paweł Rajba

Bazy danych i usługi sieciowe

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

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

Transkrypt:

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

Projektowanie logiczne przegląd krok po kroku 1. Usuń własności niekompatybilne z modelem relacyjnym 2. Wyznacz relacje dla logicznego modelu danych 3. Wykonaj normalizację relacji 4. Sprawdź, czy relacje umoŝliwiają realizacje transakcji. 5. Wyznacz więzy integralności. 6. Omów logiczny model danych z uŝytkownikiem.

Projektowanie logiczne (krok 1) 1. Usuń własności niekompatybilne z modelem relacyjnym Związki złoŝone Atrybuty wielowartościowe

Usunięcie związków złoŝonych Personel Rejestruje 1..1 1..1 Klient 0..* Biuro Przetwarza Personel Rejestracja Rejestruje Biuro 1..1 0..* 0..* 1..1 1..1 Potwierdza 1..1 Klient

Usunięcie atrybutów wielowartościowych Biuro NrBiura Adres NrTel [1..3] Biuro NrBiura Adres Udostępnia 1..1 1..3 Telefon NrTel

Projektowanie logiczne (krok 2) 2. Wyznacz relacje dla logicznego modelu danych Relacje będziemy opisywać za pomocą języka definiowania bazy danych DDL (DataBase Definition Language) Definicja (uproszczona) relacji w DDL zawiera: nazwę relacji (w liczbie mnogiej), ujętą w nawiasy listę prostych atrybutów relacji, klucz główny, wszystkie klucze alternatywne i obce, nazwę relacji zawierającą wskazany klucz obcy jako klucz główny listę atrybutów pochodnych wraz z wyraŝeniami definiującymi sposób wyliczenia ich wartości.

Projektowanie logiczne (krok 2) Przykład definicji relacji w DDL Relacja_A AtrybutA1 Relacja_A (, AtrybutA1) Primary Key Relacja_B Klucz_B AtrybutB1 <fk> Relacja_B (Klucz_B,, AtrybutB1) Primary Key Klucz_B Foreign Key references Relacja_A()

Projektowanie logiczne (krok 2) reguły transformacji 1. Dla kaŝdej encji tworzymy schemat relacji (reprezentacją relacji jest tabela). Najczęściej nazwa relacji jest taka sama jak nazwa encji, tylko w liczbie mnogiej ze względu na to, ze relacja zawiera wiele wystąpień obiektu. 2. Atrybuty encji stają się atrybutami w schemacie relacji. Atrybuty odpowiadające kluczom głównym stają się kluczami głównymi relacji. Atrybuty opcjonalne stają się kolumnami o dopuszczalnych wartościach NULL, atrybuty obligatoryjne stają się kolumnami NOT NULL. 3. Sposób tworzenia kluczy obcych zaleŝy od liczności (krotności) oraz uczestnictwa encji w związku.

Reguły transformacji związki typu 1:1 Uczestnictwo obowiązkowe po obu stronach związku A - 1..1 1..1 B - Klucz_B Z encji A i B tworzymy jeden schemat relacji RAB, który zawiera atrybuty obu encji, a kluczem głównym jest klucz główny encji A lub klucz główny encji B. RAB Klucz_B

Reguły transformacji związki typu 1:1 Uczestnictwo obowiązkowe po jednej stronie związku A - 1..1 0..1 B - Klucz_B Z encji A i B tworzymy schematy relacji RA i RB; do schematu RB wstawiamy jako dodatkowy atrybut klucz główny ze schematu RA. RA RB Klucz_B <fk>

Reguły transformacji związki typu 1:1 Uczestnictwo opcjonalne po obu stronach związku A - 0..1 0..1 B - Klucz_B Dopuszczalne róŝne rozwiązania: -tworzymy relacje RA i RB przy czym klucz główny jednej z nich umieszczamy w relacji drugiej jako klucz obcy (wartości NULL) - tworzymy schematy relacji RA i RB, a związek reprezentujemy nowym schematem RAB, który zawiera dwa klucze obce - klucz główny relacji RA i klucz główny relacji RB RA Klucz_B RAB <pk,fk1> <pk,fk2> RB Klucz_B

Reguły transformacji związki typu 1:1 z atrybutami Przypadek gdy związek ma atrybuty A - 1..1 1..1 Zwiazek - Atrybut_Zwiazku B - Klucz_B Z encji A i B tworzymy schematy relacji RA i RB; związek reprezentujemy schematem RAB, który zawiera dwa klucze obce klucz główny ze schematu RA i klucz główny ze schematu RB - oraz atrybuty związku RA RB Klucz_B RAB Klucz_B Atrybut_Zwiazku <pk,fk1> <pk,fk2>

Reguły transformacji związki rekurencyjne typu 1:1 Uczestnictwo obowiązkowe po obu stronach związku 1..1 Rola2 A - 1..1 Rola1 Tworzymy jeden schemat relacji RA zawierający dwie kopie klucza głównego. Jedna kopia jest kluczem obcym i powinna mieć nazwę wskazującą na reprezentowany związek (rola). RA Rola1_ <fk1>

Reguły transformacji związki rekurencyjne typu 1:1 Uczestnictwo opcjonalne po jednej stronie związku 1..1 Rola2 A - 0..1 Rola1 Tworzymy schemat relacji RA z kluczem głównym odpowiadającym kluczowi głównemu encji A oraz schemat RAA, który zawiera dwa klucze obce klucze główne ze schematu RA - opatrzone rolą, którą encja sprawuje w związku. RA RAA Rola1_ Rola2_ <pk,fk1> <pk,fk2>

Reguły transformacji związki rekurencyjne typu 1:1 Uczestnictwo opcjonalne po obu stronach związku 0..1 Rola2 A - 0..1 Rola1 Tworzymy schemat relacji RA z kluczem głównym odpowiadającym kluczowi głównemu encji A oraz schemat RAA, który zawiera dwa klucze obce klucze główne ze schematu RA - opatrzone rolą, którą encja sprawuje w związku. RA RAA Rola1_ Rola2_ <pk,fk1> <pk,fk2>

Reguły transformacji związki rekurencyjne typu 1:1 z atrybutami Przypadek gdy związek ma atrybuty 1..1 Rola2 A - 1..1 Rola1 Zwiazek - Atrybut_Zwiazku Tworzymy schemat relacji RA z kluczem głównym odpowiadającym kluczowi głównemu encji A oraz schemat RAA, który zawiera dwa klucze obce klucze główne ze schematu RA - opatrzone rolą, którą encja sprawuje w związku oraz atrybuty związku. A RAA Rola1_ Rola2_ Atrybut_Zwiazku <pk,fk1> <pk,fk2>

Reguły transformacji związki typu 1:* Uczestnictwo obowiązkowe po stronie wiele związku A - 1..1 0..* B - Klucz_B Z encji A i B tworzymy schematy relacji RA i RB; do schematu RB wstawiamy jako dodatkowy atrybut klucz główny ze schematu RA. RA RB Klucz_B <fk>

Reguły transformacji związki typu 1:* Uczestnictwo opcjonalne po stronie wiele związku A - 0..1 0..* B - Klucz_B jak wyŝej Z encji A i B tworzymy schematy relacji RA i RB, jeśli duŝo wystąpień encji B nie uczestniczy w związku, to związek reprezentujemy schematem RAB, który zawiera dwa klucze obce klucz główny ze schematu RA i klucz główny ze schematu RB. RA Klucz_B RAB <pk,fk1> <pk,fk2> RB Klucz_B

Reguły transformacji związki typu 1:* z atrybutami Uczestnictwo obowiązkowe po stronie wiele związku A - 1..1 0..* Zwiazek - Atrybut_Zwiazku B - Klucz_B Z encji A i B tworzymy schematy relacji RA i RB; do schematu RB wstawiamy jako dodatkowy atrybut klucz główny ze schematu RA oraz atrybuty związku. RA RB Klucz_B Atrybut_Zwiazku <fk>

Reguły transformacji związki typu 1:* z atrybutami Uczestnictwo opcjonalne po stronie wiele związku A - 0..1 0..* B - Klucz_B Z encji A i B tworzymy schematy relacji RA i RB, jeśli duŝo wystąpień encji B nie uczestniczy w związku, to związek reprezentujemy schematem RAB, który zawiera dwa klucze obce klucz główny ze schematu RA i klucz główny ze schematu RB oraz atrybuty związku. RA RB Klucz_B RAB Klucz_B Atrybut_Zwiazku <pk,fk1> <pk,fk2>

Reguły transformacji związki typu *:* (bez i z atrybutami) Uczestnictwo opcjonalne po obu stronach A - 0..* 0..* Zwiazek - Atrybut_Zwiazku Z encji A i B tworzymy schematy relacji RA i RB, związek reprezentujemy schematem RAB, który zawiera dwa klucze obce klucz główny ze schematu RA i klucz główny ze schematu RB (oraz atrybuty związku). B - Klucz_B RA RB Klucz_B RAB Klucz_B Atrybut_Zwiazku <pk,fk1> <pk,fk2>

Reguły transformacji związki rekurencyjne typu *:* (bez i z atrybutami) Uczestnictwo opcjonalne po obu stronach 0..* Rola2 A - 0..* Rola1 Zwiazek - Atrybut_Zwiazku Z encji A schemat relacji RA, związek reprezentujemy schematem RAA, który zawiera dwa klucze obce klucze główne ze schematu RA opatrzone rolą, którą encja sprawuje w związku (oraz atrybuty związku). RA RAA Rola1_ Rola2_ Atrybut_Zwiazku <pk,fk1> <pk,fk2>

Metoda 1: Przekształcenie uogólnienia w schemat relacyjny tworzymy tabele: jedną dla nadklasy i po jednej dla kaŝdej podklasy; w tabelach podklas wstawiamy klucz tabeli nadklasy (jako klucz obcy). Wykorzystanie praktyczne: Schemat relacyjny uzyskany w ten sposób jest najlepszy z punktu widzenia normalizacji, moŝe on być jednak niewydajny przy częstych złączeniach tabeli nadrzędnej z tabelami podrzędnymi. Metoda ta moŝe przynieść dobre wyniki, jeśli: podklasy znacznie róŝnią się od siebie (mają wiele róŝnych atrybutów); podklasy są silnie przecinające się (jest wiele obiektów, które jednocześnie naleŝą do więcej niŝ jednej podklasy) wówczas łatwiej uniknąć jest niespójności danych (np. określona osoba moŝe być jednocześnie naleŝeć do klasy Student i Pracownik; modyfikując jej dane, na przykład atrybut Email, mamy pewność, Ŝe wystarczy nanieść zmiany w jednym miejscu: w tabeli [Osoba]).

Przekształcanie uogólnienia w schemat relacyjny metoda 1 Diagram klas Schemat relacji

Przekształcanie hierarchii Metoda 2: uogólnienia w schemat relacyjny tworzymy po jednej tabeli dla kaŝdej podklasy; do kaŝdej tabeli wstawiamy wszystkie atrybuty nadklasy. Wykorzystanie praktyczne: Stosujemy te metodą, gdy kaŝde wystąpienie nadklasy musi naleŝeć do przynajmniej jednej podklasy oraz podklasy dość znacznie róŝnią się Schemat ten jest wydajnie przetwarzany, jeśli są częste odwołania do tabel powstałych z podklas (unikamy złączeń tabel). Posługując się tą metodą tracimy zysk z zamodelowanego wcześniej uogólnienia (dziedziczenia) na przykład system nie rozpoznaje faktu, Ŝe obiekt zapisany w tabeli Student i Pracownik moŝe być samą osobą.

Przekształcanie uogólnienia w schemat relacyjny metoda 2 Diagram klas Schemat relacji

Metoda 3: Przekształcanie hierarchii uogólnienia w schemat relacyjny tworzymy dwie tabele: jedna reprezentuje nadklasę, a druga podklasy, do drugiej tabeli wstawiamy wszystkie atrybuty podklas oraz klucz główny nadklasy jako klucz obcy; w razie potrzeby dodajemy pole rozróŝniające, informujące, z której podklasy pochodzi dany obiekt. Wykorzystanie praktyczne: Rozwiązanie to moŝe być zastosowane tylko wtedy, gdy podklasy róŝnią się między sobą minimalnie (np. pojedynczymi atrybutami) oraz wystąpienie nadklasy nie musi naleŝeć do Ŝadnej z podklas.

Przekształcanie uogólnienia w schemat relacyjny metoda 3 Osoba Id_Osoby Imie Nazwisko NIP PESEL itd. integer varchar varchar varchar varchar <Undefined> Id_Osoby Nr_Pracownika Nr_Indeksu Data_Zapisania Data_Wypisania Tytul Stanowisko Data_Zatrudnienia Okres_Zatrudnienia itd. Pracownik_Student int int int date date varchar varchar date int <Undefined> <fk>

Metoda 4: Przekształcanie hierarchii uogólnienia w schemat relacyjny tworzymy jedną tabelę; wstawiamy do niej wszystkie atrybuty z nadklasy i podklas; w razie potrzeby dodajemy pole rozróŝniające, informujące, z której podklasy pochodzi dany obiekt. Wykorzystanie praktyczne: Rozwiązanie to moŝe być zastosowane tylko wtedy, gdy podklasy róŝnią się między sobą minimalnie (np. pojedynczymi atrybutami), a wystąpienie nadklasy naleŝy przynajmniej do jednej z podklas W przeciwnym razie w wierszach moŝe występować wiele wartości NULL (jest to bardzo niekorzystne z punktu widzenia normalizacji schematu relacyjnego i potencjalnych anomalii przy aktualizacji danych).

Przekształcanie uogólnienia w schemat relacyjny metoda 4 Diagram klas Schemat relacji Dodatkowe pole rozróŝniające

Dziękuj kuję za uwagę!!!