Poprzedni artykuł pokazał w jaki sposób zainstalować pod systemem Windows darmowe oprogramowanie SQL Power Architect „Krótki tutorial modelowania baz danych w SQL Power Architect – cz.1” . W tym poście krok po kroku utworzymy prosty model bazy danych i na jego podstawie wygenerujemy skrypt SQL dla systemu baz danych MySQL.
A zatem uruchamiamy SQL Power Architect .
Aby zapisać już teraz nasz projekt, nad którym rozpoczniemy pracę, klikamy na ikonkę dyskietki lub z menu wybieramy File-> Save Project :
lub na klawiaturze wybieramy Ctrl+S .
Pojawi się okno wyboru miejsca zapisu, wybieramy folder (u mnie jest to Pulpit ) a w pole File Name wpisujemy nazwę naszego projektu, u mnie jest to LibraryProject .
Operację zatwierdzamy przyciskiem
Save
.
Teraz tworzymy pierwszą tabelę bazy danych o nazwie
publisher
. Klikamy na ikonę tabeli:
a następnie klikamy w puste miejsce na płótnie. Pojawi się okienko podobne do poniższego:
W pierwsze dwa pola wpisujemy nazwę tabeli, a więc
publisher
, a w kolejne nazwę klucza podstawowego, który będzie tabela posiadała. Ja nazywam klucz w taki sposób: poprzedzam słowo id nazwa tabeli i oddzielającym je znakiem podkreślenia. W naszej bazie jest to
publisher_id
.
Z listy
Table Colour
i
Text Colour
możemy wybrać kolor tła i tekstu dla tabeli w naszym modelu. ustawienia zatwierdzamy przyciskiem
OK
.
Na płótnie można zauważyć prostą tabelę. Tabela nie posiada jeszcze kolumn, więc wstawmy dwie kolumny:
id, name
. Kolumna
id
będzie kluczem głównym. Klikamy na tabelę na płótnie lub na węzeł z jej nazwą w eksploratorze projektu. Następnie klikamy na ikonę kolumny:
lub klikamy prawym przyciskiem myszy na węźle z tabelą i wybieramy
New Column
lub wybieramy na klawiaturze
C
. Pojawi się okno
Column Properties of New Column
:
Uzupełniamy je danymi. W pole
Logical name
i pole
Physical Name
wpisujemy nazwę kolumny. Wpiszmy
id
. Zaznaczmy box przy
In Primary Key
, aby zaznaczyć, że ma to być klucz podstawowy tabeli. Z listy
Type
wybieramy typ danych, w przypadku klucza głównego wybierzmy
Integer
, czyli liczbę całkowitą. Jeśli chcemy, aby wartości całkowite klucza były generowane automatycznie zaznaczamy box przy
Auto Incremet
i z listy wybieramy
Yes
.
Klikamy na przycisk
OK
, aby zatwierdzić dane i dodać kolumnę. W tabeli pojawi się kolumna id z PK oznaczającym klucz główny tabeli. Kolumny klucza podstawowego (tu jedna o nazwie id) pojawiają się zawsze w górnym polu:
Teraz czas na dodanie kolumny tekstowej o nazwie
name
:
Tym razem z listy
Type
wybraliśmy
varchar
, bo jest to typ danych tekstowy. Operację zatowierdzamy przyciskiem
OK
. W oknie programu w tabeli pojawi się kolejna kolumna ( o nazwie
name
) i w drugiej części tabeli bo nie nie należy do klucza głównego:
Tabela gotowa. W podobny sposób tworzymy tabelę
book
z kolumnami:
id, title, publisher_id
, gdzie
id
to klucz główny. Klikamy na ikonę tabeli, następnie na płótno i uzupełniamy okienko:
Potem tak jak w przypadku poprzedniej tabeli, klikamy na ikonę kolumny i dodajemy kolumnę
id
:
Klikamy na
OK
i dodajemy kolumnę
title
:
Klikamy na
OK
i wstawiamy kolumnę
publisher_id
, która będzie kluczem obcym odnoszącym się do klucza głównego w tabeli
publisher
:
Klikamy na
OK
. mamy już dwie tabele.
Teraz połączymy je za pomocą relacji. Klikamy na ikonę relacji
Non-identifying
lub kolejną z linią nieprzerywaną Indentifying, wszytsko zależy od tego jak nam będzie potrzebna do naszej relacji między tabelami. W tym przypadku jest to relacja Non-Identifying:
Po wybraniu ikony relacji klikamy na kolumnę w jednej tabeli (w tabeli
publisher
kolumna
id
) i kolumnę w drugiej (w tabeli
book
kolumna
publisher_id
).
Aby sprawdzić, czy relacja jest oparta o właściwe kolumny, klikamy na linię relacji na diagramie. Zaznaczy się na czerwono wraz z kolumnami łączącymi tabele.
Ja widać teraz w tabeli
book
nie jest wzięta pod uwagę właściwa kolumna, prawidłowo powinna być
publisher_id
, klucz obcy. Klikamy więc na ikonę relacji (ostatnia na pasku ikona). Pojawi się okno właściwości tej relacji.
W tabeli
book
poprawiamy złączenie jako
One and more
, ponieważ książka powinna posiadać wydawcę, a może on występować w tej tabeli więcej niż raz. Przechodzimy teraz do kolejnej zakładki
Mappings
. I tu jak widać połączenie w tabeli book jest do
id
.
Poprawiamy przesuwając koniec połączenia do
publish_id
.
Teraz jest prawidłowo, więc zmiany zatwierdzamy przyciskiem
OK
. Na diagramie zobaczymy na czerwono zaznaczone połączenie już poprawione.
A jak poradzić sobie z połączeniem wiele do wielu? Utworzymy jeszcze tabelę
author
i tabelę pośrednią dla tabel
book
i
author
o nazwie
author_book
. Utworzymy na początek tabelę
author
:
Teraz tworzymy tabelę z 2 kolumnami:
author_id
i
book_id
, które będą kluczami obcymi wskazującymi na klucze główne tabeli
author
i
book
, które będą jednocześnie tworzyły klucz główny złożony. Najpierw tworzymy tabelę:
Teraz dodajemy kolumnę
author_id:
i kolumnę
book_id:
Tabela wygląda tak:
Teraz klikamy na ikonę relacji
Non-identifying
, a następnie na kolumnę
id
w tabeli
book
i kolumnę
book_id
w tabeli
author_book
. Otrzymamy połączenie tabeli
book
z tabelą
author_book
:
Klikając na diagramie na linie połączenia widzimy błędne połączenie kolumn. Klikamy na ikonę właściwości relacji, aby to poprawić w zakładce
Mappings
:
Zmiany zatwierdzamy przyciskiem OK. Jesli wszystko jest prawidłowo:
przechodzimy do łączenia w ten sam sposób tabeli
author
i tabeli
author_book
. I tu również poprawiamy łączenie właściwych kolumn:
Pozostaje jeszcze tylko kliknąć na ostatnią kolumnę w tabeli
author_book
o nazwie
id
i klawiszem
Delete
ją usunąć:
Mamy klucze obce (oznaczenie FK), nie mamy jednak klucza głównego złożonego z tych kolumn. Jak to zrobić? Klikamy na nazwę tabeli na diagramie i prawym przyciskiem myszy wybieramy z menu Index Properites i nazwa indeksu/klucza podstawowego, którego nazwę wpisywaliśmy podczas tworzenia tabeli.
Pojawi się okno właściwości klucza:
Zaznaczamy kolumny, które chcemy traktować jako klucz główny. Zauważ, że Primary Key jest już domyślnie zaznaczone:
Klikamy na
OK
, aby zatwierdzić zmiany. A oto model całej naszej bazy danych:
Obok nazw kolumn w tabeli
author_book
pojawiło się P oznaczające klucz główny.
Aby wygenerować na podstawie tak stworzonego modelu baz danych skrypt SQL nalezy wybrac z paska narzędzi ikonkę SQL:
Pojawi się okienko, w którym wybieramy system baz danych, z którym ma być zgodny wygenerowany skrypt SQL:
Następnie wpisujemy w pole
Database
nazwę bazy danych, u nas jest to
library
.
Dane zatwierdzamy przyciskiem
OK
. Pojawi się okno ze skryptem SQL. Możemy go zapisać za pomocą przycisku
Save
.
Dla osób preferujących wersję video, są dostępne 2 filmy na kanale LikeData na YouTube, zapraszam do oglądania i komentowania: