




Preview text:
lOMoAR cPSD| 58950985
Bài thực hành môn học: Hệ cơ sở dữ liệu
Bài thực hành số 4: Thiết kế CSDL hệ thống thực Mô
hình hóa dữ liệu (Phần II)
Bài 1: Chuyển mô hình thực thể liên kết sau thành mô hình dữ liệu vật lý
Bài 2: Hãy xây dựng mô hình dữ liệu cho hệ thống từ mẫu phiếu xuất của công ty thương mại Y dưới đây.
- Danh sách thuộc tính: số PX, ngày, số đại lý, địa chỉ, tên hàng, đơn vị tính, đơn giá, số lượng.
- Bổ sung thêm thuộc tính mã hàng.
- Phụ thuộc hàm: (quy định giá bán của mặt hàng không thay đổi) số PX -> ngày,
mã KH số đại lý -> địa chỉ mã hàng -> tên hàng, đơn vị tính, đơn giá
{số PX, mã hàng }-> số lượng - Khoá chính: số PX.
- Nhóm lặp (*): mã hàng, tên hàng, đơn vị tính, đơn giá, số lượng.
Hãy tiến hành quá trình chuẩn hóa từ dạng chuẩn 1NF đến dạng chuẩn BCNF nếu có: lOMoAR cPSD| 58950985
Bài thực hành môn học: Hệ cơ sở dữ liệu
• 0NF: DAILY_HANGXUAT (SoPX, NgayXuat, SoDaiLy, DiaChi, MaHang,
TenHang, DonViTinh, DonGia, SoLuong) Gợi ý: Các bước tiến hành
• Bước 1: Từ một biểu mẫu (tài liệu xuất: hoá đơn, chứng từ,…) lấy ra một danh sách
các thuộc tính cho quan hệ chưa được chuẩn hoá (còn gọi là dạng chuẩn 0).
o Mỗi tiêu đề trong biểu mẫu là một thuộc tính. o Bỏ qua phần đầu đề và phần
dưới cùng (một số ghi chú, chữ ký …) của biểu mẫu. o Không lấy các thuộc
tính được suy diễn từ những thuộc tính khác (như thành
tiền = đơn giá x số lượng) và các thuộc tính trình bày như ‘số thứ tự’ nếu có.
o Bổ sung thêm một số thuộc tính định danh tương ứng với một số thuộc tính
tên gọi chưa có định danh nếu cần thiết.
o Xác định nhóm thuộc tính lặp, các phụ thuộc hàm giữa các thuộc tính.
• Bước 2: Chuẩn hoá về dạng chuẩn 1 (1NF): Tách nhóm thuộc tính lặp.
o Tách các thuộc tính không nằm trong nhóm lặp thành một quan hệ (R1). Xác
định khoá chính của quan hệ này.
o Các thuộc tính của nhóm lặp và khoá chính của quan hệ trên (R1) tạo thành một quan hệ (R2).
o Xác định khóa chính cho quan hệ R2 (khoá chính của R2 sẽ là một khoá ghép
giữa khoá của R1 và một thuộc tính khác trong R2) ▪ Ví dụ: R{A, B, C, D, E} và khoá là {A}.
▪ Tồn tại nhóm thuộc tính lặp {C,D} thì tách thành 2 quan hệ R1{A, B, E} và R2{A,C,D}.
• Bước 3: Chuẩn hoán về dạng chuẩn 2 (2NF): Loại bỏ phụ thuộc bộ phận vào khoá
(chỉ áp dụng với các quan hệ có khoá ghép) o Tách các thuộc tính tham gia vào phụ
thuộc hàm được xác định bởi một phần của khoá vào một quan hệ mới (R3).
Khoá chính của quan hệ là thuộc tính xác định hàm.
o Phần còn lại với khoá chính của quan hệ trên (R3) là một quan hệ giữ nguyên
khoá chính như quan hệ ban đầu. o Ví dụ: R{A, B, C, D} và khoá là {A,B}. lOMoAR cPSD| 58950985
Bài thực hành môn học: Hệ cơ sở dữ liệu
Tồn tại phụ thuộc hàm A C thì tách thành 2 quan hệ R1{A,C} và R2{A, B, D}.
• Bước 4: Chuẩn hoá về dạng chuẩn 3 (3NF): Loại bỏ phụ thuộc hàm giữa các thuộc tính không khoá.
o Tách các thuộc tính tham gia vào phụ thuộc hàm giữa các thuộc tính không
khoá vào một quan hệ mới (R4). Khoá chính của quan hệ là thuộc tính xác định hàm.
o Phần còn lại và khoá chính của quan hệ trên (R4) là một quan hệ giữ nguyên
khoá chính của quan hệ ban đầu.
o Ví dụ: R{A, B, C, D} mà khoá là {A,B}. Tồn tại phụ thuộc hàm C D thì
tách thành 2 quan hệ R1{C, D} và R2{A, B, C}
• Bước 5: Chuẩn hóa về dạng BCNF: Loại bỏ phụ thuộc hàm giữa thuộc tính khóa
vào thuộc tính không khóa o Đối với mỗi phụ thuộc hàm không khóa xác định khóa AKS với KS là tập
con của khóa K trong lược đồ quan hệ R. Ta tách thành hai lược đồ quan hệ:
▪ Loại KS ra khỏi R để tạo lược đồ quan hệ R1 như sau: • R1 = {R - KS}
• Bổ sung A vào khóa chính của R1 , K1={K – KS ∪A}
▪ Tạo lược đồ mới R2 như sau:
• R2 = {A, KS} có khóa chính là {A}
o Ví dụ: R{A, B, C, D} mà khoá là {A,B}. Tồn tại phụ thuộc hàm C B thì tách thành 2 quan hệ
▪ R1{A, C, D} có khóa chính là AC và
▪ R2{B, C} có khóa chính là C
Bài 3: Cho lược đồ quan hệ R (A,B,C,D,E) và hai tập phụ thuộc hàm như sau: F={A→BC, A→D, CD→E} G={A→BCE, A→ABD, CD→E}
a. Hãy tìm phủ tối thiểu của hai tập F và G ở trên. lOMoAR cPSD| 58950985
Bài thực hành môn học: Hệ cơ sở dữ liệu
b. Hãy kiểm tra xem F và G có tương đương hay không?
Bài 4: Cho lược đồ quan hệ R (A,B,C,D,E) và tập phụ thuộc hàm như sau:
F={A→C, B→C, C→D, DE→C, CE→A}
a. Hãy tìm khóa tối thiểu của R.
b. Hãy sử dụng phép tách bảo toàn tập phụ thuộc hàm và không mất tin để chuẩn hóa
lược đồ quan hệ trên về dạng chuẩn 3NF.
c. Hãy sử dụng thuật toán kiểm tra phép tách không mất tin để chứng minh cho kết quả phép tách ở trên.
Bài 5: Cho mẫu phiếu Hóa đơn bán hàng của công ty TNHH Phát triển thương mại và xuất
nhập khẩu Hà Linh như sau:
Hãy xây dựng mô hình dữ liệu cho hệ thống từ mẫu phiếu trên bằng cách:
a. Hãy chỉ ra lược đồ quan hệ dạng 0NF, khóa chính và tập các phụ thuộc hàm nếu có. lOMoAR cPSD| 58950985
Bài thực hành môn học: Hệ cơ sở dữ liệu
b. Hãy tiến hành quá trình chuẩn hóa lược đồ quan hệ trên từ dạng chuẩn 1NF đến
dạng chuẩn BCNF nếu có.