Chương 2 Phân tích hệ thống
2.2. Phân tích dữ liệu nghiệp vụ
2.2.2. Chuẩn hóa dữ liệu
2.2.2.1. Chuyển đổi từ ERD mở rộng về ERD kinh điển
Một kiểu thuộc tính cho phép nhận nhiều giá trị (đa trị)
Một kiểu thuộc tính chỉ được nhận
1 giá trị (đơn trị) Một kiểu thuộc tính cho phép
không sơ đẳng
Một kiểu thuộc tính bắt buộc phải sơ đẳng
Các kiểu thực thể chưa cần có khóa
Các kiểu thực thể chính phải có khóa đơn và khóa của kiểu thực thể chính là kiểu thuộc tính định danh.
Việc chuyển đổi từ ER mở rộng về kinh điển thực chất là đưa thêm những ràng buộc của ER kinh điển vào ER mở rộng. Cụ thể như sau
Khử kiểu thuộc tính đa trị bằng quy tắc 1.
Khử thuộc tính khơng sơ đẳng bằng quy tắc 3.
Xác định khóa cho kiểu thực thể chính. Áp dụng vào bài tốn:
- Xử lý kiểu thuộc tính đa trị
Đánh dấu (*) kiểu thuộc tính đa trị
Áp dụng quy tắc 1 chuyển đổi
- Xử lý kiểu thuộc tính khơng sơ đẳng
Đánh dấu (+) kiểu thuộc tính khơng sơ đẳng
Áp dụng quy tắc 3 chuyển đổi
- Tìm khóa cho kiểu thực thể chính
Có kiểu thuộc tính định danh ->khóa
Khơng có kiểu thuộc tính định danh -> thêm -> khóa
- Trong ERD mở rộng khơng tồn tại thuộc tính khơng sơ đẳng và có tồn tại các thuộc tính đa trị sau:
+ PHIẾU MUA NGUYÊN LIỆU( tên nguyên liệu, đơn vị tính, số lượng, đơn giá,
thành tiền)
+ YÊU CẦU NHẬP NGUYÊN LIỆU(mã nguyên liệu, tên nguyên liệu, đơn vị tính, số lượng cịn, số lượng cần, ghi chú)
+ HÓA ĐƠN NHẬP NGUYÊN LIỆU (tên nguyên liệu, đơn vị tính, số lượng, đơn giá, thành tiền)
+ PHIẾU NHẬP KHO (tên nguyên liệu, đơn vị tính, số lượng giao, số lượng nhận, đơn giá nhập, ghi chú)
+ GIAO HÀNG (tên nguyên liệu, đơn vị tính, số lượng giao, số lượng nhận, ghi chú)
+ NHÀ CUNG CẤP(mã nguyên liệu, tên nguyên liêu )
+ PHIẾU U CẦU MĨN(tên món ăn, đơn vị tính, số lượng )
+ PHIẾU ĐẶT BÀN( tên món ăn, đơn vị tính, số lượng, đơn giá, thành tiền)
- Xác định khóa của kiểu thực thể chính
- Kiểu thực thể Khóa chính
MĨN ĂN Mã món ăn
HĨA ĐƠN BÀN ĂN Số hóa đơn bàn ăn
PHIẾU U CẦU MĨN Số phiếu yêu cầu món PHIẾU MUA NGUYÊN LIỆU Số phiếu mua nguyên liệu YÊU CẦU NHẬP NGUYÊN LIỆU Số phiếu yêu cầu nguyên liệu
GIAO HÀNG Số phiếu giao hàng
HÓA ĐƠN NHẬP NGUYÊN LIỆU Mã hóa đơn mua nguyên liệu
KHÁCH HÀNG Mã khách hàng
NGUYÊN LIỆU Mã nguyên liệu
NHÀ CUNG CẤP Mã NCC
DANH MỤC MÓN ĂN Mã danh mục
PHIẾU ĐẶT BÀN Mã phiếu đặt bàn
- Mơ hình ER kinh điển được vẽ như sau:
2.2.2.2. Chuyển đổi từ ERD kinh điển về ERD hạn chế
ER kinh điển ER hạn chế
Mỗi kiểu liên kết đều có tên Khơng cần tên của kiểu liên kết Kiểu liên kết có bản số tối thiểu Kiểu liên kết khơng có bản số min Có tồn tại kiểu liên kết 1-1, n-n Tất cả kiểu liên kết là 1-n
Kiểu tthể phụ thuộc chưa có khóa Kiểu thực thể phụ thuộc có khóa bội
Việc chuyển đổi từ ER kinh điển về hạn chế thực chất là đưa thêm những ràng buộc của ER hạn chế vào ER kinh điển. Cụ thể như sau
• Bỏ tên kiểu liên kết • Bỏ bản số tối thiểu
• Khử liên kết 1-1 bằng quy tắc 5 • Khử liên kết n-n bằng quy tắc 6
• Xác định khóa ngoài cho các kiểu thực thể bằng quy tắc 7
Nếu một kiểu thực thể B có chứa một kiểu thuộc tính kết nối, là khố của một kiểu thực thể A, thì giữa A và B có một kiểu liên kết 1-nhiều (đầu nhiều về phía B).
• Xác định khóa chính cho kiểu thực thể phụ thuộc. Trong ER hạn chế khơng cịn tồn tại
• Tên kiểu liên kết, bản số tối thiểu.
• Kiểu liên kết 1-1, 1-0, n – n. Tất cả đều thuộc kiểu liên kết 1 – n, 0 – n. Cụ thể trong bài tốn ta có:
-Bỏ tên kiểu liên kết ,Bỏ bản số tối thiểu theo quy tắc 4 Từ: Thành: I D - A ............. A ID - B ............. ID - A B
-Xử lí liên kết 1-1: áp dụng quy tắc 5 (sử dụng cách 1, chuyển khóa của kiểu thực thể có trước thành 1 thuộc tính của kiểu thực thể theo sau)
Từ:
- Xử lí liên kết n-n: áp dụng quy tắc 6
Thành:
- Xác định khóa ngồi cho các kiểu thực thể bằng quy tắc 7:
Kiểu thực thể Khóa chính Khóa ngoại
KHÁCH HÀNG Mã khách hàng
PHIẾU YÊU CẦU MÓN Số phiếu yêu cầu món Số phiếu đặt bàn DỊNG PHIẾU U CẦU
MĨN
Số phiếu yêu cầu món Mã món ăn
Số phiếu yêu cầu món Mã món ăn PHIẾU ĐẶT BÀN Số phiếu đặt bàn Mã khách hàng DỊNG PHIẾU ĐẶT BÀN Số phiếu đặt bàn Mã món ăn Số phiếu đặt bàn Mã món ăn DANH MỤC MĨN ĂN Mã danh mục
MĨN ĂN Mã món ăn Mã danh mục
Mã khách hàng DỊNG HĨA ĐƠN BÀN
ĂN
Số hóa đơn bàn ăn Mã món ăn
Số hóa đơn bàn ăn Mã món ăn
YÊU CẦU NHẬP
NGUYÊN LIỆU Số phiếu yêu cầu nguyên liệu DÒNG YÊU CẦU
NGUYÊN LIỆU Số phiếu yêu cầu nguyên liệuMã nguyên liệu Số phiếu yêu cầu nguyên liệu Mã nguyên liệu
NGUYÊN LIỆU Mã nguyên liệu HÓA ĐƠN NHẬP
NGUYÊN LIỆU
Mã hóa đơn nhập nguyên liệu Số phiếu nhập kho
DỊNG HĨA ĐƠN NHẬP
NGUN LIỆU Mã hóa đơn nhập nguyên liệuMã nguyên liệu Mã hóa đơn nhập nguyên liệu Mã nguyên liệu
GIAO HÀNG Số phiếu giao hàng Số phiếu mua nguyên liệu Mã NCC
DÒNG GIAO HÀNG Số phiếu giao hàng Mã nguyên liệu
Số phiếu giao hàng Mã nguyên liệu PHIẾU MUA NGUYÊN
LIỆU Số phiếu mua nguyên liệu Mã nhà cung cấp
DÒNG PHIẾU MUA
NGUYÊN LIỆU Số phiếu mua nguyên liệuMã nguyên liệu Số phiếu mua nguyên liệuMã nguyên liệu
NHÀ CUNG CẤP Mã NCC
NGUYÊN LIỆU CUNG
CẤP Mã NCCMã nguyên liệu Mã NCCMã nguyên liệu PHIẾU NHẬP KHO Số phiếu nhập kho Số phiếu giao hàng DÒNG PHIẾU NHẬP KHO Số phiếu nhập kho
Mã nguyên liệu
Số phiếu nhập kho Mã nguyên liệu
CÔNG THỨC Mã nguyên liệu
Mã món ăn
Mã ngun liệu Mã món ăn
-Mơ hình ER hạn chế
2.2.2.3. Chuyển đổi từ ERD hạn chế về mơ hình quan hệ (RM)
ER hạn chế Mơ hình quan hệ
Có tồn tại các kiểu thuộc tính được kết xuất từ kiểu thuộc tính khác
Khơng tồn tại các kiểu ttính được kết xuất từ kiểu thuộc tính khác
Chưa mã hóa tên gọi cho kiểu thực thể và kiểu thuộc tính
Đã mã hóa tên gọi cho kiểu thực thể và kiểu thuộc tính
Tồn tại các kiểu thuộc tính mơ tả
Việc chuyển đổi từ ER hạn chế về mơ hình quan hệ thực chất là đưa thêm những ràng buộc của mơ hình quan hệ vào ER hạn chế. Cụ thể như sau
- Mã hóa kiểu thực thể, kiểu thuộc tính
- Loại bỏ các kiểu thuộc tính có thể kết xuất được từ các kiểu thuộc tính khác - Chỉnh sửa các kiểu thuộc tính mơ tả cùng xuất hiện ở nhiều kiểu thực thể
! Mã hóa kiểu thực thể thành bảng quan hệ : Mỗi thực thể ở mơ hình ERD hạn
chế sẽ thành 1 bảng quan hệ ở mơ hình quan hệ
- Mã hóa kiểu thuộc tính thành trường dữ liệu
Kiểu thực thể Bảng quan hệ
KHÁCH HÀNG KHACHHANG
PHIẾU U CẦU MĨN PHIEU_YCM
DỊNG PHIẾU U CẦU MĨN DPHIEU_YCM
PHIẾU ĐẶT BÀN PHIEU_DB
DỊNG PHIẾU ĐẶT BÀN DPHIEU_DB
DANH MỤC MĨN ĂN DM_MONAN
MÓN ĂN MONAN
HÓA ĐƠN BÀN ĂN HD_BANAN
DỊNG HĨA ĐƠN BÀN ĂN DHD_BANAN
YÊU CẦU NHẬP NGUYÊN LIỆU YC_NHAPNL DÒNG YÊU CẦU NGUYÊN LIỆU DYC_NL
NGUYÊN LIỆU NGUYENLIEU
HÓA ĐƠN NHẬP NGUYÊN LIỆU HD_NHAPNL DỊNG HĨA ĐƠN NHẬP NGUN
LIỆU DHD_NHAPNL
GIAO HÀNG GIAOHANG
DÒNG GIAO HÀNG D_GIAOHANG
PHIẾU MUA NGUYÊN LIỆU PHIEU_MUANL
DÒNG PHIẾU MUA NGUYÊN LIỆU
DPHIEU_MUANL
NGUYÊN LIỆU CUNG CẤP NLIEU_NCC
PHIẾU NHẬP KHO PHIEU_NK
DỊNG PHIẾU NHẬP KHO DPHIEU_NK
CƠNG THỨC CONGTHUC
Kiểu thuộc tính khóa chuyển sang bảng tương ứng là khóa của bảng Kiểu thuộc tính mơ tả :
+ Kết xuất được sẽ bỏ đi :
+ Xuất hiện ở 1 kiểu thực thể sẽ chuyển bảng tương ứng
+ Xuất hiện ở nhiều bảng sẽ giữ ở bảng chính và thay bằng khóa chính bảng chính vào bảng đó
Bảng: PHIẾU U CẦU MĨN có thuộc tính “số bàn, tên khách hàng, sđt” ta lược bỏ vì có thể suy ra từ bảng PHIẾU ĐẶT BÀN.
Bảng: DỊNG PHIẾU U CẦU MĨN: có thuộc tính “tên món ăn, đơn vị tính” ta lược bỏ vì có thể suy ra từ “mã món ăn”.
Bảng: PHIẾU ĐẶT BÀN: có thuộc tính “tên chủ bàn, số điện thoại, tổng tiền” ta lược bỏ vì có thể suy ra từ “số lượng, đơn giá” của bảng DÒNG PHIẾU ĐẶT BÀN và bảng KHÁCH HÀNG.
Bảng: DÒNG PHIẾU ĐẶT BÀN: có thuộc tính “tên món ăn, đơn giá,thành tiền” ta lược bỏ vì có thể suy ra từ “số lượng, đơn giá” và từ bảng MÓN ĂN.
Bảng HĨA ĐƠN BÀN ĂN: có thuộc tính “tên khách hàng, SDT khách hàng, số bàn, tổng tiền” được lấy ra từ bảng PHIẾU ĐẶT BÀN và từ “số lượng, đơn giá”
Bảng DỊNG HĨA ĐƠN BÀN ĂN: có thuộc tính “tên món ăn, đơn vị tính, đơn giá” ta lược bỏ vì có thể suy ra từ bảng món ăn; thuộc tính “thành tiền” suy ra từ “đơn vị tính, đơn giá”
Bảng DỊNG U CẦU NHẬP NGUN LIỆU: có thuộc tính “tên ngun liệu, đơn vị tính” ta lược bỏ vì có thể suy ra từ “mã nguyên liệu”
Bảng PHIẾU MUA NGUN LIỆU: có thuộc tính “tên NCC, sđt NCC, địa chỉ NCC” ta lược bỏ vì có thể suy ra từ bảng NHÀ CUNG CẤP và DÒNG PHIẾU MUA NGUYÊN LIỆU.
Bảng DỊNG PHIẾU MUA NGUN LIỆU: có thuộc tính “tên ngun liệu, đơn vị tính, đơn giá” ta lược bỏ vì có thể suy ra từ “mã nguyên liệu”, và thuộc tính “thành tiền” suy ra từ “số lượng, đơn giá”
Các bảng GIAO HÀNG, PHIẾU NHẬP KHO, HĨA ĐƠN NHẬP NGUN LIỆU: có thuộc tính “tên NCC, sđt NCC, địa chỉ NCC” suy ra từ bảng NHÀ CUNG CẤP nên có thể bỏ.
Các bảng DỊNG GIAO HÀNG, DỊNG PHIẾU NHẬP KHO: có thuộc tính “tên ngun liệu, đơn vị tính” bỏ được vì có thể suy ra từ “mã nguyên liệu”
Bảng HĨA ĐƠN NHẬP NGUN LIỆU: bỏ “tổng tiền” vì có thể suy ra từ bảng DỊNG HĨA ĐƠN NHẬP NGUN LIỆU.
Bảng DỊNG HĨA ĐƠN NHẬP NGUN LIỆU: có thuộc tính “tên ngun liệu, đơn vị tính, đơn giá” bỏ được vì có thể suy ra từ “mã nguyên liệu”, bỏ “thành tiền” có thể suy ra từ “số lượng, đơn giá”