Witajcie studenci! Przygotowujemy się do egzaminu z projektowania relacyjnych baz danych. Skupimy się na podejściu Mazura. Damy radę!
Modelowanie Konceptualne
Zacznijmy od podstaw. Mamy modelowanie konceptualne. To pierwszy krok.
Encje
Encje to obiekty, które chcemy przechowywać w bazie danych. Na przykład, Klient, Produkt czy Zamówienie.
Każda encja ma atrybuty. Atrybuty opisują encję. Na przykład, Klient może mieć atrybuty: Imię, Nazwisko, Adres.
Klucz główny (Primary Key) jednoznacznie identyfikuje każdą encję. Nie może być null i musi być unikalny.
Relacje
Relacje opisują związki między encjami. Na przykład, Klient składa Zamówienie.
Rodzaje relacji: jeden-do-jednego (1:1), jeden-do-wielu (1:N), wiele-do-wielu (N:M).
Relacja jeden-do-wielu (1:N) oznacza, że jeden Klient może złożyć wiele Zamówień, ale jedno Zamówienie jest złożone tylko przez jednego Klienta.
Relacja wiele-do-wielu (N:M) wymaga wprowadzenia dodatkowej encji łączącej. Na przykład, Zamówienie zawiera wiele Produktów, a Produkt może być w wielu Zamówieniach. Potrzebujemy encji PozycjaZamówienia.
Model Logiczny
Teraz przechodzimy do modelu logicznego. Tutaj przekształcamy konceptualny model w tabele.
Tabele
Tabele reprezentują encje. Każda tabela ma kolumny (atrybuty) i wiersze (rekordy).
Kolumny definiują strukturę tabeli. Każda kolumna ma nazwę i typ danych (np. INTEGER, VARCHAR, DATE).
Klucz obcy (Foreign Key) to kolumna w jednej tabeli, która odnosi się do klucza głównego innej tabeli. Ustala relacje między tabelami.
W relacji 1:N, klucz główny tabeli po stronie "jeden" staje się kluczem obcym w tabeli po stronie "wiele".
W relacji N:M tworzymy dodatkową tabelę łączącą. Ta tabela ma dwa klucze obce - po jednym z każdej tabeli powiązanej relacją N:M.
Normalizacja
Normalizacja to proces eliminowania redundancji danych. Ma na celu poprawę integralności i efektywności bazy danych.
Formy normalne: 1NF, 2NF, 3NF, BCNF.
1NF: Każda kolumna w tabeli zawiera tylko wartości atomowe (niepodzielne).
2NF: Tabela jest w 1NF i wszystkie kolumny niebędące kluczem głównym są w pełni zależne od całego klucza głównego (a nie tylko od jego części).
3NF: Tabela jest w 2NF i wszystkie kolumny niebędące kluczem głównym nie są zależne od innych kolumn niebędących kluczem głównym (nie ma zależności przechodnich).
BCNF (Boyce-Codd Normal Form): Każdy determinant (kolumna lub zbiór kolumn, od których zależy inna kolumna) jest kluczem kandydującym.
Model Fizyczny
Model fizyczny to implementacja modelu logicznego w konkretnym systemie zarządzania bazą danych (DBMS). Na przykład, MySQL, PostgreSQL, SQL Server.
Wybieramy typy danych, indeksy i inne parametry specyficzne dla danego DBMS.
Indeksy
Indeksy przyspieszają wyszukiwanie danych. Tworzymy indeksy na kolumnach, które są często używane w zapytaniach WHERE.
Indeksy mogą spowolnić operacje zapisu (INSERT, UPDATE, DELETE), więc używamy ich z rozwagą.
Typy Danych
Wybór odpowiednich typów danych wpływa na wydajność i wykorzystanie przestrzeni dyskowej. Na przykład, dla dat używamy typu DATE lub DATETIME, dla liczb całkowitych INTEGER, dla tekstu VARCHAR lub TEXT.
Podejście Mazura
Metoda Mazura kładzie nacisk na iteracyjne podejście do projektowania baz danych. Model jest stopniowo udoskonalany w oparciu o wymagania użytkowników i testy.
Ważne jest zrozumienie potrzeb użytkowników i ich procesów biznesowych. Mazur podkreśla komunikację z użytkownikami.
Iteracje pozwalają na szybkie wykrywanie i korygowanie błędów. Unikamy sytuacji, w której źle zaprojektowana baza danych musi być całkowicie przebudowana.
Przykładowe Zadanie
Zaprojektuj bazę danych dla sklepu internetowego. Skup się na encjach: Klient, Produkt, Zamówienie, Kategoria.
1. Zdefiniuj encje i ich atrybuty.
2. Określ relacje między encjami.
3. Narysuj diagram ERD (Entity-Relationship Diagram).
4. Przekształć diagram ERD w model logiczny (tabele).
5. Zastosuj normalizację (do 3NF).
6. Rozważ model fizyczny (wybór DBMS, typy danych, indeksy).
Podsumowanie
Pamiętaj o:
- Encjach, atrybutach i relacjach.
- Kluczach głównych i obcych.
- Normalizacji (1NF, 2NF, 3NF).
- Indeksach i typach danych.
- Iteracyjnym podejściu Mazura.
Powodzenia na egzaminie! Jesteście świetni!
