view는 가상의 테이블이다.
view의 사용 목적은 보안성과 동기화이다. 단순히 테이블의 일정 데이터를 보여주고 싶지 않아서 일부 데이터를 제외하고 복제해서 준다면, 이후 테이블의 변동이 있을 때 변동이 상대에게 적용되지 않을 것이다.
따라서 가상 테이블-원본 테이블 사이에는 동기화가 걸려있다.
예시를 보자.
STUDENT 테이블에는 주민과 생일이라는 민감한 데이터가 있다.
따라서, 다음 두 데이터를 뺀 VIEW를 만들어보자.
CREATE OR REPLACE VIEW STUDENT_VIEW
AS
SELECT STUDNO,NAME, ID, GRADE, HEIGHT, WEIGHT, DEPTNO1, DEPTNO2, PROFNO
FROM STUDENT;
정말 빠져있는 테이블이 뷰 폴더 내에 만들어진다.
이제 테이블 내에 자료를 넣듯 똑같이 자료를 넣는다.
INSERT INTO STUDENT_VIEW(STUDNO, NAME, ID, GRADE, HEIGHT, WEIGHT, DEPTNO1, DEPTNO2, PROFNO)
VALUES(9916, '이수정', 'SOUL', 4, 156, 50, 301, 201, 1001);
자료가 동기화 된 것을 어떻게 알 수 있을까?
삽입된 자료에는 주민번호가 없다. 원본 테이블의 주민에 NULL을 걸러 가보면 다음과 같은 경고문이 걸린다.
반응형
'데이터베이스' 카테고리의 다른 글
11. SUB QUERY (0) | 2020.04.02 |
---|---|
10. DML (0) | 2020.04.02 |
DDL, DML과 시퀀스 체험하기 (0) | 2020.04.01 |
8. JOIN (0) | 2020.04.01 |
오라클 실습 3. 서브쿼리와 ROWNUM을 이용한 그룹화 되지 않는 함수에 그룹함수 적용하기. (0) | 2020.03.26 |