반응형
SQL(Structured Query Language)
  • 관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어이다.
  • ANSI/ISO 표준을 준수하기 때문에 데이터베이스 관리 시스템이 변경되어도 그대로 사용할 수 있다.

※관계형 데이터베이스: 데이터베이스를 연결하고 SQL문을 사용하여 데이터베이스를 누구나 쉽게 사용할 수 있도록 함.

▶ SQL표준

표준(Standard) 설명
ANSI/ISO SQL 표준 INNER JOIN, NATURAL JOIN, USING 조건, ON조건절을 사용한다.
ANSI/ISO SQL3 표준 DBMS 벤더별로 차이가 있었던, SQL을 표준화하여 제정했다.
SQL(Structured Query Language) 종류
  • SQL은 데이터 정의, 데이터 조작, 데이터 제어 등의 기능을 지원한다.

▶ SQL(Structured Query Language) 종류

종류 설명
DDL
(Data Definition
Language)
- 관계형 데이터베이스의 구조를 정의하는 언어이다.
- CREATE, ALTER, DROP, RENAME문이 있다.
DML
(Data Manipulation
Language)
- 테이블에서 데이터를 입력, 수정, 삭제, 조회한다.
- INSERT, UPDATE, DELETE, SELECT이 있다.
DCL
(Data Control
Language)
- 데이터베이스 사용자에게 권한을 부여하거나 회수한다.
- GRANT, REVOKE, TRUMCATE문이 있다.
TCL
(Transaction Control Language)
- 트랜잭션을 제어하는 명령어이다.
- COMMIT, ROLLBACK, SAVEPOINT문이 있다.
  • DDL문은 데이터베이스 테이블을 생성하거나 변경, 삭제하는 것으로 데이터를 저장할 구조를 정의하는 언어이다.
  • DML은 데이터 구조가 DDL로 정의되면 해당 데이터 구조에 데이터를 입력하거나 수정, 삭제, 조회 할 수 있다.
  • DCL은 DDL로 정의된 구조에 어떤 사용자가 접근할 수 있는지 권한을 부여하는 것이다.
  • 작업의 순서를 보면 데이터베이스의 사용자에게 권한을 부여하고 권한이 부여되면 DDL로 데이터 구조를 정의한다.
  • 데이터 구조가 정의되면 데이터를 입력한 후에 개발자 및 사용자가 그 데이터를 조회하는 것이다.

트랙잭션(Trnsaction) : 데이터베이스의 작업을 처리하는 단위이다.

 

▶ 트랙잭션의 특성

트랜잭션 특성 설명
원자성
(Atomicity)
- 트랜잭션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야한다.
(ALL OR NOTHING)
- 즉, 트랜잭션의 처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 한다.
일관성
(Consistency)
- 트랜잭션 실행 결과로 데이터베이스의 상태가 모순되지 않아야 한다.
- 트랜잭션 실행 후에도 일관성이 유지되어야 한다.
고립성
(solation)
- 트랜잭션 실행 중에 생성하는 연산의 중간결과는 다른 트랜잭션이 접근할 수 없다.
- 즉, 부분적인 실행 결과를 다른 트랜잭션이 볼 수 없다.
영속성
(Durability)
- 트랜잭션이 그 실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야 한다.
SQL문의 실행 순서

개발자가 작성한 SQL문(DDL, DML, DCL 등)은 3단계를 걸쳐서 실행된다. SQL문의 문법을 검사하고 구문분석을 한다.

구문분석 이후에 SQL을 실행한다. SQL이 실행되면 데이터를 인출하게 된다.

▶ SQL 실행 순서

SQL 실행 순서 설명
파싱(Parsing) - SQL문의 문법을 확인하고 구문분석한다.
- 구문분석한 SQL문은 Library Cache에 저장한다.
실행(Execution) 옵티마이저가 수립한 실행 계획에 따라 SQL을 실행한다.
인출(Fetch) 데이터를 읽어서 전송한다.

 

반응형

+ Recent posts