Database/SQLP

[SQLP] 데이터베이스 저장 구조

chmono 2024. 2. 28. 17:41

 

1. 데이터베이스 저장구조


테이블스페이스 > 세그먼트 > 익스텐트 > 블록  순으로 데이터베이스를 구성하고 있다.

 

 

테이블 스페이스 Table Space

세그먼트를 담는 콘테이너, 여러 개의 데이터 파일로 구성.

* 데이터 파일 - 디스크 상의 물리적인 OS 파일

 

세그먼트 Segment

테이블, 인덱스처럼 데이터 저장공간이 필요한 오브젝트

테이블 또는 인덱스가 파티션 구조라면, 각 파티션이 하나의 세그먼트이다.

LOB 컬럼은 그 자체로 하나의 세그먼트를 구성하며, 자신이 속한 테이블과 다른 별도 공간에 값을 저장한다.

 

익스텐트 Extent

공간을 확장하는 단위, 연속된 블록 집합

세그먼트(테이블, 인덱스)의 공간 부족해지면, 테이블스페이스로부터 익스텐트를 추가로 할당받는다.

한 익스텐트는 하나의 테이블이 독점한다.(=한 익스텐트에 담긴 블록은 모두 같은 테이블의 블록이다.)

 

블록 Block

레코드를 실제로 저장하는 공간

한 블록은 한 테이블이 독점한다.(= 한 블록에 저장된 레코드들은 같은 테이블의 레코드이다.)

* DBMS는 블록 대신 페이지(page)라는 용어를 사용한다.

 

 

☞  익스텐트 추가 할당 및 위치

세그먼트(테이블, 인덱스) 공간이 부족해지면, 테이블스페이스로부터 익스텐트를 추가로 할당받는다.

다만, 할당된 모든 익스텐트가 같은 데이터파일에 위치하지 않을 가능성이 높다. 하나의 테이블스페이스를 여러 데이터 파일로 구성하면, 파일 경합을 줄이기 위해 DBMS가 데이터를 가능한 여러 데이터파일로 분산 저장하기 때문이다,

 

 

 

 

 

 

 

References

https://developer-guide.com/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5-%EA%B5%AC%EC%A1%B0-%EC%95%A1%EC%84%B8%EC%8A%A4-%EB%B0%A9%EB%B2%95/