Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Pembuatan Database Visual dengan MySQL Workbench

Dalam tutorial hari ini, Anda akan belajar bagaimana menggunakan utilitas pemodelan database visual untuk menggambar diagram database dan secara otomatis menghasilkan SQL. Secara khusus, kami akan meninjau cara menggunakan MySQL Workbench, alat desain basis data visual lintas platform.

Apa itu MySQL Workbench?

MySQL Workbench adalah alat canggih yang dikembangkan oleh MySQL dengan tiga area fungsi utama:

  • Pengembangan SQL :Menggantikan browser kueri MySQL. Memungkinkan pengguna untuk terhubung ke database yang ada dan mengedit serta mengeksekusi kueri SQL.
  • Pemodelan Data :Menyelesaikan desain dan pemodelan basis data visual.
  • Administrasi Basis Data :Menggantikan administrator MySQL. Antarmuka grafis untuk memulai/menghentikan server, membuat akun pengguna, mengedit file konfigurasi, dll.

Dalam tutorial ini, kita akan fokus pada Pemodelan Data untuk membuat database dari awal, lalu lihat sekilas editor SQL untuk mengeksekusi skrip SQL yang kami buat dan membuat database di dalam MySQL.

MySQL Workbench tersedia untuk Windows, Linux dan Mac OSX. Ada dua edisi berbeda:Edisi OSS Komunitas dan Edisi Standar komersial . Edisi komunitas adalah Open Source dan berlisensi GPL, seperti yang Anda harapkan. Ini berfungsi penuh, dan itulah yang akan kami gunakan dalam artikel ini. Edisi komersial menambahkan beberapa fungsi tambahan, seperti validasi skema dan model atau pembuatan dokumentasi.

Catatan:tutorial ini didasarkan pada Community OSS Edition versi 5.2 (5.2.16), saat ini dalam rilis beta pada saat penulisan (April 2010).

Merencanakan Basis Data kami

Untuk mempelajari cara menggunakan MySQL Workbench, kami akan menggunakan database yang sangat sederhana untuk kelas online sebagai contoh. Misalkan sekelompok guru ingin menawarkan kelas online untuk beberapa mata pelajaran, menggunakan Skype atau perangkat lunak konferensi video lainnya. Untuk proyek kecil kami, kami telah memutuskan bahwa kami perlu menyimpan informasi berikut:

Saat menggambar diagram kita, kita perlu mengetahui hubungan antara kelompok data ini juga; jadi sebaiknya kita pikirkan itu sekarang!

  • Satu guru bisa mengajar banyak mata pelajaran
  • Satu mata pelajaran bisa diajarkan oleh banyak guru
  • Setiap kelas hanya memiliki satu guru
  • Satu guru bisa mengajar banyak kelas
  • Satu siswa dapat menghadiri banyak kelas
  • Satu kelas memiliki banyak siswa
  • Satu kelas mungkin memiliki beberapa jam (dalam seminggu)
  • Pada satu hari dan jam tertentu, mungkin ada beberapa kelas
  • Sebuah kelas berisi tentang satu mata pelajaran
  • Satu mata pelajaran dapat diajarkan di banyak kelas

Pada titik ini, kami memiliki semua informasi yang kami butuhkan untuk bertemu dengan bintang acara ini...

Kirim di MySQL Workbench

Saatnya meluncurkan Workbench. Di bagian pemodelan data di layar beranda, kami mengklik 'Buat Model EER baru' , dan layar berikut muncul:

Saat kita membuat model database baru, ini berisi skema mydb default. Kami dapat mengganti namanya dan menggunakannya sebagai skema DB kami. Sebuah model database dapat memiliki beberapa skema yang berbeda.

Katalog di sebelah kanan akan menampilkan setiap elemen dalam skema kita, dan memungkinkan kita untuk menarik dan melepas elemen ke diagram jika diperlukan.

Memiliki bagian terpisah untuk Skema Fisik dan Diagram EER, dan kemungkinan untuk memasukkan beberapa Skema dalam satu model database mungkin membingungkan. Bagian selanjutnya menjelaskan konsep-konsep ini dan bagaimana mereka terkait.

Klarifikasi Konsep

Skema fisik berisi semua bagian yang diperlukan untuk mendefinisikan database:tabel, kolom, tipe, indeks, batasan, dll. Inilah yang sebenarnya kami definisikan. Setiap objek yang ditambahkan dalam model grafis juga muncul dalam skema fisik. Faktanya, ini adalah cara visual untuk mendefinisikan skema kita.

Kita dapat memiliki beberapa skema untuk model database yang sama dengan cara yang sama kita dapat memiliki beberapa database di server MySQL. Setiap skema akan menjadi database MySQL. Misalnya, di layar berikutnya, kami memiliki dua tab skema:

Jika kita membuat skrip SQL, kita akan memiliki dua pernyataan CREATE DATABASE yang terpisah - sebenarnya kita akan memiliki CREATE SCHEMA yang hanya merupakan sinonim.

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

"EER adalah singkatan dari Hubungan Entitas yang Diperluas (atau Ditingkatkan) . Diagram EER hanyalah cara untuk memodelkan data dan hubungan antar data menggunakan simbol standar"

Mereka akan terdaftar sebagai database dalam host server MySQL saat menggunakan SHOW DATABASES.

Sekarang, apa itu Diagram EER?. EER adalah singkatan dari Hubungan Entitas yang Diperpanjang (atau Ditingkatkan)>. Diagram EER hanyalah cara untuk memodelkan data dan hubungan antar data menggunakan simbol standar. Model EER bisa rumit, tetapi MySQL Workbench hanya menggunakan subset dari semua elemen grafis yang mungkin, karena tujuan diagram ini (dalam alat ini) adalah agar setiap elemen dipetakan ke skema fisik.

Kita dapat menggunakan diagram EER untuk mendefinisikan seluruh database, atau hanya bagian-bagian kecil. Misalnya, kita dapat memiliki skema dengan lima tabel yang ditentukan, lalu membuat diagram baru untuk mendefinisikan dua tabel lagi menggunakan editor visual. Diagram hanya akan berisi dua tabel, tetapi kedua tabel tersebut juga akan disertakan dalam skema, bersama dengan lima tabel sebelumnya.

Membuat Tabel kami

Kembali ke contoh awal kita; kita harus mengganti nama skema default dengan mengklik ganda nama tersebut. Pada titik ini, kita memiliki dua kemungkinan:kita dapat mulai menambahkan tabel ke skema fisik kita menggunakan ikon tambahkan tabel, atau kita dapat memulai Diagram EER dan menambahkan semua tabel di sana.

Saya lebih suka menambahkan diagram baru dari awal dan membuat skema saya secara visual; namun, untuk menunjukkan bagaimana melakukannya dengan kedua metode, kita akan membuat dua tabel pertama di tab skema, dan kemudian melanjutkan dengan Diagram EER.

Saat Anda mengklik Tambahkan Tabel ikon, editor tabel terbuka sebagai tab di bawah ini:

Menggunakan editor tabel, kami mengubah nama tabel dan beralih ke tab kolom (di tab di bawah editor) untuk memasukkan kolom kami. Kita dapat memilih tipe data (ada daftar drop-down dengan semua tipe data MySQL), menetapkan nilai default, jika diperlukan, dan kita memiliki tujuh kotak centang untuk menandai salah satu properti berikut:

  • PK - Kunci utama
  • NN - Bukan nol
  • UQ - Unik
  • BIN - Biner
  • PBB - Tidak Ditandatangani
  • ZF - Isi nol
  • AI - Peningkatan otomatis

Tampilkan Visual

Ini adalah salah satu cara untuk menambahkan tabel kita, meskipun kita juga bisa membuatnya menggunakan diagram. Jika kita klik Tambahkan Diagram ikon sekarang, kita akan memulai diagram baru yang kosong, dan bukan itu yang kita inginkan. Kami ingin dua tabel yang baru saja kami buat berada dalam diagram.

Jika kita masuk ke menu, pilih Model/Create Diagram from Catalog Objects , sekarang kita memiliki diagram, dan siap untuk melanjutkan.

Pilih ikon tabel di sebelah kiri; penunjuk berubah menjadi tangan dengan meja kecil. Selanjutnya, klik di mana saja di kanvas untuk membuat tabel baru.

Sekarang Anda hanya perlu mengklik dua kali tabel, dan tab editor muncul untuk mengedit nama, kolom, jenis, dll.- dengan cara yang sama seperti yang kita lakukan sebelumnya.

Setelah memasukkan detail kolom untuk tabel baru, kita akan siap untuk mulai menggambar hubungan.

Menggambar Hubungan

Di bilah alat vertikal di sebelah kiri, kami memiliki enam alat yang tersedia untuk membuat hubungan.

Jangan khawatir tentang yang terakhir, kami akan menjelaskannya nanti. Untuk hubungan 1:1 dan 1:n, kita memiliki dua jenis simbol yang berbeda:mengidentifikasi dan tidak mengidentifikasi. Apa artinya?

Suatu hubungan dianggap mengidentifikasi ketika satu tabel sepenuhnya bergantung pada yang lain untuk eksis.

Suatu hubungan dianggap mengidentifikasi ketika satu tabel sepenuhnya bergantung pada yang lain untuk eksis. Baris dalam tabel tersebut bergantung pada baris di tabel lainnya. Contoh umum adalah memiliki tabel terpisah untuk menyimpan telepon bagi pengguna. Mungkin perlu untuk memilikinya di tabel lain, karena mungkin ada beberapa telepon untuk satu pengguna, tetapi setiap baris dalam tabel itu sepenuhnya bergantung pada pengguna - itu milik kepada pengguna.

Anda harus menyadari bahwa hubungan memiliki beberapa implikasi. Jika kita ingin membuat tabel fisik di MySQL, hubungan harus dipetakan dalam beberapa cara. Ada beberapa aturan untuk memetakan hubungan ke dalam tabel:

  • Hubungan 1:1 . Kunci utama untuk salah satu tabel dimasukkan sebagai kunci asing di tabel lain.
  • Hubungan 1:n . Kunci utama tabel di sisi '1' ditambahkan sebagai kunci asing pada tabel di sisi 'n'.
  • n:m hubungan . Tabel baru (join table) dibuat. Kunci utama terdiri dari kunci utama dari dua tabel asli.

Mengidentifikasi hubungan biasanya digunakan untuk tabel gabungan yang dibuat dari hubungan banyak ke banyak. Tabel baru ini sepenuhnya bergantung pada dua tabel asli.

Juga, dalam kasus hubungan pengidentifikasian 1:1 dan 1:n, kunci asing yang diperkenalkan akan menjadi bagian dari kunci utama untuk tabel itu, membentuk kunci primer komposit.

Kabar baiknya adalah MySQL Workbench mengetahui aturan ini lebih baik daripada kebanyakan dari kita. Kami hanya menggambar garis kami, dan kunci asing atau tabel gabungan akan dibuat secara otomatis. Kami juga dapat memilih untuk melakukannya secara manual, seperti yang akan segera kita lihat.

Untuk menggambar hubungan, klik ikon, lalu klik dua tabel untuk dihubungkan. Untuk hubungan satu-ke-banyak, klik tabel samping "banyak" terlebih dahulu, lalu klik tabel samping "satu". Mari kita lihat bagaimana melakukannya untuk n:m hubungan guru-mata pelajaran, dan untuk 1:n guru-kelas.

Nama default yang ditetapkan untuk kunci asing, dan untuk tabel gabungan dapat diubah secara global di Edit/Preferensi/Tab Model , atau hanya untuk proyek saat ini di Model/Model Options .

Jika kita tidak ingin tabel dan kunci asing dibuat dengan cara ini, kita dapat menggunakan "simbol keenam" yang misterius.

"Simbol keenam" membuat hubungan menggunakan kolom yang ada, artinya Anda telah menyertakan kunci asing yang diperlukan dalam tabel Anda dan membuat tabel gabungan yang diperlukan (tabel pemetaan n:m). Karena kita telah membuat tabel Gabung ini, kita tidak memerlukan hubungan n:m; hanya 1:n yang tersedia.

Ketika semua hubungan kita telah ditentukan, diagram kita akan terlihat seperti ini:

Ketahuilah bahwa kami telah menggunakan notasi MySQL Workbench default untuk diagram, tetapi Anda dapat mengubahnya di Model/Object Notation dan Model/Relasi Notasi. Ini adalah contoh model kami dalam notasi Klasik:

Pada titik ini, model kita sudah siap, dan kita dapat menghasilkan SQL untuk membuat database MySQL.

Membuat SQL

Pilih File/Export/Forward Engineer SQL CREATE Script . Kami hanya berjarak tiga layar wizard untuk menghasilkan file kami!


Kami bahkan memiliki opsi untuk meninjau dan mengedit SQL yang dihasilkan sebelum menyimpannya:

Dan itu saja. Mengklik selesai, skrip SQL akan dibuat dan disimpan. Sekarang, kita dapat menggunakannya dengan cara apa pun yang kita inginkan. Kita dapat memuatnya menggunakan klien mysql baris perintah:

mysql> SOURCE scriptName.sql

Atau, kita dapat menggunakan MySQL Workbench untuk menyelesaikan pekerjaan, menghubungkan ke server MySQL dan menjalankan skrip.

Menghubungkan ke Server MySQL

Pilih Database/Kelola Koneksi dari menu, dan klik BARU .

Jika Anda tidak ingin mengatur kata sandi di sini, Anda akan dimintai kata sandi saat diperlukan. Klik "Uji Koneksi" untuk memeriksa apakah parameter Anda benar, lalu klik tutup.

Sekarang, untuk memuat skrip, kami akan menggunakan editor SQL. Di menu utama pilih Database/Database Kueri; sebuah jendela meminta Anda untuk memilih koneksi, lalu tab editor SQL terbuka.

Sekarang klik ikon petir untuk menjalankan skrip SQL, dan database Anda akan dibuat!

Kami juga dapat membuat database MySQL langsung dari model, tanpa merujuk file sebenarnya, menggunakan Database/Forward Engineer dari menu; namun, saya merasa berguna untuk membuat skrip dan kemudian menggunakannya sesuai keinginan saya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana saya bisa menonaktifkan sementara batasan kunci asing di MySQL?

  2. Haruskah koneksi database tetap terbuka sepanjang waktu atau hanya dibuka saat dibutuhkan?

  3. Bagaimana cara mengembalikan kolom integer dan numerik dari MySQL sebagai integer dan numerik di PHP?

  4. Cara Menemukan Hari Terakhir dalam Bulan untuk Tanggal yang Diberikan di MySQL

  5. Strategi Pencadangan dan Pemulihan MySQL/MariaDB yang Berhasil