Oracle & Tibero 데이터 딕셔너리/메타데이터 조회 완벽 가이드

데이터베이스 관리에서 가장 중요한 것은 객체와 구조를 빠르게 파악하는 능력입니다. Oracle과 Tibero 모두 데이터 딕셔너리 뷰를 통해 테이블, 컬럼, 인덱스, 제약조건 등 다양한 메타데이터를 조회할 수 있습니다. 이번 글에서는 Oracle과 Tibero의 대표적인 데이터 딕셔너리 활용법을 예제와 함께 정리합니다.

Oracle 데이터 딕셔너리/메타데이터 조회

Oracle은 USER_, ALL_, DBA_ 접두어로 구분되는 딕셔너리 뷰를 제공합니다.

주요 구분

  • USER_: 현재 사용자 소유 객체
  • ALL_: 권한이 허용된 모든 객체
  • DBA_: DBA 권한으로 전체 객체

대표 예제

-- 현재 사용자 테이블 조회
SELECT table_name FROM user_tables;

-- 특정 스키마 테이블 조회
SELECT owner, table_name FROM all_tables WHERE owner = 'HR';

-- 컬럼 정보 확인
SELECT table_name, column_name, data_type
FROM user_tab_columns
WHERE table_name = 'EMPLOYEES';

-- 인덱스 정보 확인
SELECT index_name, table_name, uniqueness
FROM user_indexes;
SQL

💡 Oracle TIP

  • 성능 튜닝 시 DBA_TAB_STATISTICS, DBA_INDEXES 조회를 활용하면 유용합니다.
  • 권한이 충분하다면 DBA_ 뷰에서 전체 DB 구조를 파악할 수 있습니다.

Tibero 데이터 딕셔너리/메타데이터 조회

Tibero 역시 Oracle과 호환되는 딕셔너리 뷰를 제공합니다. 대부분 동일한 문법이지만 일부 차이가 있습니다.

주요 구분

  • USER_, ALL_, DBA_ 뷰 제공 (Oracle과 동일)
  • 일부 내부 통계 관련 뷰는 Tibero 전용이 존재

대표 예제

-- 현재 사용자 테이블 조회
SELECT table_name FROM user_tables;

-- 특정 스키마 테이블 조회
SELECT owner, table_name FROM all_tables WHERE owner = 'DEV';

-- 컬럼 정보 확인
SELECT table_name, column_name, data_type
FROM user_tab_columns
WHERE table_name = 'CUSTOMERS';

-- 인덱스 정보 확인
SELECT index_name, table_name, uniqueness
FROM user_indexes;
SQL

💡 Tibero TIP

  • Oracle과 달리 일부 DBA 뷰는 Tibero에서 컬럼 구성이 다를 수 있으므로 주의해야 합니다.
  • 프로젝트 환경에 맞춰 user_tab_commentscol_comments 같은 주석 정보도 함께 관리하면 편리합니다.

실무 활용 팁

  • 스키마 분석 자동화: 데이터 딕셔너리 쿼리를 모아두면 신규 스키마 구조를 빠르게 분석 가능
  • 객체 변경 추적: 컬럼/인덱스/제약조건 변화를 주기적으로 스냅샷 저장하면 추적에 유용
  • 호환성 체크: Oracle ↔ Tibero 마이그레이션 시 딕셔너리 조회 결과를 비교하여 누락된 객체 파악
  • 문서 자동 생성: 딕셔너리 뷰 기반으로 ERD, 데이터 사전 문서를 자동 생성 가능

마무리

Oracle과 Tibero 모두 데이터 딕셔너리 뷰를 활용하면 테이블, 컬럼, 인덱스, 제약조건 등 데이터베이스 구조를 체계적으로 파악할 수 있습니다. 특히 DBA 권한이 있을 경우 전체 스키마를 빠르게 조회할 수 있으며, 실무에서는 스키마 분석, 문서화, 마이그레이션 점검에 꼭 필요한 도구로 쓰입니다.

관련 포스팅들

위로 스크롤