데이터 딕셔너리

데이터베이스 안의 모든 객체에 대한 정의로서 객체에 할당된 공간, 사용된 공간,

무결성 제약 조건, 사용자 정보, 사용자에게 부여된 권한과 롤 정보, 감사 정보 등 다양한 정보를 제공한다.

소유자는 SYS이며 사용자계정은 데이터 조회만 가능하고, 직접 수정, 삭제 할 수 없다.

사용자가 테이블을 생성하거나 변경하는 등의 작업(DDL,DML)을 할 때, 오라클 서버에 의해 자동으로

갱신되는 테이블이다.

데이터 딕셔너리는 접두어에 따라 세 종류로 나뉜다.

DBA_XXX DBA만 접근 가능한 객체 등에 관하여 정보 조회 가능
(DBA는 모두 접근 가능하므로 결국 DB에 있는 모든 객체를 말함)
ALL_XXX 자신의 계정이 소유하거나 권한을 부여받은 객체 등에 관하여
정보 조회 가능
USER_XXX 자신의 계정이 소유한 객체 등에 관하여 정보 조회 가능

 

1. DBA_데이터 딕셔너리 뷰

//테이블과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC DBA_TABLES; 

//DBA권한을 가진 SYS 계정으로 접속하여야 내용을 조회할 수 있음
SELECT OWNER,TABLE_NAME FROM DBA_TABLES;

 

2. ALL _데이터 딕셔너리 뷰

타 계정의 객체에는 접근이 불가능 -> 그 객체의 소유자가 접근 허가 권한을 부여하면 가능

//SCOTT 접속
GRANT SELECT ON T_TABEL TO T1;
//T1 접속
SELECT * FROM SCOTT.T_TABLE;  
//테이블과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC ALL_TABLES;

//내용 조회(자신이 소유한 객체+ 권한 부여받은 객체에 관한 정보가 나온다)
SELECT OWNER,TABLE_NAME FROM ALL_TABLES; 

 

3.USER 데이터 딕셔너리

USER_뷰(user_tables, user_constraints, user_cons_columns, user_tab_columns, user_objects, user_indexes, user_ind_columns)

//제약조건과 관련된 데이터 딕셔너리 뷰의 구조 확인
DESC USER_CONSTRAINTS;

//제약조건과 관련된 정보 조회
SELECT CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,STATUS 
FROM USER_CONSTRAINTS WHERE TABLE_NAME='T_TEST';

//제약조건명,타입,테이블명,제약조건상태
CONSTRAINT_NAME                C     TABLE_NAME                  STATUS
------------------------------ - ------------------------------ --------
B_PRTEST_CK_AGE                C      B_PRTEST                   ENABLED

제약조건명을 부여하지 않고 테이블을 생성할때 오라클 서버가 자동으로

제약조건명을 부여한다.(SYS_ *** )

 


제약조건

disable: 기능을 잠시 중단(비활성화)

enable: 기능을 다시 사용(활성화)

//비활성화
alter table 테이블명 disable constraints 제약조건명; 

//활성화(제약조건에 모순되는 데이터가 있다면 먼저 삭제해야 한다)
alter table 테이블명 enable constraints 제약조건명;

 

+ Recent posts