본문 바로가기
Programming/정보처리기사

정보처리기사 SQL이란 DDL DML DCL 트랜젝션이란

by 하하호호 2022. 2. 4.
반응형

 

정보처리기사 SQL이란

SQL은 관계형 데이터 모델을 상대로 제어되는 DBMS의 표준 데이터베이스 언어를 의미한다. 관계 대수를 기초로 만들어진 구조적 질의어다. 특정 릴레이션을 입력해 원하는 형태의 릴레이션을출력하는 명령어 형식이다. 자연어와 유사하여 초보자들도 쉽게 사용할 수 있는 고급언어다. 데이터 정의, 데이터 조작, 데이터 제어 기능을 가지고 있다.

 

내장 SQL은 프로그래밍 언어에 포함하여 사용되는 SQL을 의미한다. 프로그램 안에 데이터를 정의하거나 질의하는 SQL문장을 포함한다. 내장 SQL은 프로그램 컴파일 시 선행 처리기에 의해 분리되어 컴파일된다. 프로그래밍 언어와 대응되는 SQL문의 데이터는 이름은 다를 수 있지만 타입은 같아야 한다.

 

SQL 명령어 분류

SQL 명령어는 데이터정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 구분된다.

 

데이터정의어(DDL)은 논리적, 물리적인 데이터베이스를 정의하거나 수정할 목적으로 사용하는 명령어다. 테이블의 구조를 정의하거나 수정할 목적으로 사용하는 명령어다. 데이터베이스 관리자(DBA = DataBase Administration)가 사용하는 언어다. 명령어가 수행되면 이전 상태로 복귀할 수 없다.

 

데이터정의어(DDL)에는 생성, 변경, 삭제 기능이 포함된다. CREATE는 데이터베이스 오브젝트를 생성한다. 변경은 ALTER 명령어다. 삭제는 DROP과 TRUNCATE 두가지가 있다. DROP은 데이터베이스 오프젝트를 삭제한다. TRUNCATE는 데이터베이스 오브젝트의 내용을 삭제한다. 

 

데이터 조작어(DML)는 데이터를 검색, 삽입, 갱신, 삭제할 수 있도록 지원하는 명령어다. 사용자와 DBMS간의 인터페이스를 제공한다. 일반 사용자 및 응용 프로그래머가 사용하는 언어다.

 

마지막으로 데이터 제어어(DCL)는 여러 사용자가 데이터를 공유할 수 있도록 병행 제어를 수행하는 명령어다. 데이터 무결성을 유지하면서 여러 규정이나 제약조건 등을 기술하기 위한 명령어다. 사용자별로 데이터베이스에 접근할 수 있는 권한을 부여하거나 회수하여 데이터 보안을 유지한다. 데이터베이스 관리자가 사용하는 언어다. 

 

 

데이터베이스 트랜젝션(TCL)

데이터 제어어는 트랜젝션 제어어(TCL : Transaction Control Language)를 포함한다. 트랜젝션이란 한 개 이상의 데이터베이스를 조작하는 논리적인 연산의 집합이다. 하나 이상의 SQL이 포함된다. 분해할 수 없는 최소 단위의 작업이며 일반적으로 회복의 기준 단위가 된다.

 

트랜젝션은 원자성을 가진다. 트랜젝션의 연산은 모두 실행되거나 모두 실행되지 않아야 한다. 따라서 모두 데이터베이스에 반영이 되거나 전혀 반영되어서는 안된다. 트랜젝션이 수행되는 동안 또 다른 트랜젝션은 앞서 수행되는 트랜젝션의 중간 수행결과를 참조할 수 없다. 

 

트랜젝션은 일관성 및 무결성의 특징을 가진다. 트랜젝션을 마친 후에도 동일하게 오류가 발생하지 않아야 한다. 시스템이 가지는 고정 요소는 트랜젝션 후에도 이전과 같아야 한다. 

 

트랜젝션은 고립성 및 독립성의 특징을 가진다. 트랜젝션 실행 중 다른 트랜젝션에 영향을 받아서는 안된다. 하나의 트랜젝션의 실행은 동시에 실행 중인 다른 트랜젝션의 간섭을받아서는 안된다.

 

트랜젝션은 지속성 및 영속성의 특징을 가진다. 트랜젝션의 결과는 항상 유지, 보존되어야 한다. 완료된 트랜젝션의 결과는 어떠한 고장으로부터 영구적으로 반영되어야 한다. 

 

트랜젝션 상태제어란 트랜젝션의 흐름을 변경하는 것이 아니라 트랜젝션의 결과를 수용하거나 취소하는 것을 의미한다. 활동은 트랜젝션이 실행을 시작했거나 실행 중인 상태다. 부분완료는 트랜젝션이 마지막 연산을 끝내고 데이터베이스에 실행 결과를 적용하기 직전의 상태다.

 

트랜젝션 완료는 트랜젝션이 연산을 완료하고 연산의 결과를 데이터베이스에 적용한 상태다. 트랜젝션이 성공적으로 완료 연산을 수행한 상태를 의미한다. 실패는 연산 실행 중 어떤 오류에 의해 더 이상 연산이 진행될 수 없는 상태다. 철회는 트랜젝션을 실패하여 트랜젝션 실행 전 상태로 복구된 상태다. SAVEPOINT 지정을 통해 복구할 위치를 지정할 수 있다.

 

실행취소는 변경되었던 데이터를 취소하고 원래의 내용으로 복귀하는 것이다.  다시 실행은 Undo를 통해 원래 내용으로 변경되었던 데이터를 원래의 내용으로 복원한다. 갱신이 완료된 데이터를 로그 파일을 이용해 복원한다.

 

CRUD(Create Read, Update, Delete)

트랜젝션은 CRUD(Create Read, Update, Delete)로 구성된다. CRUD Matrix는 프로세스와 데이터의 상관 관계를 현실적으로 표현한 테이블이다. 해당 프로세스가 개체에 어떤 영향을 끼칠 수 있는지를 표현한 테이블이다. 

 

트랜젝션 분석은 용량산정의 근거 자료로 활용된다. 생성 트랜젝션을분석하면 테이블에 저장되는 데이터양을 유추할 수 있고 이를 근거로 데이터베이스 용량을 산정할 수 있게 되는 것이다. 또한 디스크 구성의 기초 자료로 활용된다. 트랜젝션 분석 결과를 이용해서 프로세스가 과도하게 발생하는 테이블에 대해서는 여러 디스크에 분산 배치하여 디스크의 입출력을 분산시킴으로써 성능을 향상시킨다.

 

트랜젝션 분석은 데이터베이스 연결 채널의 분산에 활용된다. 특정 채널에 집중되는 트랜젝션을 분산시켜 대기현상, TIME-OUT현상을 방지한다.

 

반응형

댓글