6.1. Các vấn đề về dư thừa dữ liệu
Các lược đồ quan hệ thu được từ biến đổi các sơ đồ ER về các lược đồ quan hệ chưa chắc đã là một thiết kế lý tưởng. Đôi khi chúng ta phải tìm cách chỉnh sửa, gộp các lược đồ quan hệ lại với nhau. Đặc biệt sau đó cần phải tiến hành chuẩn hóa lại các lược đồ để tránh các trường hợp:
a. Dư thừa dữ liệu:
Ví dụ xem xét một lược đồ NhaCungCap(Ma, Ten, DiaChi, MatHang, Gia). Dễ dàng thấy rằng nếu một nhà cung cấp nào đó cung cấp nhiều mặt hàng khác nhau thi dữ liệu về nhà cung cấp đó sẽ xuất hiện lặp đi lặp lại trong nhiều bộ của quan hệ trên lược đồ này.
b. Không nhất quán: Là hệ quả của việc dư thừa dữ liệu. Ví dụ dữ liệu về một nhà cung cấp lặp lại trong nhiều bộ dẫn đến khi sửa đổi địa chỉ của người cung cấp này, chúng ta chỉ sửa đổi một bộ nào đó còn các bộ khác vẫn giữ nguyên. Khi đó có hiện tượng một nhà cung cấp lại không có địa chỉ duy nhất.
c. Dị thường khi thêm bộ: Nếu một nhà cung cấp chưa cung cấp một mặt hàng nào cả, khi thêm một bộ giá trị về người cung cấp này, chúng ta không thể đưa mặt hàng và giá cả vào bộ giá trị .
d. Dị thường khi xóa bộ: Là vấn đề ngược lại của dị thường khi thêm bộ. Nếu một nhà cung cấp nào đó chỉ cung cấp một mặt hàng, khi đó trong quan hệ chỉ có một bộ lưu trữ dữ liệu về nhà cung cấp này. Khi chúng ta xóa dữ liệu về sự cung cấp mặt hàng bởi nhà cung cấp này hay xóa bộ giá trị đó chúng ta sẽ làm mất thông tin về người cung cấp này.
6.2. Phụ thuộc hàm
6.2.1. Khái niệm về phụ thuộc hàm
Cho quan hệ PhanCong như sau:
PhanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Quan hệ PhanCong diễn tả phi công nào lái máy bay nào và máy bay khởi hành vào thời gian nào. Không phải sự phối hợp bất kỳ nào giữa phi công, máy bay và ngày giờ khởi hành cũng đều được chấp nhận mà chúng có các điều kiện ràng buộc qui định sau:
Mỗi máy bay có một giờ khởi hành duy nhất.
Nếu biết máy bay, biết ngày khởi hành thì biết phi công lái chuyến bay ấy. Các ràng buộc này là các ví dụ về phụ thuộc hàm và được phát biểu lại như sau:
MAYBAY xác định GIOKH
{PHICONG,NGAYKH,GIOKH} xác định MABAY
{MAYBAY,NGAYKH} xác định PHICONG
hay
GIOKH phụ thuộc hàm vào MAYBAY
MABAY phụ thuộc hàm vào {PHICONG,NGAYKH,GIOKH}
PHICONG phụ thuộc hàm vào {MAYBAY,NGAYKH}
và được ký hiệu như sau:
{MAYBAY}→ GIOKH
{PHICONG,NGAYKH,GIOKH}→ MABAY
{MAYBAY,NGAYKH}→ PHICONG
Trong ký hiệu trên ta đã ký hiệu MAYBAY thay cho {MAYBAY}.
Một cách tổng quát:
R(Ω) là lược đồ quan hệ. X, Y là hai tập con của tập thuộc tính Ω ={A1,A2,…,An}. r là quan hệ trên R(Ω); t1, t2 là hai bộ bất kỳ của r.