View & DataDictionaryView

이진아·2020년 3월 10일
0
post-custom-banner

뷰를 만드는 이유?

View는 물리적인 저장공간을 가지지 않는 논리적인 집합니다.

[뷰 생성방법]

CREATE VIEW [뷰 이름] (열1, 열2, 열3 ...)
AS SELECT 열1, 열2, 열3 ...
FROM [테이블 이름]
WHERE 속성 = ?

※ select 문은 사용에 제한이 없고, insert, update, delete는 제한적으로 가능(복합뷰 불가능)하다.

EX)

[VIEW 생성]
CREAT VIEW V_TEST
AS SELECT NAME, AGE 
FROM MEMBER
WHERE AGE BETWEEN 10 AND 19 

[VIEW 업데이트 명령]
UPDATE V_TEST SET AGE = AGE + 5
WHERE NAME ='JUNSIK'

[VIEW 실제 변환]
UPDATE MEMBER SET AGE = AGE + 5
WHERE NAME = 'JUNSIK'
AND AGE BETWEEN 10 AND 19 

1. security(보안) 관리 목적

만들어진 뷰는 테이블로 생성되지는 않지만, 정보를 선택적으로 보여줄 수 있다. 즉, 데이터베이스에 접근을 제한할 수 있다.

  • 사용자별 보안 등급에 따라 컬럼 및 범위를 선정하기도 한다.
  • 결과만 제공하고 알고리즘을 숨기기 위해 사용한다.
  • 중요한 데이터의 명칭을 감추기 위해 사용된다.
  • 데이터 변경을 막는다.

2. 단순한 쿼리문, 검색 조건 단순화

복잡한 쿼리문, 조인 문장 대신 간략하고 단순한 문장으로 만들어 쉽게 접근 가능하게 한다.

EX1)

EX2)


3. 테이블 조인 시 원소의 갯수 감소

인라인뷰

  • FROM 절 아래에 오며, 집합 수를 줄여 조인시 경우의 수를 줄여준다.
  • 검색속도 향상

※ 서브쿼리

  • WHERE, AND 절 아래에 오며, 간접 조건을 주고 원하는 정보를 조회한다.

4. 퍼포먼스를 높이기 위해

V$view

(동적 성능뷰, DynamicPerformanceView) DBA의 모니터링 작업용 정보를 제공하며, X$ 테이블을 베이스로 하는 뷰이다.

① V$DATAFILE (데이터 파일)

② V$VERSION (오라클의 버전확인)

※ DataDictionaryView [데이터 딕셔너리 뷰]

[데이터 딕셔너리]

  • 데이터베이스 자원을 효율적으로 관리하기 위한 시스템 테이블
  • 시스템이 직접 관리하는 테이블이라서 암호 같은 내용을 포함하고 있다.
  • 사용자의 테이블 생성 및 변경 등의 작업으로 데이터베이스 서버가 작동하면 갱신된다.
  • 사용자는 데이터 사전의 내용을 직접 수정 및 삭제 불가하다.
  • 데이터 딕셔너리 내용을 사용자가 이해할 수 있는 내용으로 변환하여 제공한다.
  • USER_ => 자신의 계정이 소유한 객체 등의 정보 조회
  • ALL_ => 자신의 계정을 소유한, 혹은 권한을 부여 받은 객체 등에 관한 정보 조회
  • DBA_ => 데이터베이스 관리자만 접근 가능한 객체 등의 정보 조회

(1) sys 계정에서

① DBA_DATA_FILES (데이터 파일에 관한)

② DBA_SYS_PRIVS (계정에 부여된 권한)

③ DBA_USER (계정에 관한)


(2) normal 계정에서

① ALL_TAB_COLUMNS (테이블의 이름과 테이블 크기)

오라클이 MUMBER의 크기가 2여도 디폴트값을 22로 잡는다

오라클이 DATE의 디폴트값을 7로 잡는다

② USER_TABLES (계정이 소유한 테이블 오브젝트)

③ USER_IDN_COLUMNS (계정이 소유한 인덱스 오브젝트)

④ USER_CONSTRAINT_NAME (계정의 제약조건)

post-custom-banner

0개의 댓글