ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 릴레이션 특성, 제약조건
    Database 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는 데이터베이스 상태의 변화에도 항상 무결성 제약을 만족시키도록 해야 함

     

    'Database' 카테고리의 다른 글

    관계 대수의 일반 집합 연산  (0) 2021.03.30
    관계 데이터베이스  (0) 2021.03.23
    DBMS(2)  (0) 2021.03.23
    Database system  (0) 2021.03.16
    데이터 독립성, DBMS의 발전과정  (0) 2021.03.15
Designed by Tistory.