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

Cách tạo mô hình cơ sở dữ liệu từ Scratch

Vì vậy, bạn muốn tạo mô hình cơ sở dữ liệu đầu tiên của mình nhưng bạn không biết cách bắt đầu? Đọc tiếp!

Tôi cho rằng bạn đã biết một chút về bảng, cột và các mối quan hệ. Nếu bạn không, hãy xem video hướng dẫn của chúng tôi trước khi bạn tiếp tục.

Bắt đầu với Mô tả Hệ thống

Bạn phải luôn bắt đầu tạo mô hình cơ sở dữ liệu với mô tả của một hệ thống. Trong một tình huống trong lớp học, một giáo viên sẽ đưa cho bạn một mô tả hệ thống. Trong cuộc sống thực, việc chuẩn bị mô tả là một quá trình theo đúng nghĩa của nó. Tôi sẽ chỉ giả sử rằng bạn có mô tả. Không quan trọng là nó do khách hàng, sếp của bạn, giáo viên của bạn tặng cho bạn hay do chính bạn viết ra.

Hãy xem mô tả và đánh dấu tất cả các danh từ . Các danh từ trong mô tả gần như có thể được chia thành ba loại:bảng, thuộc tính và ví dụ.

  • Bảng đại diện cho các thực thể chính trong hệ thống:con người, đối tượng vật lý, sự kiện, giao dịch, v.v.
  • Thuộc tính là các thuộc tính được liên kết với một thực thể chính. Chúng mô tả các tính năng của thực thể của bạn. Trong mô hình cơ sở dữ liệu, chúng sẽ là các cột trong bảng của bạn.
  • Ví dụ chỉ là, ví dụ. Chúng giúp bạn hiểu kiểu dữ liệu thuộc tính nhất định và chúng giúp bạn hiểu mối quan hệ giữa các thực thể khác nhau.

Bắt đầu bằng mô tả có lợi là buộc bạn phải sử dụng cùng một bảng thuật ngữ với tư cách là người dùng của bạn. Nếu bạn tạo ra một hệ thống cho một trường tiểu học, bạn nên nói về học sinh. Nếu bạn tạo một hệ thống tương tự cho một trường đại học, bạn nên nói về sinh viên.

Bảng, Mối quan hệ, Cột

  1. Sau khi các danh từ của bạn được đánh dấu, hãy xác định bảng . Bạn không cần phải lập mô hình mọi thứ cùng một lúc. Trước tiên, hãy tập trung vào chức năng cốt lõi của hệ thống.
  2. Khi bạn có các bảng, hãy tìm ra các mối quan hệ giữa các bảng. Bước này có thể dẫn đến việc giới thiệu các bảng trung gian (đường giao nhau) mới.
  3. Cuối cùng, thêm cột vào bảng.

Lúc này, bạn nên đọc lại phần mô tả và xem có thiếu sót gì không. Tôi đảm bảo với bạn sẽ có một cái gì đó để thêm vào. Thêm các bảng mới, các mối quan hệ mới và các cột mới. Đọc lại mô tả ...

Những điều cần lưu ý

Tạo mô hình cơ sở dữ liệu là một sự lặp lại tiến trình. Đừng cố gắng mô hình hóa mọi thứ cùng một lúc. Bắt đầu với các thực thể cốt lõi của hệ thống của bạn. Bạn có thể bổ sung thêm chi tiết sau.

Bạn có thể đặt câu hỏi . Cho dù mô tả chính xác đến đâu, bạn sẽ luôn có một số nghi ngờ. Một cái gì đó sẽ luôn không được chỉ định. Đặt câu hỏi về những điều bạn không chắc chắn. Nếu bạn không thể đặt câu hỏi, hãy đưa ra một giả định hợp lý và ghi lại giả định bạn đưa ra.

Luôn có nhiều hơn một cách để mô hình hóa từng hệ thống. Một số mô hình rõ ràng là xấu, nhưng với hầu hết các mô hình khác, rất khó để đánh giá xem chúng đúng hay sai. Mô hình phụ thuộc vào mục đích của hệ thống là gì, dữ liệu đến với hệ thống như thế nào, thậm chí phụ thuộc vào sở thích cá nhân của người thiết kế. Khi bạn có kinh nghiệm, bạn sẽ tự tin hơn về các quyết định thiết kế của mình.

Ví dụ:Hệ thống cho thuê ô tô

Ví dụ, chúng tôi sẽ tạo một mô hình cơ sở dữ liệu cho một hệ thống cho thuê xe hơi. Trước tiên, hãy xem mô tả về hệ thống:

Một công ty cho thuê xe hơi cho khách hàng thuê xe. Công ty sở hữu một số xe ô tô. Mỗi chiếc xe đều có nhãn hiệu, tên kiểu xe, năm sản xuất, số km, màu sắc, v.v. Ô tô được chia thành nhiều loại khác nhau:nhỏ, cỡ trung, cỡ lớn, xe limousine.

Công ty có nhiều địa điểm để bạn có thể thuê xe. Các địa điểm cho thuê nằm ở các thành phố khác nhau trong cả nước. Có thể có nhiều địa điểm công ty trong một thành phố.

Bất kỳ ai trên 21 tuổi có bằng lái xe hợp lệ đều có thể thuê ô tô. Khách hàng dưới 25 tuổi hoặc trên 75 tuổi thanh toán các khoản phí khác nhau (cao hơn) so với các khách hàng khác.

Trước khi thuê xe, khách hàng thường đặt trước xe. Khách hàng chỉ định ngày thuê xe, địa điểm đón, trả khách và loại xe muốn thuê. Khách hàng có thể chỉ định rằng họ muốn một số thiết bị bổ sung trong xe hơi, ví dụ như GPS, ghế ngồi ô tô cho trẻ em, v.v.

Khi khách hàng thuê xe, khách hàng sẽ khai báo địa điểm đón và trả khách, ngày trả khách. Khách hàng có thể mua nhiều loại bảo hiểm khác nhau. Anh ta cũng có thể quyết định rằng anh ta không cần bảo hiểm vì bảo hiểm được chi trả theo cách khác, chẳng hạn như công ty phát hành thẻ tín dụng của anh ta. Khách hàng có thể chọn các tùy chọn bổ sung như khả năng trả khách sớm, các tùy chọn tiếp nhiên liệu khác nhau, v.v.

Khách hàng thanh toán phí khi trả xe.

Chúng tôi bắt đầu với việc đánh dấu tất cả các danh từ:

Giai đoạn tiếp theo là tìm bảng . Chúng tôi tìm kiếm các thực thể cơ bản trong hệ thống. Để bắt đầu, ít nhất bạn nên có những thứ sau:xe, khách hàng, vị trí, thành phố, thiết bị, (xe) loại, bảo hiểm. Chúng tôi đưa chúng vào sơ đồ. Tôi đã thêm id trong mỗi bảng vì mỗi bảng phải có một số loại id. Bạn luôn có thể thay đổi khóa chính sau này.




Các thực thể hệ thống cơ bản có trong mô hình nhưng bạn nên nhận thấy rằng chúng tôi đang thiếu chức năng cốt lõi của hệ thống:cho thuê ô tô và đặt chỗ. Hãy nhớ những gì chúng ta đã nói ở phần đầu:bảng không chỉ là các đối tượng vật lý mà còn là các sự kiện và giao dịch. Bạn nên thêm reservationrental cũng như các bảng. Chúng ta bắt đầu:




Bây giờ chúng ta thêm các tham chiếu giữa các bảng trong mô hình. Tôi đánh số các tài liệu tham khảo khi tôi thêm chúng. Ghi chú bên cạnh mỗi tham chiếu cho bạn biết khi nào nó được thêm vào:

  1. Mỗi ô tô thuộc một danh mục,
  2. Mỗi yêu cầu đặt chỗ dành cho một loại ô tô,
  3. Mỗi vị trí ở một thành phố,
  4. Mỗi đặt chỗ đều có địa điểm đón và trả khách,
  5. Mỗi lượt đặt trước do một khách hàng thực hiện,
  6. Mỗi lần cho thuê do một khách hàng thực hiện,
  7. Mỗi lần thuê dành cho một chiếc ô tô nhất định,
  8. Mỗi chuyến cho thuê đều có địa điểm đón và trả khách.
  9. Mỗi khoản cho thuê được kết nối với một số bảo hiểm. Nhưng có phải chỉ có một bảo hiểm cho mỗi lần thuê? Không. Có thể có nhiều phần bảo hiểm liên quan đến việc cho thuê (bảo hiểm chống hư hỏng xe, chống thương tích cá nhân, chống làm bị thương xe của người khác, ...). Tôi đã thêm một bảng trung gian có tên là rental_insurance được kết nối với rentalinsurance bảng.



Chúng tôi vẫn thiếu phần tham chiếu giữa ô tô và thiết bị. Thiết bị được gắn vĩnh viễn vào ô tô hay có thể di chuyển từ ô tô này sang ô tô kia? Không có câu trả lời cho câu hỏi đó trong mô tả, vì vậy chúng tôi sẽ đưa ra một giả định hợp lý:có, nó có thể được di chuyển. Chúng tôi thêm một bảng mới car_equipment và các tham chiếu giữa carequipment .

Chúng tôi xóa company bàn. Công ty cho thuê đã ngầm hiện diện trong hệ thống. Rốt cuộc, một công ty khác sẽ có hệ thống riêng và cơ sở dữ liệu của riêng họ.




Cuối cùng, chúng tôi thêm các cột và kiểu dữ liệu của chúng. Chúng tôi cũng nhận thấy rằng không có mối quan hệ nào giữa reservationequipment . Nhưng việc đặt trước có được thực hiện cho một phần thiết bị cụ thể không? Không, nó được tạo ra cho một loại thiết bị:chúng tôi thêm bảng equipment_category và kết nối các bàn reservationequipment với nó.




Chúng ta xong chưa? Đọc mô tả một lần nữa. Mô hình cơ sở dữ liệu của chúng tôi vẫn bỏ qua các khoản phí. Chà ...

Đó là một bài tập cho người đọc. (Nhưng nếu bạn không muốn thực hành kỹ năng lập mô hình cơ sở dữ liệu của mình, tại đây, bạn có thể tìm thấy cấu trúc cơ sở dữ liệu sẵn sàng sử dụng cho một công ty cho thuê xe hơi.)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giảm thiểu tác động của việc mở rộng cột IDENTITY - phần 2

  2. Tạo cơ sở dữ liệu trong các trang web trên đám mây

  3. Các phương pháp tốt nhất cho tổng số chạy được nhóm lại

  4. Cách cài đặt và cấu hình ClickHouse trên Ubuntu 20.04

  5. Hợp nhất các tệp dữ liệu với Statistica, Phần 2