Bazy danych - Akademia Morska w Gdyni

Transkrypt

Bazy danych - Akademia Morska w Gdyni
Bazy danych
Diagramy związków encji
Laboratorium
Akademia Morska w Gdyni
Gdynia 2004
Przedmiot
Typ zajęć
Temat
Bazy danych
Laboratorium
Diagramy związków encji
1. Podstawowe definicje
Baza danych to uporządkowany zbiór danych umożliwiający łatwe
przeszukiwanie i aktualizację.
System zarządzania bazą danych (DBMS) to oprogramowanie pozwalające na
utrzymanie, przetwarzanie i udostępnianie informacji.
Jednakże przyjęło się również określać systemy DBMS jako „bazy danych”.
Jednym z najpopularniejszych typów baz są relacyjne bazy danych, w których
to dane przechowywane są w tabelach powiązanych ze sobą wzajemnymi
zależnościami (związkami).
Systemy zarządzania relacyjnymi bazami danych (RDBMS) to systemy
pozwalające na utrzymanie, przetwarzanie i udostępnianie tabelarycznych danych
powiązanych wzajemnymi zależnościami. Jeden system RDBMS może zarządzać
dowolną liczbą instancji baz danych. Przykładem systemu RDBMS jest MySQL.
System zarządzania relacyjnymi bazami danych
(RDBMS)
DB1
DB2
DBn
Rysunek 1 - RDBMS i relacyjne bazy danych
2. Relacyjne bazy danych w praktyce
Bazy danych (głównie bazy relacyjne) są nieodzownym elementem większości
użytkowych systemów komputerowych dzisiejszych czasów. W szczególności
systemy w architekturze klient-serwer, tzn. takie systemy, które udostępniają
dane wielu użytkownikom, gromadzą swoje dane w bazie danych w systemie
RDBMS na serwerze i udostępniają je poprzez aplikację kliencką swoim
użytkownikom. Często są to systemy oparte na technologii serwera WWW i
przeglądarek internetowych — na tej zasadzie działają np. systemy do obsługi
sklepów internetowych.
DB
Serwer
systemu dla
sklepu
internetowego
INTERNET
Klient 1
Klient 2
Klient 3
Rysunek 2 - Schemat przykładowego systemu klient-serwer
wykorzystującego bazę danych
Joanna Szłapczyńska ([email protected])
Strona 2 z 6
Przedmiot
Typ zajęć
Temat
Bazy danych
Laboratorium
Diagramy związków encji
3. Projektowanie bazy danych
Aby prawidłowo zaprojektować bazę danych na potrzeby danego systemu
informatycznego należy kolejno wykonać następujące kroki:
1) Wyodrębnienie interesującego nas zagadnienia ze świata rzeczywistego
(baza danych ma gromadzić dane związane z tym zagadnieniem)
2) Modelowanie tego zagadnienia za pomocą diagramu związków encji (E-R)
3) Przekształcenie diagramu związków encji w strukturę bazy danych
4. Modelowanie świata rzeczywistego
Encja to elementarna, możliwa do wyodrębnienia kategoria logiczna (klasa)
elementów świata zewnętrznego. Każda encja charakteryzuje się zbiorem
własności (atrybutów) określających jej cechy.
Przykłady encji: samochód, człowiek, statek, itd.
Zbiór encji to zbiór, którego elementami są encje tego samego typu. Przykłady
zbiorów encji: samochody, ludzie, statki, itd.
Notacja graficzna zbiorów encji:
<nazwa zbioru
encji>
np:
Samochody
Ludzie
Statki
Rysunek 3 - Notacja graficzna i przykłady zbiorów encji
Atrybut encji (zbioru encji) to cecha, specyficzna własność, identyfikowalna dla
każdej encji w zadanym zbiorze encji.
Przykładowy zbiór atrybutów dla zbioru encji „samochody” to:
• marka
• model
• pojemność silnika
• kolor nadwozia
• typ nadwozia
• rocznik produkcji
Notacja graficzna zbiorów i atrybutów encji:
SAMOCHODY
Model
Marka
Pojemność silnika
Kolor nadwozia
Typ nadwozia
Rocznik produkcji
Nazwa zbioru encji
Atrybut zbioru encji
Rysunek 4 - Notacja graficzna i przykładowe atrybuty zbioru encji
Joanna Szłapczyńska ([email protected])
Strona 3 z 6
Przedmiot
Typ zajęć
Temat
Bazy danych
Laboratorium
Diagramy związków encji
Związek pomiędzy zbiorami encji to wzajemne logiczne powiązanie (zależność)
elementów tych zbiorów.
Wyróżniamy 3 podstawowe typy takich związków:
związki jeden-do-jeden – mamy 2 zbiory encji A i B i z każdym
elementem ze zbioru A związany jest co najwyżej jeden element ze zbioru
B i na odwrót, np. (przy założeniu, że samochód ma tylko jednego
właściciela i żaden z właścicieli nie ma kilku samochodów):
Samochody
Właściciele
Rysunek 5 - Przykład związku jeden-do-jeden
związki jeden-do-wiele – mamy 2 zbiory encji A i B i z każdym
elementem ze zbioru A może być związanych wiele elementów ze zbioru B.
Jednocześnie danemu elementowi ze zbioru B może być przyporządkowany
co najwyżej jeden element ze zbioru A, np. (przy założeniu, że dany
kierunek może istnieć tylko na jednym wydziale):
Wydziały
1
*
Kierunki
Rysunek 6 - Przykład związku jeden-do-wiele
związki wiele-do-wiele – mamy 2 zbiory encji A i B i z każdym
elementem ze zbioru A może być związanych wiele elementów ze zbioru B.
Jednocześnie
danemu
elementowi
ze
zbioru
B
może
być
przyporządkowanych wiele elementów ze zbioru A, np. (przy założeniu, że
student może jednocześnie studiować na kilku uczelniach):
Uczelnie
*
*
Studenci
Rysunek 7 - Przykład związku wiele-do-wiele
Diagram związków encji (Entity-Relationship diagram, E-R) prezentuje
zbiory encji i przynależne im atrybuty. Na diagramie zaznaczone są wzajemne
związki pomiędzy zbiorami encji.
Joanna Szłapczyńska ([email protected])
Strona 4 z 6
Przedmiot
Typ zajęć
Temat
Bazy danych
Laboratorium
Diagramy związków encji
Przykład 1: Narysuj diagram związków encji (E-R) dla encji: autor, książka,
wydawnictwo.
Wydawnictwa
Nazwa
Ulica
Miasto
Telefon
Fax
Numer konta
Autorzy
Książki
1
*
Tytuł
Cena
ISBN
*
*
Imię
Nazwisko
Tytuł naukowy
Rysunek 8 - Przykładowy diagram związków encji (E-R) dla encji: autor,
książka, wydawnictwo
Ćwiczenie: narysuj diagram związków encji (E-R) dla następujących encji:
uczelnia, wydział, kierunek, student.
5. Rozszerzanie diagramu związków encji
Rozszerzenie diagramu związków encji do postaci umożliwiającej dalsze
wykorzystanie w procesie projektowania bazy danych wymaga wykonania
następujących czynności:
1) Każdy zbiór encji staje się tabelą (nazwa tabeli taka jak zbiór encji)
2) Każdy z atrybutów danej encji staje się kolumną w odpowiedniej tabeli.
Można na tym etapie dodatkowo określić typ danej kolumny w
zależności od typu danych, które mają odzwierciedlać atrybut.
Podstawowe typy kolumn dla MySQL:
int – liczba całkowita
bool – wartość logiczna: prawda/ fałsz
float – liczba zmiennoprzecinkowa
date – data
blob – obiekt binarny
char(n) – łańcuch tekstowy o stałej długości n-znaków
varchar(n) - łańcuch tekstowy o zmiennej długości, max. n-znaków
3) Każda tabela powinna posiadać swój klucz główny – jest to taka
kolumna tabeli bądź kombinacja kolumn, które jednoznacznie
identyfikują dany wiersz tabeli. Najwygodniej jest dodać do każdej z
tabel odpowiednią kolumnę o nazwie „ID” przechowującą liczbowe
wartości całkowite (int) tzw. identyfikatory wierszy. Taka kolumna
będzie stanowić klucz główny danej tabeli. Operację dodawania klucza
głównego należy przeprowadzić dla wszystkich tabel określonych w pkt
1).
4) Wszystkie związki między zbiorami encji należy przenieść do
rozszerzonego diagramu E-R zgodnie z regułą:
a. Związki jeden-do-jeden – scalamy tak połączone zbiory encji w
jedną tabelę
b. Związki jeden-do-wiele - należy umieścić na rozszerzonym
diagramie E-R dodając klucz obcy (tj. nową kolumnę
wskazującą na klucz główny innej tabeli) w tabeli po stronie
„wiele”. Połączoną parę klucz główny-klucz obcy należy
Joanna Szłapczyńska ([email protected])
Strona 5 z 6
Przedmiot
Typ zajęć
Temat
Bazy danych
Laboratorium
Diagramy związków encji
zaznaczyć za pomocą strzałki (przerywana linia) z obustronnym
grotem.
c. Związki wiele-do-wiele należy zdekomponować tworząc nową
tabelę (najczęściej o nazwie powstałej w wyniku sklejenia obu
nazw łączonych zbiorów encji) zawierającą klucz obcy
dwuelementowy, odnoszący się do obu tabel łączonych jako
„wiele-do-wiele” (tj. w nowej tabeli AB tworzymy dwie kolumny,
jedna z nich jest kluczem obcym do tabeli A, a druga kluczem
obcym do tabeli B, przy założeniu, że A i B pozostają w związku
„wiele-do-wiele”). Tak stworzona nowa tabela może, ale nie
musi posiadać własnego klucza głównego w postaci dodatkowej
kolumny „ID”.
Przykład rozszerzonego diagramu związków encji:
Wydawnictwa
ID
Nazwa
Ulica
Miasto
Telefon
Fax
Numer konta
Książki
ID
Tytuł
Cena
ISBN
Wydawnictwa_ID
Książki_autorzy
ID
Ksiazki_ID
Autorzy_ID
Autorzy
ID
Imię
Nazwisko
Tytuł naukowy
Legenda:
klucz główny
klucz obcy
Rysunek 9 – Rozszerzony diagram E-R dla przykładu 1
6. Co dalej?
Mając gotowy rozszerzony diagram związków encji oraz znając składnię języka
SQL można w niemalże mechaniczny sposób stworzyć kod w języku SQL tworzący
pustą (pozbawioną na razie danych) bazę zgodną z danym schematem bazy
danych.
Postawy składni języka SQL oraz obsługa MySQL będą tematem kolejnych zajęć.
Joanna Szłapczyńska ([email protected])
Strona 6 z 6

Podobne dokumenty