데이터 공부/SQL
[2주 동안 SQL 공부하기] 트랜잭션 commit rollback에 대한 이해(Feat. ChatGPT)
심슨보다 느슨
2023. 5. 31. 07:08
728x90

ChatGPT
트랜잭션, 커밋(commit), 롤백(rollback)은 데이터베이스 관리 시스템(DBMS)에서 중요한 개념입니다.
트랜잭션(transection):
· 일련의 데이터 조작 작업들을 하나의 처리처럼 다루는 기능이다.
· 데이터 일관성과 무결성을 유지할 수 있습니다.
커밋(commit):
· 트랜잭션의 작업들이 모두 성공적으로 완료되었음을 나타내는 동작입니다.
· 즉, 트랜잭션의 실행 결과들이 데이터베이스에 영구적으로 반영되고 DB의 일관성이 유지됩니다.
· 커밋은 트랜잭션을 성공적으로 마무리 짓는 과정으로 생각할 수 있습니다.
롤백(rollback):
· 트랜잭션의 결과를 반영하지 않고 원래 상태로 되돌리는 것이다.
· 트랜잭션의 작업들 중 일부 또는 전체가 실패했을 때, 이전 상태로 되돌리는 동작입니다.
· 마찬가지로 트랜잭션의 일관성을 유지하기 위해 사용됩니다.
SQL은 Excel처럼 Ctrl + Z 로 무엇이든지 되돌릴 수 없다.
DB 세계에서는 트랜잭션을 사용하지 않으면 일단 한번 변경된 데이터는 원래 상태로 복구할 수 없다.

ChatGPT
SQL 언어를 DML / DDL / DCL로 분류할 수 있다.
DML (데이터 조작 언어), DDL (데이터 정의 언어), DCL (데이터 제어 언어)은 데이터베이스 관련 작업을 수행하는 데 사용되는 세 가지 주요 SQL문이다.
DML (Data Manipulation Language, 데이터 조작 언어):
· 데이터베이스에서 데이터를 조작(선택, 삽입, 수정, 삭제)하고 관리하는 데 사용되는 언어
· DML 구문이 사용되는 대상은 테이블의 행
· DML은 주로 SELECT, INSERT, UPDATE, DELETE 등의 명령문으로 표현됩니다.
DDL (Data Definition Language, 데이터 정의 언어):
· 데이터베이스의 구조(Schema)를 정의하거나 변경하는 데 사용됩니다.
· 데이터베이스, 테이블, 뷰, 인덱스 등의 DB 개체를 생성, 수정, 삭제하는 데 사용됩니다.
· DDL에는 주로 CREATE, ALTER, DROP 등의 명령문이 포함됩니다.
· DDL은 절대 트랜잭션 발생 X
· DDL문은 실행 즉시 MySQL에 적용된다.
DCL (Data Control Language, 데이터 제어 언어):
· 데이터베이스에 대한 접근 권한을 제어하는 데 사용됩니다.
· 데이터베이스 사용자에게 권한을 부여하거나 취소하는 데 사용됩니다.
· DCL은 주로 GRANT, REVOKE 등의 명령문으로 표현됩니다.
따라서, DML은 데이터 조작을 위해 사용되고, DDL은 데이터 정의를 위해 사용되며, DCL은 데이터 접근 권한을 제어하기 위해 사용됩니다.