▣ 뷰 갱신 제약사항_함수가 사용된 산술식, 집계함수, 집합연산, DISTINCT, GROUP BY, HAVING, 조인 등 / 뷰 장점, 단점
- 뷰의 열이 상수나 산술 연산자 또는 함수가 사용된 산술 식으로 정의된 경우
- 집계 함수(COUNT, SUM, AVG, MAX, MIN 등)가 사용된 경우
- 집합 연산(UNION, UNION ALL, INTERSECT, EXCEPT/MINUS 등)이 사용된 경우
- DISTINCT, GROUP BY, HAVING이 사용된 경우
- 두 개 이상의 테이블이 연관되어 정의된 경우
- 변경할 수 없는 뷰를 기초로 정의된 경우
- 기타 순환관계 전개처리(CONNECT BY … START WITH), ROWNUM 등이 사용된 경우
▣ 뷰 장점, 단점
구분 | 설명 |
장점 | 논리적 독립성 제공 데이터 접근 제어로 보안성 제공 사용자의 데이터 관리를 용이하게 함 뷰로 SQL문을 간단하게 함 여러 사용자의 상이한 응용이나 요구 지원 |
단점 | 뷰 정의를 변경할 수 없음(DBMS에 따라 허용하는 경우 있음) 삽입, 삭제, 갱신 연산에 많은 제한을 가짐(이론적으로 변경이 가능한 경우라도 실제로는 변경이 허용되지 않는 경우 있음) |
▣ 뷰(VIEW)에서 활용되는 WITH CHECK OPTION
WITH CHECK OPTION절은 VIEW에 대한 갱신이나 삽입 연산을 실행할 때 VIEW 정의 조건을 위반하면 실행이 거부된다는 것을 의미하므로
- 투플이 뷰에서 사라지지 않도록 보호하고,
- 데이터 무결성을 유지할 수 있으며,
- INSERT문과 UPDATE문으로 뷰에 정의된 조건에 위배된 투플을 생성할 수 없음.
2016년 62번
정답 : 2번
- 한 가지 유의해야 할 사항은 DBMS마다 제약사항을 지원하는 정책이 다를 수 있음
또한, 두 개 이상의 테이블이 연관되어 정의되었다고 무조건 갱신이 허용되지 않는 것은 아님
두 테이블이 1:M 조인 시 M쪽의 테이블 키가 보존되므로, 즉 집합 기준이 M쪽 테이블을 기준으
로 유지되어 M쪽 테이블만 갱신이 가능
① INSERT INTO EMPDEPT VALUES ('kim', 'sales', 'managing', 10);
=> DEPT와 EMP 2개의 테이블이 조인으로 연결되어 있으므로 키보존 테이블인 EMP에만 갱신
(삽입)이 가능합니다만, 삽입 시 EMP의 기본키(PK) 컬럼인 EMPNO가 뷰에서 정의되어 있지
않으므로 데이터를 삽입할 수 없습니다.
③ CREATE INDEX E_01 ON EMPDEPT(ENAME);
=> 기본적으로 뷰는 물리적 저장공간을 가지지 않기 때문에 인덱스를 설정할 수 없습니다.
④ UPDATE EMPDEPT SET DEPTNO=20 WHERE JOB LIKE 'managing';
=> 키보존 테이블인 EMP의 컬럼만 갱신이 가능하며, 뷰에서 DEPTNO는 DEPT 테이블의 컬럼으
로 정의하고 있으므로 갱신이 불가능합니다.
2017년 51번
정답 : 4번
- 저장 프로시저(Stored Procedure), 사용자 정의 함수(Function), 트리거(Trigger) 같은 서버 기반 저장 오브젝트(Object)에 대한 설명임
2018년 63번
정답 : 4번
삽입 시 STUDENT 테이블 기본키(PK) 컬럼인 SNO가 빠져 있으므로 데이터를 삽입할 수 없음
2019년 53번
정답 : 3번
표준SQL에서 뷰는 UNION등 일부 구문 외 집계함수, 조인 등 일반 SELECT검색문처럼 구문에 대한 제약사항 없이 구현이 가능함
2021년 55번
정답 : 2번
가. 뷰 생성시 WITH CHECK OPTION을 사용하면, 해당 뷰에 대한 투플의 삽입/갱신이 거부될 수 있음 (맞음)
- 뷰의 열이 상수나 산술 연산자 또는 함수가 사용된 산술 식으로 정의된 경우
- 집계 함수(COUNT, SUM, AVG, MAX, MIN 등)가 사용된 경우
- 집합 연산(UNION, UNION ALL, INTERSECT, EXCEPT/MINUS 등)이 사용된 경우
- DISTINCT, GROUP BY, HAVING이 사용된 경우
- 두 개 이상의 테이블이 연관되어 정의된 경우
- 변경할 수 없는 뷰를 기초로 정의된 경우
- 기타 순환관계 전개처리(CONNECT BY … START WITH), ROWNUM 등이 사용된 경우
나. 표준 SQL에서 뷰는 UNION, ORDER BY, GROUP BY 일부 구문 외 집계함수, 조인 등
일반 SELECT 검색문처럼 구문에 대한 제약사항 없이 구현이 가능함 (나 틀림)
다. 집계함수에 의해 생성된 뷰의 경우 일반적으로 갱신을 허용하지 않음(맞음)
라. 일반 뷰 생성시 CREATE VIEW 구문, 실체화 뷰 생성 시 CREATE MATERIALIZED VIEW
구문을 사용함 (라 틀림)
2015년 58번
정답 : 2번, 4번
'데이터베이스' 카테고리의 다른 글
SQL 인젝션(Injection) 보안 상의 허점 (0) | 2021.09.09 |
---|---|
관계 데이터 모델의 키(Key) 후보키, 수퍼키, 기본키, 대체키, 외래키 (0) | 2021.09.09 |
타임스탬프 순서 기법, 토마스 기록규칙 (0) | 2021.09.03 |
2단계 로킹 규약(2 phase locking protocol), 공유로크 shared lock, 배타적로크 exclusive lock, 2PL (0) | 2021.09.03 |
오분류표 (confusion matrix), 정분류율, 오분류율, 재현율(민감도), 정밀도, 정확도, 특이도, F1 Score, 정보검색모델 (0) | 2021.08.29 |