구조적 질의어 (SQL, Structured Query Language) ( 1 )

2024. 11. 5. 23:48·DB

 

구조적 질의어란?

  • 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 질의 언어(Query Language)이다.

 

☆ 그렇다면 질의 언어(Query Language)와 프로그래밍 언어(Programming Language) 는 뭐가 다른 걸까? ☆

  • 크게 나누면 Non Programming Language 에 질의 언어(Qeury Langauge)가 속하고 프로그래밍 언어가 있는 것이다! 
  질의 언어(Query Language) 프로그래밍 언어(Programming Language)
목적 데이터 베이스와 상호작용 하기 위해서 애플리케이션을 개발하기 위해서
특징 DB에서 정보를 질의 & 관리 용이 다양하고 복잡한 로직을 구현하기 용이
주 사용 예시 SQL, CQL Java, Python, C++

 

 

SQL의 역할

  1. 데이터 베이스에 정보를 조회, 저장, 삭제, 수정 등을 할 수 있다.
  2. 데이터베이스의 성능을 유지관리하고, 최적화할 수 있다.

 

☆ 1번은 그렇다 치고, 2번은 당최 무슨 소리인가? ☆

  • 뭔소리긴 성능 유지관리와 최적화가 가능하다는 소리지~ 아래의 표를 보면 알 수 있다.
인덱스 최적화 최적의 탐색 경로로 최적화 (그러나 남발하면 오히려 성능이 저하된다.)
쿼리 최적화 필요 없는 데이터를 가져오지 않을 수 있다.
ex) SELECT name, age FROM user -> name과 age만 가져오고
       다른 속성의 데이터는 가져오지 않는다.
조인 최적화 서브 쿼리가 많아지면 성능이 저하되는데 조인을 통해 서브쿼리를 줄여 성능을 개선할 수 있다
분석과 모니터링 분석과 모니터링이 가능한 쿼리를 제공하여 이를 가능케한다.
ex) EXPLAIN -> 이 SQL문을 사용하면 선행 계획과 최적의 포인트를 분석할 수 있다.

 

SQL의 작동 과정

  1. 구문 분석기 - SQL Layer
    • MySQL에서 SQL Parser가 해당 역할을 한다.
    • SQL문을 DB가 읽기 쉽게 토큰화를 해준다.
    • 문법 오류를 검사하고, 해당 기능 사용을 위해 사용자를 식별한다.
  2. 관계형 엔진
    • MySQL 에서 SQL Optimizer가 해당 역할을 한다.
    • DB가 데이터를 찾기 최적의 경로를 탐색해 준다.
    • 탐색된 경로를 바탕으로 조회, 저장등의 기능을 위한 계획을 세운다.
  3. 스토리지 엔진
    • MySQL 에는 InnoDB, Memory 등의 스토리지 엔진이 있다.
    • 실제 물리 저장 장치에 접근하여 관계형 엔진에서 만든 계획대로 작업을 수행한다.
    • 물리 저장 장치에 있는 파일에 데이터를 저장하고 조회한다.
    • 완료시에 스토리지 엔진이 SQL Layer에 반환하면 SQL Layer에서 에플리케이션에 결과를 반환한다. 

 

참고 자료 : https://solt.tistory.com/29,
https://aws.amazon.com/ko/what-is/sql/

'DB' 카테고리의 다른 글

구조적 질의어 (SQL, Structured Query Language) ( 3 )  (1) 2024.11.08
구조적 질의어 (SQL, Structured Query Language) ( 2 )  (0) 2024.11.06
MySQL - InnoDB  (2) 2024.11.01
MySQL Server  (0) 2024.11.01
RDBMS (Relationa DataBase Management System)  (0) 2024.11.01
'DB' 카테고리의 다른 글
  • 구조적 질의어 (SQL, Structured Query Language) ( 3 )
  • 구조적 질의어 (SQL, Structured Query Language) ( 2 )
  • MySQL - InnoDB
  • MySQL Server
CoMeangMeangIn
CoMeangMeangIn
코딩하는 코맹맹이
  • CoMeangMeangIn
    CoMeangMeangIn
    CoMeangMeangIn
  • 전체
    오늘
    어제
    • 분류 전체보기 (22)
      • java (3)
        • spring (1)
        • build (1)
      • DB (16)
      • 알고리즘 (1)
      • 회고 (1)
      • git (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
CoMeangMeangIn
구조적 질의어 (SQL, Structured Query Language) ( 1 )
상단으로

티스토리툴바