Chuẩn hoá các lược đồ quan hệ

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên) (Trang 87 - 92)

u. Nói rằng phụ thuộc hàm f được suy dẫn theo tiên đề Armstrong (hoặc

2.4. Chuẩn hoá các lược đồ quan hệ

Chuẩn hố là một q trình khảo sát danh sách các thuộc tính và áp dụng một tập các quy tắc phân tích vào các danh sách đó chuyển chúng

thành những tập nhỏ hơn sao cho:

- Tối thiểu việc lặp lại dữ liệu.

- Tránh dư thừa dữ liệu.

- Tránh những dị thường trong cập nhật dữ liệu.

- Xác định và giải quyết được việc nhập nhằng dữ liệu.

Quá trình chuẩn hoá được dựa trên khái niệm về phụ thuộc hàm. Một mơ hình được xem là chuẩn hố tốt, lý tưởng là mơ hình mà ở đó

mỗi thuộc tính trong một quan hệ đều có một phụ thuộc hàm vào thuộc tính khố.

Quan hệ được chuẩn hố là quan hệ trong đó mỗi miền trị của mỗi

thuộc tính chỉ chứa những giá trị nguyên tố tức là khơng phân nhỏ được nữa và do đó mỗi giá trị trong quan hệ cũng là nguyên tố.

Quan hệ không chuẩn hố là quan hệ chứa các miền trị khơng ngun tố.

Một quan hệ được chuẩn hố có thể phân tách thành nhiều quan hệ chuẩn hố khác và khơng làm mất thông tin.

2.4.1. Các dạng chuẩn của lược đồ quan hệ

Chuẩn hóa là kỹ thuật tạo ra tập các quan hệ (relation). Mỗi quan hệ bao gồm một tập những thuộc tính xác định, biểu diễn dữ liệu một cách logic dưới dạng bảng hai chiều, bao gồm các hàng và các cột. Trong

lý thuyết ban đầu, năm 1972 E.F. Codd đưa ra có ba dạng chuẩn của

quan hệ. Sau đó các dạng chuẩn khác được bổ sung vào. Quy trình chuẩn hóa được biểu diễn như sau:

2.4.1.1. Dạng chuẩn thứ nhất (INF - First Normal Form)

Một quan hệ được gọi là dạng chuẩn thứ nhất hay gọi tắt là ở dạng

1NF nếu và chỉ nếu với mọi thuộc tính A của quan hệ thì dom(A) chỉ chứa các giá trị nguyên tố (hay nói cách khác, quan hệ đó khơng chứa

thuộc tính đa trị).

Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra được nữa.

Ví dụ 2.31: Cho quan hệ giáo viên bao gồm các thuộc tính mã giáo

viên, tên giáo viên và các mơn học mà giáo viên đó giảng dạy. Quan hệ này

được mô tả như sau: GIAOVIEN(MAGV,TENGV,GIANGDAY).

Trong đó, MAGV là mã giáo viên, TENGV là tên giáo viên,

GIANGDAY là mơn học có khả năng giảng dạy. Vì một giáo viên có thể đảm nhận dạy nhiều môn học. Như vậy, quan hệ GIAOVIEN(MAGV,TENGV,GIANGDAY) không thuộc dạng chuẩn

1NF, vì thuộc tính GIANGDAY khơng phải là thuộc tính nguyên tố.

Ví dụ 2.32:

Hệ thống quản lý quá trình bán hàng của cửa hàng bao gồm chứng từ hố đơn bán hàng được mơ tả như hình 2.3.

Như vậy, quan hệ hóa đơn bán hàng có dạng:

HOADON(SOHD,LIENSO,MAKH,TENKH,DIACHI,SOTK, PTTT, STT, TENHANG, DONVI,

DONGIA,SOLUONG,THTIEN,CONG,VCHU,VAT,TTRA,

NGUOIMUA,NGAY,NGUOIBAN)

Để biến đổi một quan hệ chưa được chuẩn hóa về dạng chuẩn thứ nhất, ta phải chuyển các thuộc tính đa trị và nhóm lặp ra những quan hệ mới. Nhóm lặp là tập các thuộc tính cùng lặp lại, do đó, tất cả các thuộc

tính trong nhóm lặp phải được chuyển sang cùng một quan hệ mới. Tuy nhiên, với các thuộc tính đa trị, chúng phải được chuyển sang một quan hệ riêng, chứ khơng được kết hợp với những thuộc tính đa trị khác trong quan hệ mới.

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

HÓA ĐƠN BÁN HÀNG

Số: 1435 Liên số 2

Mã khách hàng: A4326 Họ tên khách hàng: Vũ Văn An

Địa chỉ khách hàng: số nhà 15, Đường Trần Phú, Ba Đình, Hà Nội. Số tài khoản: 011001396

Phương thức thanh toán: Tiền mặt

STT Tên hàng Đơn vị tỉnh Đơn giả sổ lượng Thành tiền

1 Máy tính Dàn 9500000 2 19000000 2 Máy in HP Chiếc 6500000 3 19500000 ... ... ... ... ... ... Cộng Viết bàng chữ... ThuếVAT .... Tiền phải trả...

Người mua Ngày 10 thảng 1 năm 2015

An Người bán

Tuyết

Hình 2.3: Ví dụ về hóa đơn bán hàng

Các bước để chuyển một thuộc tính đa trị hoặc nhóm lặp sang một quan hệ mới như sau:

Bước 1: Tạo một quan hệ mới và đặt tên cho quan hệ đó. Thơng thường, tên của quan hệ mới chứa toàn bộ hoặc một phần tên của quan hệ ban đầu.

Bước 2: Sao chép khóa chỉnh ưong quan hệ ban đầu sang quan hệ

nên chúng vẫn phải phụ thuộc vào khóa chính đó trong quan hệ mới. Khóa chính được sao chép sang quan hệ mới sẽ trở thành khóa ngồi liên kết với quan hệ ban đầu.

Bước 3: Chuyển nhóm lặp hoặc thuộc tính đa trị sang quan hệ mới.

Như vậy, nhóm lặp hoặc thuộc tính đa trị khơng cịn ở quan hệ ban đầu.

Bước 4: Tạo khóa chính cho quan hệ mới bằng cách thêm các

thuộc tính từ nhóm lặp vào khóa chính sao chép từ quan hệ ban đầu. Nếu ta chuyển một thuộc tính đa trị vốn là nhóm lặp chỉ gồm một thuộc tính,

thuộc tính đó sẽ được thêm vào khóa chính ttong quan hệ mới. Như vậy, một phần của khóa chính của một quan hệ là khóa ngồi tham chiếu tới một quan hệ khác. Trong thực tế, cũng có thể tồn tại quan hệ mà ở đó,

khóa chính bao gồm tất cả các thuộc tính của nó.

Chú ý: Ngồi ra, ta có thể chọn cách thay thế khóa chính bằng thuộc tính khóa thay thể. Nếu chọn phương pháp này thì frong quan hệ

mới, ta vẫn phải giữ nguyên những thuộc tính tạo thành khóa chính tự nhiên trong quan hệ cũ.

Ví dụ 2.33:

Xét lại ví dụ ở trên, trước hết xác định các loại thuộc:

- Các thuộc tính đa trị - cịn gọi là thuộc tính lặp (Repeatable) bao gồm: STT, TENHANG, DONVI, DONGIA, SOLUONG, THTIEN.

- Các thuộc tính thứ sinh bao gồm: THTIEN, CONG, VCHU,

VAT, TTRA.

- Các thuộc tính không được lưu trữ trong cơ sở dữ liệu (các thuộc tính ít có ý nghĩa trong quản lý) gồm: LIENSO, STT

Sau đó loại bỏ các loại thuộc tính suy dẫn và các thuộc tính khơng được lưu trữ ra khỏi danh sách.

Vì vậy, sau khi loại bỏ danh sách chi còn lại:

HOADON(SOHD,MAKH,TENKH,DIACHI,SOTK,PTTT,

SOLUONG,NGUOIMUA,NGAY,NGUOIBAN)

Từ đây ta mới bắt đầu thực hiện chuẩn hóa các mức INF, 2NF,... Theo yêu cầu của 1NF trong danh sách HOADON trên ta phải tách các thuộc tính đa trị ra thành một danh sách riêng. Vì vậy sau khi chuẩn

hóa mức 1 (1NF) ta được 2 quan hệ là HOADON và HANGMUA bao

gồm các thuộc tính được mơ tả như sau:

Một phần của tài liệu Giáo trình Cơ sở dữ liệu (Tập 1): Phần 1 - TS. Nguyễn Thị Thu Thuỷ (Chủ biên) (Trang 87 - 92)