Ciężko wyobrazić sobie dzisiaj rozbudowaną stronę internetową, która nie korzystałaby z bazy danych. Większość dostępnych w internecie stron korzysta z baz danych MySQL, które nierzadko są bardzo rozbudowane. W tym poradniku pokażemy Wam jak stworzyć od podstaw strukturę bazy danych MySQL zaczynając od tabeli, a skończywszy na relacjach pomiędzy nimi.
1 Tworzenie bazy danych MySQL – podstawy krok po kroku
W celu stworzenia struktury bazy danych MySQL skorzystamy z darmowego narzędzia o nazwie MySQL Workbench. Naszym celem będzie utworzenie prostej bazy danych, która obsłuży księgarnie – a więc będzie posiadała tabele „Książki”, „Autorzy”, „Pożyczający”. Dla przypomnienia pojedyncza tabela w bazie danych składa się z kolumn (np. Imię, Nazwisko, Adres …) i przechowuje dane o obiektach – pojedynczy wiersz w tabeli to rekord. Najważniejszym kluczem w tabeli jest klucz główny, oraz klucz obcy – pierwszy z nich jednoznacznie identyfikuje rekord, natomiast klucz obcy jest kluczem głównym w innej tabeli. Innymi słowy za pomocą mechanizmu kluczy obcych można stworzyć relacje pomiędzy tabelami (jeden do wielu, jeden do jednego, wiele do wielu).
Po zainstalowaniu i uruchomieniu narzędzia MySQL Workbench, należy wybrać opcje File -> New Model. W kolejnym kroku należy wybrać opcję Add Table – gdzie będziemy mogli utworzyć tabele bazy danych:
W polu Table Name wpisujemy nazwę tabeli, natomiast w polu Column Name nazwę poszczególnych pól. Warto zwrócić uwagę na typ danych (Datatype), oraz opcje PK, NN – które reprezentują klucz główny (primary key), a dodatkowo ich wartość nie może być pusta (not null).
Po utworzeniu tabel klikamy przycisk Add Diagram, aby utworzyć relację pomiędzy tabelami – na diagram przeciągamy wszystkie tabele widoczne w menu po lewej stronie:
Obecnie tabele nie są powiązane żadną relacją i w ten sposób moglibyśmy je równie dobrze zaimplementować na stronie internetowej, ale nie jest to dobre rozwiązanie. Musielibyśmy zadbać o odpowiednią integrację danych, na przykład podczas dodawania danych i ich usuwania. Tworząc relację pomiędzy tabelami możemy znacznie ułatwić pracę i zmniejszyć ilość kodu potrzebną do jej obsługi.
Wyróżniamy trzy relacje:
- Jeden do jednego (najczęściej stosowana) 1:1
- Jeden do wielu (równie często stosowana) 1:N
- Wiele do wielu (bardzo rzadko stosowana) N:N
Wracając do naszej bazy danych, należy zauważyć, że tabela autorzy powinna być w pewien sposób powiązana z tabelą książek. W uproszczeniu przyjmijmy, że książka może posiadać wyłącznie jednego autora, natomiast pisarz może być autorem wielu książek – a więc właściwa będzie tutaj relacja jeden – do – wielu. Podobną relację utworzymy dla tabel Pożyczający i Książki – książka może zostać wypożyczona w tym samym czasie tylko przez jedną osobę, ale pożyczający może jednocześnie wypożyczyć kilka książek.
Relację tworzymy z wykorzystaniem narzędzi umieszczonych na pasku narzędziowym:
Proszę zwrócić uwagę na fakt, że relacja automatycznie utworzy nam dodatkowe klucze obce w tabeli (min. Autorzy_idAutorzy, Pozyczajacy_idPozyczajacy).
W naszym przykładzie musieliśmy zmodyfikować jeden z kluczy obcych odnoszący się do tabeli Pożyczający – a mianowicie odznaczyć pozycję NN (not null). Jest to konieczne, ponieważ gdyby relacja pomiędzy tabelą Książki i Autorzy miała zaznaczoną opcję „NN”, to w celu utworzenia rekordu Książki, musielibyśmy jednocześnie utworzyć rekord Pożyczający, Innymi słowy nie istniałaby książka, która nie została wypożyczona – w bazie danych musiałyby znajdować się wyłącznie książki, które zostały wypożyczone (posiadają identyfikator Pożyczającego).
I na tym w zasadzie moglibyśmy zakończyć wizualne tworzenie bazy danych MySQL – teraz przyszła kolej na wyeksportowanie bazy danych, tak aby można ją było utworzyć na zdalnym serwerze – o tym piszemy na drugiej stronie.
Olek
5 stycznia 2017 o 15:54
Dziękuję za wpis.
Pomógł mi bardzo w projekcie mojej bazy.
Waldek
13 maja 2019 o 13:56
To jak się tworzy zbiór bazy co to punkt 2 to nie dziala