관계 데이터 모델(데이터베이스)

심채운·2023년 6월 20일
0

학점은행제 컴공

목록 보기
12/40

릴레이션

관계(Relation)는 집합론에 기반한 수학적 개념으로 비형식적으로는 테이블을 뜻함. 릴레이션은 투플(행,로우,레코드,인스턴스)들의 집합으로 표현되며, 투플은 애트리뷰트(열,컬럼,필드,속성)들로 구성됨.

도메인

속성이 가질 수 있는 값의 집합. 실제 데이터 타입(int, float, char, varchar(10)등)으로 명시한다.

무결성 제약조건

모든 릴레이션 인스턴스들이 항상 만족해야 하는 조건이다. 간단히 "제약조건"이라고도 하며 도메인, 키, 참조 제약조건 등이 있다.

관계 모델의 개념

관계형 모델

  • 관계는 집합론에 기반한 수학적 개념
  • 비형식적으로 릴레이션은 테이블로 간주될 수 있음
  • 관계모델에서 데이터베이스는 릴레이션(테이블)의 집합으로 표현됨
  • 릴레이션은 투플들의 집합으로 표현
  • 투플은 애트리뷰트들로 구성

릴레이션 관련 용어

릴레이션의 키

  • 각 릴레이션은 포함하고 있는 투플들을 유일하게 구별할 수 있또록 하는 속성을 가지고 있어야 함, 이 속성을 키 라고 함
  • ex) STUDENT 테이블의 학번 속성
  • 때때로 릴레이션의 의미와는 아무 관계없는 행번호나 순차번호를 삽입하여 키로 사용하기도 함, 이런 키들을 인공키(Artificial key) 또는 대행키(Surrogate key)라고 함

릴레이션 스키마(구조)

  • 릴레이션 이름 R과 속성 Ai들의 집합으로 표기 R(A1,A2,...,An)
  • 키 속성에는 밑줄을 그음

도메인

  • 속성이 가질 수 있는 값의 집합
  • Name 속성의 도메인 : 개인 이름들의 집합, 문자열
  • Age 속성의 도메인 : 사원들 나이의 집합, 정수
  • 실제 데이터 타입(int(정수), float(실수), char(문자), varchar(10)등)으로 명시

릴레이션 R(A1, A2, ... , An)의 투플

  • 속성의 갯수에 맞춰 'n-투플' 이라고 함
  • 순서화된 값들의 집합 t=<v1,v2, ..., vn>
  • 값 vi는 dom(Ai)의 원소임

릴레이션 R의 인스턴스 r(R)

  • 투플들의 집합 r(R) = {t1, t2, ..., tm}
  • r(R) ⊆ dom(A1)×...× dom(An)
  • r(R) 은 실 세계의 특정 상태를 반영

릴레이션에서 투플의 순서

  • 릴레이션에서 투플의 순서는 의미가 없음
  • 집합에서 원소의 순서가 무의미한 것과 마찬가지 임

투플 내에서 값들의 순서

  • n-투플은 n개 값의 리스트이며,투플 내에서 값들의 순서는 지켜져야 함
  • 그러나 각 속성과 값이 서로 대응될 수 있다면 값들의 순서는 중요하지 않을 수 있음
  • 예를 들어, 하나의 투플을 (속성, 값) 쌍들의 집합으로 표현하면 속성과 값은 서로 대응될 수 있으며 이때는 값의 순서가 중요하지 않음

투플 내의 속성 값

  • 더 이상 나눌 수 없는 원자 값들(Atomic Value)임
  • 값을 알 수 없거나(Unknown) 해당되는 값이 없을 때 (Not applicable)에는 null 이라는 특수 값을 사용함
  • ER 모델에서의 다치 속성(Multi-valued Attribute)과 복합 속성(Composite Attribute)을 관계 모델에서는 허용되지 않음

관계 모델의 표기

  • 차수가 n인 릴레이션 스키마 R은 R(A1, A2, ..., An)으로 표기함
  • 릴레이션 r(R)의 n-투플 t는 t = <v1, v2, ..., vn>으로 표기함, 여기서 vi는 속성 Ai의 값임
  • t[Ai] 또는 t.Ai 는 t 에서 속성 Ai 의 값 vi 를 가리킴
  • 대문자 Q, R, S 등은 릴레이션 이름을 나타냄
  • 소문자 q, r, s 등은 릴레이션 상태를 나타냄
  • 소문자 t, u, v 등은 투플을 나타냄
  • ‘STUDENT’ 처럼 릴레이션 스키마의 이름은 릴레이션의 현재 투플들의 집합, 즉 현재의 릴레이션 상태를 가리킴
  • 반면에 ‘STUDENT(Name, SSN, ...)’ 는 릴레이션 스키마를 가리킴

관계 모델의 제약조건

무결성 제약조건

  • 모든 릴레이션 인스턴스들이 항상 만족해야 하는 조건
  • 간단히 ‘제약조건’ 이라고도 함
  • 주요 제약조건
    • 도메인 제약조건(Domain constraints)
    • 키 제약조건(Key constraints)
    • 참조 제약조건(Referential constraints)

도메인 제약조건

  • 각 투플에서 속성 A 에 해당 되는 값은 반드시 A의 도메인 dom(A)에 속하는 원자값이어야 함
  • 도메인과 관련된 데이터 타입
    • 정수, 실수와 같은 표준 숫자형
    • 문자, 고정길이 문자열, 가변길이 문자열
    • 날짜, 시간 등

키 제약 조건

  • 엔티티 무결성 제약 조건이라고도 함
  • 키 속성에 해당되는 값은 유일해야 하며, null 값을 가질 수 없다는 제약 조건
    • 기본키가 각 투플들을 식별하는 데에 이용되기 때문
  • 참고로 R의 기본키에 속하지 않는 속성들도 null 값을 가질 수 없도록 제한할 수 있음
    • 릴레이션의 속성을 정의할 때 not null 로 명시

키의 종류

  • 유일성(Uniqueness)과 최소성(Minimality)을 갖는 키
    • 후보키(CK; Candidate Key) 모든 가능한 키 집합
    • 주키(PK; Primary Key) : 설계자가 릴레이션 상의 엔티티들을 유일하게 구별하기 위해 후보 키 중에서 선택한 키, 기본적으로 인덱스를 구성할 때 사용됨
    • 대체키/이차키(AK; Alternate Key) : 주 키로 선택 받지 못한 키, 인덱스 구성에 사용될 수도 있음
  • 유일성만 가지는 키
    • 수퍼키(Super Key) : Key를 포함하는 수퍼셋(Super Set)
  • 유일성을 갖지 않으며 단지 참조용으로만 쓰이는 키
    • 외래키(Foreign Key) : 참조하는 릴레이션으로부터 빌려온 키

참조 제약조건

  • 하나의 릴레이션 R에서 외래키 FK 의 값으로 다른 릴레이션 S의 기본키 PK 값을 참조하는 경우에 R과 S는 참조 무결성 제약 조건을 가진다고 함
  • t1[FK] = t2[PK]이면 R의 투플 t1이 S의 투플 t2를 참조한다고 하며, FK를 외래키(Foreign key)라고 부름
  • R을 참조한(Referencing) 릴레이션, S를 참조된(Referenced) 릴레이션이라고 부름
  • FK 의 값은 참조하고 있는 릴레이션의 PK 에 나타나는 값들만 가능함, 하지만 참조 관계가 없다면 FK가 null 값을 가질 수도 있음
  • 앞서 소개된 키 제약조건과 도메인 제약조건은 하나의 릴레이션에 대한 제약조건이지만, 참조 무결성은 두 릴레이션에 대한 제약조건임을 유의해야 함
  • 스키마 다이어그램에서 참조 무결성 제약조건은 R1.FK에서 R2.PK 로의 화살표로 표시함

관계 데이터베이스 스키마

RDB 스키마와 RDB 인스턴스

  • 릴레이션 스키마들의 집합 S와 무결성 제약조건 IC로 구성됨
    • 릴레이션 스키마 집합 S를 데이터베이스 이름이라 함
    • S = {R1, R2, ..., Rn}
  • RDB 인스턴스(/상태)
    • 릴레이션 상태들의 집합
profile
불가능, 그것은 사실이 아니라 하나의 의견일 뿐이다. - 무하마드 알리

0개의 댓글