[DB개념.용어] SQL이란/트랜잭션
Posted on 2014. 5. 21. 13:41
Filed Under DB
SQL(Structured Query Language)
데이터베이스에 저장된 데이터를 조회, 입력, 수정 삭제하는 등의 조작이나, 테이블을 비롯한 다양한 객체(시퀀스. 인덱스 등)를 생성 및 제어하는 역할을 합니다.
SQL의 종류
데이터 정의어(DDL: Data Definition Language)
- 데이터베이스 객체를 생성, 삭제, 변경하는 SQL문(CREATE, ALTER, DROP 등)
- 데이터베이스 관리자나 응용 프로그래머가 데이터베이스의 논리적 구조를 정의하기 위한 언어로서 데이터 사전(Data Dictionary)에 저장 됩니다.
데이터 조작어(DML: Data Manipulation Language)
- 테이블 안의 데이터를 조작(SELECT, INSERT, UPDATE, DELETE 등)
- 데이터베이스에 저장된 데이터를 조작하기 위해 사용하는 언어로서 데이터 검색(Retrieval), 추가(Insert), 삭제(Delete), 갱신(Update) 작업 수행 합니다.
- 특정 테이블의 마지막 DML 시각 조회하기:
SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM 테이블명 ORDER BY SCN_TO_TIMESTAMP(ORA_ROWSCN) DESC;
데이터 제어어(DCL: Data Control Language)
- 주로 DB관리자가 사용
- 데이터베이스 객체에의 권한 제어, 인덱스 재생성, 백업, 복원, 스케쥴 부여 등(BACKUP, GRANT, REVOKE, TRANSACTION, COMMIT, SAVEPOINT 등)
- 데이터에 대한 접근 권한 부여 등의 데이터베이스 시스템의 트랜잭션을 관리하기 위한 목적으로 사용되는 언어입니다.
트랜잭션 제어어(TCL: Transaction Control Language)
- COMMIT, ROLLBACK
SQL문 기본형
SELECT ... FROM ... WHERE ...
트랜잭션(Transaction)
트랜잭션이란, 전체가 성공하거나 전체가 실패하는 것이라고 이해하면 됩니다. 트랜잭션에 속한 어떤 작업이 하나라도 실패하면 데이터베이스의 상태는 트랜잭션이 시작되기 이전 상태로 돌아갑니다 (Roll Back). 트랜잭션은 서버에 있는 데이터의 일관성을 보장하기 위한 것입니다.
// 트랜잭션 시작 BeginTransaction() // SQL 1 실행 bResult := ExecSQL(SQL1); if bResult := False then begin // SQL문 실행 실패시 복원 Rollback(); Exit(); end // SQL 2 실행 bResult := ExecSQL(SQL2); if bResult := False then begin // SQL문 실행 실패시 복원 Rollback(); Exit(); end ... // SQL 모두 실행 성공시 커밋 Commit();
♣ 참고
데이터베이스(DB) 객체와 DDL, DML, DCL 을 알아보자 | chsmanager | 2013/11/13