Encyklopedia architektury danych — zasoby edukacyjne dla analityków Polska
Strona główna Data Lake Data Warehouse ETL Modelowanie danych Governance danych O nas Kontakt
Projektowanie danych

Modelowanie danych

Modelowanie danych to proces tworzenia abstrakcyjnej reprezentacji struktur danych, ich atrybutów i relacji między nimi. Prawidłowy model danych jest fundamentem każdego systemu analitycznego — determinuje wydajność zapytań, łatwość utrzymania i skalowalność.

Trzy poziomy modelowania

Modelowanie danych odbywa się na trzech poziomach abstrakcji, każdy skierowany do innego odbiorcy i służący innemu celowi:

Poziom Cel Notacja Odbiorca
Konceptualny Opis biznesowy obszaru danych Encje i relacje wysokiego poziomu Analitycy biznesowi, właściciele domen
Logiczny Struktura niezależna od technologii Tabele, kolumny, klucze, typy Architekci danych, analitycy systemów
Fizyczny Implementacja w konkretnej bazie DDL, indeksy, partycjonowanie Inżynierowie danych, DBA

Model konceptualny definiuje główne encje i ich wzajemne powiązania bez wchodzenia w szczegóły atrybutów. Model logiczny precyzuje atrybuty każdej encji, typy danych i reguły integralności. Model fizyczny jest bezpośrednim odzwierciedleniem struktury bazy danych z uwzględnieniem specyfiki silnika (partycjonowanie, indeksy, kompresja).

Articles published on this website summarize publicly available information, industry research and educational materials.

Diagram encja-relacja (ERD)

Diagram encja-relacja (Entity-Relationship Diagram) jest graficzną reprezentacją modelu danych. Encje reprezentowane są jako prostokąty, atrybuty jako elipsy (lub listy w notacji Crow's Foot), a relacje jako linie łączące encje z oznaczeniem kardynalności.

Popularne notacje ERD: notacja Chena (oryginalna notacja akademicka), notacja Crow's Foot (szeroko stosowana w narzędziach CASE i dokumentacji technicznej) i notacja UML (klasy zamiast encji).

Normalizacja danych

Normalizacja to proces organizowania danych w celu minimalizacji redundancji i zależności. Wyróżnia się kilka postaci normalnych (Normal Form — NF):

Postać normalna Wymaganie Eliminuje
1NF Atomowe wartości, unikalne wiersze Grupy powtarzające się
2NF 1NF + brak częściowej zależności Zależności od części klucza złożonego
3NF 2NF + brak przechodniej zależności Zależności przez kolumny nieklucza
BCNF Silniejsza wersja 3NF Anomalie w kluczach złożonych
4NF BCNF + brak wielowartościowych zależności Redundancja wielowartościowa

W systemach transakcyjnych (OLTP) normalnie dąży się do 3NF lub BCNF, co minimalizuje anomalie aktualizacji i redundancję. Tabele są mniejsze, ale zapytania wymagają wielu złączeń (JOIN).

Denormalizacja w hurtowniach danych

Denormalizacja polega na świadomym wprowadzeniu redundancji do modelu danych w celu przyspieszenia zapytań. W hurtowniach danych jest to standardowa praktyka — tabele wymiarów w schemacie gwiazdy są zdenormalizowane, co eliminuje potrzebę złączeń i przyspiesza agregacje.

Techniki denormalizacji: scalanie tabel (table merging), prekalkulacja wartości pochodnych (np. marginów), duplikowanie atrybutów do tabel faktów, tworzenie zmaterializowanych widoków z wynikami często wykonywanych agregacji.

Decyzja o stopniu denormalizacji jest kompromisem między wydajnością zapytań a złożonością utrzymania: przy każdej zmianie wartości w źródle trzeba zaktualizować wszystkie miejsca, gdzie wartość ta została zduplikowana.

Modele analityczne

W środowiskach analitycznych stosuje się kilka wzorców modelowania:

  • Schemat gwiazdy — centralna tabela faktów, zdenormalizowane tabele wymiarów
  • Schemat płatka śniegu — tabele wymiarów w 3NF z hierarchią powiązań
  • Data Vault — modelowanie zorientowane na historię: hubs (klucze biznesowe), links (relacje), satellites (atrybuty)
  • One Big Table (OBT) — jedna szeroka tabela z wszelkimi atrybutami; typowe w środowiskach ML

Typy relacji między encjami

Typ relacji Opis Przykład
Jeden-do-jednego (1:1) Jeden rekord powiązany z dokładnie jednym Klient — konto bankowe
Jeden-do-wielu (1:N) Jeden rekord powiązany z wieloma Kategoria — produkty
Wiele-do-wielu (N:M) Wiele rekordów po obu stronach Studenci — kursy