MODELOWANIE DANYCH DIAGRAMY ENCJIZWIZKW Notacja Barkera Semantic networks
MODELOWANIE DANYCH - DIAGRAMY ENCJI-ZWIĄZKÓW Notacja Barkera
Semantic networks - Quillian [1968] Źródło modelu encji-związków Is-part-of Address Is-part-of Last_name Is-part-of First_name Is-part-of City Name Start_date Zip_code Is-part-of Telephone Is-part-of Is-associated-with EMPLOYEE Isa HOURLY EMPLOYEE Is-part-of Street Is-part-of hours_worked hourly_wage Is-part-of Isa CONTRACT EMPLOYEE Is-part-of contractid Customer PROJECT Is-part-of Budget Is-part-of stosujemy do modelowania obiektów złożonych q Isa stosujemy do modelowania związku dziedziczenia q Is-associated-with stosujemy do modelowania zależności pomiędzy encjami q
Model encjizwiązków (ER) street ER notacja CHEN’a [1976] name city zip code last name first name EMPLOYEE m start date n Is_involved_in PROJECT Isa Contract E. cont. id Hourly E. h_work h_wages Konstruktory: budget customer encje atrybuty związki hierarchie
Obiekty świata rzeczywistego Obiekty rzeczywiste F pracownik, samochód, produkt, etc. CAR company_name factory_number max_speed Inne obiekty F konto, F zamówienia, grupa, etc. EMPLOYEE GROUP name number of employees average salary Zdarzenia F choroba, Fnagroda, etc. ILLNESS start_date end_date type_of_illness Fakty F znajomość języków obcych, F stan konta, etc. KNOWLEDGE OF FOREIGN LANGUAGE language_name knowledge_degree
ENCJA Encja jest zbiorem obiektów posiadających wspólne własności, o których chcielibyśmy przechowywać informacje NAZWA ENCJI encja
Encja i wystąpienie encji Identyfikacja wspólnych cech obiektów Model Obiekty świata rzeczywistego Firma zatrudnia pracowników. Chcemy przechowywać informacje nt. danych personalnych pracowników (imię, nazwisko, adres i numer telefonu). John Smith Long Street 23 phone 253 -485 Encja Employee first_name last_name address telephone Reguły dotyczące encji: q q q Encja jest zbiorem obiektów nazywanych instancjami encji Nazwa encji powinna być rzeczownikiem w l. pojedynczej Dowolna rzecz lub obiekt może być reprezentowana tylko przez jedną encję; każda encja musi być jednoznacznie identyfikowalna Andy Green White Street 17 phone 333 -951 Eva Brown Black Street 5/2 phone 753 -624 Wystąpienia encji Employee first name = John last name = Smith address = Long Street 23 telephone = 256 -485
Asocjacje Związki i asocjacje Pracownicy posiadają różne samochody. Eva Brown Nissan belongs_to Identyfikacja asocjacji posiadających wspólne własności Model has Andy Green John Smith has belongs_to Istnieje asocjacja pomiędzy pracownikami a samochodami: • pracownik może posiadać samochód • samochód może należeć do pracownika Asocjacja i jej interpretacja EMPLOYEE has belongs_to CAR Opel
ZWIĄZEK Związek reprezentuje asocjację występującą w świecie rzeczywistym pomiędzy jedną a kilkoma encjami Encja A związek Encja B
Związki has Eva Brown Nissan belongs_to Andy Green John Smith EMPLOYEE has belongs_to has Wiemy, że: Istnieje asocjacja pomiędzy encjami EPLOYEE i CAR Chcielibyśmy wiedzieć: Ile samochodów pracownik może posiadać? Ilu pracowników może posiadać ten samochód? Czy każdy samochód musi do kogoś należeć? belongs_to Opel CAR
Związki • Konkretne wystąpienie związku nazywamy instancją związku Związki opisujemy w następujących terminach: • stopień związku, • typ asocjacji, • rozmiar związku, i • istnienie (klasa przynależności)
Własności związku Stopień związku określa liczbę encji występujących w związku: • związek unarny (binarny rekursywny) • związek binarny • związek ternarny • związek n-arny Typ asocjacji związku opisuje odwzorowanie pomiędzy wystąpieniami encji w związku. Typ asocjacji może przyjmować wartość “jeden” lub “wiele”. Aktualna liczba związana z typem asocjacji nosi nazwę rozmiaru związku. Wyróżniamy następujące typy asocjacji: • związek jeden-do-jeden • związek jeden-do-wiele • związek wiele-do-wiele
Związek typu jeden-do-jeden (1: 1) Typ asocjacji (1: 1) Każdy dział musi mieć szefa, natomiast pracownik może być szefem co najwyżej jednego działu. Eva Brown manages is_ managed_by Andy Green SALES John Smith Sam Yellow manages ACCOUNT is_managed_by Związek typu jeden-do-jeden (1: 1) EMPLOYEE manages is_managed_by Department Interpretacja: • Pracownik może być szefem tylko jednego działu. • Dział może być zarządzany dokładnie przez jednego pracownika.
Typ asocjacji (1: N) Związek typu jeden-do-wiele (1: N) Każdy pracownik pracuje dokładnie w jednym dziale; dział może zatrudniać (ale nie koniecznie) wielu pracowników. works_in Smith has works_in Brown has works_in SALES ACCOUNT has White Związek typu jeden-do-wiele (1: N) EMPLOYEE works_in DEPARTMENT has Interpretacja: • Pracownik pracuje dokładnie w jednym dziale. • Dział może zatrudniać zero, jednego lub wielu pracowników. MARKETING
Typ asocjacji (M: N) Związek typu wiele-do-wiele (M: N) Pracownik może pracować nad jednym, lub wieloma (lub żadnym) projektami. Nad każdym projektem pracuje jeden lub wielu pracowników. Brown works_on Project ALFA Green is_worked_on Smith White Yellow works_on Project BETA is_worked_on Związek typu wiele-do-wiele (M: N) EMPLOYEE works_on is_worked_on PROJECT Interpretacja: • Pracownik może pracować w zero, jednym lub wielu projektach. • Nad każdym projektem pracuje jeden lub wielu pracowników.
Typ asocjacji Związek typu jeden-do-jeden Związek typu jeden-do-wiele Związek typu wiele-do-wiele
Klasa przynależności związku Eva Brown has belongs_to Andy Green John Smith has belongs_to Nissan Fiat Opel Związek opcjonalny w świecie rzeczywistym: • nie każdy pracownik posiada samochód. • często nie wiemy czy pracownik posiada samochód. Związek opcjonalny w świecie rzeczywistym : • samochód musi należeć do co najmniej jednego pracownika Jednostronny związek obowiązkowy EMPLOYEE has belongs_to CAR Interpretacja: • Każdy pracownik może posiadać zero, jeden lub wiele samochodów. • Każdy samochód musi należeć do co najmniej jednego pracownika.
Związki opcjonalne i obowiązkowe (kont. ) Związek dwustronnie obowiązkowy Firma posiada ciężarówki. Dla każdej ciężarówki musimy pamiętać informacje dotyczące przeglądu technicznego. Każdy przegląd dotyczy jednej ciężarówki. Związek dwustronnie opcjonalny Każde stowarzyszenie może posiadać zero, jednego, lub wielu członków inżynierów. Każdy inżynier może być członkiem jednego lub wielu (lub żadnego) stowarzyszenia. belongs_to has TRUCK SERVICE concerns ENGINEER PROF_ASSOC has
Związki binarne Eva Brown Andy Green works in John Smith Asocjacja pomiędzy dwoma obiektami Sam Yellow has SALES works in has ACCOUNT Związek binarny EMPLOYEE Związek binarny works in has DEPARTMENT
Związek binarny rekursywny określa powiązanie pomiędzy wystąpieniem określonej instancji encji a innym wystąpieniem tej samej encji Pracownicy są podzieleni na grupy. Każda grupa posiada swojego lidera EMPLOYEE is leader is subordinate
Związki ternarne Asocjacja pomiędzy trzema obiektami Project ALFA Eva Brown Manager Andy Green Designer Sam Yellow Advisor Project BETA Związek ternarny works_on as EMPLOYEE POSITION is_worked_on PROJECT
GENERALIZACJA LUB HIERARCHIA ENCJI Związek generalizacji określa, że pewne encje o wspólnym zbiorze atrybutów można uogólnić i stworzyć encję wyższego poziomu – encję nadklasy nazywaną często encją generalizacji Encje niższego poziomu – encje specjalizacji (podklasy) w hierarchii generalizacji – mogą zawierać rozłączne lub nakładające się na siebie podzbiory wystąpień encji generalizacji Relacja opisująca związki typu generalizacja/specjalizacja pomiędzy encjami nosi nazwę hierarchii generalizacji/specjalizacji lub hierarchii encji
Dziedziczenie atrybutów Firma zatrudnia pracowników kontraktowych i godzinowych. Wszyscy pracownicy posiadają pewien zbiór wspólnych atrybutów, jednakże zarówno pracownicy kontraktowi jak i godzinowi posiadają specyficzne atrybuty Hierarchia encji John Smith Napolean Street 2 hours_worked = 200 hourly_wage = 5 usd/h hourly employees Hierarchia encji Cechy hierarchii encji: • Encje podklasy dziedziczą wszystkie atrybuty swojej encji nadklasy • Każde wystąpienie encji nadklasy jest zawsze wystąpieniem jednej z encji podklasy. atrybuty wspólne atrybuty specyficzne Andy Green Long Street 14/7 contractid = X 57813862 contract employees EMPLOYEE first_name last_name address CONTRACT EMPLOYEE contractid HOURLY EMPLOYEE hours_worked hourly_wage nadklasa podklasy
Hierarchia encji (kont. ) • Związki: works_in i works_ as, dotyczą zarówno pracowników kontraktowych jak i godzinowy • Związek worked in jest związkiem specyficznym obowiązującym tylko pracowników kontraktowych. Dziedziczenie związków Każdy pracownik pracuje na określonym stanowisku w swoim dziale. Dla pracowników kontraktowych chcielibyśmy przechowywać informację o firmach, w których byli uprzednio zatrudnieni. DEPARTMENT has POSITION is_hold works_ in works_ as EMPLOYEE CONTRACT EMPLOYEE HOURLY EMPLOYEE Własność hierarchii generalizacji: • Wszystkie podklasy dziedziczą wszystkie związki swojej encji nadklasy worked in consisted_of COMPANY
Atrybuty Wyróżniamy dwa typy atrybutów: • identyfikatory • deskryptory Identyfikator pozwala na jednoznaczną identyfikację dowolnej instancji (wystąpienia) encji Deskryptor służy do specyfikacji nieunikalnej własności dowolnej instancji (wystąpienia) encji Identyfikatory jak i deskryptory mogą być pojedynczymi atrybutami lub atrybutami złożonymi. Atrybuty mogą być jednowartościowe lub wielowartościowe
Unikalny identyfikator encji Każda encja musi być jednoznacznie identyfikowalna, tak aby można było odróżnić różne wystąpienia tej samej encji. Unikalny identyfikator encji może być pojedynczym atrybutem, kombinacją atrybutów, kombinacją związków, lub kombinacją atrybutów i związków. Identyfikatory naturalne PROJECT # symbol name budget start date end date lub Sztuczne identyfikatory Kiedy: • liczba atrybutów zapewniająca unikalność > 2, • duże rozmiary wartości identyfikatora, • wartości identyfikatora są często aktualizowane, EMPLOYEE # id_employee first name address telephone PROJECT # symbol # start date name budget end date
Własności atrybutów - ograniczenia integralnościowe Dziedzina atrybutu Zbiór wartości jakie może przyjmować atrybut encji. Notacja: project_name - VARCHAR(25) salary - NUMBER(8, 2) Atrybuty obowiązkowe Atrybut, którego wartości muszą być zdefiniowane dla wszystkich instancji danej encji Notacja: * name o second_name Unikalny identyfikator Wartość identyfikatora musi być unikalna i zdefiniowana dla wszystkich instancji danej encji Notacja: # project_symbol Ograniczenie dziedziny atrybutu Dodatkowe ograniczenie nałożone na zbiór wartości danego atrybutu; zdefiniowane w postaci wyrażenia logicznego lub referencji do innych atrybutów Przykład: check(day(pay_date) <> ’Sunday’), check(end_date > start_date) Dynamiczne ograniczenia integralnościowe Zbiór dopuszczalnych przejść stanów danego atrybutu. Przykład: kawaler, żonaty, wdowiec
Własności związków – ograniczenia integralnościowe Związek obowiązkowy/opcjonalny: Dla każdej instancji encji musi istnieć odpowiadająca jej instancja związku Unikalność: (patrz definicja encji słabej) Związek obowiązkowy works_in EMPLOYEE PRODUCT Wyłączność (łuk): “każda pozycja może dotyczyć jednego i tylko jednego produktu lub jednej i tylko jednej usługi” Związki trwałe (nie-transferowalne): Związek jest trwały jeżeli dowolna instancja encji w tym związku nie może być rozłączona lub przełączona do innej instancji tej samej encji. Związek opcjonalny assigned_to EMPLOYEE BALANCE OF WAREHOUSE describe concern WAREHOUSE quantity in product ITEM concerns ORDER PRODUCT SERVICE contains belongs_to ORDERED ITEM
Unikalny identyfikator hierarchii generalizacji Unikalny identyfikator na poziomie encji nadklasy: • wspólne, naturalne atrybuty encji nadklasy, • sztuczny atrybut dodany do encji nadklasy, • kombinacja związków i atrybutów encji nadklasy Metody definiowania identyfikatorów w hierarchii generalizacji : • wiele identyfikatorów na najniższym poziomie hierarchii • jeden identyfikator na najwyższym poziomie hierarchii generalizacji EMPLOYEE first_name last_name address CONTRACT EMPLOYEE contractid HOURLY EMPLOYEE hours_worked hourly-wage WŁASNOŚCI: • Unikalny identyfikator jest dziedziczony przez wszystkie podklasy. • Umożliwia identyfikację wszystkich instancji wszystkich podklas Unikalne identyfikatory definiowane na poziomie podklas: • Dla każdej podklasy na najniższym poziomie hierarchii definiujemy niezależny unikalny identyfikator.
Hierarchia encji bez atrybutów specyficznych ŁUK Firma wydająca karty kredytowe zakłada konta klientów indywidualnych lub klientów zbiorowych (firmy), które mogą wystawiać karty kredytowe dla swoich pracowników Hierarchia encji ACCOUNT attributes INDIVIDUAL ACCOUNT COMPANY ACCOUNT Łuk against ACCOUNT INDIVIDUAL COMPANY against INDIVIDUAL COMPANY • Encje specjalizacji INDIVIDUAL ACCOUNT i COMPANY ACCOUNT nie posiadają specyficznych atrybutów. • Encje specjalizacji mogą posiadać tylko specyficzne związki.
- Slides: 29