[DB] SQL 개념

·2025년 1월 4일

데이터베이스

목록 보기
6/22
post-thumbnail

SQL


SQL이란

  • SQL은 Strucured Query Language의 줄임말로 관계형 데이터베이스에서 정보를 관리하고 처리하기 위한 프로그래밍 언어
  • 비절차적 데이터 언어
    • 사용자가 무엇을 처리할지(What)만 제시하고, 어떻게 처리할지는(How)는 데이터베이스 시스템에 맡김
    • 사용자의 작업의 절차와 단계 모두 명시하는 C언어와 같은 절차적 언어와 대비됨
  • SQL은 ANSI SQL 표준을 따름

SQL 하위 언어

  1. 데이터 정의 언어(DDL) - Data Definition Language
  • 테이블의 구조를 정의하고 관리하는데 사용
  • 주요 명령: CREATE, ALTER, DROP
  • 예: CREATE 명령을 사용하여 테이블, 뷰 및 인덱스와 같은 데이터베이스 객체 생성
  1. 데이터 조작 언어(DML) - Data Manipulation Language
  • 데이터의 조회, 삽입, 삭제, 수정 등을 하기위해 사용
  • 주요 명령: SELECT, INSERT, UPDATE, DELETE
  • 예: INSERT 명령을 사용하여 데이터 삽입
  1. 데이터 제어 언어(DCL) - Data Control Language
  • 트랜잭션 제어나 사용자의 데이터 접근 권한 제어할때 사용
  • 주요 명령: GRANT, REVOKE, COMMIT, ROLLBACK
  • 예: GRANT 명령을 사용하여 특정 사용자나 역할에 데이터베이스 객체(테이블, 뷰 및 인덱스)의 대한 특정 권한(CRUD) 부여,
    COMMIT 명령을 사용하여 트랙잭션 성공시 변경 사항 적용, ROLLBACK 명령을 사용하여 트랙잭션 실패시 되돌림

SQL 실행 과정

파싱 -> 최적화 -> 실행

1. 파싱(Parsing)

구문 검사(Syntax Check)

  • 구문 검사는 사용자가 작성한 SQL 쿼리가 문법에 맞는지 검사하는 것
  • SQL문을 토큰 단위로 분리하여 올바른 순서와 문법에 맞는지 검사

의미 검사(Semantic Check)

  • 테이블 및 열 확인: 쿼리에 사용된 테이블과 컬럼이 실제 데이터베이스에 존재하는 검사
  • 권한 확인: 사용자가 해당 테이블과 열에 권한이 있는 검사
  • 데이터 타입 확인: 해당 타입에 맞는지 검사
  • 참조 무결성 확인: 외래 키(Foreign Key) 등 참조 무결성 제약 조건을 검사

2. 최적화(Optimization)

  • 데이터베이스 옵티마이저(Optimizer)가 해당 쿼리를 실행하기 위한 최적의 실행 계획을 생성
  • 이 때, 통계 정보를 통해 인덱스 사용 여부, 조인 순서 등을 고려함

3. Execution(실행)

  • 최적화 과정에서 생성된 실행 계획으로 쿼리가 실행
  • DBMS는 해당 작업을 수행하기 위해 스토리지 엔진(Storage Engine)을 사용
  • 실행이 완료되면 데이터베이스는 결과를 사용자 또는 애플리케이션에 반환

References

https://aws.amazon.com/ko/what-is/sql
https://www.ibm.com/kr-ko/think/topics/structured-query-language
https://terms.naver.com/entry.naver?docId=3431178&cid=58430&categoryId=58430&expCategoryId=58430

0개의 댓글