ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 뷰(view)
    oracle/14장_뷰 2022. 12. 12. 12:12

    뷰의 개념

       - 하나 이상의 기본 테이블이나 다른 뷰를 이용하여 생성되는 가상 테이블

       - 전체의 데이터 중, 일부만 접근할 수 있도록 제한하기 위한 방법

       - 가상 테이블(virtual table) : 테이블은 디스크에 공간이 할당되어 저장, 뷰는 데이터 딕셔너리 테이블 뷰에

                                                     대한 정의만 저장 (디스크 저장공간이 할당되지 않음)

       - 테이블에서 파생된 객체 테이블과 유사하게 사용

       - 뷰에 대한 수정결과는 뷰를 정의한 기본 테이블에 적용

       - 뷰를 정의한 기본 테이블에서 정의된 무결성 제약 조건 상속

       - 뷰의 정의는 USER_VIEWS 데이터 딕셔너리 테이블에서 조회 가능

     

     뷰의 장점

         - 데이터를 보호하기 위한 보안(security)

                전체 데이터의 일부만 접근할 수 있는 뷰를 정의하여 일반 사용자에게 해당 뷰만 접근 가능하도록

                허용하여 중요한 데이터의 유출 방지 가능

         - 사용자 편의성(flexibility)

                전체 데이터의 일부만 접근할 수 있는 뷰를 정의하여 일반 사용자에게 해당 뷰만 접근

                가능하도록 허용하여 중요한 데이터의 유출 방지 가능

          

      뷰의 종류 

           - 단순 뷰(simple view)

                    하나의 기본 테이블에 의해 정의한 뷰, 단순 뷰에 DML 명령문 실행 가능, 처리 결과는 기본 테이블에 반영됨

           - 복합 뷰(complex view)

                    두개 이상의 기본 테이블로 구성한 뷰

                    무결성 제약조건, 표현식, GROUP BY 절의 유무에 따라 DML 명령문의 제한적으로 사용가능

                    복합 뷰는 DISTINCT, 그룹 함수, GROUP BY, START WITH CONNECT BY, ROWNUM을 포함할 수 없음

                    UNION ALL, INTERSECT 등과 같은 집합 연산 실행 불가

     

       뷰 생성

           - CREATE VIEW 명령문 사용

           - 뷰 생성시 칼럼 이름을 명시하지 않으면 기본 테이블의 칼럼 이름을 상속

           - 함수나 표현식에 의해 정의된 칼럼은 별도의 이름을 반드시 명시해야함 (명시하지 않을 시 에러 발생)

     

        사용법

            - OR REPLACE : 기존 뷰와 동일한 이름으로 뷰를 재성상하는 경우

            - FORCE : 기본 테이블의 존재 여부에 상관없이 뷰 생성

            - NOFORCE : 기본 테이블이 존재할 경우에만 뷰 생성, 기본 값

            -  ALIAS : 기본 테이블의 칼럼 이름과 다르게 지정한 뷰의 칼럼 이름

Designed by Tistory.