Zasady transformacji modelu DOZ do projektu tabel bazy danych

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

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

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

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

Model relacyjny. Wykład II

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

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

Model relacyjny. Wykład II

Baza danych. Modele danych

Wykład 2. Relacyjny model danych

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

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

1 Wstęp do modelu relacyjnego

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

Wykład 8. SQL praca z tabelami 5

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

Transformacja modelu ER do modelu relacyjnego

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

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

Indeksowanie w bazach danych

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

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

PLAN WYKŁADU BAZY DANYCH PODSTAWOWE KWESTIE BEZPIECZEŃSTWA OGRANICZENIA DOSTĘPU DO DANYCH

Przykładowa baza danych BIBLIOTEKA

Technologie baz danych

Oracle11g: Wprowadzenie do SQL

Podstawy języka SQL. SQL Structured Query Languagestrukturalny

Przestrzenne bazy danych Podstawy języka SQL

Zaawansowane Modelowanie I Analiza Systemów Informatycznych

Wprowadzenie do języka SQL

Oracle PL/SQL. Paweł Rajba.

Obliczenia arytmetyczne. Konkatenacja pól. Aliasy kolumn. Aliasy tabel. Co dalej? Rozdział 4. Korzystanie z funkcji. Zastosowanie funkcji

APIO. W7 SPECYFIKACJA (UŻYCIA) DOSTĘPU DO DANYCH I SPOSOBU ICH PRZETWARZANIA 1. METODA CRUD 2. LOGIKA FUNKCJI

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

WPROWADZENIE DO BAZ DANYCH

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

Autor: Joanna Karwowska

Język SQL. Rozdział 10. Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne.

Wykład 5. SQL praca z tabelami 2

Uprawnienia, role, synonimy

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

Logika funkcji. Modelowanie SI - GHJ 1

Bazy danych - Materiały do laboratoriów VIII

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

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

Technologie baz danych

Perspektywy Stosowanie perspektyw, tworzenie perspektyw prostych i złożonych, perspektywy modyfikowalne i niemodyfikowalne, perspektywy wbudowane.

Baza danych. Baza danych to:

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

kończy wysyłanie danych do pliku tworzy strukturę tabeli wyświetla opis struktury tabeli zmiana nazwy tabeli usuwanie tabeli

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

Język SQL. Rozdział 2. Proste zapytania

Post-relacyjne bazy danych

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

Bazy danych. Plan wykładu. Rozproszona baza danych. Fragmetaryzacja. Cechy bazy rozproszonej. Replikacje (zalety) Wykład 15: Rozproszone bazy danych

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

TRANSFORMACJA MODELU ER DO MODELU RELACYJNEGO

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

Model logiczny SZBD. Model fizyczny. Systemy klientserwer. Systemy rozproszone BD. No SQL

Wykład :45 BD-1 W_3

Modelowanie danych, projektowanie systemu informatycznego

BAZY DANYCH wprowadzenie do języka SQL. Opracował: dr inż. Piotr Suchomski

Relacyjne bazy danych. Podstawy SQL

Projektowanie baz danych

Oracle PL/SQL. Paweł Rajba.

Podstawowe zagadnienia z zakresu baz danych

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

Bazy danych - wykład wstępny

SQL - DDL. 1 Tabele systemowe. 2 Typy danych

Rozdział 17. Zarządzanie współbieżnością zadania

BAZY DANYCH algebra relacyjna. Opracował: dr inż. Piotr Suchomski

Bazy Danych 2008 Część 1 Egzamin Pisemny

Język SQL. instrukcja laboratoryjna. Politechnika Śląska Instytut Informatyki. laboratorium Bazy Danych

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

Bazy danych. Algebra relacji

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

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

Wykład IV Modelowanie danych, projektowanie systemu informatycznego Modelowanie konceptualne implementacyjne Modelowanie pojęciowe na encjach

Bazy danych TERMINOLOGIA

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

Krzysztof Kadowski. PL-E3579, PL-EA0312,

Transformacja modelu pojęciowego. do logicznego

Modelowanie wymiarów

Grupa kursów: Wykład Ćwiczenia Laboratorium Projekt Seminarium 15 30

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

Bazy danych 6. Klucze obce. P. F. Góra

P o d s t a w y j ę z y k a S Q L

BAZY DANYCH LABORATORIUM. Studia niestacjonarne I stopnia

Aspekty aktywne baz danych

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Widok Connections po utworzeniu połączenia. Obszar roboczy

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

Program szkoleniowy Efektywni50+ Moduł IV Podstawy relacyjnych baz danych i język SQL

TECHNIKI MODELOWANIA STRUKTURY INFORMACYJNEJ

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

Projektowanie bazy danych. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Relacyjne bazy danych. Podstawy SQL

3. Podzapytania, łączenie tabel i zapytań

SIECI KOMPUTEROWE I BAZY DANYCH

Transkrypt:

Zasady transformacji modelu DOZ do projektu tabel bazy danych A. Obiekty proste B. Obiekty z podtypami C. Związki rozłączne GHJ 1

A. Projektowanie - obiekty proste TRASA # * numer POZYCJA o planowana godzina ZAM odlotu z do początkiem końcem LOTNISKO # * kod * nazwa obsługiwana przez przewoźnikiem na LINIA LOTNICZA # * kod * nazwa wewnątrz nadrzędną GHJ 2

A. Projektowanie obiekty proste - reguły Krok 1. Przekształć każdy prosty obiekt (nie jest podtypem i nie zawiera podtypów) w tabelę Nazwij tabelę stosując liczbę mnogą nazwy obiektu. Krok 2. Przekształć każdy atrybut w kolumnę o tej samej nazwie, sprecyzowanym formacie i długości Atrybuty opcjonalne przechodzą w kolumny null, atrybuty obowiązkowe w kolumny not-null GHJ 3

Krok 3. Składowe unikalnego identyfikatora obiektu - klucz główny (pierwotny) tabeli Jeżeli obiekt jest identyfikowany przez uczestnictwo w związku, dołącz do tabeli kopie składowych unikalnego identyfikatora obiektu, który jest na drugim końcu związku (może to być proces rekurencyjny) W nazwach dołączonych kolumn wykorzystaj nazwy obiektów i/lub związków, dodając je do nazw atrybutów GHJ 4

Krok 4. Związki N:1 oraz 1:1 stają się kluczami obcymi (zewnętrznymi) Należy dołączyć do odpowiedniej tabeli kopie składowych unikalnego identyfikatora obiektu znajdującego się po stronie końca 1 tego związku Związki opcjonalne tworzą kolumny null. Związki obowiązkowe tworzą kolumny not-null. GHJ 5

Projekt tabel przykład: obiekty proste LOTNISKA Kod char 4 not null G Nazwa char 40 not null LINIE_LOTNICZE Kod char 4 not null G Nazwa char 40 not null Kod_linia_lotnicza_ char 4 null O nadrzędna TRASY_LOTU Numer integer 4 not null G Kod_linia_lotnicza char 4 not null G, O Kod_lotnisko_początkiem char 4 not null O Kod_lotnisko_końcem char 4 not null O Planowana_godzina_ date null odlotu GHJ 6

Definicja perspektywy Perspektywa (relacja wirtualna) jest strukturą logiczną umożliwiającą dostęp do podzbioru jednej lub wielu tabel, umożliwiającym tratowanie jej jako odrębnej tabeli (ale bez indeksów) Przechowywana w bazie danych w postaci definicji napisanej za pomocą języka DDL (zwykle SQL) Powstaje w momencie wykonywania na niej operacji Nazwy kolumn perspektywy mogą być inne niż bazowych tabel GHJ 7

Zastosowanie perspektyw Autoryzacja dostępu do danych Ułatwienie dostępu do danych Prezentacja tych samych danych w różny sposób (w definicji mogą wystąpić wyrażenia arytmetyczne operujące na danych z tabel, zmiana formatu do prezentacji) Dodatkowy poziom ograniczeń integralnościowych GHJ 8

Tworzenie perspektywy Podstawowe operatory relacji selekcja projekcja połączenie unia przecięcie różnica GHJ 9

B. Projektowanie z podtypami POZYCJA ZAMÓWIENIA POZYCJA PRODUKTU * ilość dotyczy zawarty w PRODUKT # * kod INNA POZYCJA o komentarz częścią # * numer o opis złożone z ZAMÓWIENIE # * numer GHJ 10

B. Projektowanie z podtypami - reguły I. Jedna tabela Proces projektowania należy przeprowadzić dla każdego podtypu, wszystkich podtypów każdego podtypu itd.. 3. Utwórz tabelę tylko dla zewnętrznego nadtypu i opcjonalne perspektywy relacyjne dla każdego podtypu, które umożliwią przetwarzanie tylko danych należących do danego podtypu. 4. Dołącz do tabeli kolumny dla atrybutów i związków nadtypu (patrz A. 1,2,3,4). GHJ 11

B. Projektowanie z podtypami c.d. 1. Dołącz kolumny utworzone dla atrybutów i związków podtypów, wszystkie są null. Warunek spójności powinien być dodany albo w oprogramowaniu albo w definicji perspektywy 2. Dołącz dodatkową kolumnę not-null, jako część klucza głównego tabeli, w celu wskazania rodzaju podtypu GHJ 12

I. Tabele dla podtypów 3. Utwórz tabelę dla każdego podtypu. W przypadku kilku poziomów tabele są zwykle tworzone tylko dla pierwszego poziomu, a niższe poziomy są obsługiwane przez perspektywy. 4. Dołącz kolumny do każdej tabeli według postępowania A.1, 2, 3, 4. 5. Gdy podtyp jest równocześnie nadtypem tworzone są opcjonalne kolumny dla każdego jego podtypu (patrz B.3, 4) 6. Zdefiniuj perspektywę UNION dla potrzeb przetwarzania wszystkich danych należących do nadtypu. GHJ 13

Projekt tabel: I. Jedna tabela POZYCJE_ZAMÓWIENIA Numer_pozycja integer 4 not null G Numer_zamówienie integer 9 not null G,O Typ char 2 not null G Kod_produkt char 6 null O Opis char 40 null Komentarz char 40 null Ilość number 6,0 null Typ: PZ dla nadtypu, PP i IP dla podtypów GHJ 14

Definicje perspektyw dla I CREATE VIEW INNE_POZYCJE AS SELECT numer_pozycja numer_zamówienie opis komentarz typ FROM POZYCJE_ZAMÓWIENIA WHERE typ = IP CREATE VIEW POZYCJE_PRODUKTU AS SELECT numer_pozycja numer_zamówienie opis ilość kod_produkt typ FROM POZYCJE_ZAMÓWIENIA WHERE typ = PP AND ilość NOT NULL GHJ 15

Projekt tabel: II. Oddzielne tabele POZYCJE_PRODUKTU Numer_pozycja integer 4 not null G Numer_zamówienie integer 9 not null G,O Opis char 40 null Kod_produkt char 6 not null O Ilość number 6,0 not null INNE_POZYCJE Numer_pozycja integer 4 not null G Numer_zamówienie integer 9 not null G,O Opis char 40 null Komentarz char 40 null GHJ 16

Definicje perspektyw dla II CREATE VIEW POZYCJE_ZAMÓWIENIA AS SELECT * FROM POZYCJE_PRODUKTU UNION SELECT * FROM INNE_POZYCJE GHJ 17

C. Związki rozłączne KONTO # * numer należy do posiada OSOBA # * kod własnością właścicielem FIRMA # * kod GHJ 18

C. Związki rozłączne - reguły I. Wspólna dziedzina: jeżeli wszystkie klucze obce mają tą samą dziedzinę (identyczny format i długość) Utwórz dwie kolumny w tabeli odpowiadającej obiektowi po stronie łuku w związku identyfikator związku rozróżnia związki w łuku identyfikator obiektu przechowuje wartość unikalnego identyfikatora obiektu na drugim końcu tego związku GHJ 19

Projekt tabel: I. Wspólna dziedzina KONTA Numer integer 11 not null G Związek char 1 not null O Kod char 13 not null O Związek: O OSOBA, F - FIRMA GHJ 20

C. Związki rozłączne c.d. I. Jawny klucz obcy klucze obce nie mają tej samej dziedziny. Utwórz kolumny null jawnego klucza obcego dla każdego związku objętego tym łukiem. Kod aplikacji musi zapewnić warunek spójności: wprowadzana jest tylko jedna wartość i wartość ta jest na pewno wprowadzona w przypadku związków obowiązkowych. GHJ 21

Projekt tabel: II. Jawny klucz obcy KONTA Numer integer 11 not null G Kod_osoby char 10 null O Kod_firmy char 13 null O GHJ 22

Indeks Środek dostępu do jednego lub kilku wierszy tabeli. Implementowany za pomocą struktury B-tree. Może składać się z jednej lub kilku kolumn. GHJ 23

Projekt indeksów Utwórz indeksy dla: klucza głównego indeks jednoznaczny klucza obcego - indeks wieloznaczny kluczy ustalonych na podstawie macierzy powiązań Funkcja/Atrybut Klucz główny jak i obcy może składać się z więcej niż jednej kolumny indeks wielokolumnowy Wynikiem szczegółowej analizy definicji funkcji może być użycie innych atrybutów dla potrzeb warunków selekcji, najczęściej używane powinny być zdefiniowane jako indeksy GHJ 24

Indeksy dla przykładu z lotniskiem LOTNISKA kod indeks jednoznaczny LINIE LOTNICZE kod indeks jednoznaczny LINIE LOTNICZE kod_linii_lotniczej_ nadrzędna indeks niejednoznaczny TRASY LOTÓW numer_lotu kod_linii_ lotniczej wielokolumnowy indeks jednoznaczny TRASY LOTÓW kod_lotniska_ początkiem_ indeks niejednoznaczny TRASY LOTÓW kod_lotniska końcem indeks niejednoznaczny GHJ 25