Co to jest modelowanie ER? Ucz się na przykładzie

⚡ Inteligentne podsumowanie

Modelowanie relacji encji to graficzne podejście do projektowania baz danych, które przedstawia obiekty świata rzeczywistego jako encje, opisuje je za pomocą atrybutów i rejestruje sposób, w jaki są one ze sobą powiązane poprzez relacje. Dzięki temu powstaje przejrzysty plan przed utworzeniem tabel.

  • 🧩 Co to jest: Modelowanie ER to graficzny model danych wysokiego poziomu, który definiuje elementy danych i relacje między nimi.
  • 🗂️. Bloki konstrukcyjne: Encje reprezentują rzeczy ze świata rzeczywistego, atrybuty opisują ich właściwości, a relacje opisują interakcje między nimi.
  • 🔗 Kardynalność: Relacje mogą być jeden do jednego, jeden do wielu lub wiele do wielu, a ich rozstrzyganie odbywa się za pomocą encji połączenia.
  • 🚀 Model EER: Ulepszony model ER wykorzystuje notację UML i dodatkowe konstrukcje przeznaczone dla bardzo złożonych baz danych.
  • 🎬 Studium przypadku MyFlix: Przykład wideoteki mapuje członków, filmy, kategorie, wypożyczenia i płatności na diagramie ER.
  • 🤖 Pomoc AI: Narzędzia AI i GitHub Copilot przekształcają opisy w języku naturalnym w diagramy ER i schematy SQL.

Modelowanie ER

Co to jest modelowanie ER?

Model relacji encji (Modelowanie ER) to graficzne podejście do projektowania baz danych. Jest to model danych wysokiego poziomu, który definiuje elementy danych i ich relacje dla określonego systemu oprogramowania. Model ER służy do reprezentowania obiektów świata rzeczywistego.

Jednostka to rzecz lub obiekt w świecie rzeczywistym, który można odróżnić od otaczającego go środowiska. Na przykład, każdy pracownik organizacji jest odrębną jednostką. Poniżej przedstawiono niektóre z głównych cech jednostek.

  • Jednostka ma zestaw właściwości.
  • Właściwości jednostki mogą mieć wartości.

Rozważmy ponownie nasz pierwszy przykład. Pracownik organizacji to jednostka. Jeśli „Piotr” jest programistą (pracownikiem) w Microsoftmoże mieć atrybuty (właściwości) takie jak imię, wiek, waga, wzrost itd. Oczywiste jest, że mają one dla niego istotne wartości.

Każdy atrybut może mieć wartości. W większości przypadków pojedynczy atrybut ma jedną wartość. Możliwe jest jednak, że atrybuty mają również wiele wartości. Na przykład wiek Petera ma jedną wartość. Ale jego właściwość „numery telefonów” może mieć wiele wartości.

Jednostki mogą mieć ze sobą relacje. Rozważmy najprostszy przykład. Załóżmy, że każda Microsoft Programista otrzymuje komputer. Jest oczywiste, że komputer Piotra również jest bytem. Piotr korzysta z tego komputera, a ten sam komputer jest używany przez Piotra. Innymi słowy, istnieje wzajemna relacja między Piotrem a jego komputerem.

W modelowaniu relacji między encjami modelujemy encje, ich atrybuty i relacje między encjami.

Dlaczego warto korzystać z modelu ER?

Teraz możesz pomyśleć, po co używać modelowania ER, skoro możemy po prostu stworzyć bazę danych i wszystkie jego obiekty bez modelowania ER? Jednym z wyzwań stojących przed projektowaniem bazy danych jest fakt, że projektanci, programiści i użytkownicy końcowi mają tendencję do odmiennego postrzegania danych i ich wykorzystania. Jeśli nie zaradzimy tej sytuacji, możemy stworzyć system baz danych, który nie będzie spełniał wymagań użytkowników.

Narzędzia komunikacji zrozumiałe dla wszystkich interesariuszy (zarówno użytkowników technicznych, jak i nietechnicznych) mają kluczowe znaczenie dla tworzenia systemów baz danych spełniających wymagania użytkowników. Modele ER są przykładami takich narzędzi.

Diagramy ER zwiększają również produktywność użytkownika, ponieważ można je łatwo przekształcić w tabele relacyjne.

Model ulepszonej relacji między jednostkami (EER).

Model Enhanced Entity Relationship (EER) to model danych wysokiego poziomu, który stanowi rozszerzenie oryginalnego modelu Entity Relationship (ER). Modele EER umożliwiają bardziej szczegółowe projektowanie. Modelowanie EER rozwinęło się jako rozwiązanie do modelowania wysoce złożonych baz danych.

EER korzysta z notacji UML. UML to akronim od Ujednolicony język modelowania; jest to język modelowania ogólnego przeznaczenia używany przy projektowaniu systemów obiektowych. Jednostki są reprezentowane jako diagramy klas. Relacje są reprezentowane jako powiązania między jednostkami. Diagram pokazany poniżej ilustruje diagram ER przy użyciu Notacja UML.

Model ulepszonej relacji między jednostkami (EER).

Studium przypadku: Diagram ER dla biblioteki wideo „MyFlix”

Teraz popracujemy z bazą danych MyFlix Video Library, aby lepiej zrozumieć koncepcję diagramów ER. Będziemy korzystać z tej bazy danych do wszystkich prac praktycznych w tym samouczku.

MyFlix to podmiot gospodarczy wypożyczający filmy swoim członkom. MyFlix przechowuje swoje dane ręcznie. Zarząd chce teraz przenieść się do DBMS.

Przyjrzyjmy się krokom tworzenia diagramu EER dla tej bazy danych:

  1. Zidentyfikuj podmioty i określ relacje, jakie istnieją między nimi.
  2. Każdy obiekt, atrybut i relacja powinny mieć odpowiednie nazwy, które będą łatwo zrozumiałe również dla osób niemających wiedzy technicznej.
  3. Relacje nie powinny być ze sobą bezpośrednio powiązane. Relacje powinny łączyć podmioty.
  4. Każdy atrybut w danej encji powinien mieć unikalną nazwę.

Obiekty w bibliotece „MyFlix”

Podmioty, które mają zostać uwzględnione w naszym Schemat ER należą:

  • Członkowie – ta jednostka będzie przechowywać informacje o członkach.
  • Filmy – ta jednostka będzie przechowywać informacje dotyczące filmów.
  • Kategorie – ta jednostka będzie przechowywać informacje, które przyporządkują filmy do różnych kategorii, takich jak „Dramat”, „Akcja”, „Epicki” itp.
  • Wypożyczalnie filmów – podmiot ten będzie przechowywał informacje o filmach wypożyczonych członkom.
  • Płatności – podmiot ten będzie przechowywał informacje o płatnościach dokonywanych przez członków.

Definiowanie relacji między bytami

Członkowie i filmy

Poniższe stwierdzenie odnosi się do interakcji pomiędzy tymi dwoma podmiotami.

  • Członek może wypożyczyć więcej niż jeden film w danym okresie.
  • Film może wypożyczyć więcej niż jeden członek w danym okresie.

Z powyższego scenariusza wynika, że ​​relacja ma charakter wiele-do-wielu. Relacyjne bazy danych nie obsługują relacji wiele-do-wielu. Musimy wprowadzić encję połączeniową. Tę rolę pełni encja MovieRentals. Ma ona relację jeden-do-wielu z tabelą Members i kolejną relację jeden-do-wielu z tabelą Movies.

Elementy filmów i kategorii

Poniższa zasada dotyczy filmów i kategorii.

  • Film może należeć tylko do jednej kategorii, ale kategoria może obejmować więcej niż jeden film.

Możemy z tego wywnioskować, że relacja między tabelami kategorii i filmów jest typu jeden do wielu.

Członkowie i podmioty płatnicze

Poniższe informacje dotyczą członków i płatności.

  • Członek może posiadać tylko jedno konto, ale może dokonywać wielu płatności.

Możemy z tego wywnioskować, że relacja między członkami a podmiotami płatniczymi ma charakter jeden-do-wielu.

Utwórz model EER za pomocą MySQL Workbench

In MySQL Workbench, kliknij przycisk „+”.

Utwórz model EER za pomocą MySQL Workbench

Double Kliknij przycisk Dodaj diagram, aby otworzyć przestrzeń roboczą dla diagramów ER.

Dodaj diagram w MySQL Workbench

Pojawia się następujące okno.

MySQL Środowisko modelowania EER Workbench

Przyjrzyjmy się dwóm obiektom, z którymi będziemy pracować.

  • Obiekt tabeli narzędzie tabelaryczne pozwala nam tworzyć encje i definiować atrybuty powiązane z daną encją.
  • Relacja miejsca narzędzie do określania relacji między miejscami przycisk umożliwia nam definiowanie relacji pomiędzy encjami.

Jednostka Członkowie będzie miała następujące atrybuty

  • Numer członkowski
  • Pełne nazwy
  • Płeć
  • Data urodzenia
  • Adres fizyczny
  • adres pocztowy

Utwórzmy teraz tabelę Członkowie

1. Przeciągnij obiekt tabeli z panelu narzędzi.

2. Upuść go w obszarze roboczym. Pojawi się encja o nazwie „Tabela 1”.

3. Double Kliknij na niego. Pojawi się okno właściwości pokazane poniżej.

Właściwości tabeli członków w MySQL Workbench

Następnie

  1. Zmień tabelę 1 na Członkowie.
  2. Zmień domyślny idtable1 na membership_number.
  3. Kliknij następny wiersz, aby dodać kolejne pole.
  4. Wykonaj tę samą czynność dla wszystkich atrybutów zidentyfikowanych w encji Członkowie.

Twoje okno właściwości powinno teraz wyglądać tak.

Zdefiniowano atrybuty jednostki członkowskiej

Powtórz powyższe kroki dla wszystkich zidentyfikowanych podmiotów.

Obszar roboczy diagramu powinien teraz wyglądać jak ten pokazany poniżej.

Jednostki MyFlix w obszarze roboczym diagramu

Stwórzmy relację między Członkami a Wypożyczalniami Filmowymi

  1. Wybierz relację miejsca przy użyciu narzędzia istniejących kolumn.
  2. Kliknij membership_number w tabeli Członkowie.
  3. Kliknij na reference_number w tabeli MovieRentals.

Tworzenie relacji między Członkami a MovieRentals

Powtórz powyższe kroki dla innych relacji. Twój diagram ER powinien teraz wyglądać tak:

Ukończony schemat MyFlix ER

FAQ

Diagram ER składa się z trzech głównych komponentów: encji w postaci prostokątów, atrybutów w postaci owali i relacji w postaci rombów. Podkreślone atrybuty oznaczają klucze podstawowe.

Typowe typy atrybutów to atrybuty proste (atomowe), złożone (podzielne), pochodne (obliczone), wielowartościowe (wielowartościowe) i kluczowe, które identyfikują jednostkę.

Kardynalność definiuje, ile instancji jednego bytu jest powiązanych z innym: jeden do jednego, jeden do wielu lub wiele do wielu. Byt łączący rozwiązuje nieobsługiwane połączenia wiele do wielu.

Silny byt ma swój własny klucz podstawowy i jest niezależny. Słaby byt nie ma pełnego klucza i jest zależny od bytu-właściciela.

Notacja „Crow's Foot” pokazuje kardynalność z zakończeniami linii przypominającymi ptasią stopę. Zęby oznaczają wiele stron; kreski i kółka oznaczają jedną i opcjonalną.

Model ER to wizualny, wysokopoziomowy schemat encji i relacji. Model relacyjny implementuje go jako tabele, wiersze, kolumny i klucze w systemie DBMS.

Narzędzia AI przekształcają opisy w języku naturalnym w diagramy ER, sugerują encje i relacje oraz generują schematy SQL. Projektanci przeglądają i poprawiają wyniki przed ich wdrożeniem.

Tak. Drugi pilot GitHub Sugeruje encje, relacje i struktury tabel oraz generuje kod SQL do ich budowy. Potrafi również tworzyć diagramy w formie kodu, takie jak Mermaid, które następnie renderują się w diagramie ER.

Podsumuj ten post następująco: