본문 바로가기
Work/DataBase

[ORACLE] 오라클 DB논리적 저장 구조와 블록 구조

데이터베이스를 저장하는 논리적 구조는 

테이블스페이스 > 테이블 > 익스텐트 > 블록 

으로 구성할수있습니다.

 

Tablespace : 테이블을 저장하는 단위공간

Segment : 오브젝트(인덱스, 테이블)

Extent : 연속된 블럭으로 테이블의 ROWS 와 같다

Block : 데이터 공간의 최소 단위로 한테이블의 한줄을 저장한다.

블록의 구조

  • Common and variable header : 블럭의 헤더 (기본 정보 저장)
  • Table Directory : 클러스터를 만들때 여러 오브젝트가 공유될수 있는데 그때 오브젝트를 구분하기위해 사용된다.
  • Row directory : row의 위치값 저장
  • Free space : 사용되지 않은 공간
  • Row data : 저장되어 있는 row

※ transaction slots : Default로 header에 2개를 가지며 개당 23byte의 크기를 가진다. 역할은 블럭의 row를 사용할때 transaction slots에 기록하여 block를 사용할수 있다. 만약 2개 모두 사용할경우에는 free space에 임시로 transaction slots를 만들어서 사용한다. free space에 공간의 여유가 없다면 대기하게 된다. (기본값을 바꿀수있다 initrans)