Chuyển tới nội dung
Read this post in: de_DEen_USes_ESfr_FRid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW
Home » Data Modeling / Database » Thành thạo mô hình hóa ER: Hướng dẫn từng bước với các ví dụ thực tế (Phần 2 trong 5)

Thành thạo mô hình hóa ER: Hướng dẫn từng bước với các ví dụ thực tế (Phần 2 trong 5)

Tinh chỉnh các sơ đồ Entiti-Quan hệ (ERD) để thiết kế cơ sở dữ liệu hiệu quả

Mô tả vấn đề: Mô hình hóa ER – Hệ thống một công ty cho thuê xe

Một công ty cho thuê xe cần tạo một cơ sở dữ liệu để quản lý các hoạt động kinh doanh của mình. Công ty sở hữu một đội xe lớn được thuê cho khách hàng trong các thời gian ngắn và dài hạn. Công ty có nhiều chi nhánh ở các vị trí khác nhau, và mỗi chi nhánh có đội xe riêng của mình.

Công ty muốn theo dõi các xe đang sẵn sàng để thuê, các khách hàng đã thuê xe, các khoảng thời gian thuê và các khoản phí cho mỗi lần thuê. Họ cũng muốn theo dõi lịch bảo trì cho từng xe và các hoạt động bảo trì đã được thực hiện.

From conceptual to logical to physical ERD

Công ty có các yêu cầu sau đây đối với cơ sở dữ liệu của mình:

  1. Xe có thể được thuê cho khách hàng trong một khoảng thời gian thuê cụ thể.
  2. Một khách hàng có thể thuê nhiều xe, và một xe có thể được nhiều khách hàng thuê.
  3. Các khoản phí thuê cho mỗi xe nên được tính dựa trên thời gian thuê và các khoản phí bổ sung như bảo hiểm hoặc phí nhiên liệu.
  4. Công ty muốn theo dõi lịch bảo trì cho từng xe và các hoạt động bảo trì đã được thực hiện.
  5. Công ty muốn có thể xem báo cáo về việc sử dụng xe của họ, bao gồm số lần thuê, các khoảng thời gian thuê và doanh thu phát sinh.
  6. Công ty muốn có thể xem báo cáo về các hoạt động bảo trì đã thực hiện trên xe của họ, bao gồm loại bảo trì thực hiện, ngày thực hiện và chi phí.
  7. Công ty muốn theo dõi các khách hàng thuê xe của họ, bao gồm thông tin cá nhân như tên, địa chỉ, số điện thoại và địa chỉ email.
  8. Công ty muốn có thể xem báo cáo về khách hàng của mình, bao gồm số lần thuê, các khoảng thời gian thuê và doanh thu phát sinh từ mỗi khách hàng.

Để đáp ứng các yêu cầu này, có thể tạo một sơ đồ Entiti-Quan hệ (ER) để mô hình hóa hệ thống cho thuê xe. Sơ đồ sẽ bao gồm các thực thể như Xe, Khách hàng, Thuê và Bảo trì, và các mối quan hệ như Thuê, Thuê Khách hàng và Bảo trì Xe.

Hướng dẫn từng bước để phát triển sơ đồ ER cho một cơ sở dữ liệu

Dưới đây là hướng dẫn từng bước để phát triển sơ đồ ER cho một cơ sở dữ liệu:

  1. Xác định các thực thể:Bắt đầu bằng cách xác định các thực thể khác nhau sẽ được bao gồm trong cơ sở dữ liệu. Các thực thể này có thể là con người, địa điểm, vật thể hoặc khái niệm liên quan đến lĩnh vực của cơ sở dữ liệu. Ví dụ, trong hệ thống cho thuê xe, các thực thể có thể bao gồm Xe, Khách hàng, Thuê và Bảo trì.
  2. Xác định các thuộc tính:Tiếp theo, xác định các thuộc tính của mỗi thực thể. Các thuộc tính là những đặc điểm hoặc tính chất mô tả thực thể. Ví dụ, các thuộc tính của thực thể Xe có thể bao gồm Hãng sản xuất, Mẫu xe, Năm sản xuất và Số đăng ký xe.
  3. Xác định các mối quan hệ:Sau khi xác định các thực thể và thuộc tính của chúng, hãy xác định các mối quan hệ giữa các thực thể. Các mối quan hệ là những kết nối hoặc liên kết giữa các thực thể. Ví dụ, mối quan hệ giữa thực thể Xe và Thuê là một xe có thể được thuê trong một khoảng thời gian thuê cụ thể.
  4. Xác định tính cardinality:Tính cardinality mô tả số lượng các thực thể này có thể liên kết với các thực thể khác. Ví dụ, tính cardinality giữa thực thể Xe và Thuê có thể là một-đa, có nghĩa là một xe có thể được thuê bởi nhiều khách hàng.
  5. Xác định bậc của mối quan hệ:Bậc của mối quan hệ đề cập đến số lượng thực thể tham gia vào mối quan hệ. Ví dụ, mối quan hệ giữa thực thể Xe và Thuê là một mối quan hệ nhị phân, có nghĩa là nó chỉ liên quan đến hai thực thể.
  6. Tạo sơ đồ ban đầu:Sử dụng thông tin thu thập được ở các bước trước để tạo sơ đồ ER ban đầu. Sơ đồ này nên bao gồm các thực thể, thuộc tính, mối quan hệ, tính cardinality và bậc của mối quan hệ.
  7. Tinh chỉnh sơ đồ: Tinh chỉnh sơ đồ ER bằng cách xem xét tính chính xác, tính đầy đủ và tính nhất quán. Thực hiện bất kỳ điều chỉnh hoặc thay đổi nào cần thiết để đảm bảo sơ đồ phản ánh chính xác các yêu cầu của cơ sở dữ liệu.
  8. Thêm các ràng buộc: Thêm bất kỳ ràng buộc nào vào sơ đồ nhằm đảm bảo tính toàn vẹn và tính nhất quán của dữ liệu. Các ràng buộc là các quy tắc hoặc điều kiện giới hạn dữ liệu có thể được nhập vào cơ sở dữ liệu. Ví dụ, một ràng buộc có thể là thực thể Car phải có số đăng ký hợp lệ.
  9. Hoàn thiện sơ đồ: Sau khi sơ đồ ER đã được tinh chỉnh và các ràng buộc đã được thêm vào, hãy hoàn thiện sơ đồ. Sơ đồ cuối cùng cần phải phản ánh chính xác cơ sở dữ liệu và các yêu cầu của nó.
  10. Tạo cơ sở dữ liệu: Dựa vào sơ đồ ER đã hoàn thiện, tạo lược đồ cơ sở dữ liệu. Lược đồ cơ sở dữ liệu định nghĩa cấu trúc của cơ sở dữ liệu, bao gồm các bảng, cột và mối quan hệ giữa chúng.

Hiểu rõ sự khác biệt giữa mô hình hóa dữ liệu khái niệm, logic và vật lý

Khái niệm, Logic và Vật lý là ba giai đoạn chính trong mô hình hóa dữ liệu, đó là quá trình thiết kế cơ sở dữ liệu để biểu diễn dữ liệu và các mối quan hệ bên trong một tổ chức hoặc hệ thống.

Dưới đây là tổng quan về những gì mỗi giai đoạn bao gồm:

  1. Mô hình dữ liệu khái niệm: Giai đoạn này tập trung vào việc hiểu rõ quan điểm cấp cao về dữ liệu và các mối quan hệ giữa chúng. Nó độc lập với bất kỳ công nghệ hay hệ quản trị cơ sở dữ liệu (DBMS) cụ thể nào. Mục tiêu chính là xác định các thực thể chính, các mối quan hệ và thuộc tính của chúng. Kết quả của giai đoạn này là một mô hình dữ liệu khái niệm, được sử dụng để hướng dẫn việc phát triển mô hình dữ liệu logic.
  2. Mô hình dữ liệu logic: Giai đoạn này tập trung vào việc định nghĩa chi tiết các cấu trúc dữ liệu và mối quan hệ. Nó bao gồm một lược đồ logic tương ứng với các khái niệm mô hình dữ liệu được xác định ở giai đoạn khái niệm, sử dụng sơ đồ thực thể – mối quan hệ (ERD) hoặc công cụ tương tự. Mô hình dữ liệu logic phản ánh các yêu cầu của doanh nghiệp về cấu trúc dữ liệu và mối quan hệ, và độc lập với thiết kế cơ sở dữ liệu vật lý. Kết quả của giai đoạn này là một mô hình dữ liệu logic, được sử dụng để hướng dẫn việc phát triển mô hình dữ liệu vật lý.
  3. Mô hình dữ liệu vật lý: Giai đoạn này tập trung vào việc chuyển đổi mô hình dữ liệu logic thành một hệ quản trị cơ sở dữ liệu cụ thể, đồng thời xem xét đến hiệu suất, yêu cầu lưu trữ và các hạn chế kỹ thuật của DBMS mục tiêu. Mô hình dữ liệu vật lý mô tả các đối tượng cơ sở dữ liệu, chẳng hạn như bảng, cột và chỉ mục, cùng với kiểu dữ liệu, kích thước và các ràng buộc của chúng. Kết quả của giai đoạn này là một mô hình dữ liệu vật lý, được sử dụng để tạo và triển khai cơ sở dữ liệu.

Tóm lại, giai đoạn khái niệm xác định các thực thể dữ liệu và mối quan hệ của chúng ở cấp độ cao, giai đoạn logic xác định chi tiết các cấu trúc dữ liệu và mối quan hệ, còn giai đoạn vật lý chuyển đổi mô hình dữ liệu logic sang công nghệ cơ sở dữ liệu cụ thể, bao gồm các yếu tố về hiệu suất và lưu trữ.

Tạo sơ đồ ERD khái niệm từ mô tả vấn đề

Sơ đồ ERD bao gồm bốn thực thể: Car, Customer, Rental và Maintenance. Mỗi thực thể có các thuộc tính, chẳng hạn như car_id, model, make, year, daily_rate, fuel_type, is_available cho thực thể Car, first_name, last_name, email, phone_number và address cho thực thể Customer, start_date, end_date, rental_rate, insurance_charge, fuel_charge cho thực thể Rental, và type, description, cost, maintenance_date cho thực thể Maintenance.

Sơ đồ ERD cũng thể hiện các mối quan hệ giữa các thực thể, bao gồm mối quan hệ Rental giữa thực thể Car và Rental, mối quan hệ Customer Rental giữa thực thể Rental và Customer, và mối quan hệ Car Maintenance giữa thực thể Car và Maintenance.

Car rental conceptual ERD

Tinh chỉnh sơ đồ ERD khái niệm thành sơ đồ ERD logic

Sơ đồ ERD logic bao gồm ký hiệu chính xác và chi tiết hơn, nhấn mạnh vào các bảng, cột, khóa và mối quan hệ. Cụ thể, kiểu dữ liệu của các cột được trình bày. Ngoài ra, các nhãn được thêm vào các mối quan hệ (“rents”, “rented by”, và “requires”) để chỉ rõ bản chất của từng mối quan hệ.

Car rental logical ERD

Tinh chỉnh sơ đồ ERD logic thành sơ đồ ERD vật lý

Sơ đồ ERD vật lý là một ‘sơ đồ lược đồ cơ sở dữ liệu’ cung cấp đủ chi tiết để triển khai cơ sở dữ liệu trên một hệ quản trị cơ sở dữ liệu cụ thể. Việc đặt tên cho các thực thể và cột được điều chỉnh để:

  • Hỗ trợ cú pháp đặc thù của DBMS.
  • Đảm bảo sử dụng các từ không bị_reserved (ví dụ: order -> purchase_order, desc -> description)
  • Phù hợp với quy ước đặt tên đặc thù của tổ chức

Cột ‘desc’ trong thực thể Maintenance được đổi tên thành ‘description’.

Car rental physical ERD

Tạo lược đồ cơ sở dữ liệu: Chuyển đổi ERD thành lược đồ vật lý

Lược đồ cơ sở dữ liệu là một biểu diễn trực quan về cấu trúc cơ sở dữ liệu, định nghĩa cách tổ chức dữ liệu trong hệ quản trị cơ sở dữ liệu quan hệ. Lược đồ được tạo dựa trên sơ đồ thực thể – mối quan hệ (ERD), được sử dụng để mô hình hóa các mối quan hệ giữa các thực thể khác nhau trong một hệ thống.

Trong trường hợp này, sơ đồ ERD được tinh chỉnh trước thành sơ đồ ERD logic, xác định các mối quan hệ giữa các thực thể như Xe, Khách hàng, Thuê xe và Bảo trì, cùng với các thuộc tính tương ứng. Sơ đồ ERD logic giúp thiết lập các mối quan hệ và tính cardinality giữa các thực thể.

Sau khi tinh chỉnh sơ đồ ERD logic, bước tiếp theo là tạo ra sơ đồ ERD vật lý, định nghĩa cấu trúc cơ sở dữ liệu thực tế với tất cả các kiểu dữ liệu cần thiết, khóa chính và khóa ngoại, cũng như bất kỳ ràng buộc nào. Sơ đồ ERD vật lý phản ánh sơ đồ ERD logic nhưng chi tiết hơn về cách dữ liệu được lưu trữ trong cơ sở dữ liệu.

Dựa trên sơ đồ ERD vật lý, mã SQL đã được viết để tạo cấu trúc cơ sở dữ liệu với các bảng phù hợp, cột và mối quan hệ giữa chúng. Mỗi bảng trong cấu trúc đại diện cho một thực thể trong hệ thống, và các cột đại diện cho các thuộc tính của thực thể đó. Khóa chính được xác định để xác định duy nhất mỗi bản ghi trong bảng, và khóa ngoại được sử dụng để thiết lập mối quan hệ giữa các bảng.

TẠO BẢNG Car (
car_id INT KHÓA CHÍNH,
model VARCHAR(255),
make VARCHAR(255),
năm INT,
rate_hàng_ngày DECIMAL(10, 2),
loại_nhiên_liệu VARCHAR(255),
đang_có_sẵn BOOLEAN
);

TẠO BẢNG Customer (
customer_id INT KHÓA CHÍNH,
tên VARCHAR(255),
họ VARCHAR(255),
email VARCHAR(255),
số_điện_thoại VARCHAR(255),
địa_chỉ VARCHAR(255)
);

TẠO BẢNG Rental (
rental_id INT KHÓA CHÍNH,
ngày_bắt_đầu DATE,
ngày_kết_thúc DATE,
rate_thuê DECIMAL(10, 2),
phí_bảo_hiểm DECIMAL(10, 2),
phí_nhiên_liệu DECIMAL(10, 2),
car_id INT,
customer_id INT,
KHÓA NGOẠI (car_id) THAM_CHIẾU Car(car_id),
KHÓA NGOẠI (customer_id) THAM CHIẾU ĐẾN Customer(customer_id)
);

TẠO BẢNG Maintenance (
maintenance_id INT KHÓA CHÍNH,
type VARCHAR(255),
description TEXT,
cost DECIMAL(10, 2),
maintenance_date DATE,
car_id INT,
KHÓA NGOẠI (car_id) THAM CHIẾU ĐẾN Car(car_id)
);

Tóm tắt

Bài viết thảo luận về quá trình tinh chỉnh các sơ đồ quan hệ thực thể (ERD) để tạo ra một lược đồ cơ sở dữ liệu hiệu quả. Các ERD được tinh chỉnh từ cấp độ khái niệm sang cấp độ logic và sau đó sang cấp độ vật lý. ERD logic thiết lập các mối quan hệ và tính cardinality giữa các thực thể, trong khi ERD vật lý xác định lược đồ cơ sở dữ liệu thực tế với tất cả các kiểu dữ liệu cần thiết, khóa chính và khóa ngoại, cũng như các ràng buộc.

Sau đó, mã SQL được viết dựa trên ERD vật lý để tạo lược đồ cơ sở dữ liệu với các bảng, cột và mối quan hệ phù hợp. Bài viết nhấn mạnh tầm quan trọng của việc tinh chỉnh ERD để thiết kế cơ sở dữ liệu hiệu quả và cung cấp những hiểu biết về quy trình tạo lược đồ cơ sở dữ liệu từ một ERD.

Để lại một bình luận