논리 및 물리적 데이터베이스 구조(Logical and Physical Database Structure) 개요
데이터베이스 시스템을 효과적으로 관리하고 최적화하기 위해서는 그 내부 구조에 대한 이해가 필수적이다. 오라클 데이터베이스의 논리적 및 물리적 구조를 간략히 살펴보고 각각의 주요 구성 요소들에 대해서 알아본다. 주요 주제는 데이터 블록, 익스텐스, 세그먼트, 테이블스페이스 및 스키마이다.
본론
데이터 블록
데이터 블록은 데이터베이스에서 가장 작은 단위로 디스크와 메모리에서 데이터를 저장하는 기본 단위이다. Oracle 데이터베이스에서 데이터 블록의 크기는 2킬로바이트에서 32킬로바이트까지 지정할 수 있다. 이는 여러 운영체제 데이터 블록의 조합으로 구성되며 논리적 구조로 간주된다.
익스텐스와 세그먼트
다음 단계는 익스텐트이다. 익스텐트는 여러 연속적인 데이터 블록의 조합으로 구성되며 특정 유형의 정보를 저장하는 데 사용된다. 익스텐트는 다시 세그먼트로 구성되며 세그먼트는 데이터베이스에서 데이터를 저장하는 큰 단위이다. 세그먼트는 데이터 세그먼트, 인덱스 세그먼트, 언두 세그먼트, 임시 세그먼트의 네 가지로 나뉜다. 각 세그먼트는 특정 데이터 유형을 저장하는 데에 사용된다.
테이블스페이스
테이블스페이스는 여러 세그먼트의 조합으로 이루어진 가장 큰 논리적 데이터 단위이다. 테이블스페이스는 관련된 데이터를 하나의 컨테이너에 그룹화하기 위해 생성된다. 테이블스페이스는 임시 테이블스페이스와 영구 테이블스페이스의 두 가지 유형이 있다. 임시 테이블스페이스는 세션 동안만 필요한 임시 데이터를 저장하며 영구 테이블스페이스는 영구적 스키마 객체를 저장한다.
- 테이블스페이스의 이점
여러 테이블스페이스를 생성할 시에 이점이 있다. 예를 들어 데이터베이스 데이터의 디스크 공간 할당을 제어할 수 있으며 개별 테이블스페이스를 온라인 또는 오프라인 상태로 전환할 수 있다. 또한 백업 또는 복구를 수행하거나 데이터를 내보내거나 가져올 수 있다. 이동 가능한 테이블스페이스를 생성하여 다른 데이터베이스로 이동하는 것도 가능하다.
스키마
스키마는 데이터베이스 사용자가 소유한 데이터베이스 객체의 모음이다. 여기에는 테이블, 뷰, 프로시저 등이 포함된다. 스키마 객체는 데이터베이스의 데이터를 직접 참조할 수 있는 논리적 구이다.
결론
오라클 데이터베이스의 논리적 및 물리적 구조에 대해 간략히 확인해보았다. 데이터 블록, 익스텐트, 세그먼트, 테이블스페이스 및 스키마의 개념을 정리하는 것은 데이터베이스의 이해에 중요한 부분이다. 추가적인 학습을 원한다면 오라클 공식문서를 확인해보는 것도 추천한다.
감상
오라클 아키텍처 단원의 마지막 글이다. SQL Tuning 강의 치고는 실제 쿼리보다 이론적 접근이 먼저 이루어져서 집중이 안 되는 부분도 있었다. 하지만 한 번 씩 짚어볼 가치가 있는 강의들이었다. 오늘 강의에서 다루었던 테이블 스페이스만 하더라도 내가 처음으로 참여하였던 실무 프로젝트에서 문제가 되어 수정하였던 기억이 있다. 해당 프로젝트는 데이터 진단 프로젝트였고 공공데이터 홈페이지에 등록되어 있는 모든 CSV 파일을 크롤링하여 내려받고 이를 오라클 DB에 적재하여 데이터 진단을 수행한다는 내용의 작업이 있었다. 공공기관에서 올려논 데이터는 무수히 많았고 하나의 CSV 파일마다 하나의 테이블을 생성해야 하여 적재하여야했으니 테이블스페이스가 버텨내지 못했다. 그랬기에 그걸 확장하는 작업을 몇 번 한 기억이 있는데 그때마다 왜 이런식으로 테이블스페이스가 한정되어 있는 걸까하는 생각을 했었다. 오늘 그 내용을 다시 한 번 떠올리면서 테이블스페이스의 기능을 확인할 수 있어서 좋았다. 이 다음에 이어질 내용들도 무척 기대가 된다.
*본 글은 Udemy Sql tuning 강의 수강 후 정리글입니다.
'DB&SQL' 카테고리의 다른 글
나쁜 SQL이란 무엇인가 (0) | 2024.05.19 |
---|---|
SQL 성능 튜닝 - 필요성과 주요 원인 (0) | 2024.05.18 |
오라클 아키텍처 - 데이터베이스 저장 관리 체계 (0) | 2024.05.16 |
오라클 아키텍쳐 - 자동 메모리 관리 (0) | 2024.05.15 |
오라클 아키텍처 - DML 실행 프로세스 (0) | 2024.05.14 |