본문 바로가기

📒 Computer Science

[데이터 베이스] 데이터 종속성

데이터 논리적 표현

릴레이션 스키마의 설계

= 논리적 데이터베이스 설계

  1. 애트리뷰트들과 이들의 제약조건 (종속성)을 수집
  2. 수집된 결과를 명시된 제약조건에 따라 바람직한 여러 개의 릴레이션으로 분할 ⇒ 스키마 변환
    • 스키마 변환의 원리
      1. 정보 표현의 무손실
      2. 최소의 데이터 중복
      3. 분리의 원칙 : 독립된 관계성은 별도의 릴레이션으로 분리시켜 표현함

관계 모델을 이용하여 어떻게 현실 세계를 표현할 것인가 (고려사항)

  • 애트리뷰트, 엔티티, 관계성을 파악
  • 관련된 애트리뷰트들을 릴레이션으로 묶어야함
    • 애트리뷰트들 간의 관계성 (= 데이터 종속성) 고려하기
    • 효율적인 데이터 처리가 가능하도록
    • 데이터의 일관성
  • 변칙적 성질의 예방
    • 데이터 변경 시의 변칙(anomaly:이상)

이상 (anomaly)

  • 삭제 이상
    • 선택한 애트리뷰트를 삭제하게되면 해당 튜플 다 삭제 → 연쇄 삭제에 의한 정보 손실
    • ex) 200번 학생이 과목 ‘c413’ 등록을 취소하면 3학년이라는 정보도 함께 삭제됨
  • 삽입 이상
    • 불필요한 정보를 함께 등록하지 않는 한 삽입이 불가능 (튜플 개수만큼의 정보를 삽입해야하는데 튜플의 일부만 등록? 불가능함) → 원하지 않는 정보의 강제 삽입
    • ex) 600번 학생이 2학년이라는 사실을 삽입, 어떤 과목에 600번 학생을 추가할지 몰라서 불가능
  • 갱신 이상
    • 중복 데이터의 일부 갱신으로 정보의 모순성이 발생(데이터 불일치 발생)
    • ex) 400번 학생의 학년을 4에서 3으로 변경 ⇒ 400번 학생이 포함된 모든 튜플의 정보를 바꿔줘야 이상 현상이 안 생김

이상의 원인

하나의 개체에 속한 애트리뷰트들 간에 존재하는 여러개의 종속관계를 하나의 릴레이션으로 표현하기 때문 ⇒ 종속 관계이기 때문에 이상 현상 발생

 

이상의 해결

애트리뷰트들 간의 종속 관계를 분해하여 각각 하나의 릴레이션으로 표현 ⇒ 정규화 과정

 

함수 종속(FD)

함수 종속의 정의

: 어떤 릴레이션 R에서, 애트리뷰트 X의 값 각각에 대해 애트리뷰트 Y의 값이 최대 하나만 연관될 때 Y는 X에 함수종속이라고 한다. X → Y (X : 결정자, Y : 종속자)

- X나 Y는 각각 두 개 이상의 애트리뷰트 집합이 될 수 있다. 

- 릴레이션 R에서 애트리뷰트 X가 키이면, R의 모든 애트리뷰트 Y에 대해 X → Y 성립

- 함수종속 X → Y에서 X가 반드시 기본키(유일값)라는 것을 요건으로 하지 않음, 어느 한 값에 대응되는 Y값을 갖는 튜플이 둘 이상 존재 가능

 

함수 종속 다이어그램

완전 함수 종속

X' ⊂ X이고 X' → Y가 성립되는 애트리뷰트 X'가 존재하지 않는 경우를 말함

즉, X → Y 만 가능하다.

부분 함수 종속

X' ⊂ X이고 X' → Y가 성립되는 애트리뷰트 X'가 존재하는 경우를 말함

X → Y, X' → Y가 모두 가능하다.

 

즉,

"학년"은 "학번"에 완전 함수 종속

"성적"은 {학번, 과목번호}에 완전 함수 종속

"학년"은 {학번, 과목번호}에 부분 함수 종속