Bazy danych

Transkrypt

Bazy danych
2010-11-29
PLAN WYKŁADU
Modelowanie logiczne
Transformacja ERD w model relacyjny
 Odwzorowanie encji
 Odwzorowanie związków
 Odwzorowanie specjalizacji i generalizacji


BAZY DANYCH
Wykład 7
dr inż. Agnieszka Bołtuć
GŁÓWNE ETAPY PROJEKTOWANIA BAZY
MODELOWANIE LOGICZNE
DANYCH
świat
rzeczywisty

Schemat koncepcyjny jest przekształcany z
wyskopoziomowego modelu danych w
implementacyjny model danych,

Ten krok nazywany jest też projektowaniem
logicznym lub odwzorowaniem modelu danych,

Wynikiem modelowania logicznego jest schemat
bazy zgodny z modelem implementacyjnym
wykorzystywanym w danych SZBD.
zbieranie
i analiza wymagań
analiza
funkcjonalna
projekt
aplikacji
implementacja
transakcji
projekt
koncepcyjny
(pojęciowy)
projekt
logiczny
niezależne od SZBD
zależne od SZBD
projekt
fizyczny
1
2010-11-29
ERD - FIRMA
TRANSFORMACJA ERD DO MODELU
RELACYJNEGO
encje − > tabele
własności −> kolumny
 związki −> klucze obce lub tabele
 hierarchia encji −> jedna lub wiele tabel


ODWZOROWANIE ENCJI
Encja
Relacja
Prosty atrybut encji
Atrybut relacji
 Typ danych atrybutu encji
Typ danych atrybutu
relacji dla konkretnego SZBD
 Identyfikator encji
Klucz główny relacji
 Obowiązkowość atrybutu encji
Ograniczenie
atrybutu relacji NOT NULL
 Inne ograniczenia atrybutów encji
Ograniczenia
atrybutów relacji

ODWZOROWANIE ENCJI
PRACOWNICY
DZIAŁY
PESEL PRIMARY KEY,
Imię,
DrugieImię NULL,
Nazwisko NOT NULL,
DataUrodzenia NOT NULL,
Adres,
Płeć NULL,
Pensja
Numer PRIMARY KEY,
Nazwa NULL

PROJEKTY
Numer PRIMARY KEY,
Nazwa NULL,
Lokalizacja NOT NULL
2
2010-11-29
ODWZOROWANIE SŁABYCH ENCJI
Słaba encja
Relacja
Proste atrybuty encji
Atrybuty relacji
 Identyfikator encji właścicielskiej
Klucz obcy
relacji
 Klucz główny relacji
Kombinacja identyfikatora
encji właścicielskiej i identyfikatora częściowego
encji słabej (jeśli taki istnieje)
 Jeśli istnieje słaba encja E1 której właścicielem jest
inna słaba encja E2, to najpierw odwzorowana
powinna być encja właścicielska E2
ODWZOROWANIE SŁABYCH ENCJI


ODWZOROWANIE ZWIĄZKÓW
Związek binarny 1:1 transformuje się do klucza
obcego we wskazanej tabeli.
 Związek unarny 1:1 oraz 1:N 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.
CZŁONKOWIE_RODZINY
PESEL,
Imię,
DataUrodzenia,
Płeć,
StopieńPokrewieństwa,
PRIMARY KEY (PESEL, Imię)
PESEL REFERENCES pracownicy(PESEL)
ON DELETE CASCADE,
ON UPDATE CASCADE
ZWIĄZEK BINARNY 1:1

Wybieramy jedną z relacji i dołączamy do zbioru jej
atrybutów klucz obcy wskazujący na klucz główny
drugiej relacji (najlepiej jeśli relacja do której
dołączamy klucz obcy jest po stronie wymaganej
jeśli chodzi o udział w związku lub jeśli związek jest
obustronnie opcjonalny to transformuje się do
klucza obcego w tabeli o mniejszym rozmiarze),

Ograniczenie integralnościowe jest definiowane dla
atrybutu klucza obcego. Klucz ten nie może
przyjmować wartości pustych jeśli związek był
wymagany, może jeśli związek był opcjonalny.

3
2010-11-29
ZWIĄZEK BINARNY 1:1
ZWIĄZEK BINARNY 1:1
PRACOWNICY
DZIAŁY
PESEL PRIMARY KEY,
Imię,
DrugieImię NULL,
Nazwisko NOT NULL,
DataUrodzenia NOT NULL,
Adres,
Płeć NULL,
Pensja
Numer PRIMARY KEY,
Nazwa NULL,
Data_przejecia_kier,
PESEL_kier NOT NULL REFERENCES
pracownicy(PESEL)
Odwzorowanie związku ZARZĄDZA
ZWIĄZEK BINARNY 1:N
Klucz obcy dodawany do relacji po stronie liczności
N,
 Ograniczenia referencyjne definiowane dla klucza
obcego,
 Jeśli po stronie liczności N związek był
obowiązkowy to klucz obcy ma ograniczenie NOT
NULL, jeśli opcjonalny to NULL,
 Opcjonalność lub obowiązkowość związku po
stronie o liczności 1 nie jest odwzorowywana w
modelu relacyjnym.

Inne możliwości:

Umieszczenie klucza obcego w relacji która w
związku jest po stronie opcjonalnej – klucz
posiadałby wiele wartości pustych,

Scalenie dwóch encji w jedną relację – tylko jeśli
związek po obu stronach był wymagany,

Umieszczenie kluczy obcych w obu tabelach –
utrudnienia w utrzymywaniu spójności.
ZWIĄZEK BINARNY 1:N
PRACOWNICY
DZIAŁY
PESEL PRIMARY KEY,
Imię,
DrugieImię NULL,
Nazwisko NOT NULL,
DataUrodzenia NOT NULL,
Adres,
Płeć NULL,
Pensja,
NrDziału NOT NULL REFERENCES
działy (numer)
Numer PRIMARY KEY,
Nazwa NULL,
Odwzorowanie związku PRACUJE_W
4
2010-11-29
ZWIĄZEK BINARNY 1:N
ZWIĄZEK BINARNY M:N
Reprezentowany przez nową relację,
Nazwa powstaje przez połączenie nazw encji
uczestniczących w związku,
 Wprowadzamy klucze obce wskazujące na klucze
główne obu relacji reprezentujących encje biorące
udział w związku,
 Wprowadzone klucze obce tworzą klucz główny
relacji.

PROJEKTY
DZIAŁY
Numer PRIMARY KEY,
Nazwa NULL,
Lokalizacja NOT NULL,
NrDziału NOT NULL REFERENCES
działy(numer)
Numer PRIMARY KEY,
Nazwa NULL

Odwzorowanie związku KONTROLUJE
ZWIĄZEK BINARNY M:N
ZWIĄZEK UNARNY
Dotyczy rekursywnego powiązania różnych
instancji tej samej encji,
 Związek unarny 1:1 lub 1:N obustronnie opcjonalny
transformuje się do klucza obcego w tej samej
tabeli,
 Związek unarny M:N obustronnie opcjonalny jest
transformowany do tabeli.

PRACOWNICYPROJEKTY
NrProj REFERENCES projekty(numer),
PESELPr REFERENCES pracownicy (PESEL),
Godziny,
PRIMARY KEY (NrProj,PESELPr)
5
2010-11-29
ZWIĄZEK UNARNY 1:N
LEKI
ZWIĄZEK UNARNY M:N
Id_leku PRIMARY KEY,
Nazwa NOT NULL
PRACOWNICY
PESEL PRIMARY KEY,
Imię,
DrugieImię NULL,
Nazwisko NOT NULL,
DataUrodzenia NOT NULL,
Adres,
Płeć NULL,
Pensja,
NrDziału NOT NULL REFERENCES działy (numer),
PESELSzefa NULL REFERENCES Pracownicy (PESEL)
Nazwa
Id_leku
ZASTĘPNIKI
zastępnik
zastępowany
Zastępuje
M
ZWIĄZEK TERNARNY (I INNE N-SKŁADNIKOWE)
Związki ternarne i inne n-składnikowe (gdzie n>2)
odwzorowuje się w nową relację,
 Jako klucze obce do relacji wprowadzamy klucze
główne relacji powstałych przez transformacje encji
uczestniczących w związku,
 Klucze obce zazwyczaj tworzą klucz główny tabeli.

Id_leku REFERENCES leki(id_leku),
Id_zastęnika REFERENCES leki
(id_leku),
PRIMARY KEY (Id_leku, id_zastepnika)
Lek
N
ZWIĄZEK TERNARNY
DOSTAWCY
NazwaD PRIMARY KEY,
…
CZĘŚCI
DOSTARCZA
NazwaC REFERENCES części (nazwaC),
NazwaP REFERENCES projekty (nazwaP),
NazwaD REFERENCES dostawcy (nazwaD),
Ilość,
PRIMARY KEY (nazwaD, nazwaC, nazwaP)
NazwaC PRIMARY KEY,
…
PROJEKTY
NazwaP PRIMARY KEY,
…
6
2010-11-29
ODWZOROWANIE ATRYBUTÓW
ODWZOROWANIE ATRYBUTÓW
WIELOWARTOŚCIOWYCH
WIELOWARTOŚCIOWYCH
Dla każdego atrybutu wielowartościowego należy
stworzyć relację, która będzie zawierała atrybuty
odpowiadające wielowartościowemu oraz klucz
obcy wskazujący na odwzorowywaną encję,
 Klucz główny nowej relacji stanowi kombinacja
atrybutu odwzorowywanego oraz klucza obcego,
 Jeśli atrybut wielowartościowy jest zarazem
złożonym to do relacji wprowadzamy tylko atrybuty
proste i analizujemy atrybuty proste w celu
wyznaczenia klucza głównego.

BAZA FIRMA
Dimię
Nazwisko
PESEL
DataUr
Adres
Płeć
Pensja
Działy
Nazwa
Numer
NumerD,
Lokalizacja,
PRIMARY KEY (NumerD, Lokalizacja)
ODWZOROWANIE SPECJALIZACJI
Pracownicy
Imię
LOKALIZACJE_DZIAŁÓW
PESELSzefa
DataRozpKier
PESELSzefa
Nrdziału

Każdą specjalizację z m podencjami (S1,S2,…,Sm)
oraz nadencją C z atrybutami (k,c1,c2,…cn)
odwzorowujemy w relacje stosując kilka możliwych
metod:
Lokalizacje_działów
NumerD
Lokalizacja

do jednej relacji: z jednym atrybutem typu i z
wieloma atrybutami typów,

do wielu relacji: wyłącznie dla podencji, dla
nadencji i podencji.
Projekty
Nazwa
Numer
Lokalizacja
NumerD
PracownicyProjekty
PESEL
Nr_proj
Godziny
Członkowie_Rodziny
PESEL
Imię
Płeć
DataUr
Stopień_pokrewieństwa
7
2010-11-29
JEDNA RELACJA Z JEDNYM ATRYBUTEM TYPU
Tworzona jest jedna relacja reprezentująca
jednocześnie nadecję i podencje,
 Encja nadklasy będzie miała wartości puste we
wszystkich lokalnych atrybutach podencji,
 Nie jest zalecana, gdy podencje mają wiele
atrybutów lokalnych, gdy niewiele atrybutów
lokalnych to lepsza niż pozostałe,
 Stosowana szczególnie do rozłącznych podencji,
 Polega na dołączeniu pojedynczego atrybutu
określającego typ,
JEDNA RELACJA Z JEDNYM ATRYBUTEM TYPU

PESEL
Nazwisko
Adres
PRACOWNIK
Pracownik
d
Naukowy
Stopień
Techniczny
PESEL PRIMARY KEY,
Nazwisko,
Adres,
Stopień,
Uprawnienia,
Typ_pracownika
Uprawnienia
JEDNA RELACJA Z WIELOMA ATRYBUTAMI
JEDNA RELACJA Z WIELOMA ATRYBUTAMI
TYPÓW
TYPÓW
Tworzona jest jedna relacja reprezentująca
jednocześnie nadecję i podencje,
 Stworzona z myślą o odwzorowywaniu częściowo
pokrywających się podencji,
 Dołączamy m logicznych pól typów, po jednej dla
każdej podencji, które przechowują wartości {tak,
nie},gdzie wartośc tak oznacza że dana krotka jest
egzemplarzem podencji.

PRACOWNIK
PESEL PRIMARY KEY,
Nazwisko,
Adres,
Stopień,
Uprawnienia,
Jest_naukowym,
Jest_technicznym
8
2010-11-29
W IELE RELACJI DLA NADENCJI I PODENCJI
Tworzona jest relacja dla nadencji i jej atrybutów
oraz po jednej relacji dla każdej podencji,
 Każda relacja stworzona z podencji zawiera
atrybuty lokalne oraz klucz główny nadencji, który
staje się kluczem głównym podencji,
 Może być stosowana bez względu na ograniczenia
czy więzy.
W IELE RELACJI DLA NADENCJI I PODENCJI

PRACOWNIK
NAUKOWY
PESEL PRIMARY KEY,
Nazwisko,
Adres,
PESEL_n REFERENCES naukowy(PESEL),
PESEL_t REFERENCES techniczny(PESEL)
PESEL PRIMARY KEY,
Stopień
TECHNICZNY
PESEL PRIMARY KEY,
Uprawnienia
W IELE RELACJI WYŁĄCZNIE DLA PODENCJI
Tworzone są relacje po jednej dla wszystskich
podencji,
 Każda relacja stworzona z podencji zawiera
atrybuty wspólne oraz lokalne i klucz główny
nadencji, który staje się kluczem głównym każdej
podencji,
 Sprawdza się gdy podencje są całkowite – każda
nadencja należy przynajmniej do jednej z jej
podencji oraz gdy spełniony jest warunek
rozłączności.
W IELE RELACJI WYŁĄCZNIE DLA PODENCJI

NAUKOWY
TECHNICZNY
PESEL PRIMARY KEY,
Nazwisko,
Adres,
Stopień
PESEL PRIMARY KEY,
Nazwisko,
Adres,
Uprawnienia
9
2010-11-29
PODSUMOWANIE ODWZOROWANIA
Model ER
Model relacyjny
Encja
Relacja
Związek 1:1 i 1:N
Klucz obcy
Związek M:N
Relacja z dwoma kluczami
obcymi
Związek n-składnikowy
Relacja z n kluczami obcymi
Atrybut prosty
Atrybut
Atrybut złożony
Zbiór atrybutów prostych
Atrybut wielowartościowy
Relacja i klucz obcy
Zbiór wartości
Dziedzina
Atrybut klucza
Klucz główny
Specjalizacja (nadencje, podencje)
Jedna relacja lub wiele relacji
W YKŁAD PRZYGOTOWANO NA PODSTAWIE
R. Elmasri, S. B. Navathe, Wprowadzenie do
systemów baz danych, Helion, 2005,
 C. J. Date, Wprowadzenie do systemów baz
danych, WNT, Warszawa, 2000,
 http://wazniak.mimuw.edu.pl/index.php?title=Bazy_
danych.

10