본문 바로가기

정보처리기사/III. 데이터베이스 구축

III. 데이터베이스 구축 - SQL 활용 (2)

(1) 뷰 

 1. 뷰의 개념

  - 논리 테이블로서 사용자 관점에서 테이블과 동일하다

 

 2. 뷰의 특징

  - 물리적으로 구현되어 있지 않다

  - 테이블로부터 유도된 테이블로써 기본테이블과 같은 형태의 구조

  - 데이터의 논리적 독립성 제공 가능

  - 관리가 용이하고 명령문이 간단

  - 데이터를 안전하게 보호하는 효율적인 기법

 

 3. 뷰의 목적

  - 단순 질의어를 사용 할 수 있다

 

  - 장점 

  - 논리적 독립성 제공, 사용자 데이터 관리 용이, 데이터 보안 용이

 

  - 단점

  - 뷰 자체 인덱스 증가, 뷰 정의 변결 불가, 데이터 변경 제약 존재

 

 4. 뷰 생성

  - CREATE VIEW 뷰 이름 컬럼 목록 AS 데이터 조회 쿼리;

 

 5. 뷰 삭제 / 변경

  - 뷰 정의 자체를 변경하는 것은 불가

  - 뷰 이름이나 쿼리문을 변경하는 수단은 제공되지 않음

  - DROP VIEW 뷰 이름;

 

(2) 인덱스

 1. 인덱스 (INDEX) 개념

  - 데이터를 빠르게 찾을 수 있는 수단으로서 테이블에 대한 조회 속도를 높여 주는 자료 구조

 

 2. 인덱스 종류

  - 순서, 해시, 비트맵, 함수기반, 단일, 결합, 클러스터드

 

 3. 인덱스 조작

  1) 인덱스 생성

   - CREATE [UNIQUE] INDEX 인덱스 명 ON 테이블 명(컬럼 명);

   - 인덱스 명령문 요소

   - [UNIQUE] : 중복 값을 허용하지 않음

   - 인덱스 명 : 생성 하고자 하는 인덱스 테이블 명

   - 테이블 명 : 인덱스 대상 테이블 명

   - 컬럼 명 : 테이블의 특정 컬럼 명

 

 2) 인덱스 삭제

  - DROP INDEX 인덱스 명;

  

 3) 인덱스 변경

  - ALTER [UNIQUE] INDEX 인덱스 명 ON 테이블 명(컬럼 명);

 

 4) 인덱스 스캔

  - 인덱스 스캔 방식

  - 인덱스 범위 스캔, 인덱스 전체 스캔, 인덱스 단일 스캔, 인덱스 생략 스캔

 

(3) 집합 연산자

 1. 집합 연산자 (Set Operator) 개념

  - 테이블을 집합 개념으로 보고 두 테이블 연산에 집합 연산자를 사용하는 방식

 

 2. 집합 연산자 유형

  - UNION, UNION ALL, INTERSET, MINUS

  - UNION :  중복 행이 제거된 쿼리 결과 집합

  - UNION ALL : 중복 행이 제거 되지 않은 쿼리 결과 집합

  - INTERSECT : 두 쿼리에 공통적으로 존재하는 집합

  - MINUS : 첫 쿼리에는 있고 두 번째 쿼리에는 없는 집합

 

(4) 조인

 1. 조인의 개념

  - 결합을 의미하며 교집합 결과를 가지는 결합 방법

 

 2. 조인 유형

  - 논리적 조인 / 물리적 조인

  - 논리적 조인 : 내부 조인, 외부 조인

  - 물리적 조인 : 중첩 반복 조인, 정렬 합병 조인, 해시 조인

 

 3. 논리적 조인

구분 조인 유형 설명
내부 조인 동등 조인 공통 존재 컬럼의 값이 같은 경우 추출
자연 조인 두 테이블의 모든 컬럼을 비교하여 같은 컬럼 명을 가진 값이 같은 경우를 추출
교차 조인 조인 조건이 없는 모든 데이터와 조합을 추출
외부 조인 왼쪽 외부 조인 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 동일 데이터를 추출
오른쪽 외부 조인 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 동일 데이터를 추출
완전 외부 조인 양쪽의 모든 데이터를 추출

 

(5) 서브 쿼리

 1. 서브쿼리 개념

  - 서브쿼리는 SQL문 안에 또다른 SQL문을 의미

  

 2. 서브 쿼리 유형

  - 비연관 서브쿼리, 연관 서브쿼리, 단일 행, 다중 행, 다중 컬럼