Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

DBMS의 무손실 및 손실 분해


DBMS의 분해는 테이블을 여러 테이블로 나누어 데이터베이스에서 중복, 이상 및 불일치를 제거합니다.

다음은 유형입니다 -

무손실 분해

조인을 사용하여 분해된 테이블에서 관계 R을 재구성하는 것이 가능한 경우 분해는 무손실입니다. 이것이 선호되는 선택입니다. 정보는 분해될 때 관계에서 손실되지 않습니다. 조인하면 동일한 원래 관계가 생성됩니다.

예를 들어 보겠습니다 -

Emp_ID
Emp_Name
임원 나이
Emp_Location
부서_ID
부서 이름
E001
야곱
29
앨라배마
Dpt1
작업
E002
헨리
32
앨라배마
Dpt2
HR
E003

22
텍사스
Dpt3
재무


위의 표를 두 개의 표로 분해:

Emp_ID
Emp_Name
임원 나이
Emp_Location
E001
야곱
29
앨라배마
E002
헨리
32
앨라배마
E003

22
텍사스


부서_ID
Emp_ID
부서 이름
Dpt1
E001
작업
Dpt2
E002
HR
Dpt3
E003
재무


이제 위의 두 테이블에 Natural Join이 적용됩니다 -

결과는 -

Emp_ID
Emp_Name
임원 나이
Emp_Location
부서_ID
부서 이름
E001
야곱
29
앨라배마
Dpt1
작업
E002
헨리
32
앨라배마
Dpt2
HR
E003

22
텍사스
Dpt3
재무


따라서 위의 관계는 무손실 분해 즉 정보의 손실이 없습니다.

손실 분해

이름에서 알 수 있듯이 관계가 둘 이상의 관계 스키마로 분해되면 원래 관계를 검색할 때 정보 손실이 불가피합니다.

예를 들어 보겠습니다 -

Emp_ID
Emp_Name
Emp_Age
Emp_Location
Dept_ID
부서 이름
E001
야곱
29
앨라배마
Dpt1
작업
E002
헨리
32
앨라배마
Dpt2
HR
E003

22
텍사스
Dpt3
재무


위의 표를 두 개의 표로 분해 -

Emp_ID
Emp_이름
Emp_Age
Emp_Location
E001
야곱
29
앨라배마
E002
헨리
32
앨라배마
E003

22
텍사스


Dept_ID
부서 이름
Dpt1
작업
Dpt2
HR
Dpt3
재무


이제 Emp_ID 이후로 위의 테이블에 조인할 수 없습니다. DeptDetails의 일부가 아닙니다. 관계.

따라서 위의 관계는 손실 분해가 있습니다.