이번 글은 SQL에 대해서 간략하게 알아보려고 합니다.
SQL
SQL이란 Structured Query Language로 RDBMS에서 데이터를 저장, 검색, 수정, 삭제하기 위해 사용되는 표준 언어입니다.
SQL에는 다음과 같은 특징이 있습니다.
- 표준화
- 국제 표준 (ISO, ANSI)으로 정의되어 대부분의 관계형 데이터베이스에서 사용가능 (MySQL, PostgreSQL..)
- 관계형 데이터 모델 지원
- 테이블 형식으로 데이터를 관리하며, 테이블 간 관계를 쉽게 처리
- 간결하고 직관적
- 데이터 조작이 간단한 명령어로 이루어져 있어 사용이 쉽고 읽기 편함
- 다양한 기능
- DDL, DML, DCL 명령어로 구분됨
SQL의 특징에 대해서 알아보았습니다. 근데 C언어와 같은 프로그래밍 언어와 어떤 차이가 있을까요?
C언어는 주로 데이터를 처리, 애플리케이션 설계와 같이 어떻게 작업을 수행할지를 기술하는 절차적 언어입니다.
이와 반대로 SQL은 데이터베이스와 직접 상호작용 하는 언어로, 데이터를 무엇을 하고 싶은지에 초점을 맞춘 선언형 언어입니다.
이제부터 개발자들이 작성한 SQL이 어떤 식으로 실행되는지 알아보겠습니다.
SQL이 실행되기 위해 DBMS가 SQL 명령을 처리하는 여러 단계를 거치게 되는데요. 이를 SQL 실행 프로세스라고 합니다.
SQL 실행 프로세스는 다음과 같은 순서로 실행됩니다.
- SQL 명령 입력:
- 개발자가 SELECT, INSERT 등의 SQL 문을 작성.
- SQL Parser (구문 분석):
- SQL 구문을 분석하여 문법이 올바른지 확인.
- SQL 문을 DBMS가 이해할 수 있는 쿼리 트리(Query Tree) 형태로 변환.
- 쿼리 옵티마이저(Query Optimizer):
- 쿼리 실행 계획을 생성하여 최적화된 경로를 선택.
- 예: 어떤 인덱스를 사용할지, 데이터를 읽는 순서를 결정.
- 실행 계획 생성:
- 쿼리 옵티마이저가 결정한 최적의 실행 계획에 따라 실행 단계를 생성.
- 실행 엔진(Query Execution Engine):
- 실행 계획에 따라 데이터베이스에서 실제로 데이터를 읽고 쓰는 작업을 수행.
- 디스크 또는 메모리에서 데이터를 가져옴.
- 결과 반환:
- 실행 엔진이 검색된 데이터를 사용자에게 반환.
요약하면 다음과 같습니다.
SQL 입력 -> 구문 분석 -> 최적화 -> 실행 계획 생성 -> 쿼리 실행 -> 결과 반환
이때 쿼리 트리가 뭔지 궁금해 하실 분들이 있으실 겁니다.
쿼리트리란 SQL 쿼리를 시각적으로 나타낸 계층적 데이터 구조로, DBMS가 쿼리를 실행하는 과정을 표현한 트리 형태의 데이터 구조입니다.
이는 SQL 쿼리를 효율적으로 실행하기 위한 실행 계획을 나타내며, DBMS가 쿼리를 이해하고 처리하기 위해 내부적으로 생성됩니다.
SELECT 이름, 나이
FROM 학생
WHERE 나이 > 20;
해당 쿼리는 다음과 같은 쿼리 트리를 가지게 됩니다.
SELECT
|
PROJECTION(이름, 나이)
|
SELECTION(나이 > 20)
|
TABLE SCAN(학생)
'CS > 데이터베이스' 카테고리의 다른 글
다양한 쿼리를 알아보자. (0) | 2025.01.07 |
---|---|
3D에 대해서 알아보자 (feat. DDL, DCL, DML) (0) | 2025.01.07 |
MySQL과 InnoDB (1) | 2025.01.03 |
키는 뭘까? (0) | 2025.01.02 |
데이터베이스를 알아보자 (0) | 2025.01.02 |