[ORACLE] 데이터 사전 ( Data Dictionary )
1. 데이터 사전
- 데이터 사전이란 대부분 읽기 전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공
- 오라클 데이터베이스는 명령이 실행될 때마다 데이터 사전을 Access 한다.
- DB작업동안 Oracle은 데이터 사전을 읽어 객체의 존재 여부와 사용자에게 적합한 Access권한이 있는지 확인
- Oracle은 데이터 사전을 계속 갱신하여 DATABASE 구조, 감사, 사용자 권한, 데이터 등의 변경 사항을 반영
* 데이터 사전에 저장되는 내용
- 오라클 사용자 정보
- 오라클 권한과 롤 정보
- 데이터베이스 스키마 객체 ( TABLE, VIEW, CLUSTER, SYNONYM, SEQUENCE 등 ) 정보
- 무결성 제약조건에 관한 정보
- 데이터베이스의 구조 정보
- 오라클 데이터베이스의 함수와 프로지저 및 트리거에 대한 정보
- 기타 일반적인 DATABASE 정보
2. 데이터 사전의 분류
* ALL_XXXX
- ALL_로 시작하는 데이터 사전으로 한 특정 사용자가 조회 가능한 모든 데이터 사전을 의미한다.
- 자신이 조회하려는 객체의 주인이 아니더라도 그 객체에 접근할 수 있는 권한을 가지고 있다면 ALL_XXXX 뷰를 통하여 조회가 가능하다.
> SELECT table_name, tablespace_name
FROM ALL_TABLES;
|
* USER_XXXX
- USER_로 시작하는 데이터 사전으로 한 특정 사용자에게 종속되어 있고 그 사용자가 조회 가능한 데이터 사전 뷰들로 ALL_XXXX 데이터 사전의 모든 정보의 부분 집합이다.
> SELECT table_name, tablespace_name
FROM USER_TABLES;
|
* DBA_XXXX
- DBA권한을 가진 사용자만이 조회할 수 있는 데이터 사전으로 모든 오라클 데이터베이스 객체에 대한 정보를 볼 수 있다.
- SELECT ANY TABLE 권한이 있는 사용자 또한 질의가 가능하며 다른 사용자가 질의하려면 앞에 SYS.이라는 접두어를 붙어야 한다.
> SELECT OWNER, OBJECT_NAME
FROM SYS.DBA_OBJECTS;
|
* V$_XXXX
- Dynamic Performance View라고도 하며, 현재 Database의 상태에 관한 정보로 주로 DBA에게만 액세스가 허용되어 있다.
- 주로 DBA의 모니터링 작업용 정보를 제공하며, X$ 테이블을 베이스로 하는 뷰이다.
* X$_XXXX
- X$ 뷰는 V$ 뷰가 보여주지 않는 정보를 보여준다.
- X$ 테이블은 오라클의 메모리정보를 볼 수 있는 SQL 인터페이스 뷰들로 Oracle 데이터베이스의 가장 숨겨진 영역 중 하나이다.