Chuẩn hóa DBMS: Ví dụ về cơ sở dữ liệu 1NF, 2NF, 3NF

Chuẩn hóa cơ sở dữ liệu là gì?

Bình thường hóa là một kỹ thuật thiết kế cơ sở dữ liệu giúp giảm sự dư thừa dữ liệu và loại bỏ các đặc điểm không mong muốn như các bất thường khi chèn, cập nhật và xóa. 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á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 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 việc đưa ra 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. Later ông đã cùng với Raymond F. Boyce phát triển lý thuyết về Dạng chuẩn Boyce-Codd.

Các loại biểu mẫu thông thường trong DBMS

Dưới đây là danh sách các biểu mẫu thông thường trong SQL:

  • 1NF (Dạng bình thường đầu tiên): Đảm bảo rằng bảng cơ sở dữ liệu được tổ chức sao cho mỗi cột chứa các giá trị nguyên tử (không thể chia cắt) và mỗi bản ghi là duy nhất. Điều này loại bỏ các nhóm lặp lại, do đó cấu trúc dữ liệu thành các bảng và cột.
  • 2NF (Dạng bình thường thứ hai): Xây dựng trên 1NF bởi Chúng tôi cần xóa dữ liệu dư thừa khỏi bảng đang được áp dụng cho nhiều hàng. và đặt chúng vào các bảng riêng biệt. Nó yêu cầu tất cả các thuộc tính không phải khóa phải có đầy đủ chức năng trên khóa chính.
  • 3NF (Dạng thông thường thứ ba): Mở rộng 2NF bằng cách đảm bảo rằng tất cả các thuộc tính không khóa không chỉ có đầy đủ chức năng trên khóa chính mà còn độc lập với nhau. Điều này giúp loại bỏ sự phụ thuộc bắc cầu.
  • BCNF (Dạng thường Boyce-Codd): Một cải tiến của 3NF nhằm giải quyết các điểm bất thường không được 3NF xử lý. Nó yêu cầu mọi yếu tố quyết định phải là khóa dự tuyển, đảm bảo tuân thủ chặt chẽ hơn các quy tắc chuẩn hóa.
  • 4NF (Dạng thông thường thứ tư): Giải quyết các phụ thuộc đa giá trị. Nó đảm bảo rằng không có nhiều thông tin đa giá trị độc lập về một thực thể trong một bản ghi.
  • 5NF (Dạng thông thường thứ năm): Còn được gọi là “Mẫu thông thường tham gia phép chiếu” (PJNF), Nó liên quan đến việc tái cấu trúc thông tin từ các phần dữ liệu nhỏ hơn, được sắp xếp khác nhau.
  • 6NF (Dạng thông thường thứ sáu): Lý thuyết và chưa được thực hiện rộng rãi. Nó xử lý dữ liệu tạm thời (xử lý các thay đổi theo thời gian) bằng cách phân tách thêm các bảng để loại bỏ tất cả sự dư thừa phi thời gian.

Lý thuyết chuẩn hóa dữ liệu trong MySQL máy chủ vẫn đang được phát triển hơn nữa. Ví dụ, có những cuộc thảo luận ngay cả vào ngày 6th Hình thức bình thường. Tuy nhiên, trong hầu hết các ứng dụng thực tế, việc chuẩn hóa đạt được hiệu quả tốt nhất trong 3rd Dạng bình thường. Sự phát triển của Chuẩn hóa trong lý thuyết SQL được minh họa dưới đây-

Biểu mẫu thông thường của cơ sở dữ liệu
Biểu mẫu thông thường của cơ sở dữ liệu

Chuẩn hóa cơ sở dữ liệu với các ví dụ

Cơ sở dữ liệu Ví dụ chuẩn hóa có thể dễ dàng hiểu được với sự giúp đỡ của một nghiên cứu điển hình. Giả sử thư viện video duy trì cơ sở dữ liệu về các bộ phim được thuê. Không có bất kỳ sự 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ư hiển thị bên dưới. Hãy hiểu cơ sở dữ liệu Chuẩn hóa với ví dụ chuẩn hóa với giải pháp:

Chuẩn hóa cơ sở dữ liệu với ví dụ

Ở đây bạn thấy Cột Phim được thuê có nhiều giá trị. Bây giờ chúng ta hãy chuyển sang Biểu mẫu thông thường thứ nhất:

Dạng chuẩn đầu tiên (1NF)

  • Mỗi ô của 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

Quy tắc 1NF

Ví dụ về 1NF trong DBMS

Trước khi tiếp tục, hãy hiểu một số điều -

KEY trong SQL là gì

A TỪ KHÓA trong SQL là một giá trị được sử dụng để xác định duy nhất các bản ghi trong một bảng. KHÓA SQL là một cột đơn hoặc sự kết hợp của nhiều cột được sử dụng để xác định duy nhất các hàng hoặc bộ dữ liệu trong bảng. Khóa SQL được sử dụng để xác định thông tin trùng lặp và nó cũng giúp thiết lập mối quan hệ giữa nhiều bảng trong cơ sở dữ liệu.

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ác cột không khóa.

Khóa chính là gì?

Khóa chính

Khóa chính trong DBMS

Giá trị chính là một giá trị cột duy nhất đượ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

  • A khóa chính không thể là 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 cung cấp một giá trị khi 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.

Khóa tổng hợp trong cơ sở dữ liệu

Khóa tổng hợp trong cơ sở dữ liệu

Do đó, chúng tôi yêu cầu cả Tên đầy đủ và Địa chỉ để xác định duy nhất một bản ghi. Đó là một khóa tổng hợp.

Hãy chuyển sang dạng chuẩn thứ hai 2NF

Dạng chuẩn thứ hai (2NF)

  • Quy tắc 1- Ở trong 1NF
  • Quy tắc 2- Khóa chính một cột không phụ thuộc về mặt chức năng vào bất kỳ tập hợp con nào của mối quan hệ khóa ứng viên

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 trong 2nd Hình thức chuẩn hóa trừ khi chúng ta phân vùng bảng trên.

Quy tắc 2NF

Quy tắc 2NF

Chúng tôi đã chia bảng 1NF của mình thành hai bảng, đó là 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ề phim đã thuê.

Chúng tôi đã giới thiệu một cột mới có tên Member_id, đây 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 – Khóa ngoại

Trong Bảng 2, Member_ID là Khóa ngoại

Cơ sở dữ liệu – Khóa ngoại

Cơ sở dữ liệu – Khóa ngoại

Khóa ngoại trong DBMS

Khóa ngoài tham chiếu 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 một 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
  • Khóa ngoại có thể rỗng mặc dù khóa chính không thể

Cơ sở dữ liệu – Khóa ngoại

Tại sao bạn cần một khóa ngoại?

Giả sử, một người mới chèn một bản ghi vào Bảng B như

Tại sao bạn cần khóa ngoại

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 cha. Điều này giúp đảm bảo tính 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ừ Bảng 2 là khóa ngoại của id thành viên từ Bảng 1

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 cha, một lỗi sẽ được hiển thị!

Sự phụ thuộc chức năng bắc cầu là gì?

Một chuyển tiếp phụ thuộc chức năng là khi thay đổi một cột không có khóa, có thể khiến bất kỳ cột không có khóa nào khác thay đổi

Xem xét bảng 1. Việc thay đổi cột không có khóa Họ và tên có thể thay đổi Lời chào.

Sự phụ thuộc hàm bắc cầu

Hãy chuyển sang 3NF

Dạng chuẩn thứ ba (3NF)

  • Quy tắc 1- Ở trong 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 một lần nữa.

Ví dụ 3NF

Dưới đây là ví dụ 3NF trong cơ sở dữ liệu SQL:

Ví dụ 3NF

Ví dụ 3NF

Ví dụ 3NF

Chúng tôi lại chia các bảng của mình và tạo một bảng mới để lưu trữ Lời chào.

Không có sự phụ thuộc hàm bắc cầu và do đó bảng của chúng tôi ở dạng 3NF

Trong Bảng 3 ID lời chào là khóa chính và trong Bảng 1 ID lời chào là khóa ngoài trong Bảng 3

Bây giờ ví dụ nhỏ của chúng ta ở mức không thể phân tích thêm nữa để đạt được các loại chuẩn hóa dạng chuẩn cao hơn trong DBMS. 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 ta sẽ thảo luận ngắn gọn về các cấp độ chuẩn hóa tiếp theo trong DBMS trong phần sau.

Boyce-Codd Dạng bình thường (BCNF)

Ngay cả khi cơ sở dữ liệu ở mức 3rd Dạng Bình thường, vẫn sẽ có những bất thường nếu nó có nhiều hơn một Ứng cử viên Chìa khóa.

Đôi khi BCNF còn được gọi là 3.5 Dạng thông thường.

Dạng chuẩn thứ tư (4NF)

Nếu không có phiên bản bảng cơ sở dữ liệu nào chứa hai hoặc nhiều dữ liệu độc lập và đa giá trị mô tả thực thể liên quan thì đó là 4th Hình thức bình thường.

Dạng chuẩn thứ năm (5NF)

Một bàn ở 5th Biểu mẫu thông thường chỉ khi nó ở dạng 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.

Mẫu thông thường thứ sáu (6NF) được đề xuất

6th Tuy nhiên, Biểu mẫu thông thường chưa được chuẩn hóa, tuy nhiên, nó đang được các chuyên gia cơ sở dữ liệu thảo luận một thời gian. Hy vọng chúng ta sẽ có một định nghĩa rõ ràng và chuẩn hóa cho 6th Hình thức bình thường trong tương lai gần…

Ưu điểm của hình thức thông thường

  • Cải thiện tính nhất quán dữ liệu: Chuẩn hóa đảm bảo rằng mỗi phần dữ liệu chỉ được lưu trữ ở một nơi, giảm nguy cơ dữ liệu không nhất quán. Khi dữ liệu được cập nhật, chỉ cần cập nhật ở một nơi, đảm bảo tính nhất quán.
  • Giảm dư thừa dữ liệu: Chuẩn hóa giúp loại bỏ dữ liệu trùng lặp bằng cách chia nó thành nhiều bảng có liên quan. Điều này có thể tiết kiệm không gian lưu trữ và cũng làm cho cơ sở dữ liệu hiệu quả hơn.
  • Cải thiện hiệu suất truy vấn: Cơ sở dữ liệu được chuẩn hóa thường dễ truy vấn hơn. Vì dữ liệu được sắp xếp hợp lý nên các truy vấn có thể được tối ưu hóa để chạy nhanh hơn.
  • Làm cho dữ liệu có ý nghĩa hơn: Chuẩn hóa bao gồm việc nhóm dữ liệu theo cách có ý nghĩa và trực quan. Điều này có thể làm cho cơ sở dữ liệu dễ hiểu và dễ sử dụng hơn, đặc biệt đối với những người không thiết kế cơ sở dữ liệu.
  • Giảm khả năng xảy ra sự bất thường: Bất thường là những vấn đề có thể xảy ra khi thêm, cập nhật hoặc xóa dữ liệu. Việc chuẩn hóa có thể làm giảm khả năng xảy ra những bất thường này bằng cách đảm bảo rằng dữ liệu được sắp xếp hợp lý.

Nhược điểm của việc chuẩn hóa

  • Tăng độ phức tạp: Chuẩn hóa có thể dẫn đến các mối quan hệ phức tạp. Số lượng lớn các bảng có khóa ngoại có thể khó quản lý, dẫn đến nhầm lẫn.
  • Giảm tính linh hoạt: Do các quy tắc chuẩn hóa nghiêm ngặt, việc lưu trữ dữ liệu không tuân thủ các quy tắc này có thể kém linh hoạt hơn.
  • Yêu cầu lưu trữ tăng: Mặc dù việc chuẩn hóa làm giảm sự dư thừa nhưng có thể cần phải phân bổ thêm không gian lưu trữ để chứa các bảng và chỉ mục bổ sung.
  • Chi phí hoạt động: Việc tham gia nhiều bảng có thể tốn kém về mặt hiệu suất. Dữ liệu càng được chuẩn hóa thì càng cần nhiều kết nối, điều này có thể làm chậm thời gian truy xuất dữ liệu.
  • Mất bối cảnh dữ liệu: Quá trình chuẩn hóa chia dữ liệu thành các bảng riêng biệt, điều này có thể dẫn đến mất bối cảnh kinh doanh. Việc kiểm tra các bảng liên quan là cần thiết để hiểu ngữ cảnh của một phần dữ liệu.
  • Cần kiến ​​thức chuyên môn: Việc triển khai cơ sở dữ liệu chuẩn hóa đòi hỏi sự hiểu biết sâu sắc về dữ liệu, mối quan hệ giữa dữ liệu và các quy tắc chuẩn hóa. Điều này đòi hỏi kiến ​​thức chuyên môn và có thể tốn thời gian.

Đó là tất cả về Chuẩn hóa SQL !!!

Kết luận

  • Thiết kế cơ sở dữ liệu là rất quan trọng để triển khai thành công hệ thống quản lý cơ sở dữ liệu đáp ứng các yêu cầu dữ liệu của hệ thống doanh nghiệp.
  • Chuẩn hóa trong DBMS là một quá trình giúp tạo ra các hệ thống cơ sở dữ liệu tiết kiệm chi phí và có mô hình bảo mật tốt hơn.
  • Các 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 đều được chuẩn hóa cơ sở dữ liệu lên đến dạng chuẩn thứ ba trong DBMS.
  • Khóa chính xác định duy nhất là bản ghi trong Bảng và không thể rỗng
  • Khóa ngoại giúp kết nối bảng và tham chiếu khóa chính

Tìm hiểu thêm về PNV Xem tiếp