TIL(2020.11.11)

Awesome·2020년 11월 11일
0

TIL

목록 보기
39/46

데이터베이스 기초 강의

한국산업기술대학교 데이터베이스 강의 내용 정리
환일님 블로그 : 7장 인덱스
현랑님 노션 : 8장 노트

9장. 뷰, 조인, 서브쿼리

1. 뷰

뷰를 만드는 이유(장점)

  1. 보안 : 테이블 내의 특정 컬럼에 대한 권한을 부여할 때, 뷰(가상 테이블)를 사용
  2. SQL 간소화 : 두 개 이상의 테이블을 참조할 때, 가공하여 필요한 데이터만 뽑아 뷰를 만듦

뷰의 단점

  1. 뷰는 디스크에 저장되지 않고 SQL 구문만 존재하는 동적 테이블임. 뷰를 사용할 때마다 SQL 구문을 추가로 실행해야 하기 때문에 속도 저하
  2. 뷰를 통해 데이터 변경 불가능한 경우가 발생할 수 있음

시스템 카탈로그를 만드는 이유

SQL 구문이 실행될 때, DBMS 내의 최적화기(optimizer)를 통해 가장 효율적으로 실행시킬 수 있는(디스크 I/O 최소화) 실행계획을 세운다. 실행 계획은 사전에 정해진 룰 기반시스템 카탈로그를 활용한 비용 기반이 있다.

시스템 카탈로그를 항상 최신화하기 위해서는 이를 관리하는 오버헤드가 발생한다. 반면, 시스템 카탈로그가 최신화 되어 있지 않으면 실행계획의 효율성이 떨어질 수 있다. trade-off 관계를 잘 조절하는 것이 중요하다.

(4) 뷰의 정의 : 뷰에 대한 SQL

2. 조인

CROSS JOIN 거의 안씀

3. 서브 쿼리

위 그림 예시가 이상함. 단일행 서브 쿼리는 서브 쿼리의 결과 값이 딱 하나로 정해지는 경우를 말한다.

select *
from product
where price >= (select price from product where category = '01')

where 절의 ID, product_price 가 서브 쿼리 내의 id, MIN(product_price)와 각각 비교

profile
keep calm and carry on

0개의 댓글