Hiện nay, khi cập nhật cơ sở dữ liệu để đảm bảo tính chính xác và nhanh chóng khi truy vấn, người ta cần phải thực hiện bước chuẩn hóa dữ liệu. Đây là công đoạn quan trọng thể hiện sự chuyên nghiệp và đảm bảo để dữ liệu chính xác tuyệt đối, tránh sai sót. Cùng tham khảo xem chuẩn hóa dữ liệu là gì nhé!
Chuẩn hóa csdl dữ liệu là gì?
Thông tin đầu tiên mà các bạn cần biết về chuẩn hóa cơ sở dữ liệu chính là khái niệm cơ bản của chúng. Để hiểu chuẩn hóa csdl dữ liệu là gì thì các bạn chỉ cần hiểu đơn giản đây là kỹ thuật thiết kế CSDL nhằm mục đích giúp giảm bớt sự dư thừa dữ liệu và loại bỏ những đặc điểm không mong muốn như Insertion, Update and Deletion Anomalies.
Các quy tắc chuẩn hóa dữ liệu hiện nay đã được chia những bảng lớn thành các bảng nhỏ hơn và kết nối chúng bằng cách dùng quan hệ đồng nhất. Mục đích chuẩn hóa dữ liệu trong sql nhằm loại bỏ dữ liệu thừa (lặp lại) và đảm bảo dữ liệu được lưu trữ một cách logic.
Bạn có thể hiểu Chuẩn hóa dữ liệu là quá trình rà soát tất cả các danh sách thuộc tính của các thực thể, áp dụng một tập các quy tắc phân tích đảm bảo các yếu tố sau:
- Hạn chế tối đa việc lặp lại, tránh dư thừa thông tin trong bảng dữ liệu. Tính trạng một thuộc tính có mặt ở nhiều bảng thực thể chỉ xuất hiện đối với các thuộc tính định danh kết nối và là cần thiết để thể hiện các mối quan hệ.
- Góp phần loại bỏ các trường hợp cùng một thuộc tính lại có tên khác nhau ở các bảng thực thể khác.
- Hạn chế tối đa các thuộc tính chưa hiểu rõ hoặc hiểu theo nhiều nghĩa khác nhau trong bảng dữ liệu.
- Quá trình chuẩn hóa buộc người ta phải xem xét rất cẩn thận về ý nghĩa của từng thuộc tính, từ đó sẽ xây dựng mô hình quan hệ khi đã hiểu rõ tất cả các thuộc tính liên quan.
-
Chia bảng thành các bảng có mối quan hệ: Đảm bảo rằng mỗi bảng trong cơ sở dữ liệu chỉ chứa dữ liệu liên quan đến một loại thực thể và không chứa thông tin trùng lặp. Mối quan hệ giữa các bảng được xác định bằng các khóa ngoại.
-
Loại bỏ các sự trùng lặp: Kiểm tra và loại bỏ các bản ghi trùng lặp trong cơ sở dữ liệu để tránh sai sót và làm lẫn lộn thông tin.
-
Xác định khóa chính: Đảm bảo mỗi bảng có một trường hoặc tập trường duy nhất định danh duy nhất, gọi là khóa chính, để xác định mỗi bản ghi trong bảng.
-
Sử dụng kiểu dữ liệu phù hợp: Chọn kiểu dữ liệu phù hợp cho từng trường để tiết kiệm không gian lưu trữ và tối ưu hóa hiệu suất cơ sở dữ liệu.
-
Đảm bảo tính toàn vẹn dữ liệu: Sử dụng ràng buộc để đảm bảo tính toàn vẹn dữ liệu, ngăn ngừa dữ liệu bị mất hoặc bị hỏng trong quá trình thêm, sửa đổi hoặc xóa dữ liệu.
-
Tối ưu hóa cấu trúc cơ sở dữ liệu: Thiết kế cơ sở dữ liệu sao cho dữ liệu được lưu trữ và truy xuất một cách hiệu quả, giúp cải thiện hiệu suất và tăng tốc truy vấn dữ liệu.
-
Bảo mật dữ liệu: Đảm bảo rằng dữ liệu được bảo vệ an toàn và chỉ có những người có quyền truy cập được phép truy cập vào nó.
Sau khi tìm hiểu về vấn đề này thì bạn đã biết được chuẩn hóa dữ liệu là gì. Cùng khám phá mục tiêu của việc chuẩn hóa dữ liệu ở phần tiếp theo của bài viết nhé!.
Mục tiêu của việc chuẩn hóa dữ liệu
Khi chuẩn hóa dữ liệu, người ta có 2 mục đích cơ bản dưới đây:
- Giảm tối đa lượng dữ liệu dư thừa khi truy xuất thông tin (ví dụ như lưu trữ cùng một dữ liệu trong 1 bảng)
- Đảm bảo độc lập dữ liệu (dữ liệu liên quan đặt trong cùng 1 bảng) Cả 2 mục đích trên đều giúp giảm thiểu không gian sử dụng trong cơ sở dữ liệu và đảm bảo dữ liệu được lưu trữ một cách logic.
Từ việc hiểu chuẩn hóa dữ liệu là gì và mục tiêu của việc này đối với việc truy xuất và nhập dữ liệu, chúng ta hãy cùng tìm hiểu một số dạng chuẩn hóa dữ liệu phổ biến hiện nay.
Các dạng chuẩn hóa dữ liệu
Dưới đây là các dạng chuẩn hóa dữ liệu databaseẩn 1nf 2nf 3nf dữ liệu cơ bản và phù hợp nhất mà các bạn có thể tham khảo và áp dụng:
1NF (First Normal Form)
Bạn có thể hiểu dạng chuẩn hóa này là bảng (quan hệ) được gọi là ở dạng chuẩn 1NF nếu và chỉ nếu toàn bộ các miền giá trị của các cột có mặt trong bảng (quan hệ) đều chỉ chứa các giá trị nguyên tử (nguyên tố).
Chuẩn 1 hay gọi tắt là 1NF là tập hợp các quy định cơ bản để tổ chức cơ sở dữ
liệu như sau:
- 1. Giảm cột dữ liệu dư thừa từ cùng 1 bảng 1nf 2nf 3nf
- 2. Tạo các bảng riêng biệt cho mỗi nhóm dữ liệu liên quan đến nhau và định nghĩa mỗi dòng với một cột duy nhất (gọi là primary key) Để thỏa mãn các tiêu chí của chuẩn 1 chúng ta phải không được để trùng lặp các giá trị trong dòng của bảng. Nguyên lý này được gọi là nguyên tử hóa bảng (atomicity of table)và bảng như này gọi là bảng nguyên tử.
2NF (Second Normal Form)
2nf là gì? Chuẩn 2NF sẽ giúp các lập trình viên loại bỏ các giá trị trùng lặp. Khi thiết kế cơ cơ sở dữ liệu cho KH cần chú ý đến việc trùng lặp, hãy áp dụng chuẩn 2NF nhé:
1. Bao gồm toàn bộ yêu cầu của chuẩn 1.
2. Xóa bỏ tập con dữ liệu trong nhiều dòng của 1 bảng và đặt chúng vào các bảng riêng biệt.
3. Tạo quan hệ giữa các bảng mới thông qua sử dụng khóa ngoại (foreign keys)
- CustNum
- First Name
- Last Name
- Address
- City
- State
Có một sự dư thừa nhỏ là chúng ta đang lưu trữ “Sea Cliff, NY 11579” and
“Miami, FL 33157” 2 lần cho mỗi dòng. Điều này có thể không ảnh hưởng quá nhiều cho không gian lưu trữ nhưng nếu chúng ta không hàng trăm trường hợp như vậy thì sẽ rất lãng phí không gian lưu trữ. Ngoài ra, nếu ZIP code cho Sea Cliff có bị thay đổi thì chúng ta cần thay đổi cho rất nhiều chỗ trong cơ sở dữ liệu.
Trong chuẩn 2, việc làm giảm thông tin dư thừa là tách ra và lưu trữ vào các bảng riêng biệt. Bảng mới của chúng có (gọi là bảng ZIPs) có những cột sau:
- ZIP
- City
- State
Như vậy, chúng ta sẽ loại bỏ được giá trị trùng lặp trong bảng Customers. Đấy là tiêu chí đầu tiên của chuẩn 1 đã được thỏa mãn. Chúng ta vẫn cần sử dụng khóa ngoại để nối 2 bảng lại với nhau. Chúng ta sử dụng ZIP code (khóa chính cho bảng ZIPs) để tạo quan hệ. Và đây là bảng Customers mới:
- CustNum
- First Name
- Last Name
- Address
- ZIP
Như vậy chúng ta đã làm giảm thiểu tối đa việc lặp thông tin và cấu trúc lại bảng theo chuẩn 2.
>> Xem thêm: Phần Mềm Quản Lý Spa | Tiện Ích Mang Lại Mà Bạn Không Thể Ngờ
3NF (Third Normal Form)
chuẩn 3nf Normal Form sẽ áp dụng một số tiêu chí sau để đảm bảo tính tối ưu nhất của CSDL:
- 1. Bao gồm tất cả yêu cầu của chuẩn 1 và chuẩn 2.
- 2. Xóa bỏ những cột không phụ thuộc vào khóa chính
Để hiểu rõ hơn chúng ta xem xét ví dụ sau: Chúng ta có bảng orders bao gồm các thuộc tính sau:
- Order Number
- Customer Number
- Unit Price
- Quantity
- Total
Chú ý, điều đầu tiên là bảng của chúng ta cần phải thỏa mãn chuẩn 1NF, 2 NF. Có sự lặp cột dữ liệu không? – Không. Có khóa chính chưa ? – Có rồi, chính là cột order number. Do đó, bảng này thỏa mãn 1NF. Có tập con dữ liệu trong nhiều dòng ko ? – Không, vì thế bảng này cũng thỏa mãn 2NF.
Bây giờ, chúng ta cùng xem tất cả cột có phụ thuộc vào khóa chính không?
Qua bảng trên chúng ta thấy cột total được xác định bằng unit price nhân với quantity. Do vậy cột này không phụ thuộc vào khóa chính. Và bảng của chúng ta lúc này chỉ sử dụng các thuộc tính sau:
- Order Number
- Customer Number
- Unit Price
- Quantity
Và bây giờ bảng của chúng ta đã thỏa mãn chuẩn 3NF. Và total lúc này không được lưu trữ trong cơ sở dữ liệu và được tính trực tiếp khi chúng ta truy vấn.
Bcnf là gì (Boyce-Codd Normal Form)
Định nghĩa Một quan hệ ở dạng chuẩn bcnf là gì nếu quan hệ đó:
- Là 3NF
- Không có thuộc tính khóa mà phụ thuộc hàm vào thuộc tính không khóa.
Ví dụ
Dạng chuẩn 4 (4NF) có thêm một số yêu cầu sau:
- 1. Tất cả yêu cầu của chuẩn 3
- 2. Một quan hệ là chuẩn 4 nếu nó không có phụ thuộc nhiều giá trị.
Chú ý, các chuẩn hóa trên có tích chất tích lũy. Vì vậy, cơ sở dữ liệu đã đạt chuẩn 2 thì nó phải đạt đầy đủ tiêu chí của chuẩn 1. chuẩn 1nf 2nf 3nf dạng chuẩn cơ sở dữ liệu
4NF (Fourth Normal Form)
Fourth Normal Form (4NF) là Dạng chuẩn thứ tư (4NF). Đây là nghĩa tiếng Việt của thuật ngữ Fourth Normal Form (4NF) – một thuật ngữ thuộc nhóm Technology Terms – Công nghệ thông tin. Nhờ đó mà bạn hiểu chuẩn hóa dữ liệu là gì và áp dụng ra sao.
Hình thức bình thường thứ tư (4NF) trong dạng chuẩn hóa dữ liệu chính là một mức độ bình thường hóa cơ sở dữ liệu mà không có phụ thuộc multivalued không tầm thường khác hơn là một chìa khóa ứng cử viên.
Dạng chuẩn hóa dữ liệu này được xây dựng trên 3 hình thức bình thường đầu tiên (1NF, 2NF và 3NF) và dạng chuẩn Boyce-Codd (BCNF). Nó nói rằng, ngoài một cơ sở dữ liệu đáp ứng yêu cầu của BCNF, nó không được chứa nhiều hơn một phụ thuộc đa trị.
Như vậy, 4NF khẳng định rằng một bảng không nên có nhiều hơn một trong những phụ thuộc. 4NF hiếm khi được sử dụng bên ngoài cộng đồng hàn lâm. 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ó ở 4th Normal Form.
Thông qua dạng chuẩn hóa dữ liệu này bạn sẽ nắm được chuẩn hóa dữ liệu là gì một cách chính xác.
5NF (Fifth Normal Form)
Một bảng là 5th Normal Form chỉ khi là 4NF và không thể bị phân tách thành các bảng nhỏ hơn mà không bị mất dữ liệu.
6NF (Sixth Normal Form)
Trong các dạng chuẩn hóa dữ liệu thì 6NF hay còn được gọi là 6th Normal Form chưa có quy chuẩn nhưng đang được thảo luận bởi những chuyên gia về CSDL.
>> Xem thêm: Phần Mềm Quản Lý Báo Giá | Lợi Ích Tuyệt Vời Mang Lại
Ví dụ của các dạng chuẩn hóa
Để giúp các bạn hiểu chuẩn hóa dữ liệu là gì, các bạn có thể tham khảo ví dụ các dạng chuẩn hóa như sau:
Ví dụ 1
Sau đây là ví dụ về chuẩn hóa cơ sở dữ liệu chưa có dạng chuẩn hóa cơ sở dữ liệu
Bảng. Thực thể “Nhân viên – Khóa học”
Mã NV |
Họ và tên NV |
Phòng CT |
Mức lương |
Khóa học ngắn hạn |
Ngày hoàn thành |
100 |
Nguyễn Văn An |
Marketing |
42,000 |
Quan hệ công chúng |
19/06/2009 |
100 |
Nguyễn Văn An |
Marketing |
42,000 |
Thương hiệu |
07/10/2008 |
150 |
Phạm Ngọc Hoa |
Marketing |
38,500 |
Quan hệ công chúng |
19/06/2009 |
150 |
Phạm Ngọc Hoa |
Marketing |
38,500 |
Nghiên cứu thị trường |
12/08/2007 |
190 |
Vũ Minh Hà |
Finance |
38,000 |
Kế toán quản trị |
07/05/1999 |
Thực thể không chứa các thuộc tính thứ sinh hay thuộc tính không quan trọng. Hãy thực hiện chuẩn hóa thực thể trên.
Bạn sẽ tiến hành chuẩn hóa dữ liệu bảng trên theo 3 bước sau đây:
- Bước 1. Thực thể này không chức các thuộc tính lặp nên đã có dạng chuẩn 1.
Tuy nhiên, bảng thực thể có nhiều dữ liệu bị trùng lặp giữa các dòng. Trong ví dụ trên, dữ liệu trong các cột “Mã NV”, “Họ và tên NV”, “Phòng CT” và “Mức lương” bị lặp lại khi một nhân viên học nhiều hơn một khóa học (như Nguyễn Văn An, Phạm Ngọc Hoa).
- Bước 2. Do các thuộc tính không phải là khóa như “Họ và tên NV”, “Phòng CT” và “Mức lương” chỉ phụ thuộc hàm vào một phần của bộ khóa chính là “Mã NV” nên thực thể chưa có dạng chuẩn 2.
Để chuẩn hóa thực thể “Nhân viên – Khóa học” dạng chuẩn 1 thành dạng chuẩn 2, chúng ta thực hiện 3 bước sau:
- Thiết lập thực thể chỉ chứa các thuộc tính không khóa phụ thuộc hàm đầy đủ vào bộ khóa (hay gọi là khóa chính). Trong bảng “Nhân viên – Khóa học” chỉ có thuộc tính “Ngày hoàn thành” phụ thuộc hàm đầy đủ vào khóa chính “Mã NV” và “Khóa học ngắn hạn”, như vậy ta có bảng quan hệ R1(Mã NV, Khóa học ngắn hạn, Ngày hoàn thành) là một bảng ở dạng chuẩn
- Thiết lập (các) thực thể chỉ chứa các thuộc tính không khóa phụ thuộc hàm vào từng phần của khóa. Trong bảng “Nhân viên – Khóa học” có các thuộc tính không khóa “Họ và tên NV”, “Phòng CT” và “Mức lương” chỉ phụ thuộc hàm vào “Mã NV”, như vậy ta thiết lập được bảng quan hệ R2(#Mã NV, Họ và tên NV, Phòng CT, Mức lương) là bảng thuộc dạng chuẩn 2.
- Mối quan hệ giữa bảng R1 và bảng R2 sẽ được thể hiện bằng “Mã NV”.
Sau 3 bước trên ta có thực thể như hình vẽ dưới đây. Các bảng R1 và R2 đều ở dạng chuẩn 2. Chúng cũng có dạng chuẩn 3NF do tất cả các phụ thuộc hàm giữa khóa chính và các thuộc tính khác của nó đều là trực tiếp.
Thực thể “Nhân viên” (R2) và thực thể “Nhân viên – Khóa học” (R1) ở dạng chuẩn 3
Ví dụ 2
Công ty Văn phòng phẩm Hồng Hà có hệ thống đại lý ở các quận trên địa bàn Thành phố Hà Nội. Mỗi quận có một đại lý, mỗi đại lý có duy nhất một người phụ trách bán hàng và ngược lại mỗi người bán hàng chỉ phụ trách duy nhất một đại lý. Mỗi khách hàng bán lẻ lấy hàng ở một đại lý.
Nếu chúng ta xây dựng thực thể “Khách hàng – Người phụ trách” như bảng dưới thì sẽ có sự phụ thuộc bắc cầu giữa các thuộc tính:
- Mã KH → Họ tên KH, Họ tên người bán hàng, Đại lý (phụ thuộc hàm vào khóa)
- Đại lý → Họ tên người bán hàng (phụ thuộc hàm từ quy tắc)
Như vậy thực thể có chứa phụ thuộc hàm bắc cầu: Mã KH → Đại lý → Họ tên người bán hàng.
Bảng: Thực thể “Khách hàng – Người phụ trách”
#Mã KH |
Họ tên KH |
Họ tên người bán hàng |
Đại lý |
231 |
Trần Đình Chiến |
Lê Ngọc Hà |
Đống Đa |
179 |
Nguyễn Mai Hoa |
Lê Ngọc Hà |
Đống Đa |
167 |
Lê Kim Nhung |
Nguyễn Văn Nam |
Cầu Giấy |
106 |
Vũ Thúy Hòa |
Nguyễn Văn Nam |
Cầu Giấy |
370 |
Phan Thu Thủy |
Hoàng Văn Hải |
Hai Bà Trưng |
… |
… |
… |
… |
Vì thực thể “Khách hàng – Người phụ trách” có chứa phụ thuộc hàm bắc cầu nên sẽ có một số khuyết điểm như sau:
- Nếu một người bán hàng mới được giao nhiệm vụ phụ trách đại lý mới, hệ thống không thể nhập dữ liệu cho đến khi người đó tìm được một khách hàng nào đó (vì khóa “Mã KH” cần phải có giá trị không rỗng).
- Giả sử đại lý “Hai Bà Trưng” chỉ có một khách hàng 370, nếu xóa khách hàng 370 ra khỏi bảng, chúng ta sẽ bị mất thông tin về người phụ trách bán hàng “Hoàng Văn Hải” đang phụ trách đại lý “Hai Bà Trưng”.
- Nếu người phụ trách bán hàng “Lê Ngọc Hà” chuyển sang phụ trách khu vực khác, nhiều dòng sẽ phải cập nhật lại…
Để xóa bỏ phụ thuộc hàm bắc cầu, chúng ta chia bảng thành 2 bảng nhỏ tương ứng với hai thực thể “Khách hàng – Đại lý” và “Đại lý – Người phụ trách” (bảng 3.12.a, b). Hai thực thể mới không có các thuộc tính bắc cầu nên đều ở dạng chuẩn 3.
Ví dụ 3.
Để thiết kế các tệp dữ liệu quản lý các hóa đơn bán hàng (hình dưới), chúng ta thực hiện các bước như sau:
- Bước 1: Xác định các thông tin liên quan như danh sách khách hàng, danh mục hàng hóa, phiếu xuất kho…
- Bước 2: Liệt kê tất cả các thuộc tính liên quan đến hóa đơn bán hàng, xác định các thuộc tính lặp (R) và thuộc tính thứ sinh (S). Đặt tên cho thực thể ban đầu là “Hóa đơn (1)” với các thuộc tính sau:
Số hóa đơn, Liên số, Mã KH, Họ và tên KH, Địa chỉ KH, Số tài khoản, Mã số thuế, Phương thức thanh toán, Stt (R), Tên hàng hóa (R), Đơn vị tính (R), Đơn giá (R), Số lượng (R),
Thành tiền (R) & (S), Tổng cộng (S), Thuế VAT (S), Tổng tiền thanh toán (S), Viết bằng chữ (S), Ngày bán, Người bán, Người mua.
Vì “Số hóa đơn” đủ để phân biệt hóa đơn này với hóa đơn khác nên khóa chính của thực thể này là “Số hóa đơn”.
Ví dụ về hóa đơn bán hàng
- Bước 3: Loại bỏ các thuộc tính thứ sinh và các thuộc tính ít có ý nghĩa trong quản lý (Liên số, Stt), thực thể “Hoá đơn (1)” còn lại các thuộc tính sau:
#Số hóa đơn, Mã KH, Họ và tên KH, Địa chỉ KH, Số tài khoản, Mã số thuế, Phương thức thanh toán, Tên hàng hóa (R), Đơn vị tính (R), Đơn giá (R), Số lượng (R), Ngày bán, Người bán, Người mua.
- Bước 4:
a. Thực hiện chuẩn hóa mức 1 (1NF). Theo yêu cầu của chuẩn hóa mức 1, thực thể “Hoá đơn (1)” chứa các thuộc tính lặp là “Tên hàng hóa (R), Đơn vị tính (R), Đơn giá (R), Số lượng (R)” nên phải tách chúng ra thành danh sách con, gán cho nó một tên là “Hàng mua (1)” với thuộc tính định danh mới là “Mã hàng hoá”, kết hợp với thuộc tính định danh của danh sách gốc “Số hoá đơn” tạo thành một bộ khóa.
Sau khi chuẩn hóa mức 1, ta được 2 thực thể:
Hóa đơn (2) |
Hàng mua (1) |
#Số hóa đơn, Mã KH, Họ và tên KH, Địa chỉ KH, Số tài khoản, Mã số thuế, Phương thức thanh toán, Ngày bán, Người bán, Người mua. |
Số hóa đơn, Mã hàng hóa, Tên hàng hóa, Đơn vị tính, Đơn giá, Số lượng |
b. Thực hiện chuẩn hóa mức 2 (2NF). Theo yêu cầu của chuẩn hóa mức 2, trong mỗi thực thể, các thuộc tính không phải là khóa phải phụ thuộc toàn bộ vào khóa. Nếu có thuộc tính chỉ phụ thuộc vào một phần của khóa, ta phải tách chúng thành danh sách mới, lấy bộ phận của khóa đó làm thuộc tính định danh cho danh sách mới, gán cho nó một cái tên phù hợp với nội dung mà nó phản ánh.
Thực thể “Hoá đơn (2)” đã có dạng chuẩn 2 do mọi thuộc tính đều phụ thuộc vào “Số hoá đơn”.
Trong thực thể “Hàng mua (1)”, ta thấy thuộc tính “Số lượng” phụ thuộc toàn bộ vào khóa “Số hóa đơn” và “Mã hàng hóa”, còn các thuộc tính “Tên hàng hóa”, “Đơn vị tính”, “Đơn giá” chỉ phụ thuộc vào “Mã hàng hóa”. Chúng ta tách thực thể “Hàng mua (1)” thành hai thực thể “Hàng mua” và “Hàng hoá” có dạng chuẩn 2:
Hàng mua |
Hàng hoá |
Số hóa đơn, Mã hàng hóa, Số lượng |
#Mã hàng hóa, Tên hàng hóa, Đơn vị tính, Đơn giá |
c. Thực hiện chuẩn hóa mức 3 (3NF). Theo yêu cầu của chuẩn hóa mức 3, trong các danh sách không được tồn tại sự phụ thuộc bắc cầu giữa các thuộc tính.
Hai thực thể “Hàng mua” và “Hàng hoá” có dạng chuẩn 3.
>> Xem thêm: 3 Mẫu Báo Giá Đẹp Mà Khách Hàng Không Thể Bỏ Qua
Trong thực thể “Hóa đơn (2)” tồn tại sự phụ thuộc bắc cầu giữa các thuộc tính: từ “Mã KH” có thể suy ra “Họ và tên KH”, “Địa chỉ KH”, “Số tài khoản”, “Mã số thuế”. Do đó, ta phải tách từ thực thể “Hoá đơn (2)” một thực thể mới là “Khách hàng” và được 2 thực thể: “Hoá đơn” và “Khách hàng”. Trong thực thể “Hoá đơn”, thuộc tính “Mã KH” là thuộc tính quan hệ.
Hóa đơn |
Khách hàng |
#Số hóa đơn, Mã KH, Phương thức thanh toán, Ngày bán, Người bán, Người mua. |
#Mã KH, Họ và tên KH, Địa chỉ KH, Số tài khoản, Mã số thuế. |
Tóm lại, sau khi thực hiện chuẩn hóa dữ liệu ở mức 3, chúng ta thu được 4 thực thể có dạng chuẩn hoàn toàn sau đây:
Bảng 13. Các thực thể đã được chuẩn chuẩn hóa database
Hóa đơn |
Khách hàng |
Hàng mua |
Hàng hóa |
Số hóa đơn |
#Mã KH |
Số hóa đơn |
#Mã hàng hóa |
Mã KH |
Họ và tên KH |
Mã hàng hóa |
Tên hàng hóa |
Ph.thức thanh toán |
Địa chỉ KH |
Số lượng |
Đơn vị tính |
Ngày bán Người bán |
Số tài khoản Mã số thuế |
Đơn giá |
|
Người mua |
Nói chung, bài viết trên đã giúp các bạn hiểu chính xác chuẩn hóa dữ liệu là gì cũng như các dạng chuẩn hóa phổ biến hiện nay. Hy vọng qua các ví dụ minh họa, các bạn có thể hiểu thêm về vấn đề này.
Liên hệ với website crm khách ngành hàng bất động sản chúng tôi để được hỗ trợ trực tuyến hoặc trực tiếp tại:
- Địa Chỉ: Tầng 5, Tòa nhà 97 – 99 Láng Hạ, Láng Hạ, Đống Đa, Hà Nội
- HotLine: 086 909 2929
- Website: https://meeycrm.com/
- Email: contact@meeyland.com