Chuẩn hóa là gì?
Chuẩn hóa là một kỹ thuật thiết kế cơ sở dữ liệu để giảm dư thừa dữ liệu và loại bỏ các đặc điểm không mong muốn như Chèn, Cập nhật và Xóa các bất thường. Quy tắc chuẩn hóa chia các bảng lớn hơn thành các bảng nhỏ hơn và liên kết chúng bằng cách sử dụng các mối quan hệ. Mục đích của Chuẩn hóa trong SQL là loại bỏ dữ liệu dư thừa (lặp đi lặp lại) và đảm bảo dữ liệu được lưu trữ một cách hợp lý.
Người phát minh ra mô hình quan hệ Edgar Codd đã đề xuất lý thuyết chuẩn hóa dữ liệu với sự ra đời của Dạng chuẩn thứ nhất, và ông tiếp tục mở rộng lý thuyết với Dạng chuẩn thứ hai và thứ ba. Sau đó, ông cùng với Raymond F. Boyce phát triển lý thuyết về Dạng chuẩn Boyce-Codd.
Cơ sở dữ liệu Biểu mẫu Thông thường
Đây là danh sách các Biểu mẫu Thông thường
- 1NF (Dạng chuẩn đầu tiên)
- 2NF (Dạng chuẩn thứ hai)
- 3NF (Dạng thông thường thứ ba)
- BCNF (Dạng thông thường Boyce-Codd)
- 4NF (Dạng chuẩn thứ tư)
- 5NF (Dạng chuẩn thứ năm)
- 6NF (Dạng chuẩn thứ sáu)
Lý thuyết về chuẩn hóa dữ liệu trong máy chủ SQL vẫn đang được phát triển thêm. Ví dụ, có những cuộc thảo luận ngay cả trên Mẫu thông thường thứ 6 . Tuy nhiên, trong hầu hết các ứng dụng thực tế, bình thường đạt được tốt nhất của mình trong 3 thứ Normal Form . Sự phát triển của lý thuyết Chuẩn hóa SQL được minh họa bên dưới-

Chuẩn hóa cơ sở dữ liệu với các ví dụ
Ví dụ về chuẩn hóa cơ sở dữ liệu có thể dễ dàng hiểu được với sự trợ giúp của một nghiên cứu điển hình. Giả sử, một thư viện video duy trì một cơ sở dữ liệu về các bộ phim đã thuê. Không có bất kỳ chuẩn hóa nào trong cơ sở dữ liệu, tất cả thông tin được lưu trữ trong một bảng như hình dưới đây. Hãy hiểu về Chuẩn hóa trong cơ sở dữ liệu với ví dụ về bảng:
Ở đây bạn thấy cột Phim đã thuê có nhiều giá trị. Bây giờ chúng ta hãy chuyển sang Dạng chuẩn đầu tiên:
Quy tắc 1NF (Dạng chuẩn đầu tiên)
- Mỗi ô trong bảng phải chứa một giá trị duy nhất.
- Mỗi bản ghi cần phải là duy nhất.
Bảng trên trong 1NF-
Ví dụ 1NF
Trước khi tiếp tục, chúng ta hãy hiểu một vài điều -
KEY là gì?
KEY là một giá trị được sử dụng để xác định duy nhất một bản ghi trong bảng. KEY có thể là một cột duy nhất hoặc kết hợp nhiều cột
Lưu ý: Các cột trong bảng KHÔNG được sử dụng để xác định duy nhất một bản ghi được gọi là cột không khóa.
Khóa chính là gì?

Giá trị chính là một giá trị cột đơn được sử dụng để xác định duy nhất một bản ghi cơ sở dữ liệu.
Nó có các thuộc tính sau
- Khóa chính không được NULL
- Giá trị khóa chính phải là duy nhất
- Các giá trị khóa chính hiếm khi được thay đổi
- Khóa chính phải được cấp một giá trị khi một bản ghi mới được chèn vào.
Khóa tổng hợp là gì?
Khóa tổng hợp là khóa chính bao gồm nhiều cột được sử dụng để xác định duy nhất một bản ghi
Trong cơ sở dữ liệu của chúng tôi, chúng tôi có hai người có cùng tên Robert Phil, nhưng họ sống ở những nơi khác nhau.
Do đó, chúng tôi yêu cầu cả Tên đầy đủ và Địa chỉ để xác định một bản ghi duy nhất. Đó là một khóa tổng hợp.
Hãy chuyển sang dạng bình thường thứ hai 2NF
Quy tắc 2NF (Dạng chuẩn thứ hai)
- Quy tắc 1- Ở trong 1NF
- Quy tắc 2- Khóa chính của một cột
Rõ ràng là chúng ta không thể tiếp tục tạo cơ sở dữ liệu đơn giản của mình ở dạng Chuẩn hóa thứ 2 trừ khi chúng ta phân vùng bảng ở trên.
Chúng tôi đã chia bảng 1NF của chúng tôi thành hai bảng viz. Bảng 1 và Bảng 2. Bảng 1 chứa thông tin thành viên. Bảng 2 chứa thông tin về các bộ phim đã thuê.
Chúng tôi đã giới thiệu một cột mới có tên là Memberhip_id là khóa chính cho bảng 1. Các bản ghi có thể được xác định duy nhất trong Bảng 1 bằng cách sử dụng id thành viên
Cơ sở dữ liệu - Khoá ngoại
Trong Bảng 2, Memberhip_ID là Khóa ngoại
Khóa ngoại tham chiếu đến khóa chính của Bảng khác! Nó giúp kết nối các bảng của bạn
- Khóa ngoại có thể có tên khác với khóa chính của nó
- Nó đảm bảo các hàng trong một bảng có các hàng tương ứng trong bảng khác
- Không giống như khóa chính, chúng không nhất thiết phải là duy nhất. Thông thường họ không
- Các khóa ngoại có thể rỗng mặc dù các khóa chính không thể
Tại sao bạn cần khóa ngoại?
Giả sử, một người mới tham gia chèn một bản ghi trong Bảng B chẳng hạn như
Bạn sẽ chỉ có thể chèn các giá trị vào khóa ngoại tồn tại trong khóa duy nhất trong bảng mẹ. Điều này giúp toàn vẹn tham chiếu.
Vấn đề trên có thể được khắc phục bằng cách khai báo id thành viên từ Table2 là khóa ngoại của id thành viên từ Table1
Bây giờ, nếu ai đó cố gắng chèn một giá trị vào trường id thành viên không tồn tại trong bảng mẹ, một lỗi sẽ được hiển thị!
Phụ thuộc hàm bắc cầu là gì?
Phụ thuộc hàm bắc cầu là khi thay đổi cột không phải khóa, có thể khiến bất kỳ cột không phải khóa nào khác thay đổi
Hãy xem xét bảng 1. Thay đổi cột không phải khóa Họ và Tên có thể thay đổi Cách chào.
Hãy chuyển sang 3NF
Quy tắc 3NF (Biểu mẫu thông thường thứ ba)
- Quy tắc 1- Tham gia 2NF
- Quy tắc 2- Không có phụ thuộc hàm bắc cầu
Để chuyển bảng 2NF của chúng ta thành 3NF, một lần nữa chúng ta cần phải chia bảng của mình.
Ví dụ 3NF
Dưới đây là một ví dụ 3NF trong cơ sở dữ liệu SQL:
Chúng tôi đã chia lại các bảng của mình và tạo một bảng mới để lưu trữ Salutations.
Không có phụ thuộc hàm bắc cầu và do đó bảng của chúng ta ở dạng 3NF
Trong Bảng 3, Salutation ID là khóa chính và trong Bảng 1 Salutation ID là khóa chính trong Bảng 3
Bây giờ, ví dụ nhỏ của chúng ta đang ở mức không thể phân rã được nữa để đạt được các dạng chuẩn hóa thông thường cao hơn. Trên thực tế, nó đã ở dạng chuẩn hóa cao hơn. Những nỗ lực riêng biệt để chuyển sang các cấp độ chuẩn hóa dữ liệu tiếp theo thường cần thiết trong các cơ sở dữ liệu phức tạp. Tuy nhiên, chúng tôi sẽ thảo luận ngắn gọn về các cấp độ chuẩn hóa tiếp theo trong phần sau.
BCNF (Dạng thông thường Boyce-Codd)
Ngay cả khi cơ sở dữ liệu ở dạng Chuẩn thứ 3 , vẫn sẽ có sự bất thường xảy ra nếu nó có nhiều hơn một Khoá Ứng viên .
Đôi khi BCNF còn được gọi là 3.5 Dạng thông thường.
Quy tắc 4NF (Dạng chuẩn thứ tư)
Nếu không có cá thể bảng cơ sở dữ liệu nào chứa hai hoặc nhiều dữ liệu độc lập và nhiều giá trị mô tả thực thể có liên quan, thì nó ở Dạng chuẩn thứ 4 .
Quy tắc 5NF (Dạng thông thường thứ năm)
Một bảng chỉ ở dạng Bình thường thứ 5 nếu nó ở 4NF và nó không thể được phân tách thành bất kỳ số lượng bảng nhỏ hơn nào mà không làm mất dữ liệu.
6NF (Dạng chuẩn thứ sáu)
Tuy nhiên, Biểu mẫu thông thường thứ 6 vẫn chưa được chuẩn hóa, nó đang được các chuyên gia cơ sở dữ liệu thảo luận trong một thời gian. Hy vọng rằng chúng ta sẽ có một định nghĩa rõ ràng và chuẩn hóa cho Biểu mẫu thông thường thứ 6 trong tương lai gần…
Đó là tất cả để chuẩn hóa SQL !!!
Tóm lược
- Thiết kế cơ sở dữ liệu là rất quan trọng để thực hiện thành công một hệ quản trị cơ sở dữ liệu đáp ứng các yêu cầu dữ liệu của hệ thống doanh nghiệp.
- Quá trình chuẩn hóa trong DBMS giúp tạo ra các hệ thống cơ sở dữ liệu hiệu quả về chi phí và có các mô hình bảo mật tốt hơn.
- Phụ thuộc chức năng là một thành phần rất quan trọng của quá trình chuẩn hóa dữ liệu
- Hầu hết các hệ thống cơ sở dữ liệu là cơ sở dữ liệu chuẩn hóa cho đến các dạng thông thường thứ ba.
- Khóa chính nhận dạng duy nhất được ghi trong Bảng và không được để trống
- Khóa ngoại giúp kết nối bảng và tham chiếu khóa chính