[Oracle] Data Dictionary 구성요소와 사용
< Data Dictionary >
- Dictionary에는 DB 관리에 필요한 모든 정보가 저장되어 있다.
- DBA는 Dictionary의 정보를 이용하여 효율적인 데이터베이스 운영을 위해 필요한 정보를 획득할 수 있다.
① Data Dictionary 구성요소
- Base Tables
· DB의 모든 정보를 DBMS(오라클)가 보기 쉬운 형태( = 이진정보 )로 기록해 놓은 테이블
· 유저에 대한 정보따로, 테이블에 대한 정보따로, 시퀀스에 대한 정보 따로 기록
- Data Dictionary Views
· Base Table을 사용자가 보기 쉬운 형태로 만들어 놓은 뷰
· 읽기 전용 ( select만 가능 )
· Data Dictionary Views 유형
ⓐ user_XXX : 내가 소유한 Object 정보 조회
desc user_users
SELECT username, user_id, default_tablespace, created
FROM user_users;
// 내 소유의 유저 = 즉, 나에 대한 정보확인
desc user_tables
SELECT table_name, tablespace_name
FROM user_tables;
// 내 소유의 테이블 정보확인
desc user_views
SELECT view_name, text
FROM user_views;
// 내 소유의 뷰 정보확인
desc user_sequences
SELECT sequence_name, min_value, max_value, increment_by, last_number
FROM user_sequences;
// 내 소유의 시퀀스 정보확인
ⓑ all_XXX : 내가 소유하거나 접근 가능한 Object 정보 조회
all_tables와 user_tables의 차이
ⓒ dba_XXX : DB의 모든 정보 조회, DBA만 select 가능, 실시간 아님
ⓓ v$XXX : DB의 모든 정보 조회, DBA만 select 가능, 실시간
V$datafile와 dba_data_files 차이
② 코멘트 정보 알고 싶을 때
- 줄여서 dict라고도 가능
SELECT * FROM dictionary;
· USER_TABLES 대문자로 써야하고 그에 따른 COMMENTS를 볼 수 있다.
③ 제약조건명의 컬럼 확인하기
- user_constraints 사용하면 제약조건명, 제약조건 유형, 조건 참조하는 곳을 볼 수 있지만 컬럼을 볼 수 없다,
- user_cons_colums 사용하면 컬럼과 제약조건명을 볼 수 있지만 제약조건 유형, 참조하는 곳을 볼 수 없다.
desc user_cons_colums
SELECT column_name, constraint_name
FROM user_cons_colums
WHERE table_name='EMPLOYEES';
- 퀴즈 ) user_constraints와 user_cons_columns Data Dictionary View를 조인해서 다음과 같은 결과를 출력하는 구문 작성
( 단, 쿼리구문이 실행될 때 테이블명을 입력 받아서 실행함.)
SELECT cc.column_name, cc.constraint_name, cst.constraint_type, cst.search_condition, cst.r_constraint_name
FROM user_cons_columns cc JOIN user_constraints cst
ON cc.constraint_name = cst.constraint_name
WHERE lower(cc.table_name) = lower('&tab_name');
save /home/oracle/cons1.sql