본문 바로가기
내가 보려고 정리한 DB

[데이터베이스] DML & TRANSACTION

by nacastle 2020. 5. 13.

과제1) 계정계와 정보계

 

수출입은행 차세대 시스템(2014.11)

계정계

OLTP(ONLINE TRANSACTION PROCESSING) (참고)

 

이 통장을 계좌, 계정이라고 합니다.
계정을 관리하는 시스템이 모여 있다보니 “계정계”라고 부릅니다.

계정계 시스템은
“공통업무, 수신업무, 신탁업무,
보험업무, 카드업무, 여신업무,
외환업무, 대행업무 시스템” 등으로 구성됩니다.

 

코어뱅킹( Core Banking )이라고도 합니다.

영문 그대로 핵심이 되는 은행업무를 말합니다.

여기서 핵심 업무라 함은 (금융권 종사자분들이나 프로젝트 경험이 있는분은 다 아시겠지만 )

고객 신규/해지 등의 고객업무, 계좌 신규/해지/입금/출금/이체 등의 수신업무, 대출관련 여신업무, 외환업무 등이 있습니다. 일반적으로 계정고객, 수신, 여신, 외환 그리고 (사이트 마다) +a 정도가 있다고 생각하시면 됩니다.

전자금융( 인터넷 뱅킹, CD/ATM 등 ) 업무는 계정계로 가기도 하고, 단위업무로 분류하기도 합니다.

 

정보계

OLAP(ONLINE ANALYTICAL PROCESSING)

고객정보, 분석정보 등을 말합니다.

거래활동 및 성과를 분석하고 측정하기 위한 목적으로 구축되었습니다.

주요시스템으로 데이터웨어하우스를 기반으로 하는
수익관리, 고객관계관리, 성과관리, 위험관리 시스템 등이 있습니다.

 

계정계 업무가 우리가 흔히 알고 있는 은행의 업무라고 한다면, 정보계 업무는 계정계 업무를 지원하기 위한 정보처리 업무라고 생각하시면 됩니다.

대표적인 업무로 CRM( Customer Relationship Management )이 있습니다.

고객의 실적을 평가하여 등급을 산정하고, 마케팅을 하며, 지속적인 고객관리를 하는 업무입니다.

IT에서는 '정보성 업무'라고 하며, 흔히 '돈'과 관련없는 업무라고도 표현합니다.



과제2)

참고

 

정의: SELECT ~ FOR UPDATE 구문은 "데이터 수정하려고 SELECT 하는 중이야~ 다른 사람들은 데이터에 손 대지 마!" 라고 할 수 있습니다. 좀 더 딱딱한 표현으로는 동시성 제어를 위하여 특정 데이터(ROW)에 대해 베타적 LOCK을 거는 기능입니다.

 

예제: 영화관 좌석 예매시 동시간대에 2명이 같이 예매할 경우 


 

 

- 트랜잭션의 시작과 종료 (여기 참고)

 

I. 시작

 - 이전 트랜잭션이 종료된 이후 DML(INSERT, UPDATE, DELETE) 문장이나 DDL(CREATE, ALTER, DROP, TRUNCATE), DCL(GRANT, REVOKE) 문장이 실행됐을 때 시작된다.

II. 종료

 - COMMIT이나 ROLLBACK 명령이 실행될 때 종료된다.

 - DDL이나 DCL 문장은 실행이 완료되면 자동으로 종료된다. (자동 COMMIT)

 - 사용자의 정상 종료 시에 종료된다. 

 - 데드락(Deadlock)이 걸리면 트랜잭션의 일부만 종료된다.

 

cf) DDL이나 DCL은 강제종료시켜도 롤백이 안됨 (DDL은DCL은 한문장 한문장이 트랜잭션이며 자동 COMMIT되는 특성을 가지기 때문에...DML만 롤백됨)

 

트랜잭션은 DDL이나 DCL의 경우 문장이 실행되고 난 후 자동으로 종료된다.

하지만, DML인 경우 반드시 COMMIT이나 ROLLBACK으로 종료해야 한다.

오라클의 경우 SAVEPOINT 명령을 이용하여 트랜잭션의 과정을 제어할 수 있지만 실용적이지 않아 거의 사용하지 않는다.

 

반응형