Chuẩn Hoá Dữ Liệu Là Gì? 1NF, 2NF, 3NF & BCNF Với Các Ví Dụ
Có thể bạn quan tâm
Chuẩn hoá dữ liệu là gì?
Chuẩn hóa là một kỹ thuật thiết kế cơ sở dữ liệu tổ chức các bảng theo cách làm giảm sự dư thừa và phụ thuộc của dữ liệu. Nó 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ệ. Người phát minh ra mô hình quan hệ Edgar Codd đã đề xuất lý thuyết bình thường hóa với sự ra đời của Mẫu bình thường thứ nhất, và ông tiếp tục mở rộng lý thuyết với Mẫu bình thường thứ hai và thứ ba. Sau đó, ông đã tham gia với Raymond F. Boyce để phát triển lý thuyết về hình thức bình thường Boyce-Codd. Lý thuyết chuẩn hóa dữ liệu trong SQL vẫn đang được phát triển thêm. Ví dụ, có các cuộc thảo luận ngay cả trên Mẫu thường thứ 6 . Tuy nhiên, trong hầu hết các ứng dụng thực tế, chuẩn hóa đạt được kết quả tốt nhất ở Dạng thường thứ 3 . Sự phát triển của các lý thuyết Bình thường hóa được minh họa dưới đây-Ví dụ chuẩn hóa cơ sở dữ liệu -
Giả sử một thư viện video duy trì một cơ sở dữ liệu của các bộ phim được thuê. Không có bất kỳ chuẩn hóa nào, tất cả thông tin được lưu trữ trong một bảng như dưới đây. Bảng 1 Ở đây bạn thấy cột Phim được thuê có nhiều giá trị .Cơ sở dữ liệu biểu mẫu bình thường
Bây giờ hãy chuyển sang dạng bình thường thứ 1Quy tắc 1NF (Mẫu thường đầu tiên)
- Mỗi ô trong bảng nên chứa một giá trị đơn (không phải là một danh sách)
- Mỗi dòng (bản ghi) cần phải là duy nhất
Khóa chính - Primary Key là gì?
Một khóa là một giá trị được sử dụng để xác định một bản ghi trong một bảng duy nhất. Một KEY có thể là một cột đơn hoặc kết hợp nhiều cột. Trong một bảng chỉ có một khóa chính duy nhất (nhưng khóa đó có thể bao gồm nhiều cột). Lưu ý: Các cột trong bảng KHÔNG được sử dụng để xác định một bản ghi duy nhất được gọi là các cột không khóa. Khóa chính là gì? Chính là một giá trị cột duy nhất được sử dụng để xác định một bản ghi cơ sở dữ liệu duy nhất. Nó có các thuộc tính sau
|
Khóa tổng hợp - Composite Primary Key là gì?
Khóa tổng hợp là khóa chính gồm nhiều cột được sử dụng để xác định một bản ghi duy nhất Ví dụ, cơ sở dữ liệu hiện 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 đó, ta yêu cầu cả HọTên và Địa Chỉ để xác định một bản ghi duy nhất. Đó là một khóa tổng hợp. Khóa tổng hợp tức là tổng hợp giá trị của 2 cột đó, thì tạo ra một bản ghi duy nhất không trùng lặp trong bảng. Hãy chuyển sang dạng 2NF bình thường thứ haiQuy tắc 2NF (Mẫu thường thứ hai)
- Quy tắc 1- Trở thành 1NF
- Quy tắc 2- Khóa chính cột đơn
Cơ sở dữ liệu - Khóa ngoại
Trong Bảng 2, Memberhip_ID là Khóa ngoàiKhó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
|
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, 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 cha. Điều này giúp trong 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ảng1 Bây giờ, nếu ai đó cố gắng chèn một giá trị trong 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ị!Phụ thuộc chức năng bắc cầu là gì?
Một phụ thuộc chức năng bắc cầu là khi thay đổi cột không khóa, có thể khiến bất kỳ cột không khóa nào khác thay đổi. Nói một cách dễ hiểu, quan hệ bắc cầu tức là giá trị của cột này bị phụ thuộc vào cột khác (mà cột khác đó không phải là khóa). Xem xét bảng 1. Thay đổi cột không khóa Full Name, có thể xem xét thay đổi tới cột danh xưng Saltutation. Hãy chuyển sang 3NFQuy tắc 3NF (Mẫu thường thứ ba)
- Quy tắc 1- Trở thành 2NF
- Quy tắc 2- Không có phụ thuộc chức năng bắc cầu
Ví dụ 3NF
BẢNG 1 Bảng 2 Bảng 3 Chúng tôi đã một lần nữa phân chia các bảng của chúng tôi và tạo ra một bảng mới lưu trữ Salutations. Không có phụ thuộc chức năng bắc cầu và do đó bảng của chúng tôi nằm trong 3NF Trong Bảng 3 ID tính toán là khóa chính và trong Bảng 1 ID tính toán là ngoại lệ đối với khóa chính trong Bảng 3 Bây giờ ví dụ nhỏ của chúng tôi đang ở mức không thể phân tách hơn nữa để đạt được các hình thức chuẩn hóa cao hơn. Trong thực tế, nó đã ở dạng bình thường 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 là 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 về các mức độ chuẩn hóa tiếp theo một cách ngắn gọn trong phần sau.Mẫu thường Boyce-Codd (BCNF)
Ngay cả khi cơ sở dữ liệu ở dạng bình thường thứ 3 , vẫn sẽ có kết quả bất thường nếu nó có nhiều hơn một Khóa ứng viên . Đôi khi BCNF cũng được gọi là 3,5 Mẫu thường.Quy tắc 4NF (Mẫu thường 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à đa trị mô tả thực thể có liên quan, thì đó là ở dạng thông thường thứ 4 .Quy tắc 5NF (Mẫu thường thứ năm)
Một bảng ở dạng bình thường thứ 5 chỉ khi 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 mất dữ liệu.Đề xuất 6NF (Mẫu thường thứ sáu)
Mẫu thường thứ 6 không đượ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 rằng, chúng ta sẽ có một định nghĩa rõ ràng và được chuẩn hóa cho Mẫu thường thứ 6 trong tương lai gần ... Đó là tất cả để bình thường hóa !!!Danh sách bài giảng về SQLDanh sách bài giảng về SQLTó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ệ 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.
- Bình thường hóa giúp hệ thống cơ sở dữ liệu sản phẩm có hiệu quả chi phí và có các mô hình bảo mật tốt hơn.
- Phụ thuộc hàm là một thành phần rất quan trọng của việc xử lý dữ bình thường hóa
- Hầu hết các hệ cơ sở dữ liệu được chuẩn hóa cơ sở dữ liệu lên đến các hình thức bình thường thứ ba.
- 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
PHP LARAVEL 8X
https://www.youtube.com/playlist?list=PLsVJaIeVT78ozIMPtEbPHnXKNfC4UhZlW
join vào classroom để cập nhật thông tin
https://classroom.google.com/c/Mzc4ODIzMzEwNjA1?cjc=m4jgnl7
Tự làm website hoàn chỉnh với Laravel
Đây là phiên bản 2 nâng cấp có nhiều tính năng nâng cao hơn
Bao gồm cả phần cho Customer và Admin
Project có Áp dụng mẫu thiết kế Repository và nhiều kỹ thuật khác
Nếu chưa làm phần cơ bản thì bạn hãy học cơ bản trước, rồi quay lại học nâng cao sau:
Step by step…
Download tài nguyên Frontend https://drive.google.com/drive/folders/1pegaPNW47Gvm-A17sPspftbv5vTclivh?usp=sharing
Download tài nguyên Backend https://drive.google.com/drive/folders/10TKcfcSr3-cOdsE4Kgjnj8ZRIuP39XQi?usp=sharing
ĐIỀU KIỆN CẦN
Tự dựng frontend trước khi học backend
Các bạn học theo hướng dẫn trong loạt video sau
https://www.youtube.com/watch?v=_qGuD0mOSaA&list=PLsVJaIeVT78r6MlKJuSOn1sCMjCXjYR5N
0. PHP MySQL Cơ bản https://youtube.com/playlist?list=PLsVJaIeVT78pkvqSSf7p_X4vT-hXBVxE9
1. Laravel basic https://youtube.com/playlist?list=PLsVJaIeVT78qJEPWJ9rIwgPCcmuVI-r4k
2. Laravel bán hàng cơ bản, code đơn giản https://youtube.com/playlist?list=PLsVJaIeVT78pmuOYNo4T7RKSW_RGLWipQ
3. Laravel bán hàng nâng cao, code với mẫu thiết kế Repository
Tự làm website bán hàng hoàn chỉnh cả khách hàng và admin (Code ở phần 2 khác code phần 3, nên các bạn code lại nha )
https://youtube.com/playlist?list=PLsVJaIeVT78ozIMPtEbPHnXKNfC4UhZlW
#Laravel8x #laravel #php #mysql #ecommerceTừ khóa » Chuẩn Nf1
-
Tổng Hợp Về Chuẩn Hóa Cơ Sở Dữ Liệu - Viblo
-
Chuẩn Hóa Cơ Sở Dữ Liệu Quan Hệ - Viblo
-
3 Bước Chuẩn Hóa NF Cơ Sở Dữ Liệu - Học Lập Trình Từ Con Số 0
-
Normalization Là Gì? Ví Dụ Về 1NF, 2NF, 3NF, BCNF Database
-
Tiêu Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Tiêu ...
-
Chuẩn Hóa Là Gì ? 1Nf, 2Nf, 3Nf & Bcnf Với Các Ví Dụ Chuẩn Hóa ...
-
Dạng Chuẩn NF Trong Database | Qndev's Blog
-
Bài Giảng Cơ Sở Dữ Liệu: 08 - Chuẩn Hóa Lược đồ Quan Hệ - YouTube
-
Video CSDL Các Dạng Chuẩn 1NF, 2NF, 3NF 2020 09 11 - YouTube
-
Các Dạng Chuẩn Hóa Dữ Liệu - 1NF (First Normal Form) - .vn
-
Các Loại Chuẩn Hoá Trong CSDL Quan Hệ - LPTech
-
Chuẩn Hóa Trong DBMS (SQL) Là Gì? Cơ Sở Dữ Liệu 1NF, 2NF, 3NF ...