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

Các bước trong thiết kế cơ sở dữ liệu là gì?

Thiết kế cơ sở dữ liệu là một trong những yếu tố quan trọng nhất góp phần vào hiệu suất của một ứng dụng. Do đó, cơ sở dữ liệu được thiết kế tốt như thế nào là điều quan trọng hàng đầu. Thiết kế cơ sở dữ liệu là tất cả về việc tổ chức dữ liệu một cách hiệu quả dựa trên quy trình làm việc của sản phẩm, lộ trình trong tương lai và các kiểu sử dụng dự kiến.

Đầu ra của bài tập thiết kế cơ sở dữ liệu là một mô hình dữ liệu. Mô hình dữ liệu đại diện cho tất cả các đối tượng, thực thể, thuộc tính, mối quan hệ và ràng buộc trong hệ thống. Nói chung, mô hình dữ liệu có thể thuộc hai loại: lôgic hoặc vật lý . Việc biểu diễn mô hình dữ liệu được thực hiện bằng cách tạo sơ đồ ER, còn được gọi là sơ đồ mối quan hệ thực thể, sơ đồ ERD hoặc sơ đồ cơ sở dữ liệu.

Mô hình dữ liệu vật lý liên quan đến các chi tiết triển khai thực tế trong cơ sở dữ liệu. Mặt khác, mô hình dữ liệu lôgic lại trừu tượng hóa các kỹ thuật triển khai. Điều này làm cho mô hình dữ liệu logic trở nên tiêu dùng cho doanh nghiệp. Một điểm khác biệt chính giữa hai mô hình là mô hình lôgic là cơ sở dữ liệu bất khả tri trong khi mô hình vật lý phải cụ thể cho cơ sở dữ liệu đang sử dụng.

Thiết kế cơ sở dữ liệu thích hợp thường bị hạn chế và bỏ qua trong quá trình phát triển ứng dụng. Cái giá phải trả của việc bỏ bê này thường muộn hơn rất nhiều khi các tính năng ứng dụng mới xuất hiện hoặc khi các tính năng cũ yêu cầu thay đổi. Đây là lúc thiết kế cơ sở dữ liệu không còn ý nghĩa. Mặc dù không thể chứng minh thiết kế cơ sở dữ liệu trong tương lai, nhưng rất có thể nỗ lực để hiểu rõ nhất các trường hợp sử dụng nghiệp vụ và thiết kế cơ sở dữ liệu cho phù hợp. Đọc thêm về các mẹo thiết kế cơ sở dữ liệu tốt hơn tại đây.

Với ý nghĩ đó, hãy xem qua các bước trong thiết kế cơ sở dữ liệu.

Bước 1:Thu thập các yêu cầu kinh doanh

Bước đầu tiên là trao đổi với doanh nghiệp về các yêu cầu của họ. Nếu cuộc trò chuyện có hiệu quả, nó sẽ dẫn đến đủ thông tin để bắt đầu làm việc trên một mô hình dữ liệu khái niệm, là một mô hình trừu tượng của mô hình lôgic. Trao đổi với doanh nghiệp, trước hết, cung cấp một bức tranh toàn cảnh về các quy trình kinh doanh, từ đó cung cấp thông tin về các điểm dữ liệu khác nhau quan trọng để doanh nghiệp nắm bắt và theo dõi. Ví dụ:trong mô hình đặt xe taxi, bạn nên đặt những câu hỏi sau:

  • Doanh nghiệp có muốn dữ liệu theo dõi xe trong cơ sở dữ liệu bất kể có chuyến đi đang hoạt động hay không? Nếu có, thì trường vehicle_trip_id trong bảng vehicle_trips sẽ là nullable . Nếu không, nó sẽ không nullable .
  • Doanh nghiệp có muốn lịch sử thay đổi đối với trip_status không được lưu trữ trong cơ sở dữ liệu? Nếu có, thì mỗi lần trip_status thay đổi, sẽ có một bản ghi khác trong trips bàn. Nếu không, mỗi khi trip_status thay đổi, trip_status sẽ được cập nhật tại chỗ.

Như thể hiện trong ví dụ này, dựa trên đầu vào từ doanh nghiệp, bạn sẽ chọn một tùy chọn thay vì tùy chọn kia. Nó sẽ dẫn đến việc thay đổi các thực thể liên quan và các mối quan hệ của chúng.

Việc thu thập yêu cầu nói chung cũng liên quan đến việc bắt đầu một cuộc trò chuyện về bảo mật dữ liệu, chẳng hạn như dữ liệu nào sẽ được che dấu và mã hóa. Bài tập thu thập yêu cầu dẫn đến một tài liệu yêu cầu thường được hỗ trợ bởi một bản nháp làm việc của mô hình dữ liệu khái niệm.

Bước 2:Hiểu Lộ trình Kinh doanh

Các doanh nghiệp luôn thay đổi quy trình của họ; khả năng thích ứng khiến họ ít gặp thất bại hơn. Thay đổi quy trình kinh doanh có nghĩa là thay đổi quy trình làm việc và mô hình dữ liệu. Mặc dù không thể biết trước những thay đổi này, nhưng chắc chắn có thể được cập nhật theo lộ trình kinh doanh.

Ví dụ:nếu một công ty có kế hoạch nhắm mục tiêu đến một khu vực địa lý mới, thì mô hình sẽ phải phục vụ cho việc hỗ trợ ngôn ngữ, tiền tệ, múi giờ, v.v. Lợi ích của việc hiểu rõ lộ trình kinh doanh dài hạn thường thể hiện khi chuyển đổi sang các quy trình kinh doanh mới một cách suôn sẻ hơn.

Hãy để tôi chia sẻ một ví dụ nữa, đó là về các ưu tiên kinh doanh liên tục phát triển. Hoạt động kinh doanh taxi bị ảnh hưởng nặng nề vào đầu COVID-19. Là một công ty taxi, bạn muốn hành động trước để đảm bảo với mọi người rằng bạn đang làm mọi thứ để đảm bảo rằng bạn đi lại trong taxi an toàn nhất có thể, xe được khử trùng hàng ngày và người lái xe phải đeo khẩu trang lần, và có sẵn nước rửa tay trong xe taxi. Bây giờ, để nắm bắt tất cả thông tin này, hãy thay đổi đối với hai thực thể, driversvehicles , sẽ được yêu cầu. Một số trường cờ Boolean cần được thêm vào các thực thể này để phục vụ cho trường hợp sử dụng kinh doanh này.

Bước 3:Xác định các thực thể và thuộc tính

Khi các yêu cầu nghiệp vụ được thu thập, thông tin có thể được sử dụng để xác định các thực thể cùng với tập hợp các thuộc tính cần thiết. Một hoặc nhiều thực thể thường ánh xạ trực tiếp đến các quy trình kinh doanh và mối quan hệ giữa các thực thể đó cũng bắt chước quy trình làm việc của quy trình kinh doanh.

Bước này cũng được sử dụng để xác định thuộc tính nào sẽ hoạt động như mã định danh trong các thực thể. Số nhận dạng chuyển thành khóa chính trong mô hình vật lý. Ngoài ra, cũng thường chỉ định kiểu dữ liệu cho tất cả các thuộc tính trong bước này.

Ví dụ:trong mô hình đặt xe taxi, bạn sẽ phải xác định các thuộc tính sẽ hoạt động như các trường bắt buộc để đăng ký người dùng và tài xế từ ứng dụng đặt xe. Đăng ký người dùng sẽ được thực hiện bằng user_phone và việc đăng ký trình điều khiển sẽ được thực hiện bằng driver_phone .

Tương tự, các thực thể và thuộc tính khác được xác định trong bước này, sau khi đã được ánh xạ tới quy trình công việc của quy trình kinh doanh.

Bước 4:Xác định mối quan hệ

Sau khi xác định các thực thể và thuộc tính của chúng, bước tiếp theo là xác định mối quan hệ giữa các thực thể dựa trên quy trình công việc kinh doanh đã được lập thành văn bản trong giai đoạn thu thập yêu cầu. Ngoài việc xác định rằng có mối quan hệ giữa hai thực thể, điều quan trọng là phải xác định loại mối quan hệ nào trong số bốn loại mối quan hệ sau đây tồn tại giữa chúng. Hãy xem xét hai thực thể tùy ý, A và B:

  1. Một đối một → Một bản ghi trong A tương ứng với nhiều nhất một bản ghi trong B.
  2. Một-nhiều → Một bản ghi trong A tương ứng với nhiều bản ghi trong B.
  3. Nhiều đối một → Nhiều bản ghi trong A tương ứng với nhiều nhất một bản ghi trong B.
  4. Nhiều đến nhiều → Nhiều bản ghi trong A tương ứng với nhiều bản ghi trong B.

Trong mô hình đặt xe taxi, chỉ một loại quan hệ được sử dụng, tức là một-nhiều. Lấy mối quan hệ giữa userstrips như một ví dụ. Trong mô hình, có một giả định rằng chỉ một người dùng có thể liên quan đến một chuyến đi, điều này ngụ ý rằng không có taxi chia sẻ hoặc gộp chung. Nhưng nếu có các taxi được chia sẻ hoặc gộp lại, có thể sẽ có mối quan hệ nhiều-nhiều giữa userstrips , nếu nhiều người dùng chia sẻ cùng một trip_id .

Bước 5:Tạo sơ đồ ER logic

Với các thực thể, thuộc tính và mối quan hệ thực thể được xác định, bước tiếp theo ngay lập tức là vẽ sơ đồ ER. Tất cả các bước được liệt kê ở trên có thể được thực hiện trong Vertabelo. Không có quy tắc cứng và nhanh cho cách mô hình logic được cho là được thực hiện, ngoại trừ ký hiệu tham chiếu.

Ví dụ, hãy xem ví dụ sau về biểu đồ ER logic. Nó ghi lại quy trình kinh doanh đơn giản của một công ty taxi, nơi người dùng có thể đặt một chuyến đi với khả năng theo dõi xe.

Bước 6:Xác thực Sơ đồ ER logic

Mô hình lôgic là một quá trình trong đó rất nhiều thông tin kinh doanh cần được chuyển thành một thiết kế cơ sở dữ liệu. Nếu không được kiểm tra kỹ lưỡng, giai đoạn phát triển cơ sở dữ liệu này dễ xảy ra các lỗi có thể gây tốn kém ở giai đoạn sau.

Để giải quyết vấn đề này, Vertabelo có một danh sách kỹ lưỡng các bước kiểm tra có thể được thực hiện trên một mô hình logic. Việc kiểm tra có thể được thực hiện ở tất cả các mức độ chi tiết, từ toàn bộ mô hình đến các thuộc tính riêng lẻ và mọi thứ ở giữa. Một số cách kiểm tra đơn giản là:

  • Tên của các thực thể, thuộc tính, mối quan hệ, v.v., không được để trống và phải là duy nhất.
  • Một thực thể phải có ít nhất 1 thuộc tính.
  • Số nhận dạng (PK) phải được xác định cho mọi thực thể.
  • Mô hình phải sử dụng một trong các kiểu dữ liệu được liệt kê cho các thuộc tính.

Tất cả các kiểm tra này là tùy chọn và có thể được định cấu hình để bỏ qua, nếu có một khung xác thực khác được áp dụng. Việc xác nhận đúng cách từ Vertabelo sẽ giúp bạn chuyển sang bước tiếp theo với mức ma sát nhỏ nhất có thể.

Bước 7:Tạo sơ đồ ER vật lý

Khi sơ đồ ER logic được tạo, bước tiếp theo là tạo mô hình dữ liệu vật lý. Mô hình dữ liệu vật lý sẽ cụ thể cho cơ sở dữ liệu mà bạn muốn triển khai mô hình dữ liệu. Tất cả các cơ sở dữ liệu đều có cách triển khai duy nhất các quy tắc danh pháp, kiểu dữ liệu và các ràng buộc. Do đó, Ngôn ngữ Định nghĩa Dữ liệu (DDL) thường khác với cơ sở dữ liệu này sang cơ sở dữ liệu khác.

Để tạo mô hình dữ liệu vật lý, hãy làm theo các bước sau:

  1. Tìm kiểu dữ liệu gần nhất trong cơ sở dữ liệu đích để thay thế kiểu dữ liệu chung đã chọn trong mô hình dữ liệu lôgic.
  2. Tuân theo các quy tắc danh pháp cho bảng, cột và ràng buộc theo quy định của cơ sở dữ liệu đích.
  3. Sửa đổi mô hình để phù hợp với quy trình công việc truy vấn được xác định trước. Điều này thường dẫn đến việc tăng khả năng dự phòng để lưu các liên kết.
  4. Cuối cùng, bạn có thể tạo chỉ mục, phân vùng, khóa phân phối và khóa sắp xếp. Đây là lúc bạn có thể tạo bất kỳ sửa đổi nâng cao hiệu suất nào cho mô hình.

Các bước này có thể được thực hiện bằng bất kỳ công cụ lập mô hình dữ liệu nào mà bạn có thể sử dụng để tạo mô hình dữ liệu từ đầu. Tuy nhiên, Vertabelo có một tùy chọn để chuyển đổi mô hình dữ liệu logic sang mô hình dữ liệu vật lý chính thức cho tất cả các hệ thống cơ sở dữ liệu chính như MySQL, PostgreSQL, Oracle, Microsoft SQL Server, Amazon Redshift, Google BigQuery, v.v. Sau khi mô hình dữ liệu lôgic được chuyển đổi thành mô hình dữ liệu vật lý, bạn có thể tiếp tục với bốn bước mà chúng tôi đã thảo luận.

Vertabelo cũng có một tùy chọn để thêm các tập lệnh trước và sau khi triển khai ở cấp bảng cùng với bất kỳ nhận xét nào ở cấp rất chi tiết của mô hình. Các nhận xét trở nên hữu ích khi tính năng tạo tài liệu do Vertabelo cung cấp được sử dụng. Tài liệu cơ sở dữ liệu có thể được xuất ở bất kỳ định dạng nào trong ba định dạng sau:HTML, PDF hoặc DOCX.

Tiếp tục với ví dụ đặt xe taxi, hãy xem mô hình dữ liệu vật lý do Vertabelo tạo.

Bước 8:Xác thực Sơ đồ ER Vật lý

Cũng giống như sơ đồ ER logic đã được xác thực, Vertabelo có một công cụ để xác thực sơ đồ ER vật lý với một số kiểm tra bổ sung, chẳng hạn như FK có tồn tại hay không và độ dài của tên bảng hoặc tên cột có vượt quá giới hạn dựa trên cơ sở dữ liệu được chọn hay không.

Việc xác nhận không cần phải chạy một cách rõ ràng. Nó xảy ra khi sơ đồ được sửa đổi. Các vấn đề với mô hình thuộc một trong ba loại:lỗi, cảnh báo và gợi ý, theo thứ tự giảm dần mức độ nghiêm trọng. Có một bài báo hữu ích, được viết tốt nói về những lỗi thường gặp trong quá trình thiết kế cơ sở dữ liệu.

Bước 9:Khắc phục sự cố với sơ đồ ER vật lý

Kết quả của việc xác nhận có thể xác định các vấn đề cần được khắc phục. Một số vấn đề phổ biến nhất là:

  • Thiếu khóa ngoại nơi các mối quan hệ thực thể đã được xác định.
  • Thiếu khóa chính từ các bảng.
  • Các kiểu dữ liệu không được hỗ trợ cho cơ sở dữ liệu đã chọn.

Sau khi các vấn đề này và các vấn đề tương tự khác được giải quyết, mô hình đã sẵn sàng được xuất sang một tập lệnh SQL có thể triển khai cho hệ thống quản lý cơ sở dữ liệu đã chọn.

Bước 10:Tạo tập lệnh DDL để triển khai mô hình

Thiết kế cơ sở dữ liệu không chỉ là tạo sơ đồ ER. Một bài tập mô hình hóa dữ liệu sử dụng sơ đồ ER chỉ thành công nếu nó dẫn đến một cái gì đó có thể triển khai được. Vertabelo có một tùy chọn thuận tiện để xuất mô hình vật lý sang tập lệnh SQL sẵn sàng triển khai. Khi nó được tạo, mọi vấn đề đang chờ xử lý có thể được giải quyết trực tiếp trong tập lệnh SQL.

Tuy nhiên, việc thay đổi tập lệnh SQL đã tạo không được khuyến khích. Nó gây ra trôi dạt giữa mô hình dữ liệu vật lý và tập lệnh SQL được triển khai trên cơ sở dữ liệu, điều này cũng có thể có nghĩa là sự chênh lệch giữa các bảng thực tế và tài liệu cơ sở dữ liệu.

Bây giờ chúng ta đã kết thúc quá trình thiết kế cơ sở dữ liệu, hãy xem mã SQL do Vertabelo tạo.

Chia sẻ suy nghĩ của bạn

Thiết kế cơ sở dữ liệu là một hoạt động có tác động cao trong phát triển phần mềm. Lĩnh vực thiết kế cơ sở dữ liệu đã phát triển trong những năm qua với những cách thức mới để đại diện cho thiết kế cho doanh nghiệp, cho các kỹ sư và cho các nhà phân tích dữ liệu. Điều này thường dẫn đến các loại sơ đồ, tiêu chuẩn mô hình hóa và ký hiệu mới. Phần lớn sự phát triển đã được đề cập trong phần nguyên tắc cơ bản về thiết kế.

Chúng tôi sẽ rất vui khi thấy những kinh nghiệm của bạn trong việc thiết kế cơ sở dữ liệu. Viết thư cho chúng tôi theo địa chỉ [email protected].


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thống kê chờ Knee-Jerk:SOS_SCHEDULER_YIELD

  2. Lưu trữ dữ liệu:REST so với POSIX cho Lưu trữ và HSM

  3. Làm thế nào để sử dụng câu lệnh bảng thay thế trong SQL?

  4. Một đối số khác cho các thủ tục được lưu trữ

  5. Các cải tiến tiềm năng cho ASPState