1. SQL(Structured Query Language)이란?
1) SQL(Structured Query Language)의 개념
- SQL은 관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형+비절차형 언어입니다.
- 관계형 데이터베이스는 데이터베이스를 연결하고, SQL문을 사용하여 데이터베이스를 누구나 쉽게 사용할 수 있도록 합니다.
2) SQL(Structured Query Language) 표준
- SQL은 ANSI/ISO 표준을 준수하기 때문에 데이터베이스 관리 시스템이 변경되어도 그대로 사용할 수 있습니다.
## SQL표준의 종류
종류 | 설명 |
ANSI/ISO SQL 표준 | INNER JOIN, NATURAL JOIN, USING 조건, ON조건절을 사용합니다. |
ANSI/ISO SQL3 표준 | DBMS 벤더별로 차이가 있었던, SQL을 표준화하여 제정했습니다. |
2. SQL(Structured Query Language)의 종류
- SQL은 데이터 정의, 조작, 제어 등의 기능을 지원합니다.
1) SQL(Structured Query Language)의 종류
## SQL 종류
종류 | 설명 |
DDL(Data Definition Language) | - 관계형 데이터베이스의 구조를 정의하는 언어입니다. - CREATE, ALTER, DROP, RENAME, TRUNCATE문이 있습니다. |
DML(Data Maipulation Language) | - 테이블에서 데이터를 입력, 수정, 삭제, 조회합니다. - INSERT, UPDATE, DELETE, SELECT문이 있습니다. |
DCL(Data Control Language) | - 데이터베이스 사용자에게 권한을 부여하거나 회수합니다. - GRANT, REVOKE문이 있습니다. |
TCL(Transaction Control Language) | - 트랜잭션을 제어하는 명령입니다. - COMMIT, ROLLBACK, SAVEPOINT문이 있습니다. |
- 작업의 순서를 보면 데이터베이스에서 사용자에게 권한을 부여하고, 권한이 부여되면 DDL로 데이터구조를 정의합니다.
- 데이터 구조가 정의되면 데이터를 입력한 후 개발자 및 사용자가 그 데이터를 조회하는 것입니다.
2) 트랜잭션(Transaction)
- 트랜잭션은 데이터베이스의 작업을 처리하는 단위입니다.
- SQL의 여러 명령문을 하나의 블록으로 묶어 둬서 명령을 처리한다고 생각하면 됩니다.
## 트랜잭션의 특성
특성 | 설명 |
원자성(Atomicity) | - 트랜잭션은 데이터베이스 연산의 전부가 실행되거나, 전혀 실행되지 않아야 합니다.(All OR Nothing) - 트랜젝션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 합니다. |
일관성(Consistency) | - 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 합니다. - 트랜잭션 실행 후에도 일관성이 유지되어야 합니다. |
고립성(Isoation) | - 트랜잭션 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없습니다. - 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없습니다. |
영속성(Durability) | 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적으로 보장되어야 합니다. |
## 이론 문제 확인하기
트랜잭션의 특징 중에서 다른 트랜잭션이 접근하여 부분적인 실행 결과를 볼 수 없는 것은?
1. 원자성
2. 일관성
3. 고립성
4. 영속성
정답 : 2
- 고립성은 연산의 중간 결과를 다른 트랜잭션이 볼 수 없는 것을 말합니다.
3. SQL문의 실행 순서
- 개발자가 작성한 SQL문(DDL, DML, DCL 등)은 3단계를 걸쳐서 실행됩니다.
- SQL문의 문법을 검사하고 분석합니다.
- 구문 분석 이후에 SQL을 실행합니다.
- SQL이 실행되면 데이터를 인출합니다.
## SQL 실행 순서
실행순서 | 설명 |
파싱(Parsing) | - SQL문의 문법을 확인하고 분석합니다. - 구문분석한 SQL문은 Library Cache에 저장합니다. |
실행(Execution) | 옵티마이저(Optimizer)가 수립한 실행 계획에 따라 SQL을 실행합니다. |
인출(Fetch) | 데이터를 읽어서 전송합니다. |
## 이론 문제 확인하기
데이터베이스 관리 시스템이 SQL을 실행하는 순서로 올바른 것은?
1. 파싱 → 실행 → 인출
2. 실행 → 파싱 → 인출
3. 인출 → 파싱 → 실행
4. 실행 → 인출 → 파싱
정답 : 1
- SQL의 실행 순서는 파싱, 실행, 인출입니다.
'자격증 > SQLD 자격증' 카테고리의 다른 글
[SQLD자격증강좌] 15강 DDL - 테이블 변경 - 오쌤의 니가스터디 (0) | 2024.03.09 |
---|---|
[SQLD자격증강좌] 14강 DDL - 테이블 추가 - 오쌤의 니가스터디 (0) | 2024.03.08 |
[SQLD자격증강좌] 12강 관계형 데이터베이스 - 오쌤의 니가스터디 (0) | 2024.03.08 |
[SQLD자격증강좌] 11강 분산데이터베이스 - 오쌤의 니가스터디 (0) | 2024.03.08 |
[SQLD자격증강좌] 10강 반정규화(De-Normalization) - 오쌤의 니가스터디 (0) | 2024.03.08 |