- 뷰: 관계 데이터베이스 시스템에서 데이터베이스의 보안 메커니즘. 복잡한 질의를 간단하게 표현하는 수단. 데이터 독립성을 높이기 위해 사용.
- 시스템 카탈로그: 시스템 내의 객체에 관한 정보를 포함.
8-1 뷰
1. 뷰
- 한 사용자의 전체 외부 뷰 대신 하나의 가상 릴레이션을 의미.
- 뷰는 기존의 기본 릴레이션에 대한 SELECT문으로 정의됨.
- 뷰는 리렐이션으로부터 데이터를 검생하거나 갱신할 수 있는 동적인 창의 역할을 함.
- 스냅샷: SELECT문의 결과를 기본 릴레이션의 형태로 저장한 것.
2. 뷰의 정의
3. 뷰 사용시 DBMS에서 거치는 과정
4. 뷰의 장점
- 복잡한 질의를 간단하게 표현할 수 있게 함
- 데이터 무결성을 보장하는데 활용됨. - WITH CHECK OPTION을 사용하면 뷰가 선택할 수 없는 투플들을 생성할 수 없도록 보장.
- 데이터 독립성을 제공함
- 데이터 보안 기능을 제공함
- 동일한 데이터에 대한 여러 뷰를 제공함
5. 뷰의 갱갱갱갱갱갱신
: 뷰에 대한 갱신도 기본 릴레이션에 대한 갱신으로 변환됨.
- 갱신1: 한 릴레이션 위에서 정의된 뷰에 대한 갱신
MANAGER와 SALARY 애트리뷰트에는 널값, DNO 애트리뷰 트에는 부서번호 1이 입력된다
(4.3.2절에서 EMPLOYEE 릴레이션을 정의할 때 DNO 애트리 뷰트의 디폴트값을 1로 지정함.)
- 갱신2: 두 개의 릴레이션 위에서 정의된 뷰에 대한 갱신
기본키의 값이 널인 투플은 엔티티 무결성 제약조건에 의해 삽입을 거절함.
- 갱신3: 집단 함수 등을 포함한 뷰에 대한 갱신
위처럼 집단 함수의 결과가 애트리뷰트에 포함되므로 애트리뷰트 이름을 명시해야함.
이 뷰를 갱신하는 연산은 EMPLOYEE 릴레이션에 대한 갱신으로 변환될 수 없음.
따라서 위의 두 명령어는 거절됨.
6. 갱신이 불가능한 뷰
- 한 릴레이션 위에서 정의되었으나 그 릴레이션의 기본 키가 포함되지 않은 뷰
- 기본 릴레이션의 애트리뷰트들 중 뷰에 포함되지 않은 애트리뷰트에 대해 NOT NULL이 지정되었을 때
- 집단 함수가 포함된 뷰
- 조인으로 정의된 뷰
8-2 관계 DBMS의 시스템 카탈로그
1. 시스템 카탈로그
: 데이터베이스의 객체와 구조들에 관한 모든 데이터. 메타데이터, 데이터 사전, 시스템 테이블이라고 함.
2. 시스템 카탈로그가 질의 처리에 어떻게 활용되는가
- EMPLOYEE 릴레이션이 데이터베이스에 존재하는가 검사
- SELECT저로가 WHERE절에서 사용된 애트리뷰트가 존재하는가
- 자료형 검사
- 질의를 입력한 사용자가 EMPLOYEE릴레이션의 애트리뷰트들을 검색할 권한이 있는가 확인
- 등등
3. 질의 최적화
: DBMS가 질의를 수행하는 여러 가지 방법들 중에 가장 비용이 적게 드는 방법을 찾는 과정
Paring and translation → relational algebra expression
→ Optimization → excution plan
→ evaluation engine → query output
4. 관계 DBMS의 시스템 카탈로그
- 릴레이션에 관한 정보를 유지하는 릴레이션을 SYS_RELATION
- 애트리뷰트에 관한 정보를 유지하는 릴레이션의 이름을SYS_ATTRIBUTE
- 어떤 사용자도 직접 시스템 카탈로그를 직접 갱신할 수 없음.
- DELTE, UPDATE, INSERT 불가
- 릴레이션 소유자인 kim이 EMPLOYEE 릴레이션에서 MANAGER 애트리뷰트를 삭제할 때
5. 카탈로그에 유지되는 통계 정보
8-3 Oracle Server의 시스템 카탈로그
1. 데이터 사전의 세 부류
- DBA_xxx 뷰: 데이터베이스 내의 모든 객체들에 관한 정보
- ALL_xxx 뷰: 현재의 사용자가 접근할 수 있는 객체들에 관한 정보
- USER_xxx 뷰: 현재 사용자가 소유하고 있는 객체들에 관한 정보
2. 데이터 사전 사용 예시
교재 참조
'Computer Science > DataBase' 카테고리의 다른 글
[데이터베이스] 9장 트랜잭션 (0) | 2023.12.12 |
---|---|
[데이터베이스] 7장 릴레이션 정규화 (0) | 2023.12.12 |
[데이터베이스] 6장 물리적 데이터베이스 설계 (1) | 2023.11.26 |
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (2) (0) | 2023.11.26 |
[데이터베이스] 5장 데이터베이스 설계와 ER모델 (1) (0) | 2023.11.25 |