![cover image](https://wikiwandv2-19431.kxcdn.com/_next/image?url=https://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Relational_database_terms.svg/langko-640px-Relational_database_terms.svg.png&w=640&q=50)
관계 (데이터베이스)
동일한 구조로 이루어진 튜플의 집합 / From Wikipedia, the free encyclopedia
관계 모델에서 관계(relation)는 동일한 구조로 이루어진 튜플의 집합을 말한다. 값으로서의 관계를 ‘관계값’(relation value)라고 하며, 관계값을 값으로 가지는 변수를 ‘관계변수’(relvar, relation variable)라고 한다.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/7/7c/Relational_database_terms.svg/640px-Relational_database_terms.svg.png)
속성명과 연결된 도메인(열)들을 정의한 것은 ‘관계 스키마’(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)라고 한다.