Một thuộc tính đợc gọi là thuộc tính không khoá nếu nó không tham dự vào thành phần của khoá chính hoặc khóa ứng cử

Một phần của tài liệu Chuẩn hóa cơ sở dữ liệu (Trang 27 - 32)

tham dự vào thành phần của khoá chính hoặc khóa ứng cử

Các quan hệ SECOND và SP đều là 2NF

Quan hệ FIRST không phải là 2NF

Một quan hệ ở dạng chuẩn thứ nhất và không ở dạng chuẩn thứ hai luôn luôn có thể chuyển thành một tập tơng đơng các dạng chuẩn 2NF

Ta có thể chuyển bằng cách thay thế các quan hệ bằng các ánh xạ thích hợp

Tập các ánh xạ này là tơng đơng với quan hệ ban đầu theo nghĩa quan hệ ban đầu luôn luôn có thể khôi phục lại bằng cách kết hợp một cách

thích hợp các ánh xạ này

Nh vậy, thông tin sẽ không bị mất mát trong quá trình chuyển (điều này là rất quan trọng)

Nói một cách khác, quá trình là hai chiều

Cũng cần lu ý là quan hệ 1NF mà không phải là 2NF cần phải có khoá chính là khoá ghép

Vì thông tin không bị mất trong quá trình chuyển nên bất kỳ thông tin nào mà rút ra đợc từ cấu trúc ban đầu đều có thể đợc rút ra từ cấu trúc mới

Tuy nhiên, điều ngợc lại là không đúng:

Cấu trúc mới có thể chứa thông tin (nh thông tin là S5 có địa chỉ

==============================================================================="Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004 "Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004

ở Athens) mà không thể biểu thị đợc trong cấu trúc ban đầu

Với ý nghĩa này, cấu trúc mới là ánh xạ đôi chút hợp lý hơn của thế giới thực

Tuy nhiên, cấu trúc SECOND/SP vẫn còn tồn tại một số vấn đề:

Quan hệ SP là thoả đáng và nó là quan hệ ở dạng chuẩn thứ bốn, do đó sẽ không xét đến nó trong mục này

Ngợc lại, quan hệ SECOND vẫn còn cha đảm bảo sự độc lập lẫn nhau giữa các thuộc tính không khoá:

Sơ đồ phụ thuộc của quan hệ SECOND vẫn còn phức tạp hơn sơ đồ 4NF

cầu (thông qua thuộc tính CITY): mỗi giá trị S# xác định một giá trị CITY và giá trị này đến lợt mình lại xác định giá trị STATUS

Sự bắc cầu này một lần nữa lại dẫn đến những khó khăn trong các phép toán lu trữ:

i. Chèn (Insert):

Không thể đa thêm thông tin về một thành phố nào đó có một giá trị trạng thái nào đó

Ví dụ:

Không thể nói là bất kỳ h ng cung cấp nào ở thành phốã

Rome cũng phải có trạng thái là 50 - cho đến khi có một

==============================================================================="Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004 "Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004

CSCITYSTATUSC Athens30A L C Athens30A L ondon20 o Paris10P SCS#CITY S S1LondonS S2 Paris P S3ParisS S4Lond on o S5AthensS

h ng cung cấp có địa chỉ ở thành phố nàyã

ii. Xoá (Delete): (adsbygoogle = window.adsbygoogle || []).push({});

Nếu xoá đi một bộ duy nhất cho một thành phố nào đó trong quan hệ SECOND, ta sẽ huỷ mất không chỉ thông tin về h ngã

cung cấp có liên quan mà còn huỷ mất cả thông tin về giá trị trạng thái của thành phố đó

Ví dụ:

Nếu huỷ bộ S5 trong quan hệ SECOND, sẽ mất thông tin về giá trị trạng thái là 30 cho thành phố Athens

==============================================================================="Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004 "Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004

CSCITYSTATUSC Athens30A L C Athens30A L ondon20 o Paris10P SCS#CITY S S1LondonS S2

iii. Thay đổi (Update):

Quan hệ SECOND vẫn còn chứa sự d thừa thông tin về trạng thái STATUS

Nh vậy, nếu phải thay đổi giá trị trạng thái của London từ 20 thành 30, sẽ hoặc phải giải quyết bàI toán tìm kiếm hoặc không nhất quán về dữ liệu

SC CS

Hình 3.8. Các phụ thuộc hàm trong các quan hệ SC và CS

==============================================================================="Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004 "Cơ sở dữ liệu". PGS.TS. Nguyễn Việt Hơng. Khoa ĐT-VT. ĐHBK-HN. 11/2004

Một phần của tài liệu Chuẩn hóa cơ sở dữ liệu (Trang 27 - 32)