테이블 (데이터베이스)

데이터베이스에서 테이블(table)은 표 형식(컬럼과 로우로 구성됨)로 조직된 관련 데이터의 집합이다.

관계형 데이터베이스 및 플랫 파일 데이터베이스에서 테이블은 수직적 컬럼(이름으로 식별 가능)과 수평적 로우 모델을 사용하는 데이터 요소(값)들의 집합이며, 셀은 로우와 컬럼이 교차하는 단위이다. 테이블은 지정된 수의 컬럼을 가지지만, 로우의 수는 제한이 없다. 각 로우는 특정 컬럼 하위 집합에 나타나는 하나 이상의 값으로 식별된다. 로우를 고유하게 식별하는 특정 컬럼의 선택을 기본 키라고 한다.

"테이블"은 "관계"(relation)의 다른 용어이기도 하다. 다만 테이블은 보통 로우의 중복집합(bag)인 반면, 관계는 집합으로서 중복을 허용하지 않는다는 차이가 있다. 실제 데이터 로우 외에도 테이블은 일반적으로 테이블 자체나 특정 컬럼 내의 값에 대한 제약 조건과 같은 일부 메타데이터와 연결되어 있다.

테이블의 데이터가 반드시 데이터베이스에 물리적으로 저장되어야 하는 것은 아니다. 뷰 또한 관계형 테이블로서 작동하지만, 그 데이터는 질의 시에 계산된다. (예를 들어 인포믹스나 오라클 데이터베이스의) 외부 테이블도 뷰의 일종으로 생각할 수 있다.

R이나 파이썬의 Pandas와 같은 많은 계산 통계 시스템에서 데이터 프레임(data frame) 또는 데이터 테이블(data table)은 테이블 추상화를 지원하는 자료형이다. 개념적으로 이는 모두 동일한 필드나 컬럼을 포함하는 레코드 또는 관측의 목록이다. 구현상으로는 각각 이름을 가진 배열 또는 벡터의 목록으로 구성된다.

 테이블 대 관계 
데이터베이스의 관계형 모델 관점에서 테이블은 관계의 편리한 표현으로 간주될 수 있지만, 두 가지가 엄격하게 동일한 것은 아니다. 예를 들어, SQL 테이블은 잠재적으로 중복된 로우를 포함할 수 있는 반면, 진정한 관계는 튜플이라고 부르는 중복된 로우를 포함할 수 없다. 마찬가지로, 테이블로 표현하는 것은 로우와 컬럼에 특정한 순서가 있음을 암시하지만, 관계는 명시적으로 순서가 정해져 있지 않다. 그러나 데이터베이스 시스템은 테이블을 조회하는 SELECT 문에 ORDER BY 절이 지정되지 않는 한 로우의 순서를 보장하지 않는다.

관계를 표현하는 똑같이 유효한 방법은 n차원 차트이며, 여기서 n은 속성(테이블의 컬럼)의 개수이다. 예를 들어, 두 개의 속성과 세 개의 값을 가진 관계는 두 개의 컬럼과 세 개의 로우를 가진 테이블로 표현하거나, 세 개의 점이 있는 2차원 그래프로 표현할 수 있다. 테이블과 그래프 표현은 로우의 순서가 중요하지 않고 테이블에 중복된 로우가 없는 경우에만 동일하다.

 비교 

 계층형 데이터베이스 
비관계형 시스템인 계층형 데이터베이스에서 테이블에 대응하는 원거리의 개념은 구조화된 컴퓨터 파일로, 파일의 각 로우에 테이블의 로우를, 로우 내의 각 항목에 컬럼을 나타낸다. 이러한 구조는 로우가 일반적으로 자식 데이터 세그먼트에서 반복되는 정보를 가질 수 있음을 암시한다. 데이터는 물리적 레코드의 순서대로 저장된다.

 스프레드시트 
스프레드시트와 달리 컬럼의 자료형은 일반적으로 테이블을 설명하는 스키마에 의해 정의된다. SQLite와 같은 일부 SQL 시스템은 컬럼 자료형 정의에 대해 덜 엄격하다.

 같이 보기 
 관계 (데이터베이스)
 로우 (데이터베이스)
 컬럼 (데이터베이스)
 버추얼 컬럼
 표

 각주 

분류:데이터베이스 관리 시스템
분류:SQL
분류:관계형 데이터베이스 관리 시스템
분류:데이터 모델링