Computer >> Máy Tính >  >> Lập trình >> MySQL

Phân hủy không mất dữ liệu và mất dữ liệu trong DBMS


Việc phân hủy trong DBMS loại bỏ dư thừa, bất thường và không nhất quán khỏi cơ sở dữ liệu bằng cách chia bảng thành nhiều bảng.

Sau đây là các loại -

Phân hủy không mất mát

Việc phân rã là không mất mát nếu khả thi để tạo lại quan hệ R từ các bảng đã phân rã bằng cách sử dụng Joins. Đây là sự lựa chọn ưu tiên. Thông tin sẽ không bị mất khỏi mối quan hệ khi được phân tách. Phép nối sẽ dẫn đến cùng một mối quan hệ ban đầu.

Hãy để chúng tôi xem một ví dụ -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
Jacob
29
Alabama
Dpt1
Hoạt động
E002
Henry
32
Alabama
Dpt2
Nhân sự
E003
Tom
22
Texas
Dpt3
Tài chính


Chia bảng trên thành hai bảng:

Emp_ID
Emp_Name
Emp_Age
Emp_Location
E001
Jacob
29
Alabama
E002
Henry
32
Alabama
E003
Tom
22
Texas


Dept_ID
Emp_ID
Dept_Name
Dpt1
E001
Hoạt động
Dpt2
E002
Nhân sự
Dpt3
E003
Tài chính


Bây giờ, kết hợp tự nhiên được áp dụng trên hai bảng trên -

Kết quả sẽ là -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
Jacob
29
Alabama
Dpt1
Hoạt động
E002
Henry
32
Alabama
Dpt2
Nhân sự
E003
Tom
22
Texas
Dpt3
Tài chính


Do đó, mối quan hệ trên có sự phân rã không mất mát, tức là không mất thông tin.

Phân hủy mất mát

Như tên cho thấy, khi một quan hệ được phân tách thành hai hoặc nhiều lược đồ quan hệ, việc mất thông tin là không thể tránh khỏi khi quan hệ ban đầu được truy xuất.

Hãy để chúng tôi xem một ví dụ -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
Dept_Name
E001
Jacob
29
Alabama
Dpt1
Hoạt động
E002
Henry
32
Alabama
Dpt2
Nhân sự
E003
Tom
22
Texas
Dpt3
Tài chính


Chia bảng trên thành hai bảng -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
E001
Jacob
29
Alabama
E002
Henry
32
Alabama
E003
Tom
22
Texas


Dept_ID
Dept_Name
Dpt1
Hoạt động
Dpt2
Nhân sự
Dpt3
Tài chính


Bây giờ, bạn sẽ không thể tham gia các bảng trên, vì Emp_ID không phải là một phần của DeptDetails quan hệ.

Do đó, quan hệ trên có sự phân rã mất mát.