Bình thường hóa và không chuẩn hóa
Cơ sở dữ liệu quan hệ được tạo thành từ các mối quan hệ (bảng liên quan). Bàn được tạo thành từ các cột. Nếu các bảng là hai bảng lớn (nghĩa là có quá nhiều cột trong một bảng), thì sự bất thường của cơ sở dữ liệu có thể xảy ra. Nếu các bảng là hai bảng nhỏ (tức là cơ sở dữ liệu được tạo thành từ nhiều bảng nhỏ hơn), thì việc truy vấn sẽ không hiệu quả. Chuẩn hóa và Không chuẩn hóa là hai quá trình được sử dụng để tối ưu hóa hiệu suất của cơ sở dữ liệu. Chuẩn hóa giảm thiểu các dự phòng có trong các bảng dữ liệu. Không chuẩn hóa (đảo ngược chuẩn hóa) thêm dữ liệu dư thừa hoặc dữ liệu nhóm.
Bình thường hóa là gì?
Chuẩn hóa là một quá trình được thực hiện để giảm thiểu các dư thừa có trong dữ liệu trong cơ sở dữ liệu quan hệ. Quá trình này sẽ chủ yếu phân chia các bảng lớn thành các bảng nhỏ hơn với số lượng dự phòng ít hơn (được gọi là dạng bình thường. Các bảng nhỏ hơn sẽ liên quan với nhau thông qua các mối quan hệ được xác định rõ. Trong cơ sở dữ liệu được chuẩn hóa tốt, mọi thay đổi hoặc sửa đổi trong dữ liệu sẽ chỉ yêu cầu sửa đổi một bảng duy nhất. Mẫu thông thường thứ nhất (1NF), Mẫu thông thường thứ hai (2NF) và Mẫu thông thường thứ ba (3NF) được giới thiệu bởi Edgar F. Codd. Boyce-Codd Form Form (BCNF) được giới thiệu vào năm 1974 bởi Codd và Raymond F. Boyce. Các dạng thông thường cao hơn (4NF, 5NF và 6NF) đã được xác định, nhưng chúng hiếm khi được sử dụng.
Một bảng tuân thủ 1NF đảm bảo rằng nó thực sự đại diện cho một mối quan hệ (nghĩa là nó không chứa bất kỳ bản ghi nào đang lặp lại) và không chứa bất kỳ thuộc tính nào có giá trị quan hệ (nghĩa là tất cả các thuộc tính nên có giá trị nguyên tử). Để một bảng tuân thủ 2NF, nó phải được tuân thủ với 1NF và bất kỳ thuộc tính nào không phải là một phần của bất kỳ khóa ứng cử viên nào (tức là các thuộc tính không phải là số nguyên tố) phải hoàn toàn phụ thuộc vào bất kỳ khóa ứng cử viên nào trong bảng. Theo định nghĩa của Codd, một bảng được cho là ở 3NF, nếu và chỉ khi, bảng đó ở dạng bình thường thứ hai (2NF) và mọi thuộc tính trong bảng không thuộc về khóa ứng viên nên phụ thuộc trực tiếp vào mọi khóa ứng cử viên của bảng đó. BCNF (còn được gọi là 3.5NF) ghi lại một số bất thường không được giải quyết bởi 3NF.
Không chuẩn hóa là gì?
Không chuẩn hóa là quá trình ngược lại của quá trình chuẩn hóa. Việc không chuẩn hóa hoạt động bằng cách thêm dữ liệu dư thừa hoặc nhóm dữ liệu để tối ưu hóa hiệu suất. Mặc dù, việc thêm dữ liệu dư thừa nghe có vẻ phản tác dụng, đôi khi việc không chuẩn hóa là một quá trình rất quan trọng để khắc phục một số thiếu sót trong phần mềm cơ sở dữ liệu quan hệ có thể phải chịu các hình phạt hiệu suất nặng với cơ sở dữ liệu chuẩn hóa (thậm chí được điều chỉnh để có hiệu suất cao hơn). Điều này là do việc tham gia một số quan hệ (là kết quả của việc chuẩn hóa) để tạo kết quả cho truy vấn đôi khi có thể bị chậm tùy thuộc vào việc triển khai vật lý thực tế của các hệ thống cơ sở dữ liệu.
Sự khác biệt giữa chuẩn hóa và không chuẩn hóa là gì? - Bình thường hóa và không chuẩn hóa là hai quá trình hoàn toàn trái ngược nhau. - Chuẩn hóa là quá trình phân chia các bảng lớn hơn thành các bảng nhỏ hơn làm giảm dữ liệu dư thừa, trong khi không chuẩn hóa là quá trình thêm dữ liệu dư thừa để tối ưu hóa hiệu suất. - Chuẩn hóa được thực hiện để ngăn chặn sự bất thường của cơ sở dữ liệu. - Việc không chuẩn hóa thường được thực hiện để cải thiện hiệu suất đọc của cơ sở dữ liệu, nhưng do các ràng buộc bổ sung được sử dụng cho việc không chuẩn hóa, các thao tác ghi (tức là chèn, cập nhật và xóa) có thể trở nên chậm hơn. Do đó, cơ sở dữ liệu không chuẩn hóa có thể cung cấp hiệu suất ghi kém hơn so với cơ sở dữ liệu được chuẩn hóa. - Chúng tôi thường khuyên bạn nên bình thường hóa cho đến khi đau, không chuẩn hóa cho đến khi nó hoạt động..
|