Nhập môn cơ sở dữ liệu các dạng chuẩn hóa năm 2024
Chuẩn hóa cơ sở dữ liệu là áp dụng các qui tắc cho thiết kế của cơ sở dữ liệu nhằm giúp giảm dư thừa dữ liệu trong quá trình thiết kế Cơ sở dữ liệu. Đây là bước quan trọng để giúp bạn kiểm tra tính đúng đắn của quá trình thiết kế cơ sở dữ liệu. Bài viết này sẽ giúp bạn hiểu về các mức chuẩn hóa, quá trình thực hiện chuẩn hóa cũng như áp dụng việc chuẩn hóa vào thiết kế cơ sở dữ liệu. Các mức chuẩn hóaVề lý thuyết thì có 7 mức chuẩn hóa khác nhau: Hình 1. Các mức chuẩn hóa Cơ sở dữ liệu. Tạm thời mình để đầy đủ các chuẩn và mô tả bằng tiếng Anh bạn nào quan tâm thì chịu khó đọc. Tuy nhiên, đối với thiết kế Cơ sở dữ liệu thì bạn chỉ cần áp dụng đến mức 3 là được. Do vậy, chúng ta sẽ chỉ tìm hiểu kỹ 03 mức chuẩn hóa đầu tiên. Chuẩn 1 (1NF – First Normal Form): Giá trị được lưu trữ trong các ô phải là các giá trị đơn (scalar value) và trong bảng không có cột nào lặp lại. Chuẩn 2 (2NF – Second Normal Form): Mọi trường không phải là khóa phải phụ thuộc vào khóa chính. Chuẩn 3 (3NF – Third Normal Form): Mọi trường không phải là khóa chỉ phụ thuộc vào khóa chính mà thôi. Tiến trình chuẩn hóa
Thực hành việc chuẩn hóaĐể hiểu rõ về các chuẩn và chuẩn hóa chúng ta thực hành sử dụng chuẩn hóa để xây dựng Cơ sở dữ liệu cho hệ thống quản lý đơn hàng như ở bài trước. Hình 2. Mẫu đơn hàng Sau khi phân tích dữ liệu ta được các trường như sau: Bảng Invoice (Hóa đơn) InvoiceNo: Số hóa đơn InvoiceDate: Ngày ghi hóa đơn CustomerName: Tên khách hàng CustomerCompany: Tên công ty khách hành CustomerAddress: Địa chỉ khách hàng CustomerAccountNo: Số tài khoản của khách hàng PaymentMethod: Phương thức thanh toán CustomerTaxNo: Mã số thuế của khách hàng SequenceNo: Số thứ tự mua hành ProductName: Tên sản phẩm Unit: Đơn vị tính của sản phẩm Quantity: Số lượng UnitPrice: Đơn giá Amount: Thành tiền TotalAmount: Tổng tiền VAT: Thuế giá trị gia tăng TotalPay: Tổng tiền phải trả ByText: Ghi bằng chữ 1. Đưa bảng dữ liệu về chuẩn 1:
(Xem lại bài Thiết kế cơ sở dữ liệu để hiểu vì sao tách các trường này và vì sao loại bỏ các trường trên) Lúc này ta được bảng dữ liệu theo chuẩn 1 như sau: Bảng Invoice (Hóa đơn) InvoiceNo: Số hóa đơn InvoiceDate: Ngày ghi hóa đơn CustomerFirstName: Tên khách hàng CustomerLastName: Họ lót khách hàng CustomerCompany: Tên công ty khách hành CustomerAddress: Địa chỉ khách hàng CustomerDistrict: Quận nơi khách hàng đang ở CustomerCity: Thành phố nơi khách hàng đang ở CustomerAccountNo: Số tài khoản của khách hàng PaymentMethod: Phương thức thanh toán CustomerTaxNo: Mã số thuế của khách hàng SequenceNo: Số thứ tự mua hành ProductName: Tên sản phẩm Unit: Đơn vị tính của sản phẩm Quantity: Số lượng UnitPrice: Đơn giá VAT: Thuế giá trị gia tăng 2. Đưa bảng dữ liệu về chuẩn 2:Từ chuẩn 1, xem xét các trường không phụ thuộc vào khóa chính để tách ra thành bảng riêng.
Lúc này chúng ta có được 03 bảng dữ liệu như sau: Customer CustomerNo CustomerFirstName CustomerLastName CustomerCompany CustomerAddress CustomerDistric CustomerCity CustomerAccountNo CustomerTaxNo Product ProductNo ProductName Unit Invoice InvoiceNo InvoiceDate PaymentMethod SequenceNo Quantity UnitPrice VAT Xác định mối quan hệ và đặt khóa ngoại cho trường CustomerNo và ProductNo chúng ta được sơ đồ thực thể cho mức 2 như sau: 3. Đưa các bảng dữ liệu về chuẩn 3:Xem xét các trường từ các bảng không phụ thuộc hoàn toàn vào khóa chính ra bảng khác để về chuẩn 3.
Lúc này bảng Invoice được chia thành Invoice và InvoiceDetails như sau: Invoice InvoiceNo InvoiceDate PaymentMethod VAT CustomerNo InvoiceDetails InvoiceDetailsNo SequenceNo ProductID Quantity UnitPrice Lúc này tất cả các bảng đã ở chuẩn mức 3. Thiết lập mối quan hệ và khóa ngoại ta được sơ đồ quan hệ thực thể như sau: Lưu ý Trong bài này để bạn nắm rõ về các mức chuẩn hóa tôi đã áp dụng chuẩn hóa từ Mức 1 -> Mức 2 -> Mức 3. Trong thực tế, khi thiết kế cơ sở dữ liệu bạn làm qua 4 bước đầu tiên trong quá trình thiết kế cơ sở dữ liệu như ở bài Thiết kế cơ sở dữ liệu để có sơ đồ quan hệ thực thể. Sau đó, áp dụng các qui tắc chuẩn hóa này để kiểm tra các bảng và đưa các bảng về chuẩn 3 thì sẽ dễ hiểu và dễ thực hiện hơn. Kết luậnChuẩn hóa Cơ sở dữ liệu để đạt chuẩn 3 là công việc bắt buộc trong thiết kế cơ sở dữ liệu quan hệ. Tuy nhiên, rất nhiều bạn mặt dù đã học qua môn học này vẫn chưa nắm rõ các qui tắc này. Bài viết này hy vọng giúp đỡ được bạn. |