Tài liệu

Xây dựng sơ đồ Quan hệ – Thực thể và thiết kế Cơ sở dữ liệu

Sơ đồ Quan hệ – Thực thể (Entity Relation Diagram – ERD)

Sơ đồ Quan hệ – Thực thể là sơ đồ biểu diễn tất cả các thực thể mà tổ chức cần quản lý và các mối quan hệ giữa chúng.

Sau khi đã nghiên cứu các thực thể và mối quan hệ giữa các thực thể, chúng ta có thể xây dựng Sơ đồ Quan hệ – Thực thể ERD. Các bước xây dựng Sơ đồ ERD:

1. Xác định các thực thể dựa trên vai trò, ý nghĩa của thực thể đối với hệ thống:

– Đặt tên cho thực thể. Nên chọn danh từ để đặt tên cho thực thể, ví dụ như “Sinh viên”, “Môn học”, … Mỗi thực thể có một tên duy nhất trong toàn bộ hệ thống.

– Xác định các thuộc tính của thực thể. Cần xác định đầy đủ (không thừa, không thiếu) các thuộc tính tùy theo nhu cầu quản lý của mỗi tổ chức. Thêm thuộc tính để tăng tính mô tả, hoặc để có thêm dữ liệu phân biệt các cá thể; bỏ bớt thuộc tính nếu chúng dư thừa hoặc không liên quan đến vai trò, ý nghĩa của thực thể trong hệ thống. Tên các thuộc tính thường là danh từ. Cần xác định cụ thể và sử dụng thêm các ký hiệu để biểu diễn:

+ Thuộc tính định danh (Khóa): “#Tên thuộc tính định danh

+ Thuộc tính mô tả: “Tên thuộc tính mô tả”

– Lập bảng các thuộc tính của thực thể.

2. Xác định quan hệ giữa các thực thể, bao gồm mối quan hệ, bậc quan hệ, các kiểu quan hệ.

Lưu ý: Trong quá trình xác định các mối quan hệ, cần xác định các quan hệ tiêu biểu mà tổ chức cần quản lý. Tên của các quan hệ thường được diễn tả bằng động từ hoặc tính từ để chỉ các hành động, sự kiện liên kết các thể hiện trong các thực thể có quan hệ nhau, ví dụ như “Có”, “Thi”, “Học”, …

3. Vẽ sơ đồ Quan hệ – Thực thể.

Ví dụ. Cho bản mô tả một hoạt động quản lý của Bộ Giáo dục và Đào tạo như sau:

Bộ Giáo dục và Đào tạo tổ chức khảo sát các trường Đại học. Mỗi trường Đại học có nhiều Khoa, mỗi Khoa có nhiều Bộ môn, mỗi Bộ môn có nhiều Giảng viên.

Để nâng cao chất lượng đào tạo, các trường quy định mỗi giảng viên chỉ giảng một môn học, mỗi môn học chỉ do một giảng viên phụ trách. Tại các trường, mỗi Khoa đều quản lý nhiều lớp, mỗi lớp có nhiều Sinh viên. Trong suốt các năm học tại trường, mỗi sinh viên phải học nhiều môn học, mỗi Môn học có nhiều Sinh viên tham gia.

Hãy vẽ sơ đồ Quan hệ – Thực thể (ERD) để làm cơ sở thiết kế sơ đồ cấu trúc dữ liệu nhằm quản lý trường đại học.

Để xây dựng sơ đồ Quan hệ – Thực thể, chúng ta thực hiện các bước sau đây:

Bước 1: Xác định các thực thể: Trường, Khoa, Bộ môn, Giảng viên, Môn học, Lớp, Sinh viên. Xác định các thuộc tính của các thực thể và lập bảng sau:

Bảng 2. Danh sách các thực thể và các thuộc tính

Thực thể Thuộc tính
Trường #Mã trường, Tên trường
Khoa #Mã khoa, Tên khoa, …
Bộ môn #Mã bộ môn, Tên bộ môn, …
Giảng viên #Mã giảng viên, Họ và tên GV, Ngày sinh, Địa chỉ, …
Môn học #Mã môn học, Tên môn học, Số ĐVHT,…
Lớp #Mã lớp, Tên lớp
Sinh viên #Mã sinh viên, Họ và tên SV, Ngày sinh, Địa chỉ, …

Bước 2: Dựa vào nội dung của báo cáo khảo sát để xác định được các mối quan hệ giữa các thực thể:

  • Mối quan hệ giữa Trường và Khoa là quan hệ bậc 2, kiểu 1-N.
  • Mối quan hệ giữa Khoa và Bộ môn là quan hệ bậc 2, kiểu 1-N.
  • – …
  • Riêng mối quan hệ giữa Sinh viên và Môn học là quan hệ bậc 2, kiểu N-N (với những thuộc tính riêng là “Lần thi”, “Điểm thi”).

Bước 3: Vẽ sơ đồ Quan hệ – Thực thể như sau:

Sự tương quan giữa DFD và ERD

Cả hai sơ đồ đều dùng để mô hình hóa cho một HTTT. DFD được dùng để chỉ ra các xử lý trên dữ liệu, ERD dùng để mô tả nội dung của dữ liệu. Trong các sơ đồ này, nội dung xử lý và nội dung dữ liệu phải phù hợp nhau, đó là:

  • Nội dung dữ liệu từ tất cả các dòng dữ liệu cập nhật cho tất cả các kho dữ liệu của hệ thống phải đủ để diễn tả dữ liệu (thuộc tính của thực thể) trong sơ đồ Quan hệ – Thực thể.
  • Nội dung dữ liệu được lấy ra từ tất cả các kho dữ liệu phải nằm trong sơ đồ Quan hệ – Thực thể.

Các ràng buộc này làm tăng tính nhất quán trong hệ thống và bỏ qua các loại dữ liệu thuộc về cấu hình của hệ thống (các loại dữ liệu mô tả cho các tùy biến làm tăng tính tiện nghi của hệ thống, như dữ liệu quy ước hiển thị màu sắc, hình dạng của các khuôn mẫu nhập/xuất dữ liệu, các quy ước báo lỗi trong chương trình…).

Thiết kế cơ sở dữ liệu từ sơ đồ Quan hệ – Thực thể

Khái niệm

Trong phạm vi nội dung môn học, chúng ta sẽ nghiên cứu mô hình CSDL quan hệ. Việc thiết kế CSDL trong trường hợp này thực chất là xác định các tệp dữ liệu có liên quan đến nhau để phục vụ cho công tác quản lý của một HTTT quản lý. Xác định mỗi tệp dữ liệu là tìm xem trong mỗi tệp có các trường dữ liệu nào, trường nào là trường khóa chính, trường mô tả, trường quan hệ… Việc xác định các tệp dữ liệu này cần xuất phát từ sơ đồ Quan hệ – Thực thể ERD (với các thực thể đã được chuẩn hoá).

Trường dữ liệu (Field): Mỗi trường dữ liệu lưu trữ thông tin tương ứng với một thuộc tính của thực thể.

Bản ghi (Record): Tập hợp bộ giá trị của các trường tương ứng với một cá thể của thực thể.

Bảng dữ liệu (Table) hay chính là tệp dữ liệu: Toàn bộ các bản ghi lưu trữ thông tinccho một thực thể tạo ra một bảng mà mỗi dòng là một bản ghi và mỗi cột là một trường dữ liệu. Bảng dữ liệu tương ứng với bảng thực thể.

Trong phần này, chúng ta không đi sâu nghiên cứu lý thuyết về cách tạo lập các tệp dữ liệu mà chúng ta chỉ nghiên cứu thủ tục xây dựng các tệp dữ liệu nhằm đảm bảo tính chuẩn hóa theo nghĩa thông tin không thiếu, không thừa, không được trùng lặp…

Bảng 3. Sự khác nhau về tên gọi các thành phần tương ứng giữa thực thể và tệp dữ liệu

Thực thể Tệp dữ liệu Ký hiệu/ Ví dụ
Thuộc tính (Attribute) Trường (Field)
Tên các thuộc tính có thể viết bằng tiếng Việt, có dấu Tên các trường viết bằng tiếng Việt, không dấu hoặc bằng tiếng Anh Thuộc tính “Họ và tên” Trường dữ liệu “Hovaten
Thuộc tính định danh (1a) Trường khóa chính (1b) Dấu # và gạch chân dưới tên (1a) #Mã hàng hóa (1b) #Mahanghoa
Thuộc tính mô tả (2a) Trường mô tả (2b) (2a) Tên hàng hóa (2b) Tenhanghoa
Thuộc tính quan hệ (3a) Trường quan hệ (3b) Gạch chân dưới tên (3a) Mã vợ chồng (3b) Mavochong

Lưu ý: Khi nói đến thực thể, ta có các thuộc tính, nhưng khi nói đến các tệp dữ liệu, ta có các trường tương ứng. Khi viết tên các thực thể và thuộc tính của nó, ta có thể viết bằng tiếng Việt có dấu nhưng khi viết tên tệp dữ liệu và các trường tương ứng ta chỉ được viết tiếng Việt không có dấu hoặc dùng tiếng Anh.

Phương pháp thiết lập CSDL từ sơ đồ ERD

Kiểu quan hệ 1-1 của quan hệ bậc 1: tạo một tệp dữ liệu duy nhất, xác định trường khóa chính, trường mô tả và trường quan hệ. Nếu cá thể X có quan hệ với cá thể Y thì giá trị trường quan hệ của X được xác định duy nhất bằng giá trị của trường khóa chính của Y (Các giá trị của trường quan hệ không trùng nhau và có thể là rỗng).

Ví dụ. Xét thực thể “Cán bộ” với quan hệ “Là vợ/chồng”. Ta tạo một tệp “Canbo” với trường khóa chính là #Macanbo, các trường mô tả là Hovaten, Ngaysinh, Diachi, …; trường quan hệ Mavochong.

Bảng 4. Tệp dữ liệu Cán bộ và quan hệ Vợ/Chồng

#Macanbo Hovaten Ngaysinh Diachi Mavochong
A001 Nguyễn Văn A 10/01/1980 B005
B005 Lê Thị B 20/5/1982 A001

Nhìn vào bảng trên, ta biết được Nguyễn Văn A có vợ là Lê Thị B, Lê Thị B có chồng là Nguyễn Văn A.

Kiểu quan hệ 1-N của quan hệ bậc 1: tạo một tệp dữ liệu duy nhất, xác định trường khóa chính, trường mô tả và trường quan hệ. Giá trị của trường quan hệ được xác định không duy nhất từ giá trị của trường khóa chính.

Ví dụ. Xét thực thể “Nhân viên” với quan hệ “Phụ trách”. Ta tạo một tệp “Nhanvien” với trường khóa chính là #Manhanvien, các trường mô tả là Hovaten, Ngaysinh, Diachi, …; trường quan hệ Maphutrach.

Bảng 5. Tệp dữ liệu Nhân viên và quan hệ Phụ trách

#Manhanvien Hovaten Ngaysinh Diachi Maphutrach
A001 Nguyễn Văn An
B002 Lê Thanh Bình H004
H004 Trần Thu Hà A001
H012 Vũ Ngọc Hoa H004

Nhìn vào bảng trên, ta biết được Nguyễn Văn An là người phụ trách của Trần Thu Hà, còn Trần thu Hà lại là người phụ trách của Lê Thanh Bình và Vũ Ngọc Hoa.

Kiểu quan hệ N-N của quan hệ bậc 1: tạo hai tệp dữ liệu, một tệp mô tả thực thể, một tệp mô tả quan hệ.

  • Đối với tệp thực thể: xác định trường khóa chính, trường mô tả.
  • Đối với tệp quan hệ: xác định trường quan hệ, trường mô tả. Giá trị của trường quan hệ được xác định không duy nhất từ giá trị của trường khóa chính của tệp thực thể.

Ví dụ: Xét thực thể “Sản phẩm” với quan hệ “Được cấu thành từ”. Ta tạo hai tệp:

  • Tệp “Sanpham” với trường khóa chính là #MaSP, các trường mô tả là TenSP, Donvitinh, Dongia.
  • Tệp “Quanhe” với các trường quan hệ là MaSP, MaSPNL; trường mô tả là Soluong.

Bảng 6. Các tệp Sanpham và tệp Quanhe

#MaSP TenSP Donvitinh Dongia
Lm02 Lúa mạch
Bm01 Bột mỳ
Ba05 Bánh mỳ
MaSP MaSPNL Soluong
Bm01 Lm02 5
Ba05 Bm01 1

– Kiểu quan hệ 1-1 của quan hệ bậc 2: tạo hai tệp dữ liệu mô tả hai thực thể. Xác định trường khóa chính, trường mô tả cho mỗi tệp. Trường quan hệ có thể thuộc tệp này hoặc tệp kia. Cả hai trường hợp thông tin thu được đều như

Ví dụ. Xét hai thực thể là “Trưởng phòng” và “Phòng công tác” với quan hệ “Lãnh đạo”. Ta tạo hai tệp theo hai trường hợp sau:

– Trường hợp 1:

+ Tệp “Truongphong” với trường khóa chính là #MaTP, các trường mô tả như HovatenTP…

+ Tệp “Phongcongtac” với trường khóa chính là #MaphongCT, các trường mô tả như TenphongCT…, trường quan hệ là MaTP

Bảng 7.a. Các tệp dữ liệu Truongphong và Phongcongtac (Trường hợp 1)

Trường hợp 2:

Bảng 7.b. Các tệp dữ liệu Truongphong và Phongcongtac (Trường hợp 2)

+ Tệp “Truongphong” với trường khóa chính là #MaTP, các trường mô tả như HovatenTP…, trường quan hệ là MaphongCT

+ Tệp “Phongcongtac” với trường khóa chính là #MaphongCT, các trường mô tả như TenphongCT…

Trong cả hai trường hợp, ta đều có ông Đỗ Văn An là Trưởng phòng Kế toán, Bà Vũ Ngọc Thu là Trưởng phòng Tổ chức CB, ông Lê Xuân Hà là Trưởng phòng Kế hoạch – ĐT.

Kiểu quan hệ 1 – N của quan hệ bậc 2: ta tạo hai tệp dữ liệu mô tả hai thực thể. Xác định trường khóa chính, trường mô tả cho mỗi tệp. Trường quan hệ bắt buộc phải thuộc tệp tương ứng với thực thể đầu “Nhiều”, giá trị của nó được xác định từ các giá trị của trường khóa chính của tệp tương ứng với thực thể đầu “Một”.

Ví dụ. Xét hai thực thể là “Lớp học” và “Sinh viên” với quan hệ “Có/ Thuộc”. Ta tạo hai tệp dữ liệu sau:

  • Tệp “Lophoc” với trường khóa chính là #MaLH, các trường mô tả như TenLH…
  • Tệp “Sinhvien” với trường khóa chính là #MaSV, các trường mô tả như HovatenSV…, trường quan hệ là MaLH.

Bảng 8. Các tệp dữ liệu Lophoc và Sinhvien

Kiểu quan hệ N – N của quan hệ bậc 2: ta tạo ba tệp dữ liệu, hai tệp mô tả hai thực thể, tệp thứ ba mô tả quan hệ giữa hai thực thể đó.

  • Đối với hai tệp tương ứng với hai thực thể: xác định trường khóa chính, trường mô tả.
  • Đối với tệp thứ ba – tệp quan hệ: Hai trường quan hệ được xác định từ giá trị của hai trường khóa chính tương ứng với hai tệp thực thể. Tổ hợp của cả hai trường quan hệ này sẽ là trường khóa chính của tệp quan hệ. Sau đó xác định các trường mô tả của tệp quan hệ này.

Ví dụ. Xét hai thực thể “Sinh viên”, “Môn học” và quan hệ “Thi”. Quan hệ này là quan hệ N-N với các thuộc tính riêng là lần thi và điểm thi. Từ đó, ta tạo 3 tệp dữ liệu:

  • Tệp Sinhvien với trường khóa chính là #MaSV, các trường mô tả là Hovaten, …
  • Tệp Monhoc với trường khóa chính là #MaMH, các trường mô tả là TenMH, …
  • Tệp SVMH với trường khóa chính là tổ hợp của 2 trường quan hệ: MaSV, MaMH; các trường mô tả là Lanthi,

Bảng 9.a. Các tệp dữ liệu Sinhvien và Monhoc

Bảng 9.b Tệp dữ liệu SVMH

Qua 3 bảng, chúng ta biết được SV Lê Thu Hà thi Toán cao cấp lần đầu được 8 điểm, SV Trần Đình Chiến thi Lịch sử Đảng lần 2 được 6 điểm…

Khóa chính của tệp SVMH được tổ hợp từ MaSV và MaMH.

Chú ý:

– Những vị trí các dấu “…” là các trường mô tả. Tùy theo yêu cầu của công tác quản lý, chúng ta sẽ cần các trường mô tả cụ thể.

Ví dụ về quản lý trường đại học, nếu cần thống kê số lượng GS, PGS, Tiến sỹ, Thạc sỹ đang giảng dạy tại trường thì trong tệp “Giangvien” cần bổ sung trường mô tả là Hocham, Hocvi (Học hàm, Học vị); cần thống kê và phân loại kết quả học tập của sinh viên thì trong tệp “Monhoc” cần bổ sung trường mô tả là SoDVHT (Số đơn vị học trình), trong tệp SVMH cần bổ sung thêm trường mô tả là DiemTP (Điểm thành phần)…

– Đối với các trường hợp có 2 tệp trùng nhau (trường khóa chính trùng nhau) thì ta phải tổ hợp chúng lại thành một tệp bao gồm tất cả các trường mô tả của cả 2 tệp.

Rate this post

Hanoi1000

Là một người sống hơn 30 năm ở Hà Nội. Blog được tạo ra để chia sẻ đến mọi người tất cả mọi thứ về Hà Nội. Hy vọng blog sẽ được nhiều bạn đọc đón nhận.

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button
>
>