정보처리산업기사 CBT
종목 메뉴

개념 한 쪽

정보처리산업기사 프로시저 오류처리 — 트랜잭션·롤백·SQLCODE

프로시저 안에서 데이터를 다루다 오류가 나면 어디까지 되돌릴지 정해야 한다. 복구와 병행 수행의 논리적 단위인 트랜잭션, 오류 때 갱신을 취소하고 원래 상태로 돌리는 롤백, 트랜잭션이 지켜야 하는 네 가지 성질, 프로그램에 SQL을 넣을 때 오류 상태를 알려 주는 코드와 호스트 변수 규칙을 확인한다.

2026-10-18 기준 · 정보처리산업기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기

뜻

트랜잭션은 데이터베이스 시스템에서 복구와 병행 수행 때 처리되는 작업의 논리적 단위다. 여러 갱신을 하나로 묶어 다루는 기준이 되므로, 도중에 잘못되면 어디까지 처리된 것인지 판단하는 출발점이 된다.

트랜잭션을 수행하다가 작업이 잘못되어 데이터베이스가 모순 상태에 놓이면, 그 논리적 단위가 행한 갱신 연산을 모두 복구하거나 취소해야 한다는 사실을 트랜잭션 관리기에 알려야 한다. 이때 원래 상태로 되돌리는 연산이 롤백이다.

트랜잭션이 바람직하게 갖추어야 하는 성질은 원자성, 일관성, 격리성, 지속성 네 가지다. 타당성이라는 성질은 이 목록에 들지 않는다.

프로그램 안에 SQL을 넣는 내장 SQL에서는 수행 결과를 SQLCODE라는 변수로 확인한다. SQLCODE 값이 0이면 성공, 양수면 경고(예: +100은 찾는 행이 없음), 음수면 오류다. 이 코드를 보고 롤백 여부를 정하게 된다.

내장 SQL은 정해진 표지로 시작하고, 호스트 변수임을 나타내려면 변수 앞에 콜론을 붙인다. 콜론이 호스트 변수와 SQL 쪽 이름을 구별해 주므로 호스트 변수 이름이 필드명과 겹쳐도 된다. 호스트 변수의 타입은 대응하는 SQL 데이터 타입과 일치해야 한다. 문장의 종료 방식은 호스트 언어에 따라 다르므로 반드시 세미콜론으로 끝난다고 단정할 수 없다.

예제

선지 판단은 트랜잭션을 복구와 병행 수행의 논리적 단위로 정의하는지, 오류 때 갱신을 취소하고 원 상태로 돌리는 연산을 롤백으로 잡는지, 트랜잭션의 성질을 원자성·일관성·격리성·지속성으로 한정하는지, 내장 SQL의 SQLCODE 값을 0은 성공, 양수는 경고, 음수는 오류로 읽는지, 호스트 변수 앞에 콜론을 붙인다고 보는지, 호스트 변수 타입이 대응 SQL 타입과 일치해야 한다고 아는지, 호스트 변수 이름이 필드명과 겹쳐도 된다고 보는지, 문장 종료가 호스트 언어에 따라 다르다고 읽는지에서 갈린다.

자주 묻는 물음

트랜잭션 도중 오류가 나면 어떻게 하나요?
그 논리적 단위가 행한 갱신 연산을 취소하고 원래 상태로 되돌립니다. 이 연산이 롤백입니다.
트랜잭션이 갖추어야 하는 성질은 무엇인가요?
원자성, 일관성, 격리성, 지속성의 네 가지입니다. 타당성은 이 목록에 포함되지 않습니다.
내장 SQL에서 오류는 어떻게 확인하나요?
SQLCODE 값으로 확인합니다. 0은 성공, 양수는 경고(+100은 찾는 행이 없음), 음수는 오류입니다.
이 개념 문제 10개 풀기

정보처리산업기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.