힙구조 테이블 (Heap organized Table)

  • 일반적인 표준 데이터베이스 테이블
  • 힙과 같은 방식으로 데이터 관리
  • 힙은 일련의 저장 공간으로 임의적인 순서로 데이터를 사용한다.

인덱스 구조 테이블 ( Index organized table)

  • 테이블을 인덱스 구조로 저장하는 방ㅇ식
  • 각 로우를 물리적인 순서에 따라 저장한다.
  • 인덱스 구조 테이블은 Primary Key의 정렬된 순서로 저장된다.

인덱스 클러스터 테이블 ( Index clustered table )

  • 클러스터는 물리적으로 하나의 데이터베이스 블럭에 하나 또는 여러개의 테이블 집합을 저장하는게 가능
  • 동일한 클러스터 키 값을 갖는 모든 로우를 물리적으로 근접하게 저장함.
    • 테이블 대부분을 물리적으로 결합(join)하여 저장할 수 있다.
    • 동일한 클러스터 키 값을 갖는 모든 데이터를 물리적으로 함께 저장한다.
  • 데이터는 클러스터 키를 중심으로 묶여지고, 클러스터 키는 b-tree 인덱스를 이용하여 생성된다.

해시 클러스터 테이블 (Hash cluster table)

  • 인덱스 클러스터 테이블과 유사
  • 데이터의 위치를 찾기위해 클러스터 키에 대해 b-tree 인덱스 구조를 사용하지 않고 클러스터 키 값을 해시하여 데이터베이스 블록에 저장하는 방식을 사용한다.
  • 데이터 자체가 인덱스 역할을 하며 해시 키 값이 = 조건으로 사용되는 읽기 중심의 데이터에 효과적이다.

정렬 해시 클러스터 테이블 ( Sorted hash clustered table )

  • 인덱스 구조 테이블과 해시 클러스터 테이블의 조합된 테이블 유형
  • 오라클 10g에서 새롭게 추가된 내용
  • 데이터 로우는 고객 번호로 해쉬 처리, 하나의 해쉬 키안에서 다른 키로 정렬된 순서로 저장되는 개념
  • 선입선출 방식의 주문 접수 시스템과 같은 곳에서 유리함.

중첩 테이블 ( Nested table )

  • 오라클에서 제공하는 객체-관계형 확장 기능의 일부분
  • 부모/자식관계의 테이블 구조를 시스템이 간단히 생성하고 관리하는 테이블 유형

임시 테이블 ( Temporary table)

  • 하나의 트랜잭션, 또는 한 세션 동안 생성된 데이터를 임시로 저장하는 테이블
  • 현재 사용자의 임시 테이블스페이스에 필요한 만큼의 임시 익스텐트를 생성하여 사용한다.

객체 테이블 ( Object table)

  • 객체 타입을 기반으로 생성되는 테이블
  • 각 row 마다 시스템에서 생성된 REF(object identifier)와 같은 속성을 가지고 있다.
  • 힙 구조, 인덱스 구조, 임시 테이블의 특별한 유형
  • 중첩 테이블을 포함할 수 있는 테이블 유형

External 테이블

  • 데이터베이스에 저장하지 않고, 운영체제가 관리하는 파일로 저장하는 테이블 형태
  • 오라클 9i 이상에서 가능

테이블의 일반적인 특정

  • 하나의 테이블은 최대 1000개의 컬럼을 가질 수 있다.
  • 하나의 테이블은 1000개보다 적은 수를 사용하는게 효과적이다.
  • 오라클은 내부적으로 254개 이하의 컬럼만 같이 저장하고 그 이상의 컬럼은 분리해서 포인터로 연결하여 저장한다.
  • 테이블은 최대 로우 수에 제한은 없다.
  • 하나의 테이블 스페이스는 파일을 최대 1022개까지만 가질 수 있다.
  • 오라클 10g 부터는 파일 크기에 제한을 넘어서는 BIGFILE 테이블 스페이스를 제공한다.
  • 하나의 테이블은 컬럼의 순열 만큼 인덱스를 생성할 수 있다.
  • 순열은 컬럼에 정의하는 함수의 순열을 포함하여 유일하게 조합되는 가능한 모든 순열을 의미한다.
  • 하나의 데이터베이스에서 생성 가능한 테이블 수는 제한이 없다.