관계 모델에서 관계(relation)는 동일한 구조로 이루어진 튜플의 집합을 말한다. 값으로서의 관계를 ‘관계값’(relation value)라고 하며, 관계값을 값으로 가지는 변수를 ‘관계변수’(relvar, relation variable)라고 한다.
속성명과 연결된 도메인(열)들을 정의한 것은 ‘관계 스키마’(relation schema)라고 불린다.[1][2] 때로는 관계 스키마는 관계 그 자체의 이름에 포함되기도 한다. 이러한 관계 스키마는 ‘테이블 스키마’(table schema)로도 불리기도 한다.[3][4]
관계 데이터베이스의 데이터베이스 언어인 SQL에서는 관계 변수와 거의 같은 의미로 테이블이라는 용어가 사용되고 있다. 문맥에 따라서 ‘관계변수’를 ‘관계’라고 부르기도 하고 ‘관계값’을 관계라고 부르기도 한다.
기타 데이터베이스의 관계는 다음과 같은 것을 말할 수 있다.
아래는 3개의 속성명을 가진 관계의 예제이다. 정수(integer) 도메인에서 온 'ID'와 문자열(string)에서 온 'Name'과 'Address'를 가지고 있다:
ID (Integer) | Name (String) | Address (String) |
---|---|---|
102 | 홍길동 | 전라남도, 장성군 |
202 | 임꺽정 | 경기도, 양주시 |
104 | 신사임당 | 강원특별자치도, 원주시 |
152 | 주논개 | 전라남도, 장수군 |
SQL이 아니라, 관계 이론에서, 튜플(tuples)은 정렬되지 않으며, ‘임꺽정의 튜플’이라고 할 수 없는 것은 주논개의 튜플이라고 할 수 없는 것과 같고, 마찬가지로 "홍길동의 튜플'이 최초의 튜플이라고 할 수도 없다."
관계변수(relvar)는 기본 관계변수와 파생 관계변수로 두 가지 종류로 분류할 수 있다. 하나 또는 다수의 변수에 관계대수나 관계논리 표현식에 적용시킴으로써, 새로운 관계 변수값이 파생된다.
기본 관계변수는 어떤 다른 관계변수에서 파생되지 않은 기초적인 관계변수이다. 관계 데이터베이스의 데이터베이스 언어인 SQL에서는 기본 테이블이라는 용어는 ‘기본 관계변수’로 여겨진다. 데이터 정의 언어 (DDL)을 사용함으로써 기본 관계변수를 정의할 수 있다. SQL에서는 CREATE TABLE
구문을 사용함으로써, 기본 변수를 정의할 수 있다. 아래의 예를 보자.
CREATE TABLE List_of_people (
ID INTEGER,
Name CHAR(40),
Address CHAR(200),
PRIMARY KEY (ID)
)
파생 관계변수는 관계대수나 관계논리 표현식을 적용함으로써 획득되는, 하나 또는 여러 개의 관계 변수에서 파생된 관계 변수이다. VIEW는 파생 관계변수로 간주된다. 데이터 정의 언어 (DDL)에서 파생된 관계변수를 정의할 수 있다. SQL에서는 CREATE VIEW
구문을 통해 파생 관계변수를 정의할 수 있다. 아래는 그 예이다.
CREATE VIEW List_of_Jellanamdo_people AS (
SELECT ID, Name, Address
FROM List_of_people
WHERE Address LIKE '%, 전라남도'
)