Database

릴레이션 특성, 제약조건

Choi G.H 2021. 3. 29. 11:51
반응형

릴레이션의 특성

 

1) 투플의 유일성(uniqueness of tuples)

릴레이션 = 투플들의 집합(set)

 

2) 투플의 무순서성(no ordering of tuples): 행의 순서 관계 없음

릴레이션: 추상적 개념 <= 투플들의 집합

테이블 : 구체적 개념

 

3) 애트리뷰트의 무순서성(no ordering of attributes): 열의 순서 관계 없음

릴레이션 스키마 -> 애트리뷰트들의 "집합"

투플: <attribute : value> 쌍의 집합

 

4) 애트리뷰트의 원자성(atomicity)

  • 애트리뷰트 값은 원자 값(atomic value)
    • 논리적으로 분해 불가능
  • 정규화 릴레이션(normalized relation)
    • 애트리뷰트 값으로 원자 값만 허용되는 릴레이션
    • 비정규화 릴레이션은 분해(decomposition)를 통해 정규화
      동등한 의미를 유지
  • 널 값(null value)도 원자 값으로 취급
    • unknown, inapplicable
  • 도메인
    • 단순 도메인(원자값)
    • 복합 도메인(composite domain): 값을 하나의 단위로 취급

릴레이션의 정규화

(a) 여러개의 composite value가 한 셀에 있다. -> 원자적이지 않다. 비정규 릴레이션

(b) 한 셀에 하나의 값을 가진다. -> 원자적이다. 정규 릴레이션

 

관계 데이터베이스 개념

  • 관계 데이터베이스
    • 테이블들의 집합
    • 데이터베이스를 시간에 따라 그 내용이 변할 수 있는 테이블 형태로 표현
  • 관계 데이터베이스 스키마(relational database schema)
    • ={릴레이션 스키마} + {무결성 제약조건}
  • 관계 데이터 모델 ↔ 프로그래밍 시스템
    • 릴레이션↔파일
    • 투플↔레코드(레코드 어커런스)
    • 애트리뷰트↔필드(필드 타입)
  • Notes: 관계 데이터베이스라고 할 때 데이터가 물리적 테이블 형태로 저장된다는 것을 의미하지는 않음

 

대학 관계 데이터베이스

유일성: unique한 key값으로 설정한다.

무순서성: 100,200,300의 학번을 섞어도 릴레이션은 같다.

 

cardinality: 튜플의 수

degree: 속성의 수

 

데이터베이스 키(Key)

    • 각 투플을 유일하게 식별할 수 있는 애트리뷰트 집합(set of attributes)
    • +minimality
  • 후보 키(candidate key)
    • 릴레이션 R(A1,A2,...An)에 대한 애트리뷰트 집합, K({Ai,Aj,...,Ak})로서 다음 두 성질을 만족
      1. 유일성: 각 투플에 대해 K({Ai,Aj,...,Ak})의 값(<Vi,Vj,...,Vk>)은 유일
      2. 최소성(miniality): K는 각 투플을 유일하게 식별하는데 필요한 애트리뷰트만 포함
  • 슈퍼 키(super key)
    • 유일성은 만족하지만 최소성은 만족하지 않는 애트리뷰트의 집합
  • 기본 키(primary key)
    • 후보 키(candidate key) 중에서 지정된 하나의 키 //대통령
      • 데이터베이스 설계자가 지정
    • 각 투플에 대한 기본 키 값은 항상 유효한 값이어야 함
      • null값이 허용되지 않음
  • 대체 키(alternate key)
    • 후보키 중에서 기본 키를 제외한 나머지 후보 키
  • 외래 키(foreign key)  // 망명한 왕족
    • 릴레이션 R의 애트리뷰트 집합 FK가 릴레이션 S의 기본키일 때 이 FK는 R의 외래 키이다.
    • (FK의 도메인) = (S의 기본 키의 도메인)
    • FK의 값은 S에 존재하는 값이거나 null
    • R과 S가 같은 릴레이션일 수도 있음
    • R을 참조 릴레이션(referencing relation), S를 피참조 릴레이션(referenced relation)이라 함
      • 릴레이션 R은 FK를 통해 릴레이션 S를 참조
  • R≠S인 경우

  • R=S인 경우

 

ex) 위 학생 테이블의 예시에서:
학번 이름 모두 unique하고 minimal하다면

후보키= 학번, 이름

학번키를 기본키로 정했다면

대체키, 후보키 = 이름

특정키에 사족을 갖다붙이면 super key가 된다.

외래키: 등록 table에서 학번 속성은 minimality, uniqueness 아무것도 만족시키지 못한다. 하지만 학생 table에서 기본키로 쓰인다. --> 등록 테이블에서 학번은 외래키다.

 

무결성 제약(Integrity Constraints)

  1. 개체 무결성(entity integrity)
    • 기본 키 값은 언제 어느 때고 null 값을 가질 수 없다.
    • Notes: null 값
      • 정보 부재를 명시적으로 표현하는 특수한 데이터 값
        1. 알려지지 않은 값(unknown value)
        2. 해당 없음(inapplicable)
  2. 참조 무결성(referectial integrity)
    • 외래 키 값은 반드시 피참조 릴레이션의 기본 키 값이거나 null이다.
  • 이 무결성 제약조건은 데이터베이스 상태(database state)가 항상 만족시켜야 될 제약조건임

무결성 제약조건

  • 구조적 제약조건 constructural constraints
    • 개체 무결성: PK는 null값을 가질 수 없다. 학생의 학번 null이 되면 안된다.
    • 참조 무결성: FK값은 PK값을 가져야 한다.
  • 의미적 semantic constraints
    • 도메인 무결성: '학생'은 1-4의 값
    • 함수종속 FD: 학번->이름. ex) 100->나수영
    • 다치종속 MVD - 하나의 속성을 알면 여러 값을 알 수 있다.

무결성 제약 2 (Integrity Constraints)

  • 데이터베이스 상태(Database state)
    • 어느 한 시점에 데이터베이스에 저장되어 있는 모든 데이터 값(투플)
    • 데이터베이스 인스턴스(database instance)
      • 데이터베이스 스키마에 포함되어 있는 모든 릴레이션들의 인스턴스 집합
    • 데이터베이스 상태의 계속적인 변화
      • 삽입, 삭제, 변경 연산
    • DBMS는 데이터베이스 상태의 변화에도 항상 무결성 제약을 만족시키도록 해야 함

 

반응형