Thứ Tư, 10 tháng 2, 2016

Phát triển HTTT kế toán bằng MS Access - Chương 2 - Dạng chuẩn một

James Perry, Richard Newmark


Chương 2
Cơ sở dữ liệu và hệ thống kế toán


Dạng chuẩn một


Bảng chứa nhóm lặp (repeating group) gọi là bảng chưa chuẩn hóa (unnormalized table). Mô hình quan hệ yêu cầu mọi bảng phải ở dạng chuẩn một. Để được điều này, dữ liệu lặp phải được loại khỏi bảng và lưu vào nơi khác. Chẳng hạn, bảng hóa đơn chứa từng dòng-hóa-đơn cho mọi hóa đơn như trình bày ở Hình 2.10.

Hình 2.10. Ví dụ về bảng dòng-hóa-đơn chứa các nhóm lặp.

Để ý rằng với mỗi hóa đơn trong bảng hóa đơn, có một số mã kho hàng, số lượng, đơn giá bán, và phần trăm giảm giá. Chẳng hạn, hóa đơn mã 214010 chứa 5 mặt hàng; mỗi mặt hàng ứng với một mục chi-tiết-hóa-đơn trên tờ in hóa đơn. Lược đồ của bảng này là:

        tblInvoice(InvoiceID,
                InventoryID, Quantity, UnitPrice, Discount,
                InventoryID, Quantity, UnitPrice, Discount,
                …)

trong đó dấu ba chấm thể hiện rằng InventoryID, Quantity, UnitPrice, và Discount có thể lặp với bất kỳ số lần – bằng số mặt hàng liệt kê trong hóa đơn.

Để ở dạng chuẩn một, bảng không thể chứa nhóm lặp (đa trị) trong một cột bảng, cũng không thể chứa số lượng biến thiên { InventoryID, Quantity, UnitPrice, Discount } trong mỗi dòng. Để chuyển bảng ở Hình 2.10 về dạng chuẩn một, bạn có thể loại bỏ nhóm lặp trong bảng hóa đơn hiện thời và đặt chúng vào bảng mới. Tuy nhiên, bạn phải bổ sung một cột vào bảng mới để liên kết các dòng thuộc bảng mới với bảng hóa đơn ban đầu. Một ví dụ về cấu trúc 2 bảng tuân theo dạng chuẩn một là:


Bảng mới tblInvoiceLine có 5 cột. Hai cột đầu, InvoiceID và InventoryID, kết hợp lại để hình thành khóa chính của bảng. Đây là khóa chính phức hợp (composite primary key) vì khóa chính gồm 2 thuộc tính.

Không có nhận xét nào:

Đăng nhận xét