개발자 항해
Data Dictionary 사용 본문
- Data Dictionary란?
Dictionary에는 DB관리에 필요한 모든 정보가 저장되어 있다.
DBA는 Dictionary의 정보를 이용하여 효율적인 데이터베이스 운영을 위해 필요한 정보를 획득할수 있다.
일반 사용자 및 Application 개발바에게도 데이터베이스에 대한 중요한 정보를 제공한다.
1. 구성요소
1) Base table : DB의 모든 정보를 Oracle이 보기 쉬운 형태로 기록해 놓은 테이블
2) Data Dictionary Views : Base table을 사용자가 보기 쉬운 형태로 만들어 놓은 뷰
읽기 전용(select만 가능함)
<Data Dictionary views의 종류>
- user_xxx : 내가 소유한 object에 대한 정보 조회 (개발자가 많이씀)
ex) user_tables : 사용자 소유의 모든 테이블에 대한 정보를 보여줌
user_tab_columns : 사용자 소유의 모든 테이블을 구성하고 있는 컬럼에 대한 정보를 보여줌
user_views : 사용자 소유의 모든 뷰에 대한 정보를 보여줌
user_constraints : 사용자 소유 모든 table의 제약 조건에 대한 정보를 보여줌
등..이있다.
- all_xxx : 내가 소유하거나 접근 가능한 object(table,view,sequence,index,synonym,function등 ) 에 대한 정보 조회
(개발자가 많이씀)
ex) all_tables, all_views 등..
-dba_xxx : DB의 모든 정보 조회, DBA만 select 가능함. 실시간 X (관리자가 많이씀)
ex) dba_tables, dba_views, dba_users,
dba_data_files 등...
-v$xxx : DB의 모든 정보 조회, DBA만 select 가능함. 실시간 O (관리자가 많이씀)
ex) v$datafile, v$session 등...
2. 사용법
user_cons_columns를 사용하고 싶다면
desc 구문 날려서 user_cons_columns 구조를 살펴보고
아래 처럼 필요한거 골라서 사용하면 된다.
where절을 추가하여 employees테이블의 column_name, constraint_name을 살펴보았다.
* 참고사항
테이블에 선언된 제약 조건중
user_constraints 은
=>제약조건명, 제약조건 유형, 조건문, 참조하는 곳의 제약조건명 이 있고
user_cons_columns은
=>컬럼명, 제약 조건명 이 있기때문에
두개를 다 써야 자세히 알수있다.
하나하나 따로쓰면 알기 어려우므로 조인해서 쓰면 한눈에 보인다.
where절에는 대소문자 구분을 없애려고 다 소문자로 변환해주는 조건을 부여했다.
완성된 구문을 날리면 Enter value for tab_name: 에 커서 깜빡인다.
그러면 거기에 알고 싶은 테이블 명을 치면 아래와 같이 나온다.
많이 쓰이므로 아래와같이 저장하였다.
l(소문자 엘)로 구문확인후 save로 저장.
user_views를 쓰고 싶다면 아래처럼 구조를 확인하고 쓰면된다.
view name과 text, text vc가 많이 쓰인다. text와 text vc차이는 type보면 알겠지만 길이 차이이다. 맞는걸로 골라쓰면됨.
- view_name, text 사용
- user_sequence 사용
- user_indexes 사용
employees 테이블에 index를 조회했다.
PK나 UK는 생성하면 자동으로 index를 생성하므로 따로 생성안해도된다.
(만약 수동으로 생성하면 한개더 생성해줘서 인덱스가 이중으로 존재하게 된다. )
위에 표시한것과 같이 자동 생성된 index는 제약조건명과 이름이 같다.
- user_ind_columns 사용
테이블 명과 인덱스 명을 같이 볼수도 있다.
'DB > Oracle' 카테고리의 다른 글
Data Dictionary - 사용자 관리 (0) | 2022.08.30 |
---|---|
데이터 제어어(DCL)- 유저생성,권한부여 및 회수 (0) | 2022.08.25 |
데이터 역모델링 (0) | 2022.08.19 |
조건부 표현식 (0) | 2022.08.19 |
데이터 정의어(DDL) - Index, Synonym (0) | 2022.08.05 |