- Modelowanie konceptualne: od wymagań biznesowych do schematu bazy danych
- 1. rola i znaczenie modelowania konceptualnego
- 2. podstawowe komponenty modelu związków encji (ERM)
- Encja i zbiór encji
- Atrybuty – właściwości encji
- 3. relacje – powiązania między encjami
- Stopień relacji
- Kardynalność i partycypacja – ograniczenia relacji
- Notacja „kurzej stopki” (crow’s foot notation)
- 4. encje słabe – obiekty zależne
- Podsumowanie
Modelowanie konceptualne: od wymagań biznesowych do schematu bazy danych
1. rola i znaczenie modelowania konceptualnego
Zanim powstanie jakakolwiek tabela w bazie danych, musi powstać jej projekt. Proces ten, zwany modelowaniem danych, jest fundamentem dobrze zaprojektowanego systemu. Jego pierwszym i najważniejszym etapem jest modelowanie konceptualne. Celem tego etapu jest stworzenie abstrakcyjnego, wysokopoziomowego modelu danych, który jest zrozumiały zarówno dla analityków i deweloperów, jak i dla interesariuszy biznesowych.
Wynikiem jest schemat konceptualny, który jest niezależny od technologii – nie interesuje nas jeszcze, czy użyjemy bazy PostgreSQL, czy MongoDB. Skupiamy się wyłącznie na tym, jakie informacje system ma przechowywać i jakie są między nimi logiczne powiązania. Najpopularniejszym narzędziem do tego celu jest Model Związków Encji (ERM), a jego graficzną reprezentacją są Diagramy Związków Encji (ERD).
2. podstawowe komponenty modelu związków encji (ERM)
Encja i zbiór encji
Encja (ang. Entity) to dowolny obiekt, pojęcie lub zdarzenie, o którym chcemy przechowywać informacje. Encje mogą być:
- Fizyczne: Student, Książka, Samochód, Produkt.
- Abstrakcyjne: Stanowisko, Dział, Konto Bankowe.
- Zdarzenia: Rezerwacja, Wypożyczenie, Transakcja.
Zbiór encji (ang. Entity Set) to kolekcja wszystkich encji tego samego typu. W modelu relacyjnym zbiór encji zazwyczaj staje się tabelą (np. zbiór encji STUDENCI stanie się tabelą Studenci).
Atrybuty – właściwości encji
Każda encja jest opisywana przez atrybuty (ang. Attributes), czyli jej cechy lub właściwości. Atrybuty klasyfikujemy, aby precyzyjnie opisać ich naturę.
| Typ Atrybutu | Opis | Przykład |
|---|---|---|
| Prosty (atomowy) | Niepodzielny na mniejsze części. | PESEL, Wiek, Cena |
| Złożony | Można go podzielić na mniejsze, niezależne części. | Adres (składa się z: Ulica, Numer, Miasto, Kod pocztowy) |
| Jednowartościowy | Przyjmuje tylko jedną wartość dla danej encji. | Data urodzenia, Numer dowodu |
| Wielowartościowy | Może przyjąć wiele wartości dla jednej encji. | Numer telefonu (prywatny, służbowy), Umiejętność pracownika |
| Pochodny (wyliczalny) | Jego wartość może być wyliczona na podstawie innego atrybutu. | Wiek (wyliczany z Daty urodzenia). Nie przechowuje się go w bazie, by uniknąć niespójności. |
| Kluczowy (identyfikator) | Atrybut (lub zbiór atrybutów), który unikalnie identyfikuje każdą encję w zbiorze. Staje się kluczem głównym tabeli. | ID_Studenta, PESEL, ISBN |
3. relacje – powiązania między encjami
Relacja (ang. Relationship) to związek między dwoma lub więcej zbiorami encji. Opisuje, w jaki sposób encje oddziałują na siebie. Np. relacja PROWADZI łączy zbiór WYKŁADOWCY ze zbiorem KURSY.
Stopień relacji
Stopień relacji określa, ile zbiorów encji bierze w niej udział.
- Unarna (rekurencyjna): Łączy encje w ramach tego samego zbioru. Np. relacja
JEST_PRZEŁOŻONYMw zbiorzePRACOWNICY. - Binarna: Łączy dwa zbiory encji. Najczęstszy typ. Np.
STUDENTZAPISUJE_SIĘ_NAKURS. - Ternarna: Łączy trzy zbiory encji. Np.
LEKARZPRZEPISUJELEKPACJENTOWI.
Kardynalność i partycypacja – ograniczenia relacji
Te dwa pojęcia są kluczowe do zdefiniowania reguł biznesowych w bazie danych.
Kardynalność (ang. Cardinality) określa maksymalną liczbę powiązań między instancjami encji.
- Jeden-do-jednego (1:1): Jeden mąż może mieć tylko jedną żonę, i odwrotnie.
- Jeden-do-wielu (1:N): Jeden wykładowca może prowadzić wiele kursów, ale kurs jest prowadzony tylko przez jednego wykładowcę.
- Wiele-do-wielu (M:N): Jeden student może zapisać się na wiele kursów, a na jeden kurs może zapisać się wielu studentów.
Partycypacja (ang. Participation) określa minimalną liczbę powiązań, czyli czy udział w relacji jest obowiązkowy.
- Totalna (obowiązkowa): Każda instancja encji musi brać udział w relacji. Np. każdy
SAMOCHÓDmusi mieć przypisanegoPRODUCENTA. - Częściowa (opcjonalna): Instancja encji może, ale nie musi brać udziału w relacji. Np.
PRACOWNIKmoże, ale nie musi, zarządzaćDZIAŁEM.
Notacja „kurzej stopki” (crow’s foot notation)
Jest to popularna notacja graficzna, która jednocześnie pokazuje kardynalność i partycypację.
[ WYKŁADOWCA ] |<-- Prowadzi -->o| [ KURS ] Interpretacja symboli przy encji KURS: - Wewnętrzny symbol 'o' (kółko) oznacza partycypację opcjonalną (zero). - Zewnętrzny symbol '|' (kreska) oznacza kardynalność "jeden". Całość (o|) czytamy: "minimum zero, maksimum jeden". Reguła biznesowa: Wykładowca może (ale nie musi) prowadzić co najwyżej jeden kurs. Interpretacja symboli przy encji WYKŁADOWCA: - Wewnętrzny symbol '|' (kreska) oznacza partycypację obowiązkową (jeden). - Zewnętrzny symbol '<' (kurza stopka) oznacza kardynalność "wiele". Całość (|<) czytamy: "minimum jeden, maksimum wiele". Reguła biznesowa: Kurs musi być prowadzony przez co najmniej jednego wykładowcę, a może być prowadzony przez wielu.
4. encje słabe – obiekty zależne
Czasami spotykamy obiekty, które nie mogą istnieć samodzielnie i których identyfikacja zależy od innej encji. Nazywamy je encjami słabymi (ang. Weak Entities). Encja, od której zależą, to encja silna (ang. Strong Entity).
Klasycznym przykładem jest PRACOWNIK (encja silna) i CZŁONEK_RODZINY (encja słaba). Członek rodziny nie może istnieć w systemie bez pracownika, do którego jest przypisany. Encja słaba nie ma własnego pełnego klucza głównego. Posiada jedynie klucz częściowy (dyskryminator), np. Imię, który jest unikalny tylko w obrębie danego pracownika. Pełny klucz encji słabej tworzy się przez połączenie klucza głównego encji silnej i jej własnego klucza częściowego.
Podsumowanie
Modelowanie konceptualne za pomocą diagramów ERD jest kluczowym etapem projektowania baz danych. Pozwala na stworzenie precyzyjnego, niezależnego od technologii planu, który odzwierciedla wszystkie wymagania biznesowe. Zrozumienie pojęć takich jak encje, atrybuty, relacje, kardynalność i partycypacja jest niezbędne do tworzenia wydajnych, spójnych i skalowalnych systemów bazodanowych. Dobrze wykonany schemat konceptualny stanowi solidny fundament dla kolejnego etapu – projektowania logicznego i transformacji do modelu relacyjnego.
