본문 바로가기
  • You find inspiration to create your own path !
업무 자동화/PostgreSQL

데이터 사전(Data Dictionary)과 데이터 디렉토리(Data Directory)

by ToolBOX01 2026. 6. 8.
반응형

■ 데이터 사전(Data Dictionary)과 데이터 디렉토리(Data Directory)란?

데이터베이스에서 데이터 사전(Data Dictionary)과 데이터 디렉토리(Data Directory)는 둘 다 데이터베이스 시스템이 스스로를 관리하기 위해 필요한 메타데이터(Metadata, 데이터를 위한 데이터)를 저장하는 핵심 장소입니다. 하지만 이 둘은 저장하는 정보의 성격과 주요 사용 목적에서 명확한 차이가 있습니다.

1. 데이터 사전 (Data Dictionary) (시스템 카탈로그 (System Catalog)) 

"데이터베이스의 두뇌"와 같습니다. 데이터베이스에 존재하는 모든 데이터 객체의 논리적 정의와 규칙을 저장합니다.

1) 저장 정보 (논리적):

  • 테이블 정의: 테이블 이름, 컬럼 이름, 컬럼의 데이터 타입, 길이.
  • 제약조건: Primary Key, Foreign Key, Not Null, Check 등 (이전 답변에서 다룬 무결성 규칙들).
  • 인덱스 정보: 어떤 컬럼에 인덱스가 생성되었는지.
  • 사용자 및 권한: 어떤 사용자가 존재하는지, 특정 테이블에 접근할 수 있는 권한이 있는지.
  • 뷰(View) 및 트리거(Trigger) 정의.

특징:

  • 활성(Active): 데이터베이스 시스템(DBMS)이 사용자의 SQL 쿼리를 분석하고 실행할 때, 이 권한이 있는지, 테이블이 존재하는지 등을 확인하기 위해 항상 실시간으로 참조합니다.
  • 읽기 전용(Read-only): 사용자가 직접 데이터를 입력하거나 수정할 수 없으며, CREATE TABLE, GRANT 같은 명령어를 통해서만 DBMS가 내용을 변경합니다. (MySQL의 INFORMATION_SCHEMA가 대표적입니다).

 

2. 데이터 디렉토리 (Data Directory)

"데이터베이스의 창고 지도"와 같습니다. 논리적으로 정의된 데이터 객체들이 실제 운영체제(OS)의 물리적 파일로 어디에, 어떤 크기로 저장되어 있는지에 대한 정보를 관리합니다.

1) 저장 정보 (물리적):

  • 데이터 파일 위치: 테이블의 실제 데이터가 저장된 OS 파일 경로 (/var/lib/mysql/mydb/users.ibd 등).
  • 파일 크기 및 할당 공간: 특정 테이블 파일이 현재 차지하는 크기와 앞으로 할당 가능한 여유 공간.
  • 스토리지 엔진 정보: 특정 테이블이 어떤 물리적 엔진(InnoDB, MyISAM 등)을 사용하는지.
  • 시스템 상태 및 로그 파일 위치.

2) 특징:

  • 물리적 관리: DBMS가 데이터를 실제로 읽고 쓸 때, 어느 파일의 어떤 위치를 찾아야 하는지 판단하는 데 사용됩니다.
  • 사용자는 이 디렉토리에 직접 접근하여 파일을 수정해서는 안 됩니다 (데이터 손상의 원인).

 

 

 

  • 상단 타이틀: 데이터베이스 메타데이터 관리 시스템 (Data Dictionary vs Data Directory).
  • 왼쪽 (데이터 사전): '논리적 스키마 정의'를 담당하는 두뇌 이미지와 테이블 구조도, 제약조건, 사용자 권한을 보여주는 테이블 형식의 정보.
  • 오른쪽 (데이터 디렉토리): '물리적 스토리지 위치'를 담당하는 실제 서버실/디스크 저장소 이미지와 OS 파일 경로, 파일 크기, 스토리지 엔진 정보를 보여주는 정보.
  • 중앙 연결: 사용자 쿼리가 들어왔을 때, DBMS가 '사전'을 참조하여 '정의'를 확인하고, '디렉토리'를 참조하여 '실제 데이터'를 가져오는 흐름.

 

반응형