Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wizualne tworzenie baz danych za pomocą MySQL Workbench

W dzisiejszym samouczku dowiesz się, jak korzystać z narzędzia do wizualnego modelowania baz danych, aby narysować diagram bazy danych i automatycznie wygenerować SQL. W szczególności omówimy, jak korzystać z MySQL Workbench, wieloplatformowego, wizualnego narzędzia do projektowania baz danych.

Co to jest MySQL Workbench?

MySQL Workbench to potężne narzędzie opracowane przez MySQL z trzema podstawowymi obszarami funkcjonalności:

  • Programowanie SQL :Zastępuje przeglądarkę zapytań MySQL. Pozwala użytkownikowi połączyć się z istniejącą bazą danych oraz edytować i wykonywać zapytania SQL.
  • Modelowanie danych :Kompletny wizualny projekt i modelowanie bazy danych.
  • Administracja bazą danych :Zastępuje administratora MySQL. Graficzny interfejs do uruchamiania/zatrzymywania serwerów, tworzenia kont użytkowników, edytowania plików konfiguracyjnych itp.

W tym samouczku skupimy się na modelowaniu danych aspekt tworzenia bazy danych od zera, a następnie wystarczy spojrzeć na edytor SQL, aby wykonać nasz wygenerowany skrypt SQL i utworzyć bazę danych w MySQL.

MySQL Workbench jest dostępny dla systemów Windows, Linux i Mac OSX. Istnieją dwie różne wersje:Community OSS Edition oraz komercyjna wersja standardowa . Edycja społecznościowa jest na licencji Open Source i GPL, jak można się spodziewać. Jest w pełni funkcjonalny i jest tym, którego będziemy używać w tym artykule. Wersja komercyjna dodaje kilka dodatkowych funkcji, takich jak walidacja schematu i modelu lub generowanie dokumentacji.

Uwaga:ten samouczek jest oparty na Community OSS Edition w wersji 5.2 (5.2.16), aktualnie w wersji beta w momencie pisania tego tekstu (kwiecień 2010).

Planowanie naszej bazy danych

Aby dowiedzieć się, jak korzystać z MySQL Workbench, użyjemy jako przykładu bardzo prostej bazy danych do zajęć online. Załóżmy, że grupa nauczycieli chce oferować zajęcia online z kilku przedmiotów za pomocą Skype'a lub innego oprogramowania do wideokonferencji. W naszym małym projekcie zdecydowaliśmy, że musimy przechowywać następujące informacje:

Podczas rysowania naszego diagramu będziemy musieli również znać relacje między tymi grupami danych; więc lepiej pomyśl o tym teraz!

  • Jeden nauczyciel może uczyć wielu przedmiotów
  • Jednego przedmiotu może uczyć wielu nauczycieli
  • Każda klasa ma tylko jednego nauczyciela
  • Jeden nauczyciel może prowadzić wiele zajęć
  • Jeden uczeń może uczęszczać na wiele zajęć
  • Jedna klasa ma wielu uczniów
  • Jedno zajęcia mogą trwać kilka godzin (w tygodniu)
  • W określonym dniu i godzinie może odbywać się kilka zajęć
  • Zajęcia dotyczą jednego przedmiotu
  • Jeden przedmiot może być nauczany na wielu zajęciach

W tym momencie mamy wszystkie informacje, których potrzebujemy, aby spotkać gwiazdę tego programu...

Wyślij w MySQL Workbench

Czas uruchomić Workbench. W części ekranu głównego poświęconej modelowaniu danych klikamy „Utwórz nowy model EER” i pojawi się następujący ekran:

Kiedy tworzymy nowy model bazy danych, zawiera on domyślny schemat mydb. Możemy zmienić jego nazwę i użyć jako naszego schematu bazy danych. Model bazy danych może mieć kilka różnych schematów.

Katalog po prawej stronie pokaże każdy element naszego schematu i pozwoli nam w razie potrzeby przeciągać i upuszczać elementy na diagramy.

Posiadanie oddzielnych sekcji dla schematów fizycznych i diagramów EER oraz możliwość włączenia kilku schematów do jednego modelu bazy danych może być mylące. W następnej sekcji wyjaśniono te pojęcia i ich powiązania.

Wyjaśnianie pojęć

Schemat fizyczny zawiera wszystkie elementy niezbędne do zdefiniowania bazy danych:tabele, kolumny, typy, indeksy, ograniczenia itp. To jest to, co tak naprawdę definiujemy. Każdy obiekt dodany w modelu graficznym pojawia się również w schemacie fizycznym. W rzeczywistości jest to wizualny sposób zdefiniowania naszego schematu.

Możemy mieć kilka schematów dla tego samego modelu bazy danych w ten sam sposób, w jaki możemy mieć kilka baz danych na serwerze MySQL. Każdy schemat będzie bazą danych MySQL. Na przykład na następnym ekranie mamy dwie zakładki schematu:

Jeśli wygenerujemy skrypt SQL, będziemy mieli dwie oddzielne instrukcje CREATE DATABASE - w rzeczywistości będziemy mieli CREATE SCHEMA, który jest tylko synonimem.

CREATE SCHEMA IF NOT EXISTS `schema1`;
CREATE SCHEMA IF NOT EXISTS `schema2`;

„EER oznacza rozszerzoną (lub ulepszoną) relację z podmiotami . Diagramy EER to tylko sposób na modelowanie danych i relacji między danymi przy użyciu standardowych symboli"

Zostaną one wymienione jako bazy danych na hoście serwera MySQL podczas korzystania z funkcji POKAŻ BAZY DANYCH.

Co to jest diagram EER?. EER oznacza rozszerzoną (lub ulepszoną) relację z podmiotami>. Diagramy EER to tylko sposób na modelowanie danych i relacji między danymi za pomocą standardowych symboli. Modele EER mogą być złożone, ale MySQL Workbench używa tylko podzbioru wszystkich możliwych elementów graficznych, ponieważ celem tego diagramu (w tym narzędziu) jest odwzorowanie każdego elementu na fizycznym schemacie.

Możemy użyć diagramu EER do zdefiniowania całej bazy danych lub tylko małych części. Na przykład możemy mieć schemat ze zdefiniowanymi pięcioma tabelami, a następnie utworzyć nowy diagram, aby zdefiniować dwie dodatkowe tabele za pomocą edytora wizualnego. Diagram będzie zawierał tylko dwie tabele, ale te dwie tabele zostaną również uwzględnione w schemacie, wraz z poprzednimi pięcioma.

Tworzenie naszych tabel

Wróćmy do naszego początkowego przykładu; musimy zmienić nazwę domyślnego schematu, klikając dwukrotnie nazwę. W tym momencie mamy dwie możliwości:możemy rozpocząć dodawanie tabel do naszego fizycznego schematu za pomocą ikony dodawania tabeli lub możemy uruchomić diagram EER i dodać tam wszystkie tabele.

Wolę dodać nowy diagram od początku i stworzyć swój schemat wizualnie; jednak, aby pokazać, jak to zrobić obiema metodami, utworzymy pierwsze dwie tabele na karcie schematu, a następnie przejdziemy do diagramu EER.

Po kliknięciu Dodaj tabelę ikona, edytor tabeli otworzy się jako zakładka poniżej:

Za pomocą edytora tabel zmieniamy nazwę tabeli i przechodzimy do zakładki kolumn (w zakładkach pod edytorem), aby wprowadzić nasze kolumny. Możemy wybrać typ danych (jest lista rozwijana ze wszystkimi typami danych MySQL), w razie potrzeby przypisać wartość domyślną i mamy siedem pól wyboru, aby zaznaczyć dowolne z następujących właściwości:

  • PK – klucz podstawowy
  • NN – nie zerowe
  • UQ — Unikalne
  • BIN – Binarny
  • ONZ — niepodpisany
  • ZF — zerowe wypełnienie
  • AI – Autoinkrementacja

Przejdź do wizualizacji

Jest to jeden ze sposobów dodawania naszych tabel, chociaż możemy je również tworzyć za pomocą diagramów. Jeśli klikniemy Dodaj diagram ikona teraz zaczniemy nowy, pusty schemat, a nie o to nam chodzi. Chcemy, aby dwie tabele, które właśnie utworzyliśmy, znalazły się na diagramie.

Jeśli przejdziemy do menu, wybierz Modeluj/Utwórz diagram z obiektów katalogu , teraz mamy nasz diagram i jesteśmy gotowi do kontynuowania.

Wybierz ikonę tabeli po lewej stronie; wskaźnik zmieni się w rękę ze stolikiem. Następnie kliknij w dowolnym miejscu na płótnie, aby utworzyć nową tabelę.

Teraz wystarczy dwukrotnie kliknąć tabelę, a pojawi się zakładka edytora umożliwiająca edycję nazwy, kolumn, typów itp. w taki sam sposób, jak robiliśmy to wcześniej.

Po wprowadzeniu szczegółów kolumn dla nowych tabel będziemy gotowi do rozpoczęcia rysowania relacji.

Rysowanie relacji

Na pionowym pasku narzędzi po lewej stronie dostępnych jest sześć narzędzi do tworzenia relacji.

Nie martw się tym ostatnim, wyjaśnimy to później. W przypadku relacji 1:1 i 1:n mamy dwa różne typy symboli:identyfikujące i nieidentyfikujące. Co to oznacza?

Relacja jest uważana za identyfikującą, kiedy jedna tabela jest całkowicie zależna od istnienia drugiej.

Relacja jest uważana za identyfikującą, kiedy jedna tabela jest całkowicie zależna od istnienia drugiej. Wiersz w tej tabeli zależy od wiersza w drugiej tabeli. Typowym przykładem jest posiadanie oddzielnej tabeli do przechowywania telefonów dla użytkowników. Może być konieczne umieszczenie go w innej tabeli, ponieważ na jednego użytkownika może przypadać kilka telefonów, ale każdy wiersz w tej tabeli jest całkowicie zależny od użytkownika — należy do użytkownika.

Powinieneś mieć świadomość, że relacje mają pewne konsekwencje. Jeśli chcemy tworzyć tabele fizyczne w MySQL, relacje muszą być w jakiś sposób odwzorowane. Istnieje kilka zasad mapowania relacji na tabele:

  • Relacje 1:1 . Klucz podstawowy dla jednej z tabel jest zawarty jako klucz obcy w drugiej tabeli.
  • Związki 1:n . Klucz podstawowy tabeli po stronie „1” jest dodawany jako klucz obcy w tabeli po stronie „n”.
  • n:m relacje . Utworzona zostanie nowa tabela (tabela połączona). Klucz podstawowy składa się z kluczy podstawowych z dwóch oryginalnych tabel.

Relacje identyfikujące są zwykle używane w przypadku tabel sprzężenia utworzonych z relacji wiele-do-wielu. Te nowe tabele są całkowicie zależne od dwóch oryginalnych tabel.

Ponadto, w przypadku relacji identyfikujących 1:1 i 1:n, wprowadzony klucz obcy będzie częścią klucza podstawowego dla tej tabeli, tworząc złożony klucz podstawowy.

Dobrą wiadomością jest to, że MySQL Workbench zna te zasady lepiej niż większość z nas. Po prostu rysujemy nasze linie, a klucze obce lub tabele łączenia zostaną utworzone automatycznie. Możemy również zrobić to ręcznie, jak zobaczymy wkrótce.

Aby narysować relację, kliknij ikonę, a następnie kliknij dwie tabele, które chcesz powiązać. W przypadku relacji jeden-do-wielu kliknij najpierw tabelę boczną „wiele”, a następnie tabelkę boczną „jeden”. Zobaczmy, jak to zrobić dla relacji n:m nauczyciele-przedmioty oraz dla relacji 1:n nauczyciele-klasy.

Domyślną nazwę przypisaną do kluczy obcych i tabel złączeń można zmienić globalnie w Edycji/Preferencjach/Karta Model , lub tylko dla obecnego projektu w Opcjach modelu/modelu .

Jeśli nie chcemy, aby tabele i klucze obce były generowane w ten sposób, możemy użyć tajemniczego „szóstego symbolu”.

„Szósty symbol” tworzy relację przy użyciu istniejących kolumn, co oznacza, że ​​w tabelach zostały już zawarte niezbędne klucze obce i utworzono niezbędne tabele złączeń (tabele mapowania n:m). Ponieważ już stworzyliśmy te tabele Join, nie potrzebujemy n:m relacji; dostępne jest tylko 1:n.

Kiedy mamy zdefiniowane wszystkie nasze relacje, nasz diagram powinien wyglądać tak:

Pamiętaj, że używamy domyślnej notacji MySQL Workbench dla diagramów, ale możesz to zmienić w Notacji modelu/obiektu oraz notacja modelu/związku. Oto przykład naszego modelu w notacji klasycznej:

W tym momencie nasz model jest gotowy i możemy wygenerować SQL, aby utworzyć bazę danych MySQL.

Generowanie SQL

Wybierz File/Export/Forward Engineer SQL CREATE Script . Od wygenerowania naszego pliku dzielą nas tylko trzy ekrany kreatorów!


Mamy nawet możliwość przeglądania i edycji wygenerowanego kodu SQL przed jego zapisaniem:

I to wszystko. Kliknięcie Zakończ spowoduje wygenerowanie i zapisanie skryptu SQL. Teraz możemy z niego korzystać w dowolny sposób. Możemy go załadować za pomocą klienta mysql wiersza poleceń:

mysql> ŹRÓDŁO nazwa_skryptu.sql

Lub możemy użyć MySQL Workbench, aby zakończyć pracę, łącząc się z naszym serwerem MySQL i uruchamiając skrypt.

Łączenie z serwerem MySQL

Wybierz Baza danych/Zarządzaj połączeniami z menu i kliknij NOWY .

Jeśli nie chcesz tutaj ustawiać hasła, w razie potrzeby zostaniesz o to poproszony. Kliknij „Testuj połączenie”, aby sprawdzić, czy parametry są prawidłowe, a następnie kliknij zamknij.

Teraz, aby załadować skrypt, użyjemy edytora SQL. W menu głównym wybierz Baza danych/Baza zapytań; pojawi się okno z prośbą o wybranie połączenia, a następnie otworzy się zakładka edytora SQL.

Teraz kliknij ikonę błyskawicy, aby wykonać skrypt SQL, a Twoja baza danych zostanie wygenerowana!

Mogliśmy również wygenerować bazę danych MySQL bezpośrednio z modelu, bez odwoływania się do rzeczywistego pliku, używając Inżyniera bazy danych/przesyłania z menu; jednak uważam za przydatne wygenerowanie skryptu, a następnie użycie go w dowolny sposób.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP wyświetla obraz BLOB z MySQL

  2. Zbuduj system biuletynów z PHP i MySQL

  3. Normalizacja w MYSQL

  4. Jak wyświetlić sortowanie bazy danych w MySQL

  5. Jak zainstalować Adminer we własnej aplikacji?