RBD Lab 2
Diagramy ERD
Modelowanie bazy danych
Na poprzednich zajęciach mieliście za zadanie zaprojektować bazę danych, jednak wtedy modelowaliśmy jedynie tabele oraz podstawowe relacje między nimi. Dziś zamodelujemy bazę danych z prawdziwego zdarzenia.
ERD - diagram związków encji
Z ang. Entity Relationship Diagram. Jest to graficzny sposób reprezentacji związków pomiędzy encjami. Na takim, w pełni poprawnie zbudowanym diagramie powinny znaleźć się encje, ich atrybuty oraz związki między nimi.
Encja
Określa różnego rodzaju obiekty lub wydarzenia. Na diagramach reprezentować ją będziemy prostokątem. Z technicznego punktu widzenia opisywać będziemy “magazyny danych”, więc nazwę w takim prostokącie umieszczać będziemy u góry, stosując rzeczownik w liczbie mnogiej.
Atrybut
Cecha charakterystyczna encji - w informatycznej implementacji pola. Określać je będziemy w kolejnych wierszach w ramach encji, zazwyczaj rzeczownikami w liczbie pojedynczej. Atrybuty stanowią składową opisu encji, w której jest umieszczany - np. numer siedzenia w samolocie raczej będzie atrybutem encji miejsca, a nie bilet. Specyficznym atrybutem będzie unikatowy identyfikator, czyli klucz główny, pozwalający na jednoznaczną identyfikację rekordu w bazie. Dopuszczalne są klucze główne łączone, jednak w praktyce, gdy nie mamy w tabeli pojedynczego pola pozwalającego na unikatową identyfikację wpisu w bazie, tworzyć będziemy dodatkowy atrybut, zwany identyfikatorem sztucznym, zazwyczaj pole ID
Opcjonalność relacji
Relacje 1:1, 1:n, m:n mogą posiadać dodatkową cechę, czyli swoją opcjonalność. Określa ona minimalną liczebność relacji, 0 wystąpień lub 1 wystąpienie.
erDiagram
EMPLOYEES }o--|| POSITIONS: " "
EMPLOYEES{
int ID PK
varchar PESEL
string first_name
string last_name
date date_of_birth
int positionID FK
}
POSITIONS{
int ID PK
string name
string description
float salary_multiplier
}
Proces projektowania bazy danych
Cały proces projektowania bazy składa się z trzech podstawowych faz:
- Analiza wymagań - proces obejmujący wywiad z udziałowcami, analizę wymagań biznesowych i zadań, jakie projektowana baza ma usprawnić/wprowadzić. Jest to proces niesformalizowany. Istnieją co prawda różne metody prowadzenia analizy, które pozwalają na określenie wymagań, ale nie istnieje jednoznaczna odpowiedź na pytanie “Jak prowadzić analizę wymagań”
- Realizacja koncepcyjnego modelu logicznego bazy danych - etap, podczas którego na podstawie wcześniejszej analizy realizowany jest logiczny model bazy danych przy użyciu diagramu ERD. Na tym etapie modelowane będą wszystkie encje, atrybuty i związki.
- Modelowanie fizycznego modelu i implementacja bazy - etap, w którym tworzona będzie faktyczna baza danych.
Dziś zajmować się będziemy punktami 1 i 2.
Typy danych atrybutów
Każde pole w fizycznej relacyjnej bazie musi mieć swój typ danych. Rozróżniamy typy liczbowe, tekstowe i logiczne. Każdy silnik bazodanowy (RDBMS) ma sój określony zestaw dopuszczalnych typów, natomiast wszystkie będą miały pewien podstawowy zestaw:
- INT – liczba całkowita
- DATE/DATETIME – data/data+czas
- FLOAT – typ zmiennoprzecinkowy.
- BOOL – prawda/fałsz
- VARCHAR(100) – ciąg znaków o określonej maksymalnej długości 100 znaków
Zadania do laboratorium
Do dzisiejszych zajęć diagramy realizować można w jednym z tematów:
- Warsztat samochodowy
- System rezerwacji biletów lotniczych
- Sklep internetowy
- W dwuosobowych zespołach przedyskutujcie,
- Jakie zadania ma pomóc realizować projektowana baza danych
- Jaki wycinek rzeczywistości ta baza ma reprezentować
- Jakie dane muszą być zbierane do realizacji tych zadań A następnie, w tych samych zespołach zamodelujcie diagram ERD przy użyciu vertabelo lub draw.io. Na diagramach powinny znaleźć się encje wraz z atrybutami, oznaczenia kluczy głównych i obcych, związki.
- Na powstałych diagramach dopiszcie typy danych dla każdego atrybutu.