Relational model

Sumin Kim·2022년 10월 19일
2

✔ Database

목록 보기
3/4

Relation model 의 개념

  • 데이터베이스 : 릴레이션(테이블)들의 모임

  • 릴레이션 : 투플(=행, 레코드) 들의 집합으로 표현 (2차원 테이블)

  • 투플 : 애트리뷰트(=열, 필드, 속성) 들로 구성

  • 도메인 : 원자들의 집합

    • 도메인은 실제 데이터 타입으로 명시함
  • 릴레이션 스키마

    • 릴레이션 이름 R 과 attribute A 들의 집합으로 R(A1,A2,...,An) 로 표기함
    • 차수 : 릴레이션의 attribute 갯수
    • n-투플이라고 부름
      • t = <v1, v2, ...,vn> ; 값 vi 는 dom(Ai)의 한 원소
    • R에 대한 릴레이션 혹은 릴레이션 인스턴스 r(R)
  • 투플의 집합 : r(R) = {t1, t2, ...tm}

  • r(R) ⊆ dom(A1)x...xdom(An) : r(R) 은 실세계의 특정 상태를 반영

🧐 릴레이션의 속성

  • 릴레이션에서는 투플의 순서는 무의미
  • 각 투플 내에서의 값들의 순서는 중요함!
  • 투플 내 필드값 : 나눌 수 없는 원자값들

Relation model 의 제약조건과 관계 데이터베이스 스키마

🧐 주요 제약조건

  1. 도메인 제약조건
    • 도메인과 관련된 데이터타입
    • 각 attribute A 의 값은 반드시 dom(A)에 속하는 원자값이어야함
    • 데이터 타입 : 정수, 실수와 같은 표준 숫자형, 문자열, 날짜, 화폐단위, 메모
  2. 키 제약조건
    • 데이터의 무결성을 유지하기 위한 중요한 수단
    • 슈퍼키 : 테이블에 존재하는 필드들의 부분집합이면서, 유일성 만족
    • 키 또는 후보키 : 슈퍼키 중에서 최소성을 만족하는 키, 기본키가 될 수 있는 후보들
    • 기본키 : 후보키 중 선택된 고유한 식별자, NULL 값 안됨, 주로 값이 잘 안바뀌거나 단순한 것 선택
    • 대체키 : 후보키 중 기본키로 선택된 것 제외 모두
    • 외래키 : 한테이블의 키 중 다른 테이블 레코드를 유일하게 식별할 수 있는 키 ; 중복된 값 O NULL 값 O
  3. 엔티티 무결성 제약조건
    • 어떤 기본 키 값도 널 값을 가질 수 없다는 제약조건
    • 모든 테이블이 기본키로 선택된 열을 가져야함 (고유한 값)
  4. 참조 무결성 제약조건
    • 참조관계에 있는 두 테이블의 데이터가 항상 일관된 값을 가지도록 유지
    • FK → PK 참조 경우, FK(외래키) 의 값은 null 을 가질 수 있음

🧐 관계형 데이터베이스 스키마

  • 관계 데이터베이스 스키마
    • 동일한 데이터베이스에 속하는 릴레이션 스키마들의 집합 S 와 무결성 제약조건 IC로 구성
    • S = {R1, R2,...,Rn}
  • 데이터베이스스키마 S의 관계데이터베이스 상태 (혹은 인스턴스)
    • 릴레이션 상태들의 집합

갱신연산과 트랜젝션 그리고 제약조건의 위반 처리

갱신연산을 실행하는 경우 스키마에 정의된 무결성 제약조건을 위반하지 않아야함

  • 삽입연산 :
    1. 삽입되는 투플에서 attribute 값이 domain에 없다면 도메인제약조건 위반
    2. t에서 기본 키의 값이 다른 투플에서 이미 존재한다면 키 제약조건 위반, NULL 이면 엔티티 제약조건 위반
    3. 외래 키의 값이 참조되는 릴레이션의 키 값으로 존재하지 않는다면 참조제약조건 위반
  • 삭제연산 :
    • 투플이 삭제되는 경우 다른테이블에서 참조하고 있는지 검사하고 그렇지 않는 경우에만 삭제함(참조 무결성)
    • 제약조건 위반 경우 취할 수 있는 옵션
      1. 삭제를 거부
      2. 삭제되는 투플을 참조하는 투플들까지 모두 삭제 (연쇄삭제)
      3. 삭제되는 투플을 참조하는 투플에서 외래키값을 널로 바꾸거나 다른 유효한 투플을 참조하도록 변경
  • 수정연산 :
    • 기본적으로 "삭제 후 삽입" 연산으로 간주 가능하므로 삽입, 삭제 문제점이 모두 나타남
    • 기본키나 외래키가 아닌 attribute값 변경은 문제없음

1개의 댓글

comment-user-thumbnail
2023년 3월 30일

정말 유용한 글입니다.
자주 포스팅해주세요

답글 달기