110 likes | 256 Views
12. 뷰 (view). 뷰란 ? 뷰의 생성 뷰의 수정 뷰의 삭제. 인사 데이터베이스. EMP 테이블. DEPT 테이블. 뷰란 ?. 뷰는 자체적인 데이터를 포함하거나 저장하지 않는 논리적 구조로 기본테이블의 데이터를 조회하거나 변경할 수 있는 창이다 . 즉 가상 테이블이다 . 뷰의 장점 보안성 - 허가되지 않는 데이터에 대한 접근을 막는다 . 편리성 - 여러 테이블을 조인하여 단일 뷰로 접근한다 . 무결성 - 뷰의 제약 조건을 통해 자동 데이터 검사 가능 .
E N D
12. 뷰 (view) • 뷰란? • 뷰의 생성 • 뷰의 수정 • 뷰의 삭제
인사 데이터베이스 EMP 테이블 DEPT 테이블
뷰란? • 뷰는 자체적인 데이터를 포함하거나 저장하지 않는 논리적 구조로 기본테이블의 데이터를 조회하거나 변경할 수 있는 창이다. 즉 가상 테이블이다. • 뷰의 장점 • 보안성 - 허가되지 않는 데이터에 대한 접근을 막는다. • 편리성 - 여러 테이블을 조인하여 단일 뷰로 접근한다. • 무결성 - 뷰의 제약 조건을 통해 자동 데이터 검사 가능. • 일관성 - 기본 테이블의 변경 시에서 일관적 이미지 제공. • 뷰의 단점 • 질의 변환 시간 소모 (view 기본 테이블) • 뷰를 통한 복잡한 연산은 불가능
2. 뷰의 생성 CREATE VIEW 뷰이름 [컬럼 리스트] AS SELECT 문장 [WITH CHECK OPTION] • ‘기계’과에 다니는 학생에 대한 뷰를 생성하라 SQL> CREATE VIEW V_STUDENT AS SELECT * FROM STUDENT WHERE SOSOK = ‘기계’ ;
교수 테이블에서 교수 이름과 학과 직책만 나타내는 뷰를 작성하여라 SQL> CREATE V_PROFESSOR AS SELECT P_NAME, SOSOK, BOJIK FROM PROFESSOR; • ‘간호’과 학생의 학번, 이름, 생일을 포함하는 뷰를 만들어라 SQL> CREATE VIEW V1 AS SELECT S_SN, S_NAME, BIRTH FROM STUDENT WHERE SOSOK = ‘간호’;
학생의 학번, 이름, 학과, 담당 교수 이름을 나타내는 뷰를 생성하라. (JOIN을 통한 뷰 생성) SQL> CREATE VIEW V2 AS SELECT S_SN, S_NAME, A.SOSOK, P_NAME FROM STUDENT A , PROFESSOR B WHERE A.P_SN = B.P_SN ; SQL> SELECT * FROM V2 ;
학생이름, 소속, 나이로 이루어진 뷰를 생성하라. SQL> CREATE VIEW V3 (S_NAME, SOSOK, AGE) AS SELECT S_NAME, SOSOK , TO_CHAR(SYSDATE , ‘YYYY’ ) - TO_CHAR (BIRTH, ‘YYYY’) + 1 FROM STUDENT; SQL> DESC V3 ; • VIEW를 통해 나이가 27 이상인 학생을 조회하라. SQL> SELECT * FROM V3 WHERE AGE >= 27;
3. 뷰의 수정 • 뷰를 이용하여 INSERT, UPDATE, DELETE를 수행하수 있지만 많은 제약이 따른다. • 교재 P 227의 참고 • 기계과 학생으로 이루어진 V_STUDENT에 자료를 삽입해 보자. SQL> INSERT INTO V_STUDENT VALUES ( 9929123,’최우람’,’기계’,1,’80/03/14’,293); V_STUDENT와 STUDENT 각각을 조회하여 확인하기.
VIEW를 이용하여 ‘최우람’ 학생을 ‘전산’과로 수정하여 보자. SQL> UPDATE V_STUDENT SET SOSOK = ‘전산’ WHERE S_NAME = ‘최우람’ ; • STUDENT와 V_STUDENT 를 이용하여 ‘최우람’ 학생을 조회하여 보자.
WITH CHECK OPTION • 2학년 학생으로 이루어진 VIEW를 생성하라. 이때 WITH CHECK OPTION을 이용하여 VIEW를 통한 접근을 제어하라. SQL> CREATE VIEW V4 AS SELECT * FROM STUDENT WHERE YEAR = 2 WITH CHECK OPTION ; • V4의 VIEW를 이용하여 ‘김진우’ 학생을 1학년으로 수정 하여라.
4. 뷰의 삭제 • DROP VIEW 뷰 이름; SQL> DROP VIEW V4; • 뷰를 삭제하면 이를 참조하는 다른 모든 종속된 뷰도 자동적으로 삭제된다. • 기본 테이블이 삭제되면 이에 종속된 뷰들도 함께 삭제된다.