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