본문 바로가기
DataBase

이상현상(Anomaly)과 함수 종속성(Functional Dependency)

by 스파이디웹 2020. 8. 23.
728x90

-이상현상의 개념

이상현상(anomaly)이란 테이블에 투플을 삽입할 때 부득이하게 NULL 값이 입력되거나, 삭제 시 연쇄삭제 현상이 발생하거나 , 수정 시 데이터의 일관성이 훼손되는 현상을 말한다.

 

■삭제이상(연쇄 삭제 문제 발생)

-삭제이상(deletion anomaly)이란 투플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상

 

ex)

장미란 학생이 스포츠경영학 과목을 수강 취소하여 DELETE 문으로 세 번째 투플을 삭제하였다.

그런데 삭제 후 장미란 학생의 학생번호, 학과, 주소 정보가 없어졌다.

스포츠경영학 수강을 취소하려했던 의도와 달리 장미란 학생의 기본 정보가 없어진 것이다.

 

■삽입이상(NULL 값 문제 발생)

-삽입이상(insertion anomaly)이란 투플 삽입 시 특정 속성에 해당하는 값이 없어 NULL값을 입력해야 하는 현상이다.

 

ex)

박세리 학생이 체육학과에 입학하여 INSERT 문으로 (학생번호, 학생이름, 학과, 주소) 정보를 삽입하였다.

그런데 아직 수강신청은 하지 않은 상태라 (강좌이름, 강의실) 속성에는 NULL 값을 입력하였다.

여기서 NULL 값은 특별히 처리되므로 문제가 될 수 있다. 따라서 가능한 테이블에 없어야 한다.

 

■수정이상(불일치 문제 발생)

-수정이상(update anomaly)이란 투플 수정 시 중복된 데이터의 일부만 수정되어 데이터의 불일치 문제가 일어나는 현상

 

ex)

박지성 학생의 주소가 대한민국 서울로 바뀌었다. 보통 UPDATE 문으로 주소를 수정할 경우

두 군데 모두 바뀌지만, 만약 한 군데만 바뀐다면 문제가 된다. SELECT 문으로 조회했을 때 두 군데가 조회되어 데이터의 일관성이 깨지는 불일치 문제가 발생하기 때문이다.


-함수 종속성의 개념

이상현상이 발생하는 테이블을 수정하여 정상으로 만드는 과정을 정규화(Normalization)라고 한다.

정규화를 하기 위해서는 먼저 테이블을 분석하여 기본키와 함수 종속성을 파악해야 한다.

 

-종속한다의 의미

어떤 속성 A의 값을 알면 다른 속성 B의 값이 유일하게 정해지는 의존 관계를

'속성 B는 속성 A에 종속한다(dependent)' OR

'속성 A는 속성 B를 결정한다(determine)' 라고한다.

'A -> B'로 표기한다.

'A는 B의 결정자'이다.

 

-함수 종속성(FD, Functional Dependency)

릴레이션 R과 R에 속하는 속성의 집합 X,Y가 있을 때, X 각각의 값이 Y의 값 한 개와 대응이 될 때 'X는 Y를 함수적으로 결정한다'라고 하고 X->Y로 표기한다. 이때 X를 결정자(determinant)라고 하고, Y를 종속 속성(dependent attribute)이라고 한다.

함수 종속성은 보통 릴레이션 설계 때 속성의 의미로부터 정해진다.

 

-함수 종속성 규칙(functional dependency rule)

X,Y,Z가 릴레이션 R에 포함된 속성의 집합이라고 할 때,함수 종속성에 관한 다음과 같은 규칙이 성립한다.

●부분집합(subset)규칙 : if Y ⊆ X, then X -> Y

●증가(augmentation)규칙 : if X -> Y, then XZ -> YZ

●이행(transitivity)규칙 : if X -> Y and Y -> Z, then X  -> Z

 

위 세 가지 규칙으로부터 부가적으로 규칙을 얻는다.

 

●결합(union)규칙 : if X -> Y and X -> Z, then X-> YZ

●분해(decomposition)규칙 : if X -> YZ, then X -> Y and X -> Z

●유사이행(psudotransitivity)규칙 : if X -> Y and WY -> Z,then WX -> Z

 

-함수 종속성과 기본키

릴에이션의 함수 종속성을 파악하기 위해서는 우선 기본키를 찾아야 한다.

 

기본키가 함수 종속에서 어떤 역할을 하는지 알면 이사현상을 제거하는 정규화 과정을 쉽게 이해할 수 있다.

 

●릴레이션 R(K,A1,A2,A3,...,An)에서 K가 기본키이면, K -> R이 성립한다. 즉 기본키는 릴레이션의 모든 속성에 대해 결정자(determinant)이다.

 

-이상현상과 결정자

이상현상은 한 개의 릴레이션에 두 개 이상의 정보가 포함되어 있을 때 나타난다.

 

이상현상은 기본키가 아니면서 결정자인 속성(비후보키 결정자 속성)이 있을 때 발생한다.

728x90

댓글