테이블스페이스(Tablespace)
- 데이터베이스는 논리적 저장 영역 단위인 테이블스페이스로 나누어집니다. 테이블스페이스는 연관된 논리적 구조를 그룹화합니다. 예를 들어, 테이블스페이스는 특정 관리 작업을 간단히 하기 위해 보통 응용 프로그램의 모든 객체를 그룹화합니다.
- 데이터베이스는 논리적으로 하나 또는 하나이상의 테이블스페이스로 나눠집니다. 하나이상의 데이터파일은 개별 테이블스페이스를 구성하며 테이블스페이스내에 존재하는 모든 논리적 객체정보를 저장하게 됩니다. 테이블스페이스를 구성하는 데이터파일의 총 크기는 테이블스페이스가 가질 수 있는 최대 크기가 됩니다.
- 모든 오라클 데이터베이스는 SYSTEM과 SYSAUX 테이블스페이스를 포함해야 합니다. 이들은 데이터베이스가 만들어질 때 자동적으로 생성됩니다. 기본적으로 Oracle9i 까지 사용되었던 smallfile 테이블스페이스 형태로 생성됩니다.
- 8Exabytes(8 million terabytes) 까지의 크기를 가질 수 있는 Bigfile 테이블스페이스를 만들수 도 있습니다. OMF(Oracle Managed File)와 함께 사용하면, Bigfile 테이블스페이스는 사용자들로 하여금 데이터파일 존재를 완벽하게 투명하도록 조치할 수 있습니다. 다시 말해서, 사용자는 관계되는 데이터파일이 아닌 테이블스페이스만을 관리하면 되는 것입니다.
사용자는 여러 개의 테이블스페이스를 자신의 Temporary 테이블스페이스로 사용할 수 있는 temporary tablespace group 기능을 사용할 수도 있습니다.
데이터 블록
- 데이터베이스 데이터가 저장되는 최소단위는 데이터블록입니다. 하나의 데이터블록은 실제 디스크의 다중 영역으로 구성됩니다. 표준 블록크기는 DB_BLOCK_SIZE라는 초기화 파라메터로 지정됩니다.
사용자는 데이터베이스 내에 최대 5개의 다른 블록크기를 지정할 수 있습니다.
확장영역(extents)
데이터블록 상위의 관리범주는 확장영역(extent)입니다. 즉, 하나이상의 연속된 데이터블록이 하나의 extent를 구성하게 됩니다.
세그먼트(segment)
확장영역 상위의 논리적인 데이터베이스 저장 수준을 세그먼트라고 하며, 하나의 세그먼트는 특정 논리적 구조에 할당된 확장영역들로 구성되며, 다음과 같은 여러형태의 세그먼트들이 있습니다.
- 데이터 세그먼트
- 인덱스 세그먼트
- 임시 세그먼트
- 롤백 세그먼트
오라클은 세그먼트의 기존 확장 영역이 꽉 차면 동적으로 영역을 할당합니다. 따라서 세그먼트의 기존 확장 영역이 차면 해당 세그먼트에 필요한 만큼 확장 영역을 할당합니다. 필요한 만큼 확장 영역을 할당해야 하므로 새로 할당되는 세그먼트의 확장 영역은 디스크에서 연속적인 부분이 아닐 수도 있습니다.