Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tạo cơ sở dữ liệu trực quan với MySQL Workbench

Trong hướng dẫn hôm nay, bạn sẽ học cách sử dụng tiện ích lập mô hình cơ sở dữ liệu trực quan để vẽ sơ đồ cơ sở dữ liệu và tự động tạo SQL. Cụ thể, chúng tôi sẽ xem xét cách sử dụng MySQL Workbench, một công cụ thiết kế cơ sở dữ liệu trực quan, đa nền tảng.

MySQL Workbench là gì?

MySQL Workbench là một công cụ mạnh mẽ được MySQL phát triển với ba lĩnh vực chức năng chính:

  • Phát triển SQL :Thay thế trình duyệt truy vấn MySQL. Cho phép người dùng kết nối với cơ sở dữ liệu hiện có, đồng thời chỉnh sửa và thực thi các truy vấn SQL.
  • Mô hình hóa dữ liệu :Hoàn thành thiết kế và lập mô hình cơ sở dữ liệu trực quan.
  • Quản trị Cơ sở dữ liệu :Thay thế quản trị viên MySQL. Giao diện đồ họa để khởi động / dừng máy chủ, tạo tài khoản người dùng, chỉnh sửa tệp cấu hình, v.v.

Trong hướng dẫn này, chúng tôi sẽ tập trung vào Mô hình hóa dữ liệu để tạo cơ sở dữ liệu từ đầu và sau đó chỉ cần xem nhanh trình soạn thảo SQL để thực thi tập lệnh SQL đã tạo của chúng tôi và tạo cơ sở dữ liệu trong MySQL.

MySQL Workbench có sẵn cho Windows, Linux và Mac OSX. Có hai phiên bản khác nhau: Phiên bản Community OSS Phiên bản tiêu chuẩn thương mại . Phiên bản cộng đồng là Mã nguồn mở và được cấp phép GPL, như bạn mong đợi. Nó có đầy đủ chức năng và là thứ mà chúng tôi sẽ sử dụng trong bài viết này. Phiên bản thương mại bổ sung một số chức năng bổ sung, chẳng hạn như xác thực lược đồ và mô hình hoặc tạo tài liệu.

Lưu ý:hướng dẫn này dựa trên phiên bản Community OSS Edition 5.2 (5.2.16), hiện đang trong bản phát hành beta vào thời điểm viết bài (tháng 4 năm 2010).

Lập kế hoạch cho Cơ sở dữ liệu của chúng tôi

Để tìm hiểu cách sử dụng MySQL Workbench, chúng tôi sẽ sử dụng một cơ sở dữ liệu rất đơn giản cho các lớp học trực tuyến làm ví dụ. Giả sử một nhóm giáo viên muốn cung cấp các lớp học trực tuyến cho một số môn học, sử dụng Skype hoặc bất kỳ phần mềm hội nghị truyền hình nào khác. Đối với dự án nhỏ của chúng tôi, chúng tôi đã quyết định rằng chúng tôi cần lưu trữ các thông tin sau:

Khi vẽ sơ đồ, chúng ta cũng cần biết mối quan hệ giữa các nhóm dữ liệu này; vì vậy tốt hơn chúng ta nên nghĩ về điều đó ngay bây giờ!

  • Một giáo viên có thể dạy nhiều môn học
  • Nhiều giáo viên có thể dạy một môn học
  • Mỗi lớp học chỉ có một giáo viên
  • Một giáo viên có thể dạy nhiều lớp
  • Một sinh viên có thể tham gia nhiều lớp học
  • Một lớp có nhiều sinh viên
  • Một lớp học có thể có vài giờ (trong một tuần)
  • Vào một ngày và giờ cụ thể, có thể có một số lớp học
  • Một lớp học về một chủ đề
  • Một môn học có thể được dạy trong nhiều lớp học

Tại thời điểm này, chúng tôi có tất cả thông tin cần thiết để gặp gỡ ngôi sao của chương trình này ...

Gửi trong MySQL Workbench

Đã đến lúc khởi chạy Workbench. Trong phần mô hình hóa dữ liệu của màn hình chính, chúng tôi nhấp vào 'Tạo mô hình EER mới' và màn hình sau xuất hiện:

Khi chúng ta tạo một mô hình cơ sở dữ liệu mới, nó chứa lược đồ mydb mặc định. Chúng tôi có thể đổi tên nó và sử dụng nó làm lược đồ DB của chúng tôi. Một mô hình cơ sở dữ liệu có thể có nhiều lược đồ khác nhau.

Danh mục bên phải sẽ hiển thị mọi phần tử trong giản đồ của chúng tôi và cho phép chúng tôi kéo và thả các phần tử vào sơ đồ nếu cần.

Việc có các phần riêng biệt cho Sơ đồ Schemata và EER Vật lý, và khả năng bao gồm một số Sơ đồ trong một mô hình cơ sở dữ liệu có thể gây nhầm lẫn. Phần tiếp theo giải thích các khái niệm này và chúng có liên quan như thế nào.

Làm rõ các khái niệm

Lược đồ vật lý chứa tất cả các phần cần thiết để xác định cơ sở dữ liệu:bảng, cột, kiểu, chỉ mục, ràng buộc, v.v. Đây là những gì chúng ta đang thực sự xác định. Mọi đối tượng được thêm vào trong mô hình đồ họa cũng hiển thị trong lược đồ vật lý. Trên thực tế, nó là một cách trực quan để xác định lược đồ của chúng ta.

Chúng ta có thể có một số lược đồ cho cùng một mô hình cơ sở dữ liệu giống như cách chúng ta có thể có một số cơ sở dữ liệu trong một máy chủ MySQL. Mỗi lược đồ sẽ là một cơ sở dữ liệu MySQL. Ví dụ, trong màn hình tiếp theo, chúng ta có hai tab giản đồ:

Nếu chúng ta tạo tập lệnh SQL, chúng ta sẽ có hai câu lệnh CREATE DATABASE riêng biệt - thực ra chúng ta sẽ có CREATE SCHEMA chỉ là một từ đồng nghĩa.

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

"EER là viết tắt của Mối quan hệ-thực thể mở rộng (hoặc nâng cao) . Biểu đồ EER chỉ là một cách để mô hình hóa dữ liệu và mối quan hệ giữa các dữ liệu bằng cách sử dụng các ký hiệu chuẩn "

Chúng sẽ được liệt kê dưới dạng cơ sở dữ liệu trong máy chủ lưu trữ máy chủ MySQL khi sử dụng HIỂN THỊ DỮ LIỆU.

Bây giờ, Sơ đồ EER là gì ?. EER là viết tắt của Mối quan hệ-thực thể mở rộng (hoặc nâng cao) >. Biểu đồ EER chỉ là một cách để mô hình hóa dữ liệu và các mối quan hệ giữa các dữ liệu bằng cách sử dụng các ký hiệu tiêu chuẩn. Các mô hình EER có thể phức tạp, nhưng MySQL Workbench chỉ sử dụng một tập hợp con của tất cả các phần tử đồ họa có thể có, vì mục đích của sơ đồ này (trong công cụ này) là để mọi phần tử được ánh xạ tới lược đồ vật lý.

Chúng ta có thể sử dụng biểu đồ EER để xác định toàn bộ cơ sở dữ liệu hoặc chỉ các phần nhỏ. Ví dụ, chúng ta có thể có một lược đồ với năm bảng được xác định, sau đó tạo một sơ đồ mới để xác định thêm hai bảng bằng trình chỉnh sửa trực quan. Sơ đồ sẽ chỉ chứa hai bảng, nhưng hai bảng đó cũng sẽ được bao gồm trong lược đồ, cùng với năm bảng trước đó.

Tạo bảng của chúng tôi

Quay lại ví dụ ban đầu của chúng tôi; chúng ta phải đổi tên lược đồ mặc định bằng cách nhấp đúp vào tên. Tại thời điểm này, chúng ta có hai khả năng:chúng ta có thể bắt đầu thêm bảng vào giản đồ vật lý của mình bằng cách sử dụng biểu tượng thêm bảng hoặc chúng ta có thể bắt đầu một Sơ đồ EER và thêm tất cả các bảng vào đó.

Tôi thích thêm một sơ đồ mới ngay từ đầu và tạo giản đồ của mình một cách trực quan; tuy nhiên, để chỉ ra cách thực hiện với cả hai phương pháp, chúng tôi sẽ tạo hai bảng đầu tiên trong tab giản đồ, sau đó tiếp tục với Sơ đồ EER.

Khi bạn nhấp vào nút Thêm bảng biểu tượng, trình chỉnh sửa bảng mở ra dưới dạng tab bên dưới:

Sử dụng trình chỉnh sửa bảng, chúng tôi thay đổi tên bảng và chuyển sang tab cột (trong các tab bên dưới trình chỉnh sửa) để nhập các cột của chúng tôi. Chúng ta có thể chọn kiểu dữ liệu (có một danh sách thả xuống với tất cả các kiểu dữ liệu MySQL), gán giá trị mặc định, nếu cần và chúng ta có bảy hộp kiểm để đánh dấu bất kỳ thuộc tính nào sau đây:

  • PK - Khóa chính
  • NN - Không rỗng
  • UQ - Duy nhất
  • BIN - Nhị phân
  • UN - Chưa ký
  • ZF - Không điền
  • AI - Tự động gia tăng

Chuyển sang hình ảnh

Đây là một cách để thêm bảng của chúng tôi, mặc dù chúng tôi cũng có thể tạo chúng bằng cách sử dụng sơ đồ. Nếu chúng tôi nhấp vào Thêm sơ đồ biểu tượng bây giờ, chúng ta sẽ bắt đầu một sơ đồ mới, trống và đó không phải là những gì chúng ta muốn. Chúng tôi muốn hai bảng mà chúng tôi vừa tạo nằm trong sơ đồ.

Nếu chúng tôi đi tới trình đơn, hãy chọn Mô hình / Tạo sơ đồ từ Đối tượng danh mục , bây giờ chúng tôi đã có sơ đồ của mình và sẵn sàng tiếp tục.

Chọn biểu tượng bảng ở bên trái; con trỏ chuyển thành bàn tay có bàn nhỏ. Tiếp theo, nhấp vào bất kỳ đâu trong canvas để tạo bảng mới.

Bây giờ bạn chỉ cần nhấp đúp vào bảng và tab trình chỉnh sửa xuất hiện để chỉnh sửa tên, cột, loại, v.v.- giống như cách chúng ta đã làm trước đây.

Sau khi nhập chi tiết cột cho các bảng mới, chúng tôi sẽ sẵn sàng bắt đầu vẽ các mối quan hệ.

Các mối quan hệ về bản vẽ

Trong thanh công cụ dọc ở bên trái, chúng tôi có sẵn sáu công cụ để tạo mối quan hệ.

Đừng lo lắng về điều cuối cùng, chúng tôi sẽ giải thích nó sau. Đối với mối quan hệ 1:1 và 1:n, chúng ta có hai loại ký hiệu khác nhau:xác định và không xác định. Điều đó có nghĩa là gì?

Mối quan hệ được coi là xác định khi một bảng hoàn toàn phụ thuộc vào bảng kia để tồn tại.

Mối quan hệ được coi là xác định khi một bảng hoàn toàn phụ thuộc vào bảng kia để tồn tại. Một hàng trong bảng đó phụ thuộc vào một hàng trong bảng khác. Một ví dụ phổ biến là có một chiếc bàn riêng để cất điện thoại cho người dùng. Có thể cần phải có nó trong một bảng khác, vì có thể có một số điện thoại cho một người dùng, nhưng mỗi hàng trong bảng đó hoàn toàn phụ thuộc vào người dùng - nó thuộc về cho người dùng.

Bạn nên biết rằng các mối quan hệ có một số tác động. Nếu chúng ta muốn tạo các bảng vật lý trong MySQL, các mối quan hệ phải được ánh xạ theo một cách nào đó. Có một số quy tắc để ánh xạ các mối quan hệ thành bảng:

  • Mối quan hệ 1:1 . Khóa chính của một trong các bảng được bao gồm dưới dạng khóa ngoại trong bảng khác.
  • mối quan hệ 1:n . Khóa chính của bảng ở phía "1" được thêm làm khóa ngoại trong bảng ở phía "n".
  • n:m các mối quan hệ . Một bảng mới (bảng tham gia) được tạo. Khóa chính bao gồm các khóa chính từ hai bảng gốc.

Việc xác định mối quan hệ thường được sử dụng cho các bảng nối được tạo từ mối quan hệ nhiều-nhiều. Các bảng mới này hoàn toàn phụ thuộc vào hai bảng gốc.

Ngoài ra, trong trường hợp xác định mối quan hệ 1:1 và 1:n, khóa ngoại được đưa vào sẽ là một phần của khóa chính cho bảng đó, tạo thành khóa chính tổng hợp.

Tin tốt là MySQL Workbench biết các quy tắc này tốt hơn hầu hết chúng ta. Chúng tôi chỉ vẽ các đường của mình và các khóa ngoại hoặc bảng nối sẽ tự động được tạo. Chúng tôi cũng có thể chọn làm điều đó theo cách thủ công, như chúng tôi sẽ thấy ngay sau đây.

Để vẽ mối quan hệ, hãy bấm vào biểu tượng, sau đó bấm vào hai bảng để liên kết. Đối với mối quan hệ một-nhiều, trước tiên hãy nhấp vào bảng phụ "nhiều", sau đó nhấp vào bảng phụ "một". Hãy xem cách thực hiện đối với mối quan hệ n:m giáo viên-môn học và đối với lớp học giáo viên 1:n.

Tên mặc định được chỉ định cho các khóa ngoại và cho các bảng nối có thể được thay đổi trên toàn cầu trong Tab Chỉnh sửa / Tùy chọn / Mô hình hoặc chỉ cho dự án hiện tại trong Mô hình / Tùy chọn mô hình .

Nếu không muốn tạo bảng và khóa ngoại theo cách này, chúng tôi có thể sử dụng "ký hiệu thứ sáu" bí ẩn.

"Ký hiệu thứ sáu" tạo mối quan hệ bằng cách sử dụng các cột hiện có, nghĩa là bạn đã bao gồm các khóa ngoại cần thiết trong các bảng của mình và tạo các bảng nối cần thiết (bảng ánh xạ n:m). Vì chúng tôi đã tạo các bảng Tham gia này, chúng tôi không cần mối quan hệ n:m; chỉ có 1:n.

Khi chúng ta đã xác định tất cả các mối quan hệ của mình, sơ đồ của chúng ta sẽ trông giống như vậy:

Lưu ý rằng chúng tôi đã sử dụng ký hiệu MySQL Workbench mặc định cho các sơ đồ, nhưng bạn có thể thay đổi ký hiệu đó trong Ký hiệu mô hình / đối tượng và Mô hình / Ký hiệu Mối quan hệ. Đây là một ví dụ về mô hình của chúng tôi trong ký hiệu Cổ điển:

Tại thời điểm này, mô hình của chúng tôi đã sẵn sàng và chúng tôi có thể tạo SQL để tạo cơ sở dữ liệu MySQL.

Tạo SQL

Chọn File / Export / Forward Engineer SQL CREATE Script . Chúng tôi chỉ còn ba màn hình hướng dẫn nữa để tạo tệp của chúng tôi!


Chúng tôi thậm chí có tùy chọn để xem lại và chỉnh sửa SQL đã tạo trước khi lưu nó:

Và đó là nó. Nhấp vào kết thúc, tập lệnh SQL sẽ được tạo và lưu. Bây giờ, chúng ta có thể sử dụng nó theo bất kỳ cách nào chúng ta muốn. Chúng tôi có thể tải nó bằng cách sử dụng máy khách mysql dòng lệnh:

mysql> SOURCE scriptName.sql

Hoặc, chúng tôi có thể sử dụng MySQL Workbench để hoàn thành công việc, kết nối với máy chủ MySQL của chúng tôi và chạy tập lệnh.

Kết nối với Máy chủ MySQL

Chọn Cơ sở dữ liệu / Quản lý kết nối từ trình đơn và nhấp vào MỚI .

Nếu bạn không muốn đặt mật khẩu ở đây, bạn sẽ được nhắc nhập mật khẩu đó khi cần thiết. Nhấp vào "Kiểm tra kết nối" để kiểm tra xem các thông số của bạn có chính xác không, sau đó nhấp vào đóng.

Bây giờ, để tải tập lệnh, chúng tôi sẽ sử dụng trình chỉnh sửa SQL. Trong menu chính, chọn Cơ sở dữ liệu / Cơ sở dữ liệu truy vấn ; một cửa sổ nhắc bạn chọn một kết nối, sau đó tab trình soạn thảo SQL sẽ mở ra.

Bây giờ hãy nhấp vào biểu tượng tia chớp để thực thi tập lệnh SQL và cơ sở dữ liệu của bạn sẽ được tạo!

Chúng tôi cũng có thể đã tạo cơ sở dữ liệu MySQL trực tiếp từ mô hình mà không cần tham chiếu đến tệp thực bằng cách sử dụng Cơ sở dữ liệu / Kỹ sư chuyển tiếp từ menu; tuy nhiên, tôi thấy hữu ích khi tạo tập lệnh và sau đó sử dụng nó theo cách tôi muốn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ tốt nhất thông tin người dùng và thông tin đăng nhập và mật khẩu của người dùng

  2. Nhận đầu ra cơ sở dữ liệu MySQL qua PHP sang XML

  3. Kết nối Visual COBOL với MySQL

  4. Hàm MySQL ASIN () - Trả về Arc Sine của một số

  5. Xóa hàng bằng MySQL LEFT JOIN