정보처리기사

7-2 DDL | DML | DCL

추띠기 2022. 9. 28. 16:09

DDL (Data Definition Language) _ 데이터 정의어

데이터를 담는 그릇을 정의하는 언어.

테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들로 특정 구조를 생성, 변경, 삭제, 이름을 바꾸는 데이터 구조와 관련된 명령어들.

 

DDL 대상

도메인 / 스키마 / 테이블 / 뷰 / 인덱스

** 스키마

- 외부 스키마 : 사용자 및 개발자의 관점. 사용자 뷰. 서브 스키마 

- 개념 스키마 : DB 전체적인 논리적 구조. 전체적인 뷰. 개체간의 관계, 제약 조건, 접근 권한, 무결성, 보안에 대한 정의.

- 내부 스키마 : 물리적 저장장치의 관점. 실제 DB에 저장될 레코드 형식 정의. 저장 데이터 항목의 표현 방법 및 내부 레코드의 물리적 순서 등 표현.

 

DDL 명령어

- 생성 : CREATE

- 수정 : ALTER

- 삭제 : DROP / TRUNCATE

 

DML (Data Manipulation Language) _ 데이터 조작어

DB에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어.

 

DML 명령어

- 조회 : SELECT

- 삽입 : INSERT

- 갱신 : UPDATE

- 삭제 : DELETE

 

DCL (Data Control Language) _ 데이터 제어어

DBA가 데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어.

 

DCL 명령어

- 사용 권한 부여 : GRANT (GRANT 권한 ON 테이블 TO 사용자;)

- 사용 권한 취소 : REVOKE (REVOKE 권한 ON 테이블 FROM 사용자;)

 

도메인

하나의 속성이 가질 수 있는 원자값들의 집합. 속성의 데이터 타입과 크기, 제약조건 등의 정보.

 

스키마

DB의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조

 

테이블

데이터를 저장하는 항목인 필드들로 구성된 데이터의 집합체.

 

논리 테이블로서 사용자에게 테이블과 동일.

- 논리적 데이터 독립성 제공 : DB에 영향을 주지 않고 애플리케이션이 원하는 형태로 데이터에 접근 가능.

- 데이터 조작 연산 간소화 : 애플리케이션이 원하는 형태의 논리적 구조를 형성하여 데이터 조작 연산 간소화.

- 보안 기능(접근제어) 제공

- 뷰 변경 불가

 

인덱스

검색 연산의 최적화를 위해 DB 내 값에 대한 주소 정보로 구성된 데이터 구조.

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

테이블의 특정 레코드 위치를 알려주는 용도로 사용.

PK컬럼은 자동으로 인덱스 생성.

인덱스가 없을 경우, 테이블 풀 스캔을 함.

인덱스 생성 시, 데이터를 빠르게 찾을 수 있음.

 

- 순서 인덱스 : 데이터가 정렬된 순서로 생성되는 인덱스. B-Tree 알고리즘 활용.

- 해시 인덱스 : 해시 함수에 의해 직접 데이터에 키 값으로 접근하는 인덱스. 데이터 접근 비용이 균일, 튜플 양에 무관.

- 비트맵 인덱스 : 각 컬럼에 적은 개수 값이 저장된 경우 선택하는 인덱스. 수정 변경이 적을 경우 유용.

- 함수기반 인덱스 : 수식이나 함수를 적용하여 만든 인덱스.

- 단일 인덱스 : 하나의 컬럼으로만 구성한 인덱스. 주 사용 컬럼이 하나일 경우 사용.

- 결합 인덱스 : 두 개 이상의 컬럼으로 구성한 인덱스. Where 조건으로 사용하는 빈도가 높은 경우 사용.

- 클러스터드 인덱스 : PK 기분으로 레코드를 묶어 저장하는 인덱스. 저장 데이터의 물리적 순서에 따라 인덱스 생성. 특정 범위 검색 시 유리.

 

- 인덱스 범위 스캔 : 인덱스 루트 블록에서 리프블록까지 수직적으로 탐색한 후 리프 블록을 필요한 범위만 스캔하는 방식

- 인덱스 전체 스캔 : 수직적 탐색 없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색하는 방식

- 인덱스 단일 스캔 : 수직적 탐색만으로 데이터를 찾는 스캔 방식

- 인덱스 생략 스캔 : 선두 컬럼이 조건 절에 빠졌어도 인덱스를 활용하는 스캔 방식

 

조인

- Inner Join

- Outer Join

 > Left Outer Join

 > Right Outer Join

 > Full Outer Join

- Cross Join

- Self Join

 

집합 연산자

- UNION : 중복 행이 제거된 쿼리 결과를 반환하는 집합 연산자.

- UNION ALL : 중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자. 중복 허용.

- INTERSECT : 두 쿼리 결과에 공통적으로 존재하는 결과를 반환하는 집합 연산자.

- MINUS : 첫 쿼리에 있고 두 번째 쿼리에는 없는 결과를 반환하는 집합 연산자.