티스토리 뷰

카테고리 없음

데이터베이스 뷰

scoor17 2022. 8. 16. 20:23

QR인식 or 이미지 클릭하여 회원가입시(평생 수수료 25%이상 할인)-[25% or more discount on commission]

 

아래 링크를 통해 가입시 바이낸스 코인 거래수수료 25% 평생할인!

25% lifetime discount on Binance Coin transaction fees when you sign up through the link below!

https://accounts.binance.com/en/register?ref=286562663

 

Log In | Binance

login-description

accounts.binance.com

 

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! (바이낸스 가입 레퍼럴코드, 추천

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! 바이낸스 가입코드, 레퍼럴코드, 추천코드, 할인코드  :  ( 286562663 ) 아래 링크를 통해 가입시 25% 할인 받을 수 있습니다 http

pink24.tistory.com

 

 

뷰와 시스템 카탈로그
관계 데이터베이스 시스템의 뷰(view)는 다른 릴레이션으로부터 유도된 릴레이션(derived relation)으로서 ANSI/SPARC 3단계 아키텍처의 외부 뷰와 다름
 뷰는 관계 데이터베이스 시스템에서 데이터베이스의 보안 메카니즘으로서, 복잡한 질의를 간단하게 표현하는 수단으로서, 데이터독립성을 높이기 위해서 사용됨
 시스템 카탈로그는 시스템내의 객체(기본 릴레이션, 뷰, 인덱스, 사용자, 접근 권한 등)에 관한 정보를 포함
시스템 카탈로그를 적절히 활용하면 원하는 릴레이션을 데이터베이스에서 찾고, 그 릴레이션에 어떤 애트리뷰트들이 들어 있으며, 각 애트리뷰트의 데이터 타입은 무엇인가 등을 쉽게 파악할 수 있음

뷰의 개요
ANSI/SPARC 3단계 아키텍처에서 외부 뷰는 특정 사용자가 보는 데이터베이스의 구조
관계 데이터베이스에서의 뷰는 한 사용자의 전체 외부 뷰 대신에 하나의 가상 릴레이션(virtual relation)을 의미
뷰는 기존의 기본 릴레이션(base relation. 실제 릴레이션)에 대한 SELECT문의 형태로 정의됨
사용자는 여러 개의 릴레이션과 뷰를 사용할 수 있음  
뷰는 릴레이션으로부터 데이터를 검색하거나 갱신할 수 있는 동적인 창(dynamic window)의 역할

스냅샷(snapshot)
어느 시점에 SELECT문의 결과를 기본 릴레이션의 형태로 저장해 놓은 것
스냅샷은 사진을 찍은 것과 같아서 스냅샷을 정의하는 시점의 기본 릴레이션의 내용이 스냅샷에 반영됨
어떤 시점의 조직체의 현황, 예를 들어 몇년 몇월 시점에 근무하던 사원들의 정보, 재고 정보 등이 스냅샷으로 정의될 수 있음 

 

 

뷰의 정의
뷰를 정의하는 SQL문의 구문
CREATE VIEW 뷰이름 [(애트리뷰트(들))]
AS SELECT문
[WITH CHECK OPTION];

뷰의 이름 다음에 애트리뷰트들을 생략하면 뷰를 정의하는데 사용된 SELECT문의 SELECT절에 열거된 애트리뷰트들의 이름과 동일한 애트리뷰트들이 뷰에 포함됨
뷰를 정의하는 SELECT절에 산술식 또는 집단 함수에 사용된 애트리뷰트가 있는 경우, 뷰의 정의에 조인이 포함되어 있고 두 개 이상의 다른 릴레이션으로부터 가져온 애트리뷰트들의 이름이 같아서 뷰에서 두 개 이상의 애트리뷰트의 이름이 같게 되는 경우에는 뷰를 정의할 때 모든 애트리뷰트들의 이름을 지정해야 함 

 

 

 

예: 한 릴레이션 위에서 뷰를 정의
그림 4.8의 EMPLOYEE 릴레이션에 대해서 “3번 부서에 근무하는 사원들의 사원번호, 사원이름, 직책으로 이루어진 뷰”를 정의해보자. 아래의 뷰의 정의에는 뷰의 애트리뷰트들을 별도로 명시했기 때문에 뷰에는 EMPNO, EMPNAME, TITLE의 세 애트리뷰트가 포함됨

CREATE VIEW  EMP_DNO3 (ENO, ENAME, TITLE)
AS SELECT   EMPNO, EMPNAME, TITLE
   FROM   EMPLOYEE
         WHERE   DNO=3;

 

 

예: 두 릴레이션 위에서 뷰를 정의
그림 4.8의 EMPLOYEE와 DEPARTMENT 릴레이션에 대해서 “기획부에 근무하는 사원들의 이름, 직책, 급여로 이루어진 뷰”를 정의해보자. 아래의 뷰의 정의에는 뷰의 애트리뷰트들을 별도로 명시하지 않았기 때문에 뷰에 속하는 애트리뷰트들의 이름은 기본 릴레이션의 애트리뷰트들의 이름과 같다. 즉 뷰에는 EMPNAME, TITLE, SALARY의 세 애트리뷰트가 포함된다.

CREATE VIEW EMP_PLANNING
AS SELECT   E.EMPNAME, E.TITLE, E.SALARY
   FROM     EMPLOYEE E, DEPARTMENT D
          WHERE    E.DNO=D.DEPTNO
      AND D.DEPTNAME = ‘기획’;

뷰를 사용하여 데이터를 접근할 때 관계 DBMS에서 거치는 과정
시스템 카탈로그로부터 뷰의 정의, 즉 SELECT문을 검색
기본 릴레이션에 대한 뷰의 접근 권한을 검사
뷰에 대한 질의를 기본 릴레이션에 대한 동등한 질의로 변환

뷰의 장점
뷰는 복잡한 질의를 간단하게 표현할 수 있게 함
기획부에 근무하는 사원들 중에서 직책이 부장인 사원의 사원이름과 급여를 검색하는 질의를 기본 릴레이션을 사용하여 표현하면 아래와 같이 다소 복잡한 형태의 질의가 됨


뷰에 대해서 같은 결과를 검색하는 질의를 표현하면 


뷰는 데이터 무결성을 보장하는데 활용됨
기본적으로 뷰를 통해 투플을 추가하거나 수정할 때 투플이 뷰를 정의하는 SELECT문의 WHERE절의 기준에 맞지 않으면 뷰의 내용에서 사라짐



이 뷰의 정의할 때 WITH CHECK OPTION을 명시했다고 가정

뷰는 데이터 독립성을 제공함
뷰는 데이터베이스의 구조가 바뀌어도 기존의 질의(응용 프로그램)를 다시 작성할 필요성을 줄이는데 사용될 수 있음
예: 응용의 요구사항이 변경되어 기존의 EMPLOYEE 릴레이션이 두 개의 릴레이션 EMP1(EMPNO, EMPNAME, SALARY)과
   EMP2(EMPNO, TITLE, MANAGER, DNO)로 분해되었다고 가정하자. 응용 프로그램에서 기존의 EMPLOYEE 릴레이션을 접근하던 SELECT문은 더 이상 수행되지 않으므로, EMP1과 EMP2에 대한 SELECT문으로 변경해야 한다. 
아래와 같이 EMPLOEE라는 뷰를 정의했다면 응용 프로그램에서 EMPLOYEE 릴레이션을 접근하던 SELECT문은 계속해서 수행될 수 있음

뷰는 데이터 독립성을 제공함

 

 

뷰는 데이터 보안 기능을 제공함
뷰는 뷰의 원본이 되는 기본 릴레이션에 직접 접근할 수 있는 권한을 부여하지 않고 뷰를 통해 데이터를 접근하도록 하기 때문에 보안 메커니즘으로 사용할 수 있음
뷰는 일반적으로 기본 릴레이션의 일부 애트리뷰트들 또는 일부 투플들을 검색하는 SELECT문으로 정의되므로 뷰를 통해서 기본 릴레이션을 접근하면 기본 릴레이션의 일부만 검색할 수 있음
예: EMPLOYEE 릴레이션의 SALARY 애트리뷰트는 숨기고 나머지 애트리뷰트들은 모든 사용자가 접근할 수 있도록 하려면 SALARY 애트리뷰트를 제외하고 EMPLOYEE 릴레이션의 모든 애트리뷰트를 포함하는 뷰를 정의하고, 사용자에게 뷰에 대한 SELECT 권한을 허가

 

동일한 데이터에 대한 여러 가지 뷰를 제공함
뷰는 사용자들의 그룹이 각자 특정한 기준에 따라 데이터를 접근하도록 함

뷰의 갱신
뷰에 대한 갱신도 기본 릴레이션에 대한 갱신으로 변환됨
아래의 갱신들이 성공적으로 수행될 수 있는가?
갱신 1: 한 릴레이션 위에서 정의된 뷰에 대한 갱신

 

갱신 2: 두 개의 릴레이션 위에서 정의된 뷰에 대한 갱신

 

갱신 3: 집단 함수 등을 포함한 뷰에 대한 갱신

 

갱신이 불가능한 뷰
한 릴레이션 위에서 정의되었으나 그 릴레이션의 기본 키가 포함되지 않은 뷰
기본 릴레이션의 애트리뷰트들 중에서 뷰에 포함되지 않은 애트리뷰트에 대해 NOT NULL이 지정되어 있을 때
집단 함수가 포함된 뷰
조인으로 정의된 뷰

 

 

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

바이낸스 코인 거래수수료 25% 평생할인받기

 

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! (바이낸스 가입 레퍼럴코드, 추천

바이낸스 추천코드로 가입하고 수수료 25% 평생 할인 받으세요! 바이낸스 가입코드, 레퍼럴코드, 추천코드, 할인코드  :  ( 286562663 ) 아래 링크를 통해 가입시 25% 할인 받을 수 있습니다 http

pink24.tistory.com

 

비트코인 바이낸스 거래소 선물거래, 마진거래방법 가이드 - 바이낸스 회원가입(계정생성)

 

비트코인 바이낸스 선물거래, 마진거래 방법 feat.바이낸스 회원가입

바이낸스 거래소 선물 및 마진거래 방법! ------------------------------------------------------------------------ 1. 바이낸스 회원가입 2. 국내코인거래소에서 코인을 구매 후 바이낸스 지갑으로 전송. 3...

pink24.tistory.com

 

비트코인 바이낸스 마진거래방법, 선물거래방법 - USDT

 

바이낸스 선물, 마진거래 방법 (USDT)

Usdt 거래에 필요한 기존 단계들은 아래 링크드린 이전 포스팅을 참고해주세요 https://pink24.tistory.com/9 비트코인 바이낸스 선물거래, 마진거래 방법 feat.바이낸스 회원가입 바이낸스 거래소 선물

pink24.tistory.com

댓글

QR인식 or 이미지 클릭하여 회원가입시(평생 수수료 20%이상 할인)-[20% or more discount on commission]

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함