Video: Our Miss Brooks: Business Course / Going Skiing / Overseas Job 2025
Một loạt các vấn đề - được gọi là dị thường sửa đổi - có thể làm hỏng cơ sở dữ liệu nếu bạn không cấu trúc Cơ sở dữ liệu SQL chính xác. Để ngăn ngừa những vấn đề này, bạn có thể bình thường cấu trúc cơ sở dữ liệu. Việc bình thường hoá đòi hỏi chia tách một bảng cơ sở dữ liệu thành hai bảng đơn giản.
Các dị thường về sửa đổi được đặt tên như vậy bởi vì chúng được tạo ra bằng cách bổ sung, thay đổi hoặc xóa dữ liệu từ một bảng cơ sở dữ liệu.
Giả sử, ví dụ, công ty của bạn bán các sản phẩm vệ sinh gia đình, và bạn tính tất cả các khách hàng cùng một mức giá cho mỗi sản phẩm. Bảng SALES theo dõi tất cả mọi thứ cho bạn. Giả sử rằng khách hàng 1001 chuyển đi và không còn là khách hàng. Bạn không quan tâm những gì anh ta đã mua trong quá khứ, bởi vì anh ta sẽ không mua bất cứ thứ gì từ bạn một lần nữa. Bạn muốn xóa hàng của mình từ bảng.
xóa. Khi xóa một thực tế (khách hàng 1001 mua chất tẩy giặt), bạn vô tình xóa một sự thật khác (chất tẩy giặt tốn 12 đô la). Bạn có thể sử dụng cùng một bảng để minh họa cho sự bất thường chèn. Ví dụ: giả sử bạn muốn thêm chất khử mùi gối vào dòng sản phẩm của bạn ở mức giá $ 2. Bạn không thể thêm dữ liệu này vào bảng SALES cho đến khi khách hàng mua thuốc khử mùi.CUST_PURCH, đề cập đến ý tưởng duy nhất về mua hàng của khách hàng.
PROD_PRICE, đề cập đến ý tưởng độc nhất về giá cả sản phẩm.
-
Giờ đây, bạn có thể xóa hàng cho khách hàng 1001 khỏi CUST_PURCH mà không làm mất đi thực tế rằng chất tẩy giặt tốn 12 đô la. (Chi phí của chất tẩy giặt hiện được lưu trữ trong PROD_PRICE). Bạn cũng có thể thêm thuốc khử mùi gân cho PROD_PRICE cho dù người mua sản phẩm có mua hay không. Mua thông tin được lưu ở nơi khác, trong bảng CUST_PURCH.
-
Quá trình phá vỡ một bảng thành nhiều bảng, mỗi bảng có một chủ đề duy nhất, được gọi là
bình thường hóa.
Một hoạt động bình thường để giải quyết một vấn đề có thể không ảnh hưởng đến các vấn đề khác.Bạn có thể phải thực hiện một số hoạt động chuẩn hóa liên tiếp để giảm từng bảng kết quả xuống một chủ đề đơn nhất. Mỗi bảng cơ sở dữ liệu phải xử lý một và chỉ một chủ đề chính. Đôi khi (như bạn có thể đoán) xác định rằng một bảng thực sự
đề cập đến hai hoặc nhiều chủ đề có thể là khó khăn. Bạn có thể phân loại các bảng theo các loại dị thường sửa đổi mà chúng đang phụ thuộc. Trong một bài báo năm 1970, E. F. Codd đã xác định ba nguồn dị thường sửa đổi và xác định các hình thức bình thường (9NF, 2NF, 3NF) đầu tiên, thứ hai và thứ ba là các biện pháp khắc phục các loại dị thường này. Trong những năm sau đó, Codd và những người khác phát hiện thêm các loại bất thường và các hình thức bình thường mới được chỉ định để đối phó với chúng. Hình thức bình thường Boyce-Codd (BCNF), dạng bình thường thứ tư (4NF), và dạng bình thường thứ 5 (5NF) mỗi loại có mức bảo vệ cao hơn so với dị thường sửa đổi. Tuy nhiên, cho đến năm 1981, một bài báo, được viết bởi Ronald Fagin, mô tả hình thức bình thường của tên miền hoặc DK / NF. Sử dụng mẫu thông thường cuối cùng này cho phép bạn
đảm bảo rằng một bảng không có sự thay đổi bất thường. Các hình thức bình thường là
lồng nhau theo nghĩa một bảng trong 2NF cũng tự động cũng
trong 1NF. Tương tự, một bảng trong 3NF được tự động trong 2NF, v.v. Đối với hầu hết các ứng dụng thực tế, đặt một cơ sở dữ liệu trong 3NF là đủ để đảm bảo độ toàn vẹn cao. Để hoàn toàn chắc chắn tính toàn vẹn của nó, bạn phải đặt cơ sở dữ liệu vào DK / NF. Sau khi bạn chuẩn hóa cơ sở dữ liệu càng nhiều càng tốt, bạn có thể muốn thực hiện lựa chọn denormalizations để cải thiện hiệu suất. Nếu bạn làm như vậy, hãy chú ý đến các loại dị thường mà bây giờ có thể trở thành có thể.