Programing_Java

[SQLD] SQL - Structured Query Language 본문

SQL_

[SQLD] SQL - Structured Query Language

Joyfullyever 2025. 3. 5. 22:38

✴︎ SQL

: SQL은 관계형 데이터베이스에 대해서 데이터의 구조를 정의, 데이터 조작, 데이터 제어 등을 할 수 있는 절차형 언어

: 관계형 DB는 DB를 연결하고 SQL문을 사용하여 DB를 누구나 쉽게 사용할 수 있도록 함

: SQL은 ANSI/ISO 표준을 준수하기 때문에 DBMS가 변경되어도 그대로 사용 가능

 

✴︎ SQL 종류

SQL 종류
DDL (Data Definition Language) 관계형 데이터베이스의 구조를 정의하는 언어
CREATE, ALTER, DROP, RENAME
DML (DataManipulation Language) 테이블에서 데이터를 입력, 수정, 삭제, 조회
INSERT, UPDATE, DELETE, SELECT
DCL (Data Control Language) 데이터베이스 사용자에게 권한을 부여하거나 회수
GRANT, REVOKE, TRUNCATE
TCL (Transaction Control Language) 트랜젝션을 제어하는 명령어
COMMIT, ROLLBACK, SAVEPOINT

 

• DDL : DB 테이블을 생성하거나 변경, 삭제하는 것

• DML : 데이터 구조가 DDL로 정의되면 해당 데이터 구조에 데이터를 입력, 수정, 삭제, 조회할 수 있는 언어

• DCL : DDL로 정의된 구조에 어떤 사용자가 접근할 수 있는지 권한을 부여하는 것

// 작업의 순서
1. DB의 사용자에게 권한을 부여
2. 권한이 부여되면 DDL로 데이터 구조를 정의
3. 데이터 구조가 정의되면 데이터를 입력
4. 개발자 및 사용자가 해당 데이터를 조회

 

✴︎ 트랜젝션 (Transaction)

: DB의 작업을 처리하는 단위

: DB의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한번에 모두 수행되어야 할 일련의 연산들을 의미

특성
원자성 (Atomicity) 트랜젝션은 데이터베이스 연산의 전부가 실행되거나 전혀 실행되지 않아야함 (All or Nothing)
처리가 완전히 끝나지 않았을 경우는 실행되지 않은 상태와 같아야 함
일관성 (Consistency) 실행 결과로 DB의 상태가 모순되지 않아야 함
실행 후에도 일관성이 유지되어야 함
고립성 (Isolation)
== 독립성, 격리성
실행 중에 생성하는 연산의 중간 결과는 다른 트랜젝션이 접근할 수 없음
부분적인 실행 결과를 다른 트랜젝션이 볼 수 없음
영속성 (Durability)
== 지속성
실행을 성공적으로 완료하면 그 결과는 영구적 보장이 되어야함

 

✴︎ SQL문의 실행 순서

: 개발자가 작성한 SQL문은 3단계를 걸쳐서 실행

: SQL문의 문법을 검사하고 구문 분석

: 구문 분석 이후에 SQL을 실행, 실행되면 데이터를 추출하게 됨

SQL 실행 순서
파싱 (Parsing) SQL문의 문법을 확인하고 구문 분석
구문 분석한 SQL문은 Library Cache에 저장
실행 (Execution) Optimizer가 수립한 실행 계획에 따라 SQL을 실행
인출 (Fetch) 데이터를 읽어서 전송
테이블에서 레코드 하나하나를 가져오는 것

인출의 Fetch는 게임의 Patch와 다름 → 게임의 Patch는 업데이트를 하는 것!

'SQL_' 카테고리의 다른 글

[SQLD] View  (0) 2025.03.06
[SQLD] SQL - Table  (0) 2025.03.05
[SQLD] Relation Database  (0) 2025.03.04
[SQLD] 오답노트#3  (0) 2025.03.03
[SQLD] 오답노트#2  (0) 2025.03.02