2 minute read

관계 데이터 모델의 기본 개념

개념적 구조를 논리적 구조로 표현하는 논리적 데이터 모델이다. 하나의 개체에 대한 데이터를 하나의 릴레이션에 저장한다.

관계 데이터 모델의 기본 용어

  • 릴레이션(relation)
    • 하나의 개체에 관한 데이터를 2차원 테이블의 구조로 저장한 것이다.
    • 파일 관리 시스템 관점에서 파일(file)에 대응한다.
  • 속성(attribute)
    • 릴레이션의 열이다.
    • 파일 관리 시스템 관점에서 필드(field)에 대응한다.
  • 튜플(tuple)
    • 릴레이션의 행이다.
    • 파일 관리 시스템 관점에서 레코드(record)에 대응한다.
  • 도메인(domain)
    • 하나의 속성이 가질 수 있는 모든 값의 집합이다.
    • 속성 값을 입력 및 수정할 떄 적합성의 판단 기준이 된다.(char에 int를 넣을 수 없다.)
    • 일반적으로 속성의 특성을 고려한 데이터 타입으로 정의한다.
  • 널(null)
    • 속성 값을 아직 모르거나 해당되는 값이 없음을 표현한다.
  • 차수(degree)
    • 하나의 릴레이션에서 속성의 전체 개수를 말한다.
  • 카디널리티(cardinality)
    • 하나의 릴레이션에서 튜플의 전체 개수를 말한다.

릴레이션의 구성

  • 릴레이션 스키마(relation schema)
    • 릴레이션의 논리적 구조
    • 릴레이션의 이름과 릴레이션에 포함된 모든 속성 이름으로 정의
      예) 고객(고객아이디, 고객이름, 나이, 등급, 직업, 적립금)
    • 릴레이션 내포(relation intension)라고도 한다.
    • 정적인 특징이 있다.
  • 릴레이션 인스턴스(relation instance)
    • 어느 한 시점에 릴레이션에 존재하는 튜플들의 집합
    • 릴레이션 외연(relation extension)이라고도 한다.
    • 동적인 특징이 있다.

데이터베이스의 구성

  • 데이터베이스 스키마(database schema)
    • 데이터베이스의 전체 구조
    • 데이터베이스를 구성하는 릴레이션 스키마의 모음
  • 데이터베이스 인스턴스(database instance)
    • 데이터베이스를 구성하는 릴레이션 인스턴스의 모음

릴레이션의 특성

  • 튜플의 유일성
    하나의 릴레이션에는 동일한 튜플이 존재할 수 없다.
  • 튜플의 무순서
    하나의 릴레이션에서 튜플 사이의 순서는 무의미하다.
  • 속성의 무순서
    하나의 릴레이션에서 속성 사이의 순서는 무의미하다.
  • 속성의 원자성
    속성 값으로 원자 값만 사용할 수 있다(다중값을 가지는 속성값을 사용할 수 없다).

키(key)

릴레이션에서 튜플들을 유일하게 구별하는 속성 또는 속성들의 집합을 말한다.

  • 키의 특성
    • 유일성(uniqueness)
      하나의 릴레이션에서 모든 튜플은 서로 다른 키 값을 가져야 한다.
    • 최소성(minimality)
      꼭 필요한 속성들로만 키를 구성한다.

키의 종류

고객 릴레이션            
고객아이디 고객이름 나이 등급 직업 적립금 주소
A 영희 12 vip 학생 12000 서울시

고객아이디는 유일하다

  • 슈퍼키(super key)
    유일성을 만족하는 속성 또는 속성들의 집합
    예) 고객 릴레이션의 슈퍼키: 고객아이디, (고객아이디, 고객이름), (고객이름, 주소) 등

  • 후보키(candidate key)
    유일성과 최소성을 만족하는 속성 또는 속성들의 집합
    예) 고객 릴레이션의 후보키: 고객아이디, (고객이름, 주소) 등
    (고객아이디, 고객이름)은 고객아이디는 중복이 없으니 고객아이디 만으로도 식별이 가능하므로 최소성을 만족하지 않는다.
    (고객이름, 주소)는 고객이름이 중복일 수 있으니 주소를 함께 사용한다.

  • 기본키(primary key)
    후보키 중에서 기본적으로 사용하기 위해 선택한 키
    • 널값을 가질 수 있는 속성이 포함된 후보키는 부적합
    • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
    • 단순한 후보키를 선택
      예) 고객아이디, (고객이름, 주소)중에 고객아이디가 적합하다.
  • 대체키(alternate key)
    기본키로 선택되지 못한 후보키
    예) 고객 릴레이션의 대체키: (고객이름, 주소)

  • 외래키(foreign key)
    다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합
    릴레이션들 간의 관계를 표현

    참조하는 릴레이션: 외래키를 가진 릴레이션(주문 릴레이션)
    참조되는 릴레이션: 외래키가 참조하는 기본키를 가진 릴레이션(고객 릴레이션)
    • 두 릴레이션의 관계를 맺어 주문 릴레이션의 튜플과 연관성 있는 고객 릴레이션의 튜플을 연결할 수 있다.
    • 외래키 속성과 그것이 참조하는 기본키 속성의 이름은 달라도 되지만 도메인은 같아야 한다.
    • 외래키는 기본키와 연결한다 그래야 유일성을 보장할 수 있다.
    • 하나의 릴레이션에는 외래키가 여러 개 존재할 수 있고 외래키를 기본키로 사용할 수도 있다.
    • 같은 릴레이션의 기본키를 참조하는 외래키도 정의할 수 있다. 그리고 외래키 속성은 널 값을 가질 수 도 있다.

무결성 제약조건(integrity constraint)

데이터의 무결성-데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것-을 보장하고 일관된 상태로 유지하기 위한 규칙

  • 무결성 제약 조건
    • 개체 무결성 제약조건 기본키를 구성하는 모든 속성은 널 값을 가질 수 없다.
    • 참조 무결성 제약조건
      외래키는 참조할 수 없는 값을 가질 수 없다.(주문고객 속성이 고객아이디 속성을 참조할 때 고객아이디에 없는 아이디를 주문고객에 넣을 수 없다.)

외래키 속성이 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것은 아니다.(A고객이 주문을 하고 회원탈퇴를 하면 주문 릴레이션에 NULL로 남는다.)

Leave a comment