Nếu tách các cộ sao cho mỗi cột chỉ chứa một giá trị thì số cột trên các dòng sẽ không bằng nhau bởi vì các hóa đơn không ghi cùng một số

Một phần của tài liệu Cơ sở phương pháp luận cơ bản cho việc nghiên cứu đề tài (Trang 42 - 44)

các dòng sẽ không bằng nhau bởi vì các hóa đơn không ghi cùng một số món hàng như sau.

d. Dạng chuẩn thứ hai

Một bảng thuộc dạng chuẩn thứ hai (2 NF) khi và chỉ khi nó thuộc dạng chuẩn thứ nhất và tất cả các cột không thuộc khóa chính đều phụ dạng chuẩn thứ nhất và tất cả các cột không thuộc khóa chính đều phụ thuộc đầy đủ vào khóa chính. Nói cách khác, một bảng không thuộc dạng chuẩn thứ hai khi có một cột không thuộc khóa chính mà chỉ phụ thuộc vào một phần của khóa chính.

Ví dụ: Giả sử một CSDL chỉ có một bảng ghi các khoản mục hàng hóa do khách hàng đặt trước: hóa do khách hàng đặt trước:

HÀNG ĐẶT

MA_HANG MA_KH SO_LUONG TIN_DUNG

12

34 57679 253 Bình thườngKhông tốt

Tên bảng là “ hang đặt”. Các tiêu đề cột có nghĩa là “Mã hàng”, “Mã khách hàng”, “Số lượng” và “Tình trạng tín dụng của khách hàng”. Khóa chính khách hàng”, “Số lượng” và “Tình trạng tín dụng của khách hàng”. Khóa chính của bảng này là tổng hợp của mã hàng và mã khách hàng. Vấn đề khiến cho bảng này không thuộc dạng chuẩn thứ hai là: tình trạng tín dụng của khách hàng chỉ phụ thuộc vào mã khách hàng, tức là một phần của khóa chính chứ không phụ thuộc đầy đủ vào khóa chính. Phân tích vấn đề này ta nhận thấy một mặt hàng có thể được nhiều khách hàng đặt và một khách hàng có thể đặt mua nhiều mặt hàng. Đó là mối quan hệ Nhiều – nhiều. Như trước đây đã chỉ ra, để thể hiện mối quan hệ m:m ta phải tạo ra một thực thể thứ ba. Mô hình dữ liệu cần

có 3 thực thể : MẶT HÀNG, HÀNG ĐẶT VÀ KHÁCH HÀNG. Tín dụng phải là một thuộc tính của khách hàng. là một thuộc tính của khách hàng.

Mô hình dữ liệu ‘đặt hàng” sau khi đã sửa đổi cho phù hợp với dạng chuẩn thứ hai

e. Dạng chuẩn thứ ba

Một bảng thuộc dạng thứ ba (3NF) khi và chỉ khi nó thuộc dạng chuẩn thứ hai và không có sự phụ thuộc bắc cầu. Nói cách khác, một bảng không thuộc hai và không có sự phụ thuộc bắc cầu. Nói cách khác, một bảng không thuộc dạng chuẩn thứ ba khi có một cột không thuộc khóa chính mà phụ thuộc vào một cột khác cũng không thuộc khóa chính.

Ví dụ: xét bảng cổ phiếu sau đây:

MA_CO_PH TEN_NUOC HOI_DOAI

Trong bàng này MA_CO_PH là khóa chính. Mã cổ phiếu xác định duy nhất tên nước có công ty bán cổ phiếu còn tên nước thì xác định duy nhất giá hối đoái nước có công ty bán cổ phiếu còn tên nước thì xác định duy nhất giá hối đoái của nước. Ta viết:

Mã cổ phiếu Tên nướcHối đoái

Như vậy đã có sự phụ thuộc bắc cầu: Hối đoái phụ thuộc vào Tên nước, Tên nước phụ thuộc vào Mã cổ phiếu. Phân tích kĩ ta sẽ thấy một nước có nhiều Tên nước phụ thuộc vào Mã cổ phiếu. Phân tích kĩ ta sẽ thấy một nước có nhiều cổ phiếu nhưng một cổ phiếu chỉ thuộc về một nước, tức là phải tách bảng đã cho thành hai bảng theo mô hình dữ liệu với mối quan hệ một-nhiều sau đây:

Mô hình dữ liệu “chứng khoán” sau khi đã sửa đổi cho phù hợp với dạng chuẩn thứ ba

6. Các dạng chuẩn khác

Ngoài ba dạng chuẩn thông thường nêu trên, còn có ba dạng chuẩn khác nữa với những đòi hỏi khắt khe và tinh vi hơn, đó là các chuẩn Boyce-Codd, nữa với những đòi hỏi khắt khe và tinh vi hơn, đó là các chuẩn Boyce-Codd, dạng chuẩn thứ 4 và thứ 5. Thực tế, sự không tuân thủ ba dạng chuẩn vừa nêu không gây hậu quả nghiêm trọng lắm. Mặt khác, vì quá khắt khe và tinh vi nên các dạng chuẩn ấy đã vượt quá phạm vi xem xét của các HQTCSDL hiện nay.

Một phần của tài liệu Cơ sở phương pháp luận cơ bản cho việc nghiên cứu đề tài (Trang 42 - 44)