본문으로 바로가기

[DATABASE][view]

category DATABASE 2018. 4. 20. 13:54

view


뷰의 개념


-물리적인 테이블을 근거한 논리적인 가상 테이블 


뷰의 개념(특징)

Ÿ뷰는 테이블에 대한 제한을 가지고 있기에 테이블의 일정 부분만 확인할 수 있는 가상의 테이블임.

Ÿ뷰가 정의된 기본 테이블이 변경되면, 뷰도 자동적으로 변경.

Ÿ외부 스키마는 뷰와 기본테이블 정의로 구성.

Ÿ뷰의 검색은 테이블의 검색과 동일하지만 DML문(INSERT, UPDATE, DELETE)사용에는 제약이 따름.

ŸDBA는 보안적이면에서 뷰를 활용할수 있다.

Ÿ뷰는 CREATE문으로 DEFINE되고 SYSVIEW에 SAVE됨.

Ÿ생성된(한) 테이블에 대한 뷰의 개수는 제한이 없다.

Ÿ뷰는 실제 자료(물리적 데이터)를 갖지는 않지만, 뷰를 통해 테이블을 관리할 수 있다.

뷰의 개념(장단점)

뷰의 생성 1

뷰를 생성하기 위해서는 테이블과 같이 CREATE문을 사용한다. 테이블과 달리 뷰는 이미 존재하는 테이블을 근거로 한 쿼리문 형태로 저장되므로 기본 테이블이 있어야된다.

 

   ※ 기본테이블 : 뷰에 의해 제한적으로 접근해서 사용하는, 실질적으로 데이터를 저장하고 있는 물리적인 테이블.



뷰의 생성 2

뷰를 생성하기 위해서는 테이블과 같이 CREATE문을 사용한다. 테


이블과 달리 뷰는 이미 존재하는 테이블을 근거로 한 쿼리문 형태


로 저장되므로 기본 테이블이 있어야된다.

 

   ※ 기본테이블 : 뷰에 의해 제한적으로 접근해서 사용하는, 실질


적으로 데이터를 저장하고 있는 물리적인 테이블.



기본테이블에 의해 파생된 뷰는 마치 테이블처럼 DML문(INSERT,


 UPDATE, DELETE)을 사용할 수 있다. 앞에서 설명했듯이 뷰는 존


재하는 테이블에 의해 파생된 가상테이블이므로 DML문이 실행되


그 뷰를 정의한 기본테이블이 변경된다.



뷰의 생성(그림)




뷰의 생성(명령어) 


ŸCREATE OR REPLACE VIEW

-CREATE VIEW는 뷰의 구조 변경시 삭제후 재생성해야됨

-CREATE OR REPLACE VIEW 기존뷰가 있어도 삭제하지않고새로

운 구조로 변경가능.

ŸFORCE : 기본 테이블의 존재여부를 따지지않고 뷰 생성.

ŸWITH CHECK OPTION : 해당 뷰의 범위내에서만 DML문 가능.

ŸWITH READ ONLY : DML문 불가, SELECT만 가능.


※뷰 생성시 권한으로 인해 에러 발생시


GRANT CREATE VIEW TO 사용자명



뷰의 조회


뷰(가상테이블)의 조회도 일반적인 테이블 처럼 SELECT문

 

사용한다.


뷰의 정보를 살펴보면  테이블처럼 디스크(기억공간)에  물리


적으로 데이터가 저장되어 있지않고, 뷰를 정의할 때 작


SELECT문만 볼수 있는걸 알수있다.



뷰의 조회(동작원리)


1.사용자가 뷰에 대해서 질의를 하면 USER_VIEWS에서 뷰에 대

한 저의를 조회한다.

2.기본 테이블에 대한 뷰의 접근 권한을 조회한다.

3.뷰에 대한 질의를 (그 뷰의 해당되는)기본테이블에 대한 질의

로 변환된다.

4.기본테이블에 대한 질의를 통해 데이터를 검색한다.


5.검색된 결과를 보여준다.

뷰의 종류 1

뷰 정의"에 있어서 사용되는 테이블수에 따라 두가지로 나뉜다.


종류

Simple-View

Complex-View

테이블수

1개

2개이상

그룹함수

사용가능

사용불가능

DISTINCT

사용불가능

사용가능

DML문

사용가능

용불가능



1.단순 뷰에 대한 데이터 조작하기

2.단순 뷰의 칼럼에 별칭 부여하기

3.그룹 함수를 사용한 단순 뷰

4.복합 뷰


뷰를 한마디로 정의하면= 보안 + 편의





SCHEMA‘s LIST

개념과 구조 

(블로그 안에 자세히 설명해 놨다.)

개념


스키마(schema)는 데이터베이스에서 자료의 구조, 자료의 표현 방


법, 자료 간의 관계를 형식 언어로 정의한 구조이다. DBMS이 주어진 설정에 따라 데


이터베이스 스키마를 생성하며, 데이터베이스 사용자가 자료를 저장, 조회, 삭제, 변경


할 때 DBMS는 자신이 생성한 데이터베이스 스키마를 참조하여 명령을 수행한다.


스키마는 3층 구조로 되어있다.



구조

외부 스키마(External Schema) : 프로그래머나 사용자의 입장에서 데이터베이스의 모습
으로 조직의 일부분을 정의한 것.

개념 스키마(Conceptual Schema) : 모든 응용 시스템과 사용자들이 필요로하는 데이터
를 통합한 조직 전체의 데이터베이스 구조를 논리적으로 정의한 것

내부 스키마(Internal Schema) : 전체 데이터베이스의 물리적 저장 형태를 기술하는 것


스키마란 임의의 사용자가 생성한 모든 데이터베이스 객체들을 말하며,


스키마 이름은 그 사용자의 이름과 같다.




PARTITION’s LIST

개념

테이블 내의 특정 칼럼값을 기준으로 데이터를 분할해서(파티션) 테이블을 생성하는 방법. 논리적으로는 하나의 테이블이지만 물리적으로는 분할한 만큼 파티션이 만들어져 입력되는 컬러맚에 따라 분할된 파티셧별로 데이터가 저장됨.

목적 : 대용량 테이블의 경우 관리 및 조회시 효율성과 성능을 높이기 위해.


장단점

장점



Ÿ디스크 장애시 해당 파티션만 영향을 받으므로 데이터의 훼손 가능성이 감소하고 가용성이 향상

Ÿ개별 Partition 단위의 관리가 가능 (DML, Load, Import, Export, Exchange 등)

Ÿ조인시 파티션 간의 병렬 처리 및 파티션 내에서의 병렬 처리를 수행 

Ÿ데이터 액세스 범위를 줄여 성능을 향상 시키고 테이블의 파티션 단위로 디스크의 I/O를 분산해 부하를 감소

단점
파티션 키 값 변경에 대한 별도 관리 필요 ( 관리가 불편 )


기본 생성문

CREATETABLE 테이블명 (

칼럼 설정

)

PARTITION BY RANGE (필드 이름) (

BY LIST

BY HASH

PARTITION 파티션이름 VALUES less than(값),  

)


'DATABASE' 카테고리의 다른 글

[DATA BASE][인덱스]  (0) 2018.04.20
[DATABASE][SCHEMA]  (0) 2018.04.20
[DATABASE][SUBQUERY]  (0) 2018.04.20
[DATABASE][JOIN]  (0) 2018.04.20
[DATBASE][스키마]  (0) 2018.04.20