관계 (데이터베이스)
동일한 구조로 이루어진 튜플의 집합 / From Wikipedia, the free encyclopedia
관계 모델에서 관계(relation)는 동일한 구조로 이루어진 튜플의 집합을 말한다. 값으로서의 관계를 ‘관계값’(relation value)라고 하며, 관계값을 값으로 가지는 변수를 ‘관계변수’(relvar, relation variable)라고 한다.
속성명과 연결된 도메인(열)들을 정의한 것은 ‘관계 스키마’(relation schema)라고 불린다.[1][2] 때로는 관계 스키마는 관계 그 자체의 이름에 포함되기도 한다. 이러한 관계 스키마는 ‘테이블 스키마’(table schema)로도 불리기도 한다.[3][4]
관계 데이터베이스의 데이터베이스 언어인 SQL에서는 관계 변수와 거의 같은 의미로 테이블이라는 용어가 사용되고 있다. 문맥에 따라서 ‘관계변수’를 ‘관계’라고 부르기도 하고 ‘관계값’을 관계라고 부르기도 한다.
기타 데이터베이스의 관계는 다음과 같은 것을 말할 수 있다.
- 관계변수를 값으로 갖는 관계값은 시간에 따라 변화한다.
- 관계변수는 데이터 정의 언어(DDL)를 사용하여 정의할 수 있다.
- 제목(heading)은 특정 속성(열) 이 정렬되지 않은 집합이다.
- 관계값을 구성하는 튜플의 집합을 본체 (body)라고 한다. 즉 관계 값은 제목과 본체로 구성되어있다.
- 튜플은 0개 이상의 속성의 집합으로 구성된 데이터 구조이다.
- 속성(attribute)은 속성명과 정의영역 이름 열이다.
- 정의영역(domain)은 데이터 형식과 같은 의미로 생각해도 좋다.[5]
- 속성은 그 정의영역에 적용되는 하위의 속성 값을 가진다.
- 속성 값은 스칼라 값이나 더 복잡한 구조를 가지는 값이다.
- 제목을 구성하는 속성의 수를 차수(degree)라고 한다.
- 관계값의 차수는 0 또는 양의 정수이다.
- 차수가 n인 관계 값을 n항 관계(n-ary relation)라고 한다.
- 관계값을 구성하는 튜플 수를 농도 (cardinality)라고 한다.
- 관계값의 농도는 0 또는 양의 정수이다.
- 관계값은 중복 튜플이 존재하지 않는다.
- 관계 값을 구성하는 각각의 열은 특정한 하나 이상의 속성 집합으로 식별된다. 이 속성 집합을 후보 키(candidate key)라고 한다.