Normalization là gì

  -  

Dù có không ít ý kiến trái ngược nhưng chuẩn chỉnh hóa CSDL là 1 việc đặc trưng để giành được một csdl tốt: không thể các dị kì (update anomaly, insertion anomaly, deletion anomaly), không có dư quá dữ liệu.Bạn đang xem: Normalization là gì

Bài này trình bày kim chỉ nam của chuẩn hóa, những vấn đề mà chuẩn hóa giải quyết, bên cạnh đó trình bày một vài ví dụ chuẩn hóa csdl cho một vài ứng dụng trong thực tế (Hóa 1-1 hàng, siêu thị thuốc, Nhân sự, …). Qua đó, bạn đọc có thể nắm bắt kĩ thuật chuẩn chỉnh hóa dễ ợt hơn.

Bạn đang xem: Normalization là gì

Trong phần nhiều các trường vừa lòng (đặc biệt là trong những trường hợp csdl nhỏ, chỉ vài ba chục bảng) thì dạng chuẩn chỉnh 3NF hoặc BCNF là đạt được yêu cầu. Các điều kiện để chuẩn hóa lên 4NF, 5NF, 6NF rất hiếm khi xảy ra. Vị đó, như một phương pháp nhớ vui về qui tắc chuẩn chỉnh hóa tự 1NF mang đến BCNF, phần nhiều bất kì ai khi tò mò về chuẩn chỉnh hóa database đều biết đến câu thần chú sau:

The key, the whole key, và nothing but the key, so help me Codd.

Mục tiêu của chuẩn hóa

Loại quăng quật dư quá dữ liệu

Xem bảng tài liệu về nhân công trong số dự án của một công ty như sau:

Project numberProject nameEmployee numberEmployee nameRate categoryHourly rate
1023Madagascar travel site11Vincent RadebeA$60
1023Madagascar travel site12Pauline JamesB$50
1023Madagascar travel site16Charles RamorazC$40
1056Online estate agency11Vincent RadebeA$60
1056Online estate agency17Monique WilliamsB$50

 

Để ý cột Project name, tài liệu về thương hiệu project tái diễn nhiều lần. Khiến dư quá dữ liệu.

Loại bỏ update anomaly

Đây là dị kì xảy ra khi update CSDL. Cùng với bảng cơ sở dữ liệu này, cứ mọi khi một nhân viên biến đổi địa chỉ, toàn bộ các bản ghi có add của nhân viên đó yêu cầu được cập nhật. Nhưng vì chưng lí do nào đó, vào trường phù hợp này, dữ liệu về địa chỉ không được update đầy đủ, gây nên dị thường.

Loại quăng quật insertion anomaly


*

Với bảng database trên, khi bao gồm một giáo sư bắt đầu về trường, chưa kịp giảng dạy khóa như thế nào thì thông tin về giáo sư này không thể chuyển vào csdl được. Kì cục đó được hotline là insert anomaly.

Loại bỏ deletion anomaly

 

Phương pháp chuẩn chỉnh hóa

Nguyên lí cơ phiên bản trong chuẩn hóa cơ sở dữ liệu là triệt tiêu dư vượt dữ liệu bằng cách phân rã những quan hệ mà lại không được thiết kế mất thông tin.

Xem thêm: Tải Game Chơi Bài Tiến Lên Đổi Thưởng Tiền Thật 100% Trên Điện Thoại

Tutorial về chuẩn hóa CSDL

Tutorial 1 - Dùng phương pháp làm phẳng để chuẩn chỉnh hóa 1NF

Ở đây tất cả một tutorial rất thú vị về chuẩn chỉnh hóa cơ sở dữ liệu và vì đấy là trang technology thông tin chấm giờ đồng hồ Việt yêu cầu tutorial này cũng đã có bản tiếng Việt đến những các bạn không mê say tiếng Anh. Mời các bạn bàn luận về chuẩn hóa csdl ở topic này.

Tutorial 2 - cần sử dụng phương pháp bóc tách nhóm lặp để chuẩn chỉnh hóa 1NF

Yêu cầu: thiết kế CSDL cai quản lí siêu thị thuốc cần những thông tin sau:

DB(Mã hóa đơn, Ngày bán, Tổng chi phí Hóa đơn, Mã khách hàng, Tên khách hàng, Số ĐT khách hàng hàng, Mã Nhân viên, Số CMT của NV, thương hiệu NV, Địa chỉ NV, Số ĐT nhân viên cấp dưới (Mã thuốc, thương hiệu thuốc, Công dụng, Ngày SX, Hạn SD, Số lượng, Thành tiền)).

Các nhờ vào hàm:

Mã hóa đơn, Mã khách hàng, Mã nhân viên, Mã thuốc, khẳng định duy tuyệt nhất 1 hóa đơn, 1 khách hàng hàng, 1 NV, 1 một số loại thuốc.Một hóa đối chọi có thể có nhiều thuốc tuy vậy chỉ bởi một người mua và một nhân viên cấp dưới bán.Số CMT của NV-> tên NV, Địa chỉ NV.1NF - vứt bỏ nhóm lặp và sa thải các ở trong tính tính toán.

Cần nhiều loại 2 trực thuộc tính tính toán sau: Tổng chi phí hóa đối chọi và thành tiền. Vị đây chính là dữ liệu dư thừa.

Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng hàng, Tên khách hàng hàng, Số ĐT khách hàng, Mã Nhân viên, Số CMT của NV, tên NV, Địa chỉ NV, Số ĐT NV)Hóa solo - Thuốc(Mã hóa đơn, Mã thuốc, tên thuốc, Công dụng, Ngày SX, Hạn SD, Số lượng)2NF - thải trừ các phụ thuộc vào hàm không trọn vẹn vào khóa chính

Quan hệ Hóa đơn chỉ có khóa đối chọi nên dục tình này đã ở 2NF.

Xem thêm: Đầu Bếp Siêu Đẳng ( Iron Wok Jan ), Iron Wok Jan

Xét dục tình Hóa đối chọi - thuốc : Tên thuốc, Công dụng, Ngày SX, Hạn SD chỉ nhờ vào vào Mã thuốc mà không dựa vào vào toàn khóa nên quan hệ này được tách làm 2 quan hệ tình dục sau:

Hóa đối kháng - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)Thuốc(Mã thuốc, tên thuốc, Công dụng, Ngày SX, Hạn SD)

Như vậy, sống dạng 2NF ta bao gồm 3 quan tiền hệ:

Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng hàng, Tên khách hàng hàng, Số ĐT khách hàng hàng, Mã Nhân viên, Số CMT của NV, tên NV, Địa chỉ NV, Số ĐT NV)Hóa 1-1 - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)Thuốc(Mã thuốc, thương hiệu thuốc, Công dụng, Ngày SX, Hạn SD)3NF - thải trừ các phụ thuộc hàm bắc cầu vào khóa chính

Ở dục tình Hóa đơn, ta thấy Tên khách hàng hàng, Số ĐT khách hàng chỉ dựa vào Mã khách hàng. Số CMT của NV, tên NV, Địa chỉ NV chỉ nhờ vào mã nhân viên. Do đó bóc quan hệ này thành 3 quan hệ tình dục sau:

Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)Khách hàng(Mã khách hàng hàng, Tên khách hàng hàng, Số ĐT khách hàng hàng)Nhân viên(Mã Nhân viên, Số CMT của NV, tên NV, Địa chỉ NV, Số ĐT NV)

Như vậy, sinh hoạt 3NF, chúng ta có 5 quan hệ sau:

Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)Khách hàng(Mã khách hàng hàng, Tên khách hàng, Số ĐT khách hàng)Nhân viên(Mã Nhân viên, Số CMT của NV, tên NV, Địa chỉ NV, Số ĐT NV)Hóa 1-1 - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)Thuốc(Mã thuốc, thương hiệu thuốc, Công dụng, Ngày SX, Hạn SD)BCNF - các thuộc tính ra quyết định phải là khóa

Ở quan hệ nam nữ Nhân viên, ta thấy Số CMT của NV-> thương hiệu NV, Địa chỉ NV tuy thế Số CMT của nhân viên không quyết định Số ĐT NV (Nhân viên có thể có không ít số ĐT như số cố kỉnh tay, số nhà, số cơ quan, …). Như vậy, bởi Số CMT của NV là 1 thuộc tính đưa ra quyết định (determinant) nhưng không phải khóa nên quan hệ Nhân viên chưa đạt BCNF, bắt buộc phải tách thành 2 quan hệ nam nữ như sau:

Điện thoại - Nhân viên(Mã Nhân viên, Số CMT của NV, Số ĐT NV)Nhân viên(Số CMT của NV, thương hiệu NV, Địa chỉ NV)

Vậy, database của bọn họ ở BCNF bao gồm 6 dục tình sau:

Hóa đơn(Mã hóa đơn, Ngày bán, Mã khách hàng, Mã Nhân viên)Khách hàng(Mã khách hàng, Tên khách hàng, Số ĐT khách hàng hàng)Điện thoại - Nhân viên(Mã Nhân viên, Số CMT của NV, Số ĐT NV)Nhân viên(Số CMT của NV, thương hiệu NV, Địa chỉ NV)Hóa đơn - Thuốc(Mã hóa đơn, Mã thuốc, Số lượng)Thuốc(Mã thuốc, tên thuốc, Công dụng, Ngày SX, Hạn SD)

Tutorial 3 - chuẩn hóa về BCNF

Ở đây tất cả giáo trình database (Bằng tiếng Anh)đề cập về chuẩn chỉnh hóa rất giản đơn hiểu. Trình diễn khá sâu về anomaly, các dạng chuẩn giải quyết anomaly như thế nào.

Nói bình thường thì chuẩn chỉnh hóa cơ sở dữ liệu là bài toán nên biết trong những khi học , Vì xung quanh thực tế nếu như đạt được chuẩn càng cao thì csdl càng bị dư vượt - tùy theo mục đích sử dụng mà chuẩn chỉnh hóa tuyệt ko )