데이터 사전
- 데이터 사전(Data Dictionary)이란 대부분 읽기전용으로 제공되는 테이블 및 뷰들의 집합으로 데이터베이스 전반에 대한 정보를 제공 한다.
- 오라클 데이터베이스는 명령이 실행 될 때 마다 데이터 사전을 Access 한다.
- DB작업동안 Oracle은 데이터 사전을 읽어 객체의 존재여부와 사용자에게 적합한 Access 권한이 있는지를 확인 한다.
- 또한 Oracle은 데이터 사전을 계속 갱신하여 DATABASE 구조, 감사, 사용자권한, 데이터등의 변경 사항을 반영 한다.
데이터 사전에 저장되는 내용
- 오라클의 사용자 정보
- 오라클 권한과 롤 정보
- 데이터베이스 스키마 객체(TABLE, VIEW, INDEX, CLUSTER, SYNONYM, SEQUENCE..) 정보
- 무결성 제약조건에 관한 정보
- 데이터베이스의 구조 정보
- 오라클 데이터베이스의 함수 와 프로지저 및 트리거에 대한 정보
- 기타 일반적인 DATABASE 정보
데이터 사전의 분류
⇒ ALL_XXXX
- ALL_로 시작하는 데이터 사전으로, 한 특정 사용자가 조회 가능한 모든 데이터사전을 의미 한다.
- 자신이 조회하려는 객체의 주인이 아니더라도 그 객체에 접근 할 수 있는 권한을 가지고 있다면 ALL_XXXX 뷰를 통하여 조회가 가능 하다.
SELECT table_name, tablespace_name
FROM ALL_TABLES;
![](https://velog.velcdn.com/images/irish/post/56679222-96ae-4dce-86c9-bcfe7aeef359/image.png)
⇒ USER_XXXX
- USER_로 시작하는 데이터 사전으로, 한 특정 사용자에게 종속되어 있고, 그 사용자가 조회 가능한 데이터 사전 뷰들로 ALL_XXXX 데이터 사전의 모든 정보의 부분 집합 이다.
SELECT table_name, tablespace_name
FROM USER_TABLES;
![](https://velog.velcdn.com/images/irish/post/126db359-80f6-4159-9bca-459f1f7bd783/image.png)
⇒ 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 데이터베이스의 가장 숨겨진 영역 중 하나이다.
느낀점
정보처리기사에서나 보던 데이터 사전에 대해서 배우게 되서 흥미로웠다.
아쉬웠던 점은, ALL_XXXX 등을 내가 실무에서 써본적이 없단 것?
실제 DBA가 아니라면 딱히 다룰 이유가 없을 것 같기는 하다.
하지만, 데이터 사전에 대한 개념을 통해 나중에 전반적인 Oracle 구조를 뜯어 볼 수 있을 것 같다는 생각이 든다.
참고 URL