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