반응형

 

 

 

 

 

논리적 설계 단계에서 데이터 중복 문제는 테이블을 분해함으로써 해결이 가능하다. 

이 때, 데이터 중복의 발생 여부를 파악하는 데에 사용되는 것이 '함수적 종속'이다.

 

1. 함수적 종속이란?

: 무결성 제약의 한 종류로, 테이블 내 필드 값들 사이의 관계성을 표현한다.

 

< 정의 >

테이블 R에서 필드 X값이 동일한 임의의 레코드에 대해 필드 Y의 값도 동일하다면 "Y는 X에 함수적으로 종속된다"고 한다.

X -> Y (결정자, 종속자)

라고 표현한다.

 

ex)

 

 

 

 

 

 

 

2. 함수적 종속의 특징

: 다대일 또는 일대일 관계이다.

: 결정자 또는 종속자가 두 개 이상의 필드를 구성할 수도 있다.

: 기본키가 있으면 다른 필드들이 기본키에 함수적으로 종속된다.

 

 

 

 

1) 포함 규칙

ex) (A, B) -> A

 

 

2) 분해 규칙

 

(A, B) -> C 가 성립한다고 해서, A->C, A->B 가 만족되지는 않음

 

 

 

3) 합성 규칙

 

 

 

 

 

4) 이행 규칙

 

 

 

 

 

 

 

3. 키와 함수적 종속의 관계

 

: 테이블의 모든 필드는 키(수퍼키포함)에 함수적으로 종속된다. 즉, 함수적 종속은 수퍼키의 개념을 일반화한 것이다.

 

 

 

 

4. 함수적 종속의 유지 방법

 

: 기본키가 아닌 필드에 대해서는 DBMS가 함수적 종속을 보장해주지 않는다.

: 따라서 이러한 문제가 발생하지 않도록 테이블을 정의해야 한다.  =>  정규화

 

 

 

 

 

 

 

 

5. 데이터의 중복

 

: 논리적 설계 결과에서 하나의 테이블에 하나의 필드에서 데이터 중복 현상 발생 가능하다.

-> 이는 < 삽입 이상, 삭제 이상, 수정 이상 > 의 이상현상을 발생시킨다.

 

 

 

 

1) 삽입 이상

: 데이터를 삽입할 수 없거나, 원치 않는 데이터를 삽입

 

ex_) 새로운 학과 정보,  ('930', '물리학과', '301호') 데이터를 넣으려면 ?

 

-> stu_id는 기본키이므로 null값이 허용되지 않는다.

이처럼 새로운 학과 정보를 넣고 싶은데 다른 정보들이 더 필요하다면 데이터를 삽입할 수 없다.

 

 

 

 

 

 

2) 삭제 이상

: 삭제하지 말아야 하는 정보까지 함께 삭제하는 현상

 

ex) 학번이 '1292501' 인 학생 정보를 삭제할 경우, 

-> '전자공학과'에 대한 정보도 사라지게 된다.

 

 

 

 

 

3) 수정 이상

: 중복된 정보의 일부만 수정하여 정보의 불일치가 발생하는 현상

 

ex) '컴퓨터공학과'의 office를 211호로 변경하고자 할 때,

 

-> 한 레코드만 수정하면 정보의 불일치가 발생한다.

 

 

 

 

 

4) 해결 방안

 

정규화 !

student 테이블에서 학과 정보를 분리하여 department 테이블을 생성한다.

-> dept_id 필드를 외래키로 설정하여 학과 정보 연결

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

+ Recent posts