ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 뷰 (Views)
    데이터베이스/MS-SQL 2020. 4. 1. 09:46
    반응형

    뷰를 사용해야하는 이유

     

    사용자 관점 데이터 제공

     회사에서 데이터베이스를 사용한다면 그 테이블의 형태나 테이블이 가지고 있는 이름은 일반 사용자가 보기에 어려움이 있을 수 있다. 사용자의 관점에서 데이터를 한눈에 확인할 수 있도록 데이터의 요약 또는 변경이 필요하다. 

     

    복잡성 숨김

     데이터의 복잡한 로직을 숨길 수 있다. 예를들어 프로시저를 생성해야 하고 그 프로시저 또한 많은 내용물을 담고 있다면 개발자의 입장에서도 많은 코드를 한눈에 보기 어려울 수 있다. 그 와중에 사용해야하는 테이블의 쿼리문 또한 복잡하다면 원하는 코드를 찾는데에 소모하는 비용도 만만치 않을것이다. 그 때 뷰를 사용하여 테이블을 압축한다면 코드를 한눈에 보기 편한 이점을 가져올 수 있다.

     

    성능향상

     성능 향상의 부분에서는 여러가지를 들 수 있겠지만 예를 들어 한 테이블이 있고 그 테이블이 가진 데이터가 방대할 때 필요없는 정보를 함께 출력해올 필요는 없다. 뷰를 사용하면 그런 부분에 대한 압축을 위해 새로운 테이블을 생성할 수도 있겠지만 사용처가 많아질수록 일일이 새로운 데이터를 만드는것 또한 소모적이고 데이터를 비효율적으로 사용하게 되는 일이다. 뷰를 사용하면 존재하는 테이블이 아닌 가상의 테이블로서 원하는 데이터만을 추출할 수 있도록 사용하는것이 가능하다.

     

    데이터재구성

     위에서 소개한 설명과 별 다른점이 없다. 내가 원하는곳에 필요한 데이터만을 전송하기 위해서 테이블1과 테이블2에 있는 자료들을 뷰로 묶어서 간편하게 데이터를 보낼 수 있다.

     


    뷰 생성방법

    뷰의 생성방법은 간단하다.

    SELECT * FROM emp

    위와 같은 셀렉트문이 있다면

    CRATE VIEW 'Vw_aaaaa'
    AS
    SELECT * FROM emp
    GO

    위처럼 CREATE VIEW 명령으로 묶어주면 된다.

     


    뷰 암호화

     

     뷰의 암호화는 어떤 역할일까? 뷰에 접근하기 위해서 패스워드를 필요로 하는것이 아니다. MSSQL에서 사용가능한 프로시저인 sp_helptext는 뷰의 이름을 입력하였을 때 그 뷰를 생성하기 위한 코드를 출력해준다. 하지만 만약 암호화를 사용한다면 뷰가 어떻게 생성되었는지에 대한 내용물을 볼 수 없게 된다.

     

     암호화 한 뷰는 생성한 당사자만 알기 때문에 암호화를 사용할 때는 꼭 뷰 생성에 대한 쿼리를 따로 저장해두어야 한다. 함께 작업하는 인원이 수정이나 변경을 해서는 안되는 중요한 쿼리가 아닌 경우에는 암호화를 사용하지 않는것을 권장한다.

     

    암호화 방법

     암호화 방법은 매우 간단하다. 뷰 변경 명령을 사용하여 암호화를 추가한다고 하면 아래와 같이 사용할 수 있다.

    ALTER VIEW 'Vw_aaaaa'
    WITH ENCRYPTION //암호화를 위해서 입력해주어야 하는 코드
    AS
    SELECT * FROM emp
    GO

    개체보호

     참조되어있는 테이블의 내용이 변경되면 난감할 수 있으므로 참조하고 있는 테이블을 보호하는 명령을 사용할 수 있다. 아래의 명령을 사용하여 뷰를 생성하면 참조하고 있는 테이블이 변경되는것을 막을 수 있다.

    ALTER VIEW 'dbo.Vw_name'
            **WITH SCHEMABINDING**
    AS
    SELECT * FROM something
    GO

     

    댓글

Designed by Tistory.