V .T liệu hoá kết quả khảo sát
3. Chất lợng cấu trúc của một quan hệ
Thế nào là quan hệ có cấu trúc tốt? Một cách trực giác, có thể cho rằng một quan hệ có cấu trúc tốt là quan hệ có lợng d thừa dữ liệu ít nhất và cho phép ngời sử dụng thêm, sửa đổi hay xoá các dòng dữ liệu mà không gây ra lỗi hoặc không nhất quán trong bảng.
Khi xây dựng một hệ thống thông tin với mô hình quan hệ, ở thời điểm ban đầu các thuộc tính có thể đợc gom nhóm một cách tuỳ ý thành các lợc đồ quan hệ, theo kinh nghiệm làm việc và nhận biết chủ quan của phân tích viên đối với thực tế trong hệ thống thực. Các lợc đồ nh vậy thờng không có chất lợng cao. Nhợc điểm thờng quan hệ, hoặc có mặt trong nhiều quan hệ khác nhau. Sự d thừa dẫn đến sự không nhất quán
trong dữ liệu khi thực hiện các thao tác thêm, sửa hoặc xoá các đối với dữ liệu, gặp phải là sự d thừa thông tin: một thông tin có mặt ở nhiều chỗ khác nhau trong một
Hình 4.11 Quan hệ BANDOC2 có cấu trúc không tốt
Ta xem xét ví dụ về quan hệ BANDOC2, đợc mô tả trong hình 4.11, chứa dữ liệu về bạn đọc và sách mợn. Mỗi dòng trong bảng đợc xác định duy nhất theo hai thuộc tính “ Số thẻ” và “ Mã sách”. Tổ hợp hai thuộc tính này là khoá chính của bảng. Trong bảng dữ liệu BANDOC2, sự d thừa dữ liệu khá rõ ràng. Ví dụ, các giá trị “ Số thẻ”, “ Tên bạn đọc”, “ Cơ quan” và “ Hạn sử dụng” xuất hiện trên nhiều dòng khác nhau. Vì vậy, nếu một thẻ nào đó đợc gia hạn sử dụng thì rõ ràng là phải sửa đổi trên nhiều dòng.
Sự d thừa dữ liệu này có thể dẫn đến những sai sót hoặc không đồng bộ dữ liệu khi thực hiện các thao tác cơ bản nh chèn thêm một dòng, xoá một dòng, hoặc sửa một dòng dữ liệu:
a)Chèn thêm một dòng: Giả sử cần thêm một bạn đọc mới. Bạn đọc này cha đăng kí mợn sách ở thời điểm này. Vậy là cha có gì để điền vào các cột “ Mã sách”, “ Tên sách”, “ Tác giả” và “ Ng. mợn”. Mặt khác, khoá chính của bảng là tổ hợp của “ Số thẻ” và “ Mã sách”. Với dòng dữ liệu mới này không xác định đợc giá trị khoá chính.
b) Xoá một dòng: Giả xử thông tin về bạn đọc có số thẻ 134 không còn cần thiết đối với hệ thống. Cần xoá dòng ứng với “ Số thẻ” là 134. Lúc này, thông tin về quyển sách GO22, Theory of Graphs, của Oystein Ore cũng hoàn toàn bị xoá, mặc dù quyển sách vẫn còn trong th viện.
c) Sửa một dòng : Giả sử bạn đọc “ Trần Văn Hùng” với số thẻ đọc có số 131 đợc gia hạn sử dụng. Rõ ràng ngời quản trị phải sửa lại hạn sử dụng mới trên cả bốn dòng.
Số
thẻ Tên bạn đọc cơ quan Hạn SD Mãsách Tên sách Tác giả Ngời mợn 131 TrầnHùng Văn K171 11/ 2002 S021 SoftwareEngineering RogerS.P 12/ 10/ 1999 131 TrầnHùng Văn K171 11/ 2002 H234 ProgramDesign Julif P. 12/ 10/ 1999 131 TrầnHùng Văn K171 11/ 2002 C045 Toán học caocấp Ng. ĐìnhTrí 01/ 10/ 2002 131 TrầnHùng Văn K171 11/ 2002 S123 Turbo Pascal5.5 A.Schaper
s 12/ 10/ 2000 134 Nguyễn Nam K171 10/ 2003 G022 Theory ofGraphs OysteinOre 12/ 10/ 1999 137 Lê Văn Tiến P01 7/ 2002 T066 The Art OfProgramming D.Knuth E. 11/ 11/ 2001 137 Lê Văn Tiến P01 7/ 2002 S023 SoftwareEngineering Roger S.P 12/ 10/ 1999 145 Hoàng Văn An P01 11/ 2002 S025 SoftwareEngineering Roger S.P 12/ 10/ 1999 145 Hoàng Văn An P01 11/ 2002 P221 Pascal UserManual &
Peport N. Wirth 11/ 07/ 1998 145 Hoàng Văn An P01 11/ 2002 T067 Computer
Nếu không sửa hạn sử dụng trên tất cả các dòng của bạn đọc này. Có thể dẫn đến những xử lý không chính xác.
Từ những phân tích trên đây ta thấy rõ là cần phải tách thông tin về bạn đọc rời khỏi thông tin về sách để khắc phục những dị thờng ( anomaly ) sinh ra bởi các trờng hợp nêu trên. Mặt khác, cũng cần một quan hệ mô tả mối liên kết “ Mợn” giữa “ Bạn đọc” và “ Sách”.
Các lợc đồ tơng ứng với các quan hệ nhận đợc:
BANDOC ( Số thẻ, Tên bạn đọc,Cơ quan, Hạn SD)
SACH ( Mã sách, Tên sách, Tác giả )
BANDOC_ SACH ( Số thẻ, Mã sách, Ngày mợn )
Số thẻ Tên bạn đọc Cơ quan Hạn sử dụng
131 Trần Văn Hùng K171 11/ 2002
134 Nguyễn Nam K171 10/ 2003
137 Lê Văn Tiến P01 7/ 2002
145 Hoàng Văn An P01 11/ 2002
Hình 4.12.Quan hệ bạn đọc
Mã sách Tên sách Tác giả
S021 Software Engineering Roger S.P
H234 Program Design Julif P.
C045 Toán học cao cấp Ng. Đình Trí
S123 Turbo Pascal 5.5 A. Schapers
G022 Theory of Graphs Oystein Ore
T066 The Art Of Programming D. E. Knuth
S023 Software Engineering Roger S. P
S025 Software Engineering Roger S. P
P221 Pascal User Manual &
Peport N. Wirth
T067 Computer Algorithms Sara Baase
Hình 4.13. Quan hệ SACH Số thẻ Mã sách Ngày mợn 131 S021 12/ 10/ 1999 131 H234 12/ 10/ 1999 131 C045 01/ 10/ 2002 131 S123 12/ 10/ 2000 134 G022 12/ 10/ 1999 137 T066 11/ 11/ 2001 137 S023 12/ 10/ 1999 145 S025 12/ 10/ 1999 145 P221 11/ 07/ 1998 145 T067 10/ 12/ 2002
Hình 4.14. Quan hệ BANDOC_ SACH