관계 데이터 모델의 개념

초보개발·2022년 3월 24일
0

Database

목록 보기
5/10

릴레이션

관계 데이터 모델에서 하나의 개체에 관한 데이터를 릴에이션 하나에 담아 데이터베이스에 저장한다.

속성

릴레이션의 열을 속성, 애트리뷰트(attribute)라고 부른다.

투플

릴레이션의 행을 투플(tuple)이라고 부른다.

도메인

속성 하나가 가질 수 있는 모든 값의 집합을 해당 속성의 도메인이라고 한다. 관계 데이터 모델에서는 더는 분해가 불가능한 원자 값만 속성 값으로 사용가능하다.

null 값

릴레이션에 있는 특정 투플의 속성 값을 모르거나 적합한 값이 없을 경우, null이라는 값을 사용한다. null은 특정 속성에 해당되는 값이 없음을 나타내므로 0과 공백과는 다르다.

차수

하나의 릴레이션에서 속성의 전체 개수를 릴레이션의 차수라고 한다. 모든 릴레이션은 최소 1이상의 차수를 유지해야 한다. 릴레이션의 차수는 일반적으로 자주 변하지 않는다.

카디널리티

하나의 릴레이션에서 투플의 전체 개수를 릴레이션의 카디널리티라고 부른다. 카디널리티는 릴레이션에 투플이 삭제되거나 추가될 수 있어서 자주 변한다.

릴레이션 스키마

릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조이다. 릴레이션 스키마를 보면 릴레이션의 이름과 속성을 알 수 있어 릴레이션 내포(relation intension)이라고도 부른다.

릴레이션 이름(속성1, 속성2, ...)

릴레이션 인스턴스

릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 투플들의 집합이다. 릴레이션 외연(relation extension)이라고도 부른다. 인스턴스는 스키마와 달리 투플의 삽입, 삭제, 수정이 자주 발생한다는 동적인 특징을 갖고 있다.

릴레이션의 특성

투플의 유일성

하나의 릴레이션에는 동일한 투플이 존재할 수 없다.

투풀의 무순서

하나의 릴레이션에서 투플 사이의 순서는 의미가 없다.

속성의 무순서

하나의 릴레이션에서 속성 사이의 순서는 뒤바껴도 의미가 없다.

속성의 원자성

모든 속성 값은 원자 값만 가질 수 있다.

키의 종류

키(key)는 관계 데이터 모델에서 중요한 제약조건을 정의한다. 또한 투플을 처리하는 데 중요한 역할을 한다.

슈퍼키

유일성의 특성을 만족하는 속성 또는 속성들의 집합이다.
유일성은 키가 갖추어야할 기본 특성으로 하나의 릴레이션에서 키로 지정된 속성 값은 투플마다 달라야 한다는 의미이다.

유일성은 만족하지만 최소성은 만족하지 못하는 키이다.

후보키

유일성과 최소성을 만족하는 속성 또는 속성들의 집합이다.
최소성은 꼭 필요한 최소한의 속성들로만 키를 구성하는 특성이다.
후보키가 되기 위해 만족해야하는 유일성, 최소성 특성은 새로운 투플이 삽입되거나 기존 투플의 속성 값이 변경되어도 유지되어야 한다. 또한, 릴레이션의 인스턴스만 보고 유일성과 최소성을 판단해서는 안된다.

기본키

후보키 중 기본적으로 사용할 키로 선택된 키이다.

  • 널 값을 가질 수 없다.
  • 값이 자주 변경될 수 있는 속성이 포함된 후보키는 부적합
  • 단순한 후보키를 기본키로 선택

대체키


후보키 중 기본키를 제외한 나머지 키를 말한다. 보조키라고도 불린다.

외래키

외래키는 어떤 릴레이션에 소속된 속성 또는 소성 집합이 다른 릴레이션의 기본키가 되는 키이다. 즉, 다른 릴레이션의 기본키를 그대로 참조하는 속성의 집합이 외래키이다.

외래키는 반드시 다른 릴레이션의 기본키를 참조해야 하며 외래키의 도메인은 참조되는 기본키와 같게 정의되어야 한다. 하지만 외래키는 기본키가 아니기 때문에 null 값을 가질 수 있고 서로 다른 투플이 같은 값을 가질 수도 있다.

관계 데이터 모델의 제약 조건

1. 개체 무결성 제약조건 - 기본키

개체 무결성 제약조건은 기본키를 구성하는 모든 속성은 null 값을 가지면 안된다는 규칙이다. 기본키로 릴레이션에 포함된 투플을 유일하게 구별하는데, null 값이 포함되어 있다면 투플의 유일성을 판단할 수 없어 기본키의 목적을 상실하게 된다.

2. 참조 무결성 제약조건 - 외래키

참조 무결성 제약조건은 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙이다. 외래키는 다른 릴레이션의 기본키를 참조하는 속성이고 릴레이션 간의 관계를 표현한다. 그런데 외래키가 상관없는 값을 갖고 있게 되면 두 릴레이션을 연관시킬 수가 없어져 외래키의 본래 의미가 없어진다. 따라서, 외래키는 자신이 참조하는 릴레이션에 기본키 값으로 존재하는 값만을 가져와야 한다.

0개의 댓글