2013-04-09 19 views
14

Staram się pokazać, co następuje w diagramie ER:jeden do wielu relacji w diagramie ER

There are instructors and courses, a course is taught by only one instructor 
whereas an instructor can give many courses. 

enter image description here

enter image description here

Moje pytanie brzmi, czy istnieje różnica między dwoma diagramy, czy ma znaczenie, która linia zamieniamy w strzałę, czy to, co ma znaczenie, to tylko kierunek strzałki?

Ponadto, jeśli pomyślimy o mapowaniu kardynalności; czy to 1 do wielu czy wielu do 1? Jeśli myślimy kategoriami kursów, to jest wiele do jednego, ale jeśli myślimy w kategoriach instruktorów, to jest jeden dla wielu. Jak to decydujemy? Dziękuję.

Odpowiedz

30

W diagramach ER, gdy związek jest oznaczony strzałki nie są używane. Niektórzy instruktorzy używają tej strzałki, kiedy chcą zdecydować o licznościach, ale to jest po prostu uzyskanie kardynalności (1: 1, 1: M i N: M)

Dołączyłem diagram ER do tego w notacji Chen, a także za pomocą Crow Notation możesz użyć jednego z nich.

ER Digram

Decydując liczność dla związku jest praktyczny scenariusz nie jest trudne i przekazać reguła go uzyskać. Musisz zacząć od jednej strony relacji i wziąć jedną krotkę (instancję) i sprawdzić, ile krotek z innej jednostki bierze udział w związku. Następnie wykonaj vice versa. Wtedy znasz liczbę uczestników krotek) od każdej jednostki do związku. Pomyśl o teorii mnogości i funkcjach w matematyce, gdy zdecydujesz o liczności (tj. Zestaw instruktorów, Zestaw kursów i zestaw typów relacji Naucz), to jest takie proste, ale jeśli nie jesteś z matematycznego tła, pomyśl o praktycznym scenariuszu.

Dla przykładu

a) Do 1 instruktorem on lub ona może nauczyć wiele (M) kursy

b) za 1 kurs jest tylko 1 instruktor

więc w bok tam instruktora jest zawsze 1 a) i b), ale w Kursach jest M i 1 w a) i b) tam dla Instruktora: Liczność kursu wynosi 1: M

+0

Ale czy to prawda, jeśli mam atrybut dla diamentu między dwoma obiektami? – hyperfkcb

+0

@DeniseTan Tak, jest to rzeczywiście możliwe. Relacja wiele do wielu może zostać znormalizowana do dwóch relacji jeden do wielu, z tabelą skrzyżowań. Byłoby to reprezentowane przez model abstrakcyjny, który może również zawierać atrybuty (tj. Znacznik czasu). Na przykład pytania i znaczniki w języku SO to relacja wiele do wielu. Znaczniki pytań mogą być reprezentowane przez relację 'question_tags'. Ta relacja może zawierać pole 'inserted_at', które wskazuje znacznik czasu przypisania tagów. – Leviathlon

0

Nie sądzę, że druga odpowiedź jest w pełni poprawna.

Powiedziałbym, że jeden powinien Użyj strzałek, a należy użyć zapisu, który daje znaczącą nazwę do każdy kierunek relacji. W tym przypadku będzie "nauczał" w jednym kierunku, a "jest nauczany przez" w drugim. Użyj strzałek obok nazw lub umieść nazwę w pobliżu encji, do której się odnoszą. Możesz użyć jednej linii (z dwiema strzałkami) lub dwóch linii (każda z jedną strzałką).

Sugerowałbym również, że liczność jest tylko jednym rodzajem ograniczenia, a notacja powinna to odzwierciedlać. Na przykład dwie nazwy relacji mogą być następujące: "uczy (wielu)" i "uczy się (dokładnie jeden)". Chodzi o to, że mógłbyś "uczy (jeden lub dwa)" lub "uczy się (dokładnie dwa)" i tak dalej.

Lepiej jest jasno i precyzyjnie określić, jakie dokładnie są twoje ograniczenia.

0

Oba mają dokładnie odwrotne liczność

Proste czystą linię znaczy wiele.

Strzałka oznacza jeden.

Jeśli weźmiemy pod uwagę obie z taką samą mocą.

wtedy, wiele do wielu powinien być reprezentowany przez następujące drugą konwencję za (proszę zakładać diamentowe dla relacji ustawiony i prostokąta zbioru encji)

INSTRUCTOR <---- TEACHES -----> COURSE 

który faktycznie nie ma sensu.

Jeśli weźmiemy pod uwagę oba z przeciwnymi licznościami.

wtedy, wiele do wielu powinien być reprezentowany przez następujące drugą konwencję za (proszę zakładać diamentowe dla relacji ustawiony i prostokąta zbioru encji)

INSTRUCTOR ----- TEACHES ------ COURSE 

Brak wyraźnego strzałka jest zawsze uważane za wiele do wielu. Tak, to jest poprawne (tylko jeśli rozważymy oba przeciwne):

+0

jakiekolwiek źródło wsparcia dla twojej odpowiedzi? – momo

0

Rozważmy zestaw jednostek "pracownik" i "oddział", mając związek ustawiony jako "zarządzaj". Pracownik ------------- Zarządzaj -------------------- Departament (zestaw podmiotów) (Zestaw relacji) (zestaw jednostek) Jedna do wielu relacji oznacza, że ​​jedna jednostka zbioru pracowników może być powiązana z więcej niż jednym podmiotem zestawu jednostek działu, ale jednostka zestawu działów może być powiązana z co najwyżej jedną jednostką zbioru jednostek pracowniczych. Oznacza to, że jeśli istnieje jeden do wielu relacji między pracownikami i zestawami jednostek wydziałowych, każdy pracownik może zarządzać więcej niż jednym działem, a jednocześnie każdy dział jest zarządzany przez co najwyżej jednego pracodawcę.

Powiązane problemy