Các Nguyên Tắc Thiết Kế Lược đồ Quan Hệ Và Phụ Thuộc Hàm - VOER

Thông tin dư thừa trong các bộ và sự dị thường cập nhật

Một mục tiêu của thiết kế lược đồ là làm tối thiểu không gian lưu trữ các quan hệ cơ sở. Các thuộc tính được nhóm vào trong các lược đồ quan hệ có một ảnh hưởng đáng kể đến không gian lưu trữ. Nếu cùng một thông tin được lưu giữ nhiều lần trong cơ sở dữ liệu thì ta gọi đó là dư thừa thông tin và điều đó sẽ làm lãng phí không gian nhớ. Ví dụ, giả sử ta có bảng cơ sở sau đây:

Bảng NHÂNVIÊN_ĐƠNVỊ

Ở đây có sự dư thừa thông tin. Nếu một đơn vị có nhiều nhân viên làm việc thì thông tin về đơn vị (Mã số, Tên đơn vị, Mã số người quản lý) được lưu giữ nhiều lần trong bảng. So với việc dùng hai bảng NHÂNVIÊN và ĐƠNVỊ riêng rẽ như trong lược đồ “CÔNG TY”, việc sử dụng bảng này làm lãng phí không gian nhớ.

Ngoài việc lãng phí không gian nhớ nó còn dẫn đến một vấn đề nghiêm trọng là sự dị thường cập nhật. Dị thường cập nhật bao gồm: Dị thường Chèn, dị thường Xoá, dị thường Sửa đổi. Những dị thường cập nhật này sẽ đưa vào cơ sở dữ liệu những thông tin “lạ” và làm cho cơ sở dữ liệu mất tính đúng đắn.

Dị thường Chèn: Gây ra khó khăn khi chèn các bộ giá trị vào bảng hoặc dẫn đến vi phạm ràng buộc. Ví dụ:

Để chèn một bộ giá trị cho một nhân viên mới vào bảng NHÂNVIÊN_ĐƠNVỊ ngoài các thông tin về nhân viên, ta phải đưa vào các thông tin về đơn vị mà anh ta làm việc hoặc các giá trị null (nếu nhân viên không làm việc cho đơn vị nào cả). Các thông tin về đơn vị phải được đưa vào một cách đúng đắn, phù hợp với các thông tin của đơn vị đó trong các bộ khác. Trong lúc đó, với lược đồ cơ sở dữ liệu “CÔNGTY” chúng ta không phải lo lắng gì, vì các thông tin về một đơn vị chỉ được lưu trữ một lần.

Rất khó chèn một đơn vị mới vào quan hệ NHÂNVIÊN_ĐƠNVỊ nếu đơn vị đó không có nhân viên nào làm việc. Cách giải quyết duy nhất là điền các giá trị null vào các thuộc tính của nhân viên. Điều đó làm nảy sinh vấn đề về ràng buộc bởi vì MãsốNV là khóa chính của quan hệ.

Dị thường Xóa: Gây ra việc mất thông tin khi xóa. Ví dụ khi ta xóa một bộ giá trị trong bảng NHÂNVIÊN_ĐƠNVỊ. Nếu nhân viên tương ứng với bộ giá trị đó là người cuối cùng làm việc cho đơn vị thì phép xóa sẽ kéo theo việc làm mất thông tin về đơn vị.

Dị thường Sửa đổi: Gây ra việc sửa đổi hàng loạt khi ta muốn sửa đổi một giá trị trong một bộ nào đó. Ví dụ, ta muốn sửa giá trị của thuộc tính MãsốNQL của đơn vị 5. Điều đó kéo theo ta phải sửa giá trị của thuộc tính này trong tất cả các bộ ứng với đơn vị 5. Dựa trên các dị thường ở trên, chúng ta có thể phát biểu nguyên tắc sau:

Nguyên tắc 2: Thiết kế các lược đồ quan hệ cơ sở sao cho không sinh ra những dị thường cập nhật trong các quan hệ. Nếu có xuất hiện những dị thường cập nhật thì phải ghi chép lại một cách rõ ràng và phải đảm bảo rằng các chương trình cập nhật dữ liệu sẽ thực hiện một cách đúng đắn.

Từ khóa » định Nghĩa Lược đồ Quan Hệ