SQL 뷰(view)
- 기존 테이블에서 유도되어 만들어지는 가상 테이블(virtual table)로 외부 스키마를 구성한다
- 물리적 구현X, 카탈로그에 SELECT-FROM-WHERE 형태 SQL문으로만 저장된다
- 테이블을 들여다보는 창문 역할이기에 뷰를 변경하면 테이블도 변경된다
이렇게 생성된 뷰는 마치 테이블처럼 활용할 수 있으며 기존 테이블로 치환이 가능하다
뷰의 제거는 DROP VIEW를 하면 되는데,,
다만 기본키를 포함하는 경우에도 이론상 변경이 가능할 뿐, 다음과 같은 경우에는 불가능
- 상수나 연산자, 함수가 포함된 산술 식으로 뷰의 열이 구성된 경우
- DINSTINCT나 GROUP BY, HAVING이 사용된 경우
- 두 개 이상의 테이블이 관련된 경우
- 변경할 수 없는 뷰를 기초로 정의된 경우
뷰의 장점
- 확장, 구조 변경이 가능한 논리적 독립성을 제공
- 보안을 위한 데이터 접근 제어
- 사용자 데이터 관리 단순화
- 여러 사용자의 다양한 데이터 요구를 맞춤형 제공
뷰의 단점
- 정의 변경 불가
- 삽입, 삭제, 갱신 연산에 제한이 많음
삽입(Embedded) SQL
티미널에서 대화식으로 사용하는 SQL문을 DB응용 프로그램으로 옮겨 사용 가능
즉 삽입되어 사용되는 SQL은 앞에 EXEC SQL을 붙여 구분되며 호스트의 실행문에 사용 가능
결과값이 집합(테이블)으로 나올 경우 응용 프로그램에선 표시가 불가능하기 때문에
커서(cursor)로 활동 세트(active set)의 레코드들을 가리키는 형식으로 정의된다
Dynamic SQL을 통해 문자열 형태로 동적으로 SQL을 조작할 수 있다
요즘은 ODBC라는 표준 C API로 응용프로그램이 모든 종류의 DB에 접근할 수 있다
Java는 JDBC를 거쳐 해당 C 라이브러리들을 거쳐 접근하는 방식을 취한다
'Computer Science > Database, SQL' 카테고리의 다른 글
[HUFS/데이터베이스] #13 데이터 모델링과 E-R 모델 (4) | 2021.11.03 |
---|---|
[HUFS/데이터베이스] #12 데이터 종속성과 정규화 (0) | 2021.11.03 |
[HUFS/데이터베이스] #10 SQL 조작문 (0) | 2021.10.13 |
[HUFS/데이터베이스] #9 SQL 정의문 (2) | 2021.10.06 |
[HUFS/데이터베이스] #8 QBE & SQLite (0) | 2021.09.29 |