일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 백준 알고리즘
- 백준알고리즘
- 그래프 탐색
- 오라클
- SWEA
- 다익스트라
- 너비 우선 탐색
- BFS
- 깊이우선탐색
- 그리디 알고리즘
- 문자열
- 브루트포스 알고리즘
- oracle
- 완전탐색
- SW Expert Academy
- 브루트포스
- 그래프 이론
- 파이썬
- javascript
- DFS
- 너비우선탐색
- 구현
- 자바스크립트
- 백트래킹
- 데이터베이스
- 스택
- 다이나믹 프로그래밍
- DP
- Python
- 프로그래머스
- Today
- Total
민규의 흔적
[오라클 DB] 관계 DBMS의 시스템 카탈로그 본문
시스템 카탈로그
데이터베이스의 객체(사용자, 릴레이션, 뷰, 인덱스, 권한 등)와 구조들에 관한 모든 데이터를 포함하는 것을 의미하며,
메타데이터(데이터에 관한 데이터의 의미)라고 한다.
사용자 및 질의 최적화 모듈 등 DBMS 자신의 구성 요소에 의해서 사용된다.
데이터 사전(Data dictionary) 또는 시스템 테이블 이라고도 부른다.
시스템 카탈로그 활용 - 질의 최적화
시스템 카탈로그의 사용 목적 중 하나로, DBMS가 질의를 수행하는 여러 가지 방법들 중에서 가장 비용이 적게 드는 방법을 찾는 과정을 질의 최적화라고 한다.
다음의 예시 질의를 보며 시스템 카탈로그가 어떻게 활용되는지 알아보자.
SELECT EMPNAME, SALARY, SALARY*1.1
FROM EMPLOYEE
WHERE TITLE='과장' AND DNO=2;
위의 질의를 처리할 때, 시스템 카탈로그는 다음과 같은 연산들을 연산 과정을 거치며 최적의 질의 처리 수단을 고안해낸다.
1. SELECT문이 문법적으로 정확한가를 검사함.
2. SELECT문에서 참조하는 EMPLOYEE 릴레이션이 데이터베이스에 존재하는지 존재 여부를 검사한다.
3. EMPLOYEE 릴레이션에 SELECT절에 열거된 애트리뷰트와 WHERE절에서 조건에 사용된 애트리뷰트가 존재하는가를 확인한다.
4. SALARY 애트리뷰트가 수식에 사용되므로 이 애트리뷰트의 데이터 타입이 숫자형(정수형이나 실수형)인가를 검사한다.
5. TITLE이 문자열과 비교되므로 이 애트리뷰트의 데이터 타입이 문자형(CHAR(n) 또는 VARCHAR(n) 등)인가 등을 검사함.
6. 이 질의를 입력한 사용자가 EMPLOYEE 릴레이션의 EMPNAME, SALARY 애트리뷰트를 검색할 수 있는 권한이 있는가를 확인한다.
7. TITLE 애트리뷰트와 DNO 애트리뷰트에 인덱스가 정의되어 있는지 확인한다.
두 애트리뷰트에 각각 인덱스가 존재하면, DBMS가 두 인덱스 중에서 조건을 만족하는 튜플 수가 적은 것을 선택한다.
예를 들어, EMPLOYEE 릴레이션의 전체 튜플 수는 7이고, TITLE 애트리뷰트에는 사원, 대리, 과장, 부장, 사장의 다섯가지 값, DNO 애트리뷰트에는 1,2,3의 세 가지 값들이 존재한다.
TITLE 애트리뷰트에 정의된 인덱스가 DNO에 정의된 인덱스보다 대상 튜플들을 더 좁혀주므로 유리하다. 만약 하나만 인덱스가 존재한다면 그 하나를 선택한다.
'데이터베이스' 카테고리의 다른 글
[오라클 DB] 트랜잭션의 완료(COMMIT)와 철회(ROLLBACK) (1) | 2024.01.31 |
---|---|
[오라클 DB] 트랜잭션의 특성 (0) | 2024.01.31 |
[오라클 DB] 뷰(VIEW) (2) | 2024.01.13 |
[오라클 DB] 인덱스 선정 지침과 데이터베이스 튜닝 (2) | 2023.11.20 |
[오라클 DB] SQL의 인덱스 정의문, 인덱스의 장점과 단점 (0) | 2023.11.20 |