이 글은 SQLD를 공부하며 SQL 종류와 SQL문의 실행 순서에 대해 정리한 글이다.
SQL(Structured Query Language)
- SQL은 관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형+비절차형 언어
- 관계형 데이터베이스는 데이터베이스를 연결하고 SQL문을 사용하여 데이터베이스를 누구나 쉽게 사용할 수 있도록 함
- SQL은 ANSI/ISO 표준을 준수함
- 데이터베이스 관리 시스템이 변경되어도 그대로 사용할 수 있음
SQL 표준
- ANSI/ISO SQL 표준
INNER
,JOIN
,NATURAL JOIN
,USING
조건,ON
조건절을 사용
- ANSI/ISO SQL3 표준
- DBMS 벤더별로 차이가 있었던 SQL을 표준화하여 재정
SQL 종류
- SQL은 데이터 정의, 데이터 조작, 데이터 제어 등의 기능을 지원
SQL의 종류
종류 | 설명 |
DDL (Data Definition Language) |
|
DML (Data Manipulation Language) |
|
DCL (Data Control Language) |
|
TCL (Transaction Control Language) |
|
- DDL문은 데이터베이스 테이블을 생성하거나 변경, 삭제하는 것으로 데이터를 저장할 구조를 정의하는 언어
- DML문은 데이터 구조가 DDL문으로 정의되면 해당 데이터 구조에 데이터를 입력하거나 수정, 삭제, 조회할 수 있음
- DCL문은 DDL문으로 정의된 구조에 어떤 사용자가 접근할 수 있는지 권한을 부여함
트랜잭션(Transaction)
- 트랜잭션은 데이터베이스의 작업을 처리하는 단위
트랜잭션의 특성
- 원자성(Atomicity)
- 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야 함 (ALL or NOTHING)
- 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우, 실행되지 않은 상태와 같아야 함
- 일관성(Consistency)
- 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 함
- 트랜잭션 실행 후에도 일관성이 유지되어야 함
- 고립성(Isolation)
- 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없음
- 즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없음
- 영속성(Durability)
- 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 함
SQL문의 실행 순서
- 개발자가 작성한 SQL문(DDL, DML, DCL 등)은 3단계를 걸쳐서 실행됨
- SQL문의 문법을 검사하고 구문 분석을 실행함
- 구분 분석 이후에 SQL을 실행함 → SQL이 실행되면 데이터를 인출함
- 파싱(Parsing) : SQL문의 분법을 확인하고 구분 분석함 → 구분 분석한 SQL문은 Library Cache에 저장됨
- 실행(Execution) : 옵티마이저(Optimizer)가 수립한 실행 계획에 따라 SQL을 실행함
- 인출(Fetch) : 데이터를 읽어서 전송함
Reference
1. 2024 이기적 SQL 개발자 이론서 + 기출문제 / https://product.kyobobook.co.kr/detail/S000212055970
'Data Science > SQL' 카테고리의 다른 글
SQLD | SQL 기본 - GROUP 연산과 SELECT문 실행 순서 (0) | 2024.03.02 |
---|---|
SQLD | SQL 기본 - NULL의 특징과 NULL 값 조회 (2) | 2024.03.01 |
SQLD | SQL 기본 - WHERE문 (with. LIKE, BETWEEN, IN) (0) | 2024.02.29 |
SQLD | SQL 기본 - SELECT문 (with. ORDER BY, DISTINCT, Alias) (1) | 2024.02.29 |
SQLD | SQL 기본 - 관계형 데이터베이스(Relation Database) (0) | 2024.02.28 |