본문 바로가기
SQL/기초

SQL 정리 10일차 DICTIONARY

by 유서담 2023. 8. 30.

10.1 Dictionary(메타정보)란

 

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

- 데이터베이스에 대한 정보를 가짐

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

- 데이터 사전( Data Dicitionary ) 테이블은 SYS 사용자가 소유

 

Dictionary의 예

 

- ORACLE SERVER 사용자명

- 사용자에게 허가된 권한

- 데이터베이스 객체명( TABLE, SEQUENCE, VIEW, INDEX 등 )

- 테이블 제약조건

- 감사(Auditing) 정보

 

 

10.2 Dictionary View의 종류

 

데이터 사전 뷰( Dictionary View )는 4가지의 종류가 있는데, 각기 다른 접두어를 써서 구분한다

접두어( prefix ) 설 명
USER_ 사용자가 소유한 객체에 관한 정보를 저장
ALL_ 사용자에게 액세스가 허용된 객체에 관한 정보를 저장
DBA_ DBA권한을 가진 사용자가 액세스 할 수 있는 정보를 저장
V$ 서버의 성능과 Locking에 관한 정보를 저장.
일반적으로 DBA에게만 허용됨

 

다른 몇가지 데이터 사전 뷰는 위에서 나열된 접두어를 쓰지 않고 동의어( SYNONYMS )을 이용

뷰 이름 설 명
DICTIONARY 모든 데이터 사전 테이블, 뷰, 동의어 저장
TABLE_
PRIVILEGES
사용자가 권한을 부여했거나( GRANTOR )
부여받은( GRNTEE ) 오브젝트에 대한 권한
IND USER_INDEXES의 동의어( SYNONYMS )

 

 

10.3 Dictionary 검색

 

DESC dictionary
SELECT *
FROM dictionary ;
SELECT *
FROM dictionary
WHERE table_name LIKE 'USER%';

 

Dictionary 검색 예시

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'; -- 대문자

 

'SQL > 기초' 카테고리의 다른 글

SQL 정리 11일차 데이터 정의어(DDL)  (0) 2023.09.01
SQL 정리 9일차 TRANSACTION CONTROL  (0) 2023.08.29
SQL 정리 8일차 CONSTRAINT  (0) 2023.08.27
SQL 정리 7일차 SubQUERY  (0) 2023.08.25
SQL 정리 6일차 JOIN  (0) 2023.08.16