Diagramy związków encji są użytecznym narzędziem przy projektowaniu baz danych. Pokazują one zaangażowane encje, ich atrybuty oraz relacje między nimi. Zdefiniowanie tych elementów jest niezbędne, aby właściwie zrozumieć strukturę bazy danych przed jej zbudowaniem.
Metodą często stosowaną do tworzenia diagramu związków encji jest notacja crow’s foot. Wprowadzone w latach 70. charakterystyczne strzałki używane w notacji wronich łapek były również nazywane odwróconymi strzałkami, kurzymi łapkami lub po prostu widełkami.
Jakie symbole są używane w notacji wronich łapek?
Notacja crow’s foot używa pewnych unikalnych kształtów i symboli do reprezentowania elementów w bazie danych.
Entencje
Entencja to rzecz w świecie rzeczywistym (osoba, miejsce, obiekt – cokolwiek możesz nazwać w swojej bazie danych może być encją) reprezentowana w notacji crow’s foot przez prostokąt z nazwą w ramce na górze. Encja jest zawsze w liczbie pojedynczej.
Atrybuty
Etencje mają atrybuty, które je opisują. Te atrybuty są wymienione pod nazwą w pozostałej części prostokąta. Encja może mieć jeden lub wiele atrybutów. Jeden z tych atrybutów będzie jego kluczowym atrybutem lub identyfikatorem, który w unikalny sposób identyfikuje encję. Identyfikator jest oznaczony gwiazdką obok nazwy.
Więc nasza encja gracz jest reprezentowana przez prostokąt z napisem player wewnątrz niego.
Relacje
Elementy przedstawione na diagramie posiadają relacje, które opisują jak na siebie oddziałują. Relacje między encjami są reprezentowane przez linię z czasownikiem zapisanym na linii.
Jak działają relacje w notacji wroniej łapy?
Linie relacji w notacji crow’s foot posiadają dwa wskaźniki opisujące kardynalność i modalność relacji. Kardynalność mówi ci o maksymalnej liczbie przypadków, w których instancja encji może być powiązana z instancjami innej encji. Modalność mówi ci o minimalnej ilości razy, kiedy instancja może być powiązana z instancjami innej encji. Zauważ, że przez większość czasu możesz po prostu użyć słowa kardynalność.
Wskaźniki te są wyświetlane na obu końcach linii relacji, abyś mógł zobaczyć, jak encje odnoszą się do siebie.
Jeden
Wielki
Możesz zobaczyć z tej
Zero lub wiele
Zero lub wiele relacji oznacza, że jest ona opcjonalna. Między podmiotami może nie być żadnego związku, może też być jeden lub więcej.
Jeden lub wiele
Jeden” wskazuje, że nie jest to związek opcjonalny, choć może być ich więcej niż jeden.
Jedna i tylko jedna
Nie jest możliwe więcej niż jedna relacja między instancjami.
Zero lub jeden
Kolejna opcjonalna relacja, maksymalnie jedna.
Notacja Chena vs. crow’s foot
Notacja crow’s foot nie jest jedynym sposobem rysowania diagramu relacji encji. Alternatywne i wcześniejsze podejście, notacja Chena, przyjmuje inne podejście do reprezentowania encji i ich relacji: encje są prostokątami, ich atrybuty są owalami, a relacje są rombami.
Notacja Chena używa symboli na liniach pomiędzy relacjami i encjami, aby pokazać kardynalność:
Niektórzy krytycy notacji Chen twierdzą, że jej diagramy zajmują więcej miejsca niż kurza stopka, a symbole relacji są mniej intuicyjne.
Przykład notacji crow’s foot w akcji
Zaplanujmy sklep internetowy, aby pokazać jak działa notacja crow’s foot. Dla naszego przykładu, uprościmy sklep i będziemy reprezentować tylko cztery encje: klient, zamówienie, produkt i kod rabatowy.
Z diagramu widać, że każda encja ma kilka atrybutów, a unikalny identyfikator jest oznaczony gwiazdką.
Zacznijmy teraz mapować relacje. Możemy zacząć od klienta i zamówienia.
Linia relacji pokazuje, że klient może mieć zero lub wiele zamówień, natomiast zamówienie może być powiązane z jednym i tylko jednym klientem. Czasownikiem użytym w relacji może być „places”, tak jak w customer places an order.
Przechodząc do produktu i zamówienia, produkt może być powiązany z zero lub wieloma zamówieniami, podczas gdy zamówienie musi mieć jeden lub wiele produktów (nie można mieć zamówienia bez zamawiania czegoś!). Dla produktu i zamówienia, możemy użyć czasownika „jest dodawany do”, aby opisać jak produkt jest dodawany do zamówienia.
Następnym elementem jest kod rabatowy. Chcemy zachęcić naszych klientów do zamawiania produktów, więc czasami wysyłamy mailem sezonowy kod rabatowy. Moglibyśmy wysyłać konkretne kody związane z konkretnymi klientami, ale w naszym przykładzie użyjemy tego samego krótkiego kodu alfanumerycznego dla wszystkich.
Nie musimy łączyć klienta z kodem rabatowym, ponieważ wystarczy, że wprowadzi on kod podczas składania zamówienia, a on zaktualizuje całkowity koszt zamówienia. Nie musi istnieć stała relacja pomiędzy klientem a kodem rabatowym.
Zamówienia i kody rabatowe mają relację zero lub jeden: klient może nie wprowadzić kodu rabatowego, ale jeśli to zrobi, może użyć tylko jednego na raz. Wracając w drugą stronę, zamówienie może nie mieć żadnego kodu rabatowego związanego z nim, ale jeśli ma, może mieć tylko jeden. Kod rabatowy jest „zastosowany” do zamówienia.
Prawdziwy diagram relacji encja-relacja narysowany przy użyciu notacji wroniej łapy będzie znacznie bardziej złożony niż nasz przykład. Możesz jednak zobaczyć, jak notacja crow’s foot ułatwia zobaczenie na pierwszy rzut oka, jak będzie funkcjonować baza danych. Prawdopodobnie możesz nawet zacząć wyobrażać sobie inne części naszego sklepu internetowego i to, jak mogą się one ze sobą łączyć.
Notacja crow’s foot sprawdza się najlepiej, gdy musisz na poważnie zacząć budować swoją bazę danych. Kiedy musisz mieć jasność, jak encje odnoszą się do siebie nawzajem, docenisz poziom szczegółowości zawarty w liniach relacji na diagramie relacji encji (ERD) utworzonym przy użyciu notacji kurzej łapki. Ale kiedy dopiero zaczynasz rozwijać swój projekt, możesz polegać na prostszych podejściach do ERD. Pierwszym krokiem w przekazywaniu swoich pomysłów jest wstępne naszkicowanie encji, atrybutów i relacji. Na tym etapie, zazwyczaj dobrym pomysłem jest pracować szybko i nie przejmować się zbytnio szczegółami.
Gleek obsługuje notację crow’s foot, ale umożliwiamy też tworzenie wielu innych diagramów. Nasze narzędzia do tworzenia diagramów są przeznaczone dla programistów, którzy chcą szybko stworzyć nieformalny diagram ER na poziomie koncepcyjnym lub szybki diagram kontekstowy, aby dowiedzieć się, w jaki sposób produkt odnosi się do zewnętrznych podmiotów. Jeśli potrzebujesz przedyskutować swoje pomysły na spotkaniu lub współpracować na wczesnych etapach projektowania bazy danych, wypróbuj przyjazne dla klawiatury podejście do diagramów Gleek.