데이터베이스 관리에서 가장 중요한 것은 객체와 구조를 빠르게 파악하는 능력입니다. 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_comments
나col_comments
같은 주석 정보도 함께 관리하면 편리합니다.
실무 활용 팁
- 스키마 분석 자동화: 데이터 딕셔너리 쿼리를 모아두면 신규 스키마 구조를 빠르게 분석 가능
- 객체 변경 추적: 컬럼/인덱스/제약조건 변화를 주기적으로 스냅샷 저장하면 추적에 유용
- 호환성 체크: Oracle ↔ Tibero 마이그레이션 시 딕셔너리 조회 결과를 비교하여 누락된 객체 파악
- 문서 자동 생성: 딕셔너리 뷰 기반으로 ERD, 데이터 사전 문서를 자동 생성 가능
마무리
Oracle과 Tibero 모두 데이터 딕셔너리 뷰를 활용하면 테이블, 컬럼, 인덱스, 제약조건 등 데이터베이스 구조를 체계적으로 파악할 수 있습니다. 특히 DBA 권한이 있을 경우 전체 스키마를 빠르게 조회할 수 있으며, 실무에서는 스키마 분석, 문서화, 마이그레이션 점검에 꼭 필요한 도구로 쓰입니다.