sugerują związek

Transkrypt

sugerują związek
DIAGRAMY ZWIĄZKÓW ENCJI (DZE)
BAZY DANYCH
• Metoda graficznej prezentacji tabel i kolumn.
• Obrazują podstawowe składniki bazy danych i związki między
nimi.
• Encja – zbiór obiektów reprezentowanych za pomocą
jednakowej struktury (odpowiednik tablicy w finalnej bazie
danych).
• Atrybuty - charakteryzują encje.
• Związek - określa wzajemne powiązania między encjami.
• W DZE encje zazwyczaj są opisywane rzeczownikami,
atrybuty – przymiotnikami i rzeczownikami, natomiast
związki – czasownikami.
WYKŁAD 6
Diagramy związków encji.
Zapytania zagnieżdżone w instrukcji SELECT i FROM.
(Wybrane materiały)
Dr inż. E. Busłowska
Copyright © 2014-2015 E. Busłowska.
1
Copyright © 2014-2015 E. Busłowska.
2
Przyjęta konwencja zapisu relacji
Proces projektowania DZE
• Encje - prostokąty
• Atrybuty
• Obowiązkowe (wartość musi być zawsze określona) poprzedzone
kółkiem.
• Opcjonalne (atrybut nie musi mieć wartości) poprzedzone
okręgiem.
• Unikalne identyfikatory dla encji lub wchodzące w jego skład
poprzedzone #.
• Związki
• Opcjonalność oznaczona linią przerywaną.
• Stopień „wiele" oznaczony „kurzą stopką„.
• Należące do unikalnych identyfikatorów oznaczone poprzeczną
kreską.
• Analiza problemu, pojawiające się często
rzeczowniki, sugerują encje, które powinny
wystąpić w diagramie.
• Dla każdej encji identyfikuje się atrybuty.
• Wykryć użycie tej samej nazwy dla dwóch
różnych encji albo użycie dwóch różnych nazw
dla tej samej encji.
• Zidentyfikować atrybuty tworzące klucze.
Copyright © 2014-2015 E. Busłowska.
3
•
•
4
Typy związków między encjami
Związki i ich symbole
• Oznaczenia:
•
•
•
Copyright © 2014-2015 E. Busłowska.
• Związki jeden do jeden – dla każdej instancji
(przypadku) jednej encji istnieje dokładnie jedna
instancja drugiej encji pozostająca z nią w
rozważanym związku.
Jeden do jeden
Jeden do wielu
Wygląd
Wiele do jeden
Preferuje
Klient
Wiele do wielu
Copyright © 2014-2015 E. Busłowska.
5
Copyright © 2014-2015 E. Busłowska.
6
1
Typy związków między encjami
Typy związków między encjami
• Związki jeden do wielu – dla każdej instancji jednej
encji istnieje n instancji drugiej encji.
Wnosi
Klient
• Związki wiele do jednego – dla wielu instancji
jednej encji istnieje dokładnie jedna instancja
drugiej encji.
Opłatę
Copyright © 2014-2015 E. Busłowska.
7
• Związki wiele do wielu - wielu wartościom jednej encji
odpowiada wiele wartości drugiej encji
Wybiera
Preferencje
Copyright © 2014-2015 E. Busłowska.
Klient
Copyright © 2014-2015 E. Busłowska.
8
Uproszczenie związku wiele do wielu
przez dodanie encji
Typy związków między encjami
Klient
Ma
Cechy
Klient
Preferencje
Wybiera
Występują
w
Lista preferencji
9
Copyright © 2014-2015 E. Busłowska.
10
Przykładowe encje
Typy związków między encjami
Oplaty
# IdOplaty
ο Idklienta
ο DataOplaty
ο Wielkosc
Preferencje
# IdPreferencji
o Nazwa
• Związki rekurencyjne – związki wiele do wielu lub
jeden do jednego między jedną encją
Każdy klient może być
skojarzony z innym
klientem
występują
wnosi
Klient
PreferencjeKlienta
# IdPreferencji
# Idklienta
Każdy klient może być skojarzony z
wieloma klientami
Copyright © 2014-2015 E. Busłowska.
11
wybiera
Klient
# IdKlienta
ο Nazwisko
ο Imie
ο Adres
ο Telefon
Copyright © 2014-2015 E. Busłowska.
12
2
Problemy pojawiające się przy tworzeniu
DZE
Podzapytanie w instrukcji SELECT
• Każda encja powinna być powiązana bezpośrednio z
co najmniej jedną encją oraz każda encja powinna być
powiązana pośrednio z każdą inną encją.
• Modelując należy wybiegać w przyszłość.
• Ważne jest jakie informacje są potrzebne aby
odpowiedzieć na spodziewane pytania.
• Należy dążyć do jak najprostszego diagramu za
pomocą zmniejszania do minimum liczby encji i
związków.
Copyright © 2014-2015 E. Busłowska.
13
• Przykład zwraca nazwy stanowisk oraz liczbę
ich pracowników.
SELECT S.NAZWA, (SELECT COUNT(*) FROM
PRACOWNICY P WHERE
P.IDSTANOWISKA=S.IDSTANOWISKA) PODZ
FROM STANOWISKA S;
Copyright © 2014-2015 E. Busłowska.
14
Podzapytanie w instrukcji FROM
SELECT P.NAZWISKO, PODZ.NAZWA
FROM PRACOWNICY P,
( SELECT NRDEPART, NAZWA FROM DEPARTAMENT
WHERE NAZWA IN ('ACCOUNTING', 'RESEARCH'))
PODZ
WHERE P.NRDEPART = PODZ.NRDEPART;
Copyright © 2014-2015 E. Busłowska.
15
3