Bài tập chuẩn hóa cơ sở dữ liệu có lời giải

-

Mục đích của việc chuẩn hóa NF Cửa hàng dữ liệu

Giảm tđọc dư thừa dữ liệuLoại vứt những bất thường lúc update đại lý dữ liệu

Các kiểu chuẩn chỉnh hóa đại lý dữ liệu

Có 3 dạng chuẩn chỉnh hóa cơ bản đó là:

– First Normal Form (1NF): dạng chuẩn chỉnh 1NF

– Second Normal Form (2NF): dạng chuẩn chỉnh 2NF

– Third Nomal Form (3NF): dạng chuẩn 3NF

Các dạng chuẩn được thu xếp theo đồ vật tự tự thấp đến cao. Để chuẩn hóa 2NF thì cơ sở tài liệu của công ty cần đạt chuẩn chỉnh 1NF, tương tự ví như đạt chuẩn 3NF thì nên đạt chuẩn chỉnh 1NF cùng 2NF.

Bạn đang xem: Bài tập chuẩn hóa cơ sở dữ liệu có lời giải

Dạng chuẩn 1NF

Cho 1 bảng nhỏng mặt dưới:

*

Bảng tất cả 3 khóa thiết yếu là customer_id, order_id và product_id.

Bảng tài liệu này vi phạm luật cả ĐK của chuẩn 1NF vì: address đựng các giá trị đụng hàng, không dừng lại ở đó nữa, giá trị address trong từng mặt hàng không phải là đối kháng trị (chỉ có một giá chỉ trị), cấp dưỡng kia, ở trong tính total_amount trọn vẹn có thể tính tân oán được bởi cách quantity * unit_price, không duy nhất thiết buộc phải chuyển vào bảng, tạo ra dư quá dữ liệu. Qua dìm xét trên, ta có thể hình dung ra 3 điều kiện cần được tuân Từ đó là:

Các thuộc tính của bảng bắt buộc là ngulặng tốGiá trị của các trực thuộc tính bên trên các sản phẩm cần là đối chọi trị, ko đựng đội lặpKhông bao gồm một nằm trong tính làm sao có giá trị hoàn toàn có thể tính toán thù được từ một nằm trong tính khác

Từ đó, ta rất có thể thiết kế lại bảng dữ liệu trên nlỗi sau:

Tách các nằm trong tính lặp vào bảng như: customer_name, phone ra thành một bảng mới là customersTách address thành một bảng riêng có khóa là customer_id để tìm hiểu thúc đẩy đó thuộc về customer nào.Loại quăng quật thuộc tính total_amount.

Kết đúng thật sau:

*

Dạng chuẩn 2NF

Quy tắc chuẩn chỉnh hóa từ chuẩn 1NF thành 2NF:

Cách 1: Loại quăng quật những ở trong tính ko khóa nhờ vào vào trong 1 thành phần khóa thiết yếu với tách bóc ra thành một bảng riêng rẽ, khóa chính của bảng là thành phần của khóa cơ mà chúng nhờ vào vào.

Bước 2: Các thuộc tính còn sót lại lập thành một quan hệ giới tính, khóa chính của chính nó là khóa chính ban đầu.

Xem thêm: 100 Câu Thoại Đáng Nhớ Trong Phim Của Viện Phim Mỹ, Những Câu Nói Kinh Điển Trong Phim Hollywood

Bảng dữ liệu bắt đầu cơ mà ta kiến thiết vẫn không đạt chuẩn chỉnh 2NF là vì: một trong những trực thuộc tính

như description , unit_price phụ thuộc vào vào một phần của khóa là product_id chứ không đề xuất nhờ vào cả vào tập khóa (customer_id, order_id, product_id), tốt ở trong tính customer_name và phone cũng chỉ phụ thuộc vào customer_id, nằm trong tính order_date dựa vào vào customer_id và order_id, nằm trong tính quantity nhờ vào vào order_id và product_id.

Vậy đề nghị để đạt chuẩn 2NF thì ta đang thiết tiếp đến bảng dữ liệu chuẩn 1NF nhỏng sau:

Tách những ở trong tính (product_id, mô tả tìm kiếm, unit_price) thành một bảng riêng biệt là products.Các thuộc tính (customer_id, order_id, order_date) làm cho thành một bảng, bản thân đặt tên là orders.Còn lại các nằm trong tính (order_id, product_id, quantity) làm cho thành một bảng trung gian giữa products và orders, mình đặt là order_products.

Chỉ bắt buộc vâng lệnh 2 chuẩn nhưng mà ta đã làm được cơ sở tài liệu chuẩn chỉnh hóa như sau:

*

Dạng chuẩn chỉnh 3NF

Điều kiện:

Phải đạt chuẩn chỉnh 2NFMọi trực thuộc tính ko khóa nhờ vào bắc cầu vào nằm trong tính khóa (tức là tất cả những thuộc tính ko khóa yêu cầu được suy ra trực tiếp tự thuộc tính khóa)

Quy tắc chuẩn chỉnh hóa trường đoản cú 2NF thành 3NF:

Cách 1: Loại quăng quật những thuộc tính nhờ vào bắc cầu thoát khỏi quan hệ giới tính cùng bóc bọn chúng thành tình dục riêng có khóa đó là trực thuộc tính bắc cầu.

Bước 2: Các nằm trong tính còn sót lại lập thành một dục tình bao gồm khóa chính là khóa ban sơ.

Để ý thấy các đại lý dữ liệu mà ta kiến tạo nghỉ ngơi chuẩn 2NF cũng đã đạt chuẩn chỉnh 3NF. Thế đề nghị mình đang đem một ví dụ không giống để chúng ta tìm hiểu thêm nhỏng sau:

Ví dụ bảng sau vi phạm chuẩn chỉnh 3NF:

*

Ta thấy ở trong tính country_name phụ thuộc vào vào country_id, mà country_id lại phụ thuộc vào vào khóa chính là id. Vì vậy ta yêu cầu bóc tách bảng trên thành 2 bảng sau:

*

Author: Nguyễn Vũ Thành Tiến

Đăng ký kết thừa nhận bộ tư liệu kĩ năng giành riêng cho xây dựng viên (video clip lí giải + slide) trên đây