Krótki tutorial modelowania baz danych w SQL Power Architect – cz. 2 – Tworzenie modelu bazy danych, generowanie pliku SQL

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: