본문 바로가기

DATABASE/OBJECT : 객체

01. 데이터베이스를 위한 데이터를 저장한 데이터 사전

데이터사전이란?

오라클 데이터베이스 테이블은 사용자테이블과 데이터사전으로 나뉜다. 사용자 테이블은 데이터베이스를 통해 관리할 데이터를 저장하는 테이블을 뜻한다. 데이터 사전은 데이터베이스를 구성하고 운영하는 데 필요한 모든 정보를 저장하는 특수한 테이블로 데이터 베이스가 생성되는 시점에 자동으로 만들어진다.

    데이터 사전에는 데이터베이스 메모리, 성능, 사용자, 권한, 객체 등 오라클 데이터베이스 운영에 중요한 데이터가 보관되어 있다. 만약 이 데이터에 문제가 발생한다면 오라클 데이터베이스 사용이 불가능해질 수도 있다. 따라서 오라클 데이터베이스는 사용자가 데이터 사전 정보에 직접 접근하거나 작업하는것을 허용하지 않는다. 대신 데이터 사전 뷰를 제공하여 SELECT 문으로 정보 열람을 할 수 있게 해 두었다.

( 뷰[VIEW]는 어떤 목적을 위해 테이블 일부 또는 전체 데이터 열람을 주 목적으로 사용하는 객체이다)

    데이터 사전 뷰는 용도에 따라 이름 앞에 접두어를 지정해서 분류한다.

1) USER_ : 현재 데이터 베이스에 접속한 사용자가 소유한 객체정보

2) ALL_ : 현재 데이터 베이스에 접속한 사용자가 소유한 객체 또는 다른 사용자가 소유한 객체 중 사용 허가를 받은 객체, 즉 사용 가능한 모든 객체 정보

3) DBA_ : 데이터베이스 관리를 위한 정보(SYSTEM, SYS사용자만 열람 가능)

4) V$_ : 데이터베이스 성능 관련정보(X%_ 테이블의 뷰) >> 성능 관련 정보이므로 나는 사용할일이 거의 없다

 

USER_ 접두어를 가진 데이터 사전

USER_ 접두어로 시작하는 이름의 데이터 사전에는 현재 오라클에 접속해 있는 사용자가 소유한 객체 정보가 보관되어 있다. 현재 데이터베이스에 접속한 계정이 소유하는 테이블정보는 USER_TABLES를 사용해서 볼 수 있다.

SELECT TABLE_NAME FROM USER_TABLES; 모든 접두어 뒤에는 복수형 단어가 온다.

 

ALL_ 접두어를 가진 데이터 사전

ALL_ 접두어를 가진 데이터 사전은 오라클 데이터베이스에 접속해있는 사용자가 소유한 객체 및 다른 사용자가 소유한 객체 중 사용이 허락되어 있는 객체 정보를 가지고 있다. ALL_TABLES를 조회하면 접속한 계정이 사용할 수 있는 모든 테이블 정보를 보여준다.

 

DBA_ 접두어를 가진 데이터 사전

DBA_ 접두어를 가진 데이터 사전은 데이터베이스 관리 권한을 가진 사용자만 조회할 수 있는 테이블로 일반(SCOTT) 계정으로는 조회가 불가능하다. 사용권한이 없는 계정으로 조회를 하면 '테이블 또는 뷰가 존재하지 않습니다' 메세지를 출력한다.  사용권한이 없는 사용자는 해당 객체의 존재 여부조차 확인할 수 없음을 의미한다.

데이터베이스 권한이 있는 SYSTEM사용자로 접속하면 DBA_TABLES 조회가 가능하다. 데이터베이스에 존재하는 모든 테이블이 출력되며 열 구성은 ALL_TABLES와 같다.

DBA_USERS로 사용자 정보도 살펴볼 수 있다. WHERE USERNAME = '조회할 사용자 계정이름' 으로 확인 가능하다. DBA_ 데이터 사전은 오라클 데이터베이스 운영과 관련된 여러 정보를 보관한다. 데이터베이스 자체를 관리하는 목적 외에 오라클 데이터베이스를 사용하여 데이터를 보관하고 관리하는 업무를 진행할 때는 그렇게 자주 사용하지 않는다.