본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-10. DICTIONARY

10. DICTIONARY


1) Dictionary란?

- DBMS가 자동관리하는 정보로 SYS사용자가 소유

- 읽기전용으로만 제공되는 뷰와 테이블의 집합

- ORACLE SERVER에 의해서 생성 및 유지보수

- 예시: ORACLE server 사용자명, 사용자 권한, DB 객체명, 테이블 제약조건, 감사정보


2) Dictionary View의 종류

- 4가지 종류가 있으며 각기 다른 접두사로 구분

USER_ : 사용자가 소유한 객체 정보 저장

ALL_ : 사용자에게 허용된 객체 정보 저장

DBA_ : DBA권한을 가진 사용자가 액세스 할 수 있는 정보 저장

V$ : 서버의 성능과 Locking에 관한 정보 저장(일반적으로 DBA에게만 허용)


- 그 외의 동의어를 사용하는 경우

DICTIONARY : 모든 데이터 사전 테이블, 뷰, 동의어 저장

TABLE_PRIVILEGES : 사용자가 권한 부여 or 부여받은 오브젝트에 대한 권한

IND : USER_INDEXES의 동의어(SYNONYMS)


3) Dictionary 예시

desc dictionary;


select * from dictionary;


select *

from dictionary

where table_name like 'USER%' ;


select object_name -- 사용자가 소유한 모든 테이블 조회

from user_objects

where object_type = 'TABLE' ;


select constraint_name, constraint_type, search_condition, r_constraint_name

from user_constraints -- S_EMP의 테이블레벨 제한 검색

where table_name = 'S_EMP' ;


select constraint_name, column_name

from user_cons_columns -- S_EMP의 컬럼레벨 제한 검색

where table_name = 'S_EMP';