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 hoá dữ liệu
2.2.2.1. Chuyển đổi từ ERD mở rộng về ERD kinh điển
ER mở rộng ER 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.
Xử lý các thuộc tính đa trị Từ ERD mở rộng ta có:
o Phiếu yêu cầu dịch vụ (Mã phiếu dịch vụ, Ngày lập, Tên khách hàng, Số phòng, Dịch vụ, Số lượng, Ghi chú, Nhân viên lập phiếu)
Nhóm thuộc tính đa trị (Dịch vụ, Số lượng, Ghi chú) Chi tiết phiếu yêu cầu dịch vụ (Dịch vụ, Số lượng, Ghi chú)
Phiếu dịch vụ (Mã phiếu dịch vụ, Ngày lập, Tên khách hàng, Số phòng, Nhân viên lập phiếu)
o Hóa đơn dịch vụ (Mã hóa đơn dịch vụ, Khách hàng, Số phòng, Dịch vụ, Số lượng, Giá, Tổng tiền, Nhân viên lập hóa đơn)
Chi tiết hóa đơn dịch vụ (Dịch vụ, Số lượng, Giá,)
Hóa đơn dịch vụ (Mã hóa đơn dịch vụ, Khách hàng, Số phòng, Tổng tiền, Nhân viên lập hóa đơn)
o Phiếu đặt phòng (Mã phiếu đặt phòng, Tên khách hàng, Địa chỉ, SĐT, CMND, Nhân viên, Số phòng, Ngày nhận phòng, Ghi chú)
Nhóm thuộc tính đa trị (Số phòng, Ngày nhận phòng, Ghi chú) Chi tiết phiếu đặt phòng (Số phòng, Ngày nhận phòng, Ghi chú)
Phiếu đặt phòng (Mã phiếu đặt phòng, Tên khách hàng, Địa chỉ, SĐT, CMND, Nhân viên)
o Phiếu thuê phòng (Mã phiếu thuê phòng, Ngày lập phiếu, Số phòng, Tên khách hàng, Địa chỉ, SĐT, CMND, Ngày nhận phòng, Ghi chú, Nhân viên lập phiếu)
Nhóm thuộc tính đa trị (Số phòng, Ngày nhận phòng, Ghi chú) Chi tiết phiếu thuê phòng (Số phòng, Ngày nhận phòng, Ghi chú)
Phiếu thuê phòng (Mã phiếu thuê phòng, Ngày lập phiếu, Tên khách hàng, Địa chỉ, SĐT, CMND, Nhân viên lập phiếu)
o Hoá đơn đặt phòng (Mã hóa đơn đặt phòng, Thời gian, Tên khách hàng, Địa chỉ, SĐT, CMND, Ngày đặt phòng, Ngày nhận phòng, Số phòng, Tiền đặt cọc, Ghi chú, Tổng tiền, Nhân viên thanh toán)
Nhóm thuộc tính đa trị (số phòng, đơn giá, thành tiền)
Chi tiết hóa đơn đặt phòng (Ngày đặt phòng, Ngày nhận phòng, Số phòng, Tiền đặt cọc, Ghi chú)
Hoá đơn đặt phòng (Mã hóa đơn đặt phòng, Thời gian, Tên khách hàng, Địa chỉ, SĐT, CMND, Tổng tiền, Nhân viên thanh toán)
o Hoá đơn thanh toán (Mã hóa đơn, Thời gian, Tên khách hàng, Địa chỉ, SĐT, CMND, Số phòng, Ngày nhận phòng, Ngày trả phòng, Giá, Ghi chú, Thành tiền, Khách hàng, Nhân viên lập)
Nhóm thuộc tính đa trị (Số phòng, Ngày nhận phòng, Ngày trả phòng, Giá, Ghi chú)
Chi tiết hóa đơn thanh toán (Số phòng, Ngày nhận phòng, Ngày trả phòng, Giá, Ghi chú)
Hoá đơn đặt phòng (Mã hóa đơn, Thời gian, Tên khách hàng, Địa chỉ, SĐT, CMND, Thành tiền, Khách hàng, Nhân viên lập)
Ví dụ:
Xác định khoá của kiểu thực thể chính
Kiểu thực thể Khoá chính
Hoá đơn đặt phòng Mã hoá đơn đặt phòng
Phiếu yêu cầu dịch vụ Mã phiếu dịch vụ
Hóa đơn dịch vụ Mã hóa đơn dịch vụ
Khách hàng Mã khách hàngách hàng
Hợp đồng thuê phòng Số hợp đồng
Dịch vụ Mã dịch vụ
Loại phòng Mã loại phòng
Phòng Số phòng
Phiếu thuê phòng Mã phiếu thuê phòng
Phiếu đặt phòng Mã phiếu đặt phòng
Hóa đơn thanh toán Mã hóa đơn
Mô hình ERD kinh điển
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 thực thể chưa có khóa ngoài Kiểu thực thể có khóa ngoài
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 (áp dụng quy tắc 4):
Với kiểu liên kết 1-n : Kiểu liên kết sẽ được thay đổi như ví dụ dưới đây
Xử lý kiểu liên kết 1-1 (áp dụng quy tắc 5): thêm khóa chính của bản này vào bản kia.
Xử lý thuộc tính không sơ đẳng
Xử lý kiểu liên kết 2 ngôi n-n (áp dụng quy tắc 6): không có liên kết n-n
Xác định kiểu thuộc tính kết nối (khoá ngoài) (áp dụng quy tắc 7):
Xác định khoá chính cho các kiểu thực thể (áp dụng quy tắc 8):
- Kiểu thực thể chính: khoá chính là khoá đơn - Kiểu thực thể phụ thuộc: khoá chính là khoá bội
Kiểu thực thể Khoá chính Khoá ngoại
Hoá đơn đặt phòng Mã hoá đơn đặt phòng Mã khách hàng Mã phiếu đặt phòng Phiếu yêu cầu dịch vụ Mã phiếu dịch vụ Mã khách hàng Hoá đơn thanh toán Mã hoá đơn Mã khách hàng Mã phiếu thuê phòng
Khách hàng Mã khách hàng
Phòng Số phòng Mã loại phòng
Dịch vụ Mã dịch vụ
Loại phòng Mã loại phòng
Phiếu thuê phòng Mã phiếu thuê phòng Mã khách hàng Hợp đồng thuê phòng Số hợp đồng Mã khách hàng
Phiếu đặt phòng Mã phiếu đặt phòng Mã khách hàng Hóa đơn dịch vụ Mã hóa đơn dịch vụ Mã phiếu dịch vụ Chi tiết phiếu thuê
phòng Mã phiếu thuê phòng
Số phòng
Mã phiếu thuê phòng
Số phòng Chi tiết hoá đơn thanh
toán Mã hoá đơn
Số phòng
Mã hoá đơn Số phòng Chi tiết phiếu đặt
phòng Mã phiếu đặt phòng
Số phòng
Mã phiếu đặt phòng Số phòng
Chi tiết phiếu yêu cầu dịch vụ
Mã phiếu yêu cầu dịch vụ
Mã dịch vụ
Mã phiếu yêu cầu dịch vụ
Mã dịch vụ Chi tiết hóa đơn dịch
vụ
Mã hóa đơn dịch vụ Mã dịch vụ
Mã hóa đơn dịch vụ Mã dịch vụ
Danh sách phòng hợp
đồng Số hợp đồng
Số phòng
Số hợp đồng Số phòng
Mô hình ERD 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ả xuất
hiện ở nhiều kiểu thực thể Không tồn tại các thuộc tính mô tả xuất hiện ở nhiều kiểu thực thể
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ệ
Kiểu thực thể Bảng quan hệ
Hoá đơn đặt phòng HoaDonDatPhong
Phiếu yêu cầu dịch vụ PhieuYeuCauDichVu
Hoá đơn thanh toán HoaDonThanhToan
Khách hàng KhachHang
Phòng Phong
Dịch vụ DichVu
Loại phòng LoaiPhong
Phiếu thuê phòng PhieuThuePhong
Hợp đồng thuê phòng HopDongThuePhong
Phiếu đặt phòng PhieuDatPhong
Hóa đơn dịch vụ HoaDonDichVu
Chi tiết phiếu thuê phòng ChiTietPhieuThuePhong Chi tiết hoá đơn thanh toán ChiTietHoaDonThanhToan Chi tiết phiếu đặt phòng ChiTietPhieuDatPhong Chi tiết phiếu yêu cầu dịch vụ ChiTietPhieuYeuCauDichVu Chi tiết hóa đơn dịch vụ ChiTietHoaDonDichVu Chi tiết hóa đơn đặt phòng ChiTietHoaDonDatPhong
Danh sách phòng hợp đồng DanhSachPhongHopDong 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 đó
+ Kết xuất được sẽ bị loại bỏ:
Ở các bảng HoaDonDatPhong, HoaDonThanhToan, HoaDonDichVu: thành tiền = đơn giá * số phòng
Mã hóa kiểu thuộc tính thành trường dữ liệu
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 đó
Các bảng: Chi tiết phiếu yêu cầu dịch vụ, Chi tiết hóa đơn dịch vụ có thuộc tính Dịch vụ ta có thể loại bỏ vì được suy ra từ mã dịch vụ
Các bảng: Phiếu đặt phòng, hóa đơn đặt phòng, phiếu thuê phòng, hóa đơn thanh toán, hợp đồng thê phòng có thuộc tính Tên khách hàng ta có thể loại bỏ vì được suy ra từ Mã khách hàng
Các bảng: Hóa đơn đặt phòng, Hóa đơn thanh toán, Hóa đơn dịch vụ có thuộc tính tổng tiền ta lược bỏ vì có thể suy ra từ đơn giá, số lượng…
- Kiểu thuộc tính sẽ được mã hóa bằng cách viết liền không dấu, viết hoa chữ cái đầu của mỗi từ
Ví dụ: Mã Khách Hàng => MaKhachHang