KR20020037399A - 데이터베이스 관리시스템의 트랜잭션처리방법 - Google Patents
데이터베이스 관리시스템의 트랜잭션처리방법 Download PDFInfo
- Publication number
- KR20020037399A KR20020037399A KR1020000067319A KR20000067319A KR20020037399A KR 20020037399 A KR20020037399 A KR 20020037399A KR 1020000067319 A KR1020000067319 A KR 1020000067319A KR 20000067319 A KR20000067319 A KR 20000067319A KR 20020037399 A KR20020037399 A KR 20020037399A
- Authority
- KR
- South Korea
- Prior art keywords
- record
- lock
- transaction
- current
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 DBMS가 구축된 정보교환시스템에서 데이터의 접근을 원하는 레코드가 있을 경우 현재 접근하는 레코드를 log table 과 record lock table에 할당하는 테이블 할당단계와, 상기 테이블 할당단계후에 현재 접근하고 있는 레코드가 락상태에 있는지를 판단하는 레코드 락상태판단단계와, 상기 레코드 락상태판단단계중에 판단한 결과 현재 할당된 레코드가 락상태에 있지 않을 경우는 현재 레코드의 어드레스를 record lock table에 기록하고 해당 레코드를 락시키는 레코드 락셋팅단계와, 상기 락상태판단단계중에 판단한 결과 현재 할당된 레코드의 락상태가 읽기전용 락일경우 log table에 변경전 값을 그대로 유지하는 이전락상태 유지단계와, 상기 락상태 판단단계중에 판단한결과 현재의 락상태가 변경락일 경우 레코드의 락상태를 현재의 접근을 원하는 레코드의 변경락으로 변경저장하고 해당 데이터를 처리하는 락상태 변경단계와, 상기 락상태 변경단계후에 현재의 트랜잭션 수행이 종료되었을 경우 데이터를 복구 혹은 저장처리하는 레코드정보처리단계를 포함하는 데이터베이스 관리시스템의 트랜잭션처리방법을 제공한다.
상기와 같은 단계에 의한 본 발명은 트랜잭션 수행중 로그 테이블과 레코드락 테이블내의 데이터에 대한 변경값을 레코드 데이터의 처리상태에 따라 구분하여 기록저장하므로써, 특정 레코드에 대해 반복적인 변경이 이루어진다하더라도 불필요하게 저장공간이 할당되는 일이 없으므로 이에따라 트랜잭션의 종료나 취소를 효율적으로 처리할 수 있음은 물론 로그 테이블에서 로그_뉴 항목을 삭제시키고 특정레코드의 최초 변경전 값을 기록하고 있기 때문에 특정 레코드에 대한 트랜잭션 취소시 최초 변경전 데이터로 복원이 용이하다.
Description
본 발명은 데이터베이스 관리시스템의 트랜잭션처리방법에 관한 것으로, 특히 트랜잭션 수행중 로그 테이블과 레코드락 테이블내의 데이터에 대한 변경값을 레코드 데이터의 처리상태에 따라 구분하여 기록저장하므로써, 특정 레코드에 대해 반복적인 변경이 이루어진다하더라도 불필요하게 저장공간이 할당되는 일이 없는 데이터베이스 관리시스템의 트랜잭션처리방법에 관한것이다.
일반적으로 산업사회가 발전함에 따라 일정지점에서 원하는 다른 지점으로 데이터를 보다 적절히 그리고 신속히 전송시키기 위한 정보통신시스템들이 널리 사용되고 있는데, 이러한 정보통신시스템들은 통상 지리적으로 분산되어 있는 동종간 또는 이기종간 통신기기나 정보기기를 연결하여 상호간에 자원의 공유와 통신을 가능하도록 네트워크로 연결되는 것이 대부분이다.
예를들어, 교환기와 교환기간이나 혹은 은행과 같은 금융기관의 단말기와 서버간의 연결 등 다수 활용되고 있다. 그런데, 상기와 같은 통신기기 혹은 정보기기에는 대개 시스템내부에 데이터베이스 관리시스템(database management system, 이하 DBMS라함)을 구축하여 시스템내로 입출력되는 정보를 효율적으로 관리하고 있는데, 그러한 정보관리를 위해 통상 DBMS에는 도 1의 (a)에 도시된 바와같은 구조의 로그 테이블(이하 log table이라함)과 도 1의 (b)에 도시된 바와같은 구조의 레코드 락 테이블(이하 record lock table이라함)을 할당하여 트랜잭션(transaction)즉, 데이터의 변경이나 접근시 데이터를 관리하게 된다.
여기서, 상기 도 1의(a)에 도시된 log table의 구조를 살펴보면, 테이블 전체에 대한 정보가 담긴 헤더부분(70)과 레코드 처리결과가 담긴 데이터기록부분(71)으로 크게 나누어 생각해 볼 수 있는데, 상기데이터기록부분(71)인 log_cont[0]는 다시 디스크 백엎여부를 판단하는 log_bkup, 현재 접근하고 있는 레코드의 실제 데이터베이스내에서의 위치를 알수 있는 log_disp, 현재 접근하고 있는 레코드의 크기를 표시하는 log_sz 및 현재 접근하고 있는 레코드 데이터의 변경전 값인 log_old와 변경후의 값인 log_new로 구성된다. 그리고, 상기 record lock table은 현재 접근되고 있는 레코드의 어드레스정보를 기록한다.
그러면, 상기와 같은 종래 DBMS의 트랜잭션방법을 살펴보면, 먼저, DBMS가 구축된 예컨데, 단말기(도시안됨)와 서버(도시안됨)사이에서 혹은 교환기(도시안됨)와 교환기(도시안됨)사이에서 원하는 정보를 얻기위해 트랜잭션이 수행될 경우 이 DBMS는 그 접근을 원하는 정보을 상기 log table과 record lock table내에 그 변경전후의 값을 모두 기록저장한다.
즉, DBMS는 도 2에 도시된 바와같이 트랜잭션이 수행될 경우 초기상태(S1)에서 레코드검색단계(S2)로 진행하여 접근을 원하는 데이터의 레코드를 검색하게된다. 그리고, 상기 레코드검색단계(S2)후에 레코드 판단단계(S3)로 진행하여 현재 검색된 레코드중에서 접근을 원하는 데이터의 레코드가 있는지를 판단한다. 이때 상기 레코드검색단계(S3)중에 판단한 결과 만약 현재 검색된 레코드중에서 접근을 원하는 레코드가 없을 경우는 트랜잭션이 이루어지지 않은 것으로 판단하여 전단계(S1)로 복귀하여 루프를 반복수행한다.
그러나, 상기 레코드검색단계(S3)중에 판단한 결과 만약 현재 검색된 레코드중에서 데이터의 접근을 원하는 레코드가 있을 경우는 레코드어드레드기록단계(S4)로 진행하여 해당 레코드에 락(lock)을 세팅하고 record lock table에 레코드 어드레스를 기록한다. 그리고, 상기 레코드어드레스기록단계(S5)후에 데이터 변경판단단계(S5)로 진행하여 현재 트랜잭션되는 레코드의 데이터 값이 변경되었는지를 판단한다. 또한, 상기 데이터 변경판단단계(S5)중에 판단한 결과 현재 트랜잭션되는 레코드의 데이터 값이 변경되지 않았을 경우는 단지 데이터를 읽기만(select)한 경우이므로 변경전 데이터유지단계(S6)로 진행하여 log table에 데이터의 변경전 값을 그대로 저장한다. 그러나, 상기 데이터 변경판단단계(S5)중에 판단한 결과 현재 트랜잭션되는 레코드의 데이터 값이 변경되었을 경우는 변경후 데이터저장단계(S7)로 진행하여 log table에 데이터의 변경후의 값을 저장시킨다.
환언하면, DBMS는 외부의 단말기 혹은 그와 유사한 장치로부터 내부에 저장된 데이터에 접근하기를 원할 경우 그 접근을 원하는 레코드를 리드하여 해당 레코드의 플래그에 락(lock)신호를 셋팅하고 도 1의 (b)에 도시된 record lock table의 "A"항목에 해당 레코드의 어드레스를 저장한다. 또한, 이 DBMS는 도 1의 (a)에 도시된 바와같이 log table의 "B"와 같이 log_old에 변경전의 데이터값을, "C"와 같이 log_new에 변경후의 데이터값을 저장하고 log_disp에 현재 접근하고 있는 레코드의 실제 데이터베이스내에서의 위치정보를, log_sz에 현재 접근하고 있는 레코드의 크기를 각각 저장시킨다.
한편, 상기 변경후 데이터저장단계(S7)후에 트랜잭션종료 판단단계(S8)로 진행하여 현재의 트랜잭션 수행이 종료 혹은 취소되었는지를 판단한다. 상기 트랜잭션종료 판단단계(S8)중에 판단한 결과 현재의 트랜잭션 수행이 종료되지 않았을 경우는 레코드검색단계(S2)로 복귀하여 루프를 반복수행한다. 그러나, 상기 트랜잭션종료 판단단계(S8)중에 판단한 결과 현재의 트랜잭션 수행이 종료되었을 경우는 레코드정보 백엎단계(S9)로 진행하여 현재 트랜잭션된 레코드의 플래그에 셋팅되어 있던 락을 해제하고 그 변경된 레코드의 데이터를 저장공간에 백엎시킨다.
즉, 상기 DBMS는 트랜잭션이 종료되지 않았을 경우 즉, 레코드의 접근을 계속 요구할 경우 상기와 같은 과정을 계속 실행시키게 된다. 예를들어, 특정 레코드에 대해서 반복적으로 접근할 경우 상기 DBMS는 변경된 최종값만을 저장하는 것이 아니라 log table과 record lock table내에 해당 변경전후의 데이터값을 반복해서 순차적으로 모두 저장시키게된다. 이때 DBMS는 트랜잭션이 종료될 경우 log table의 log_new에 기록되어 있던 변경 데이터값을 백엎시키고 record lock table을 이용하여 현재 lock되어 있는 레코드의 lock를 해제시킨다.
그러나, 상기와 같은 종래 DBMS의 트랜잭션방법은 트랜잭션 수행중 동일한 특정 레코드에 대해서 반복적으로 접근할 경우에 log table과 record lock table에 변경전후의 데이터값을 일일이 모두 저장해주어야 하므로 그에따라 log 데이터 저장영역이 불필요하게 할당되는 단점을 야기시켰다.
뿐만아니라, 상기와 같은 종래 DBMS 트랜잭션 방법은 특정 레코드에 대해 반복적인 접근이 있을 경우 그 특정 레코드에 대한 변경전후값 의 저장이 순차적으로 이루어지기때문에 트랜잭션 취소시 트랜잭션하기전의 원래의 데이터값으로 복귀되는 것이 아니라 log table의 최종 log_old에 기록된 값으로 복구되므로 그에따라DBMS의 트랜잭션 에러를 발생시키게 하는 문제점이 있었다.
이에 본 발명은 상기와 같은 제반 문제점을 해결하기 위해 발명된 것으로, 트랜잭션 수행중 log table과 record lock table내의 데이터에 대한 변경값을 레코드 데이터의 처리상태에 따라 구분하여 기록저장하므로써, 특정 레코드에 대해 반복적인 변경이 이루어진다하더라도 불필요하게 저장공간이 할당되는 일이 없으므로 이에따라 트랜잭션의 종료나 취소를 효율적으로 처리할 수 있는 데이터베이스 관리시스템의 트랜잭션처리방법을 제공함에 그 목적이 있다.
본 발명의 다른 목적은 로그 테이블에서 로그_뉴 항목을 삭제시키고 특정레코드의 최초 변경전 값을 기록하고 있기 때문에 특정 레코드에 대한 트랜잭션 취소시 최초 변경전 데이터로 복원이 용이한 데이터베이스 관리시스템의 트랜잭션처리방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명은 DBMS가 구축된 정보교환시스템에서 데이터의 접근을 원하는 레코드가 있을 경우 현재 접근하는 레코드를 log table 과 record lock table에 할당하는 테이블 할당단계와, 상기 테이블 할당단계후에 현재 접근하고 있는 레코드가 락상태에 있는지를 판단하는 레코드 락상태판단단계와, 상기 레코드 락상태판단단계중에 판단한 결과 현재 할당된 레코드가 락상태에 있지 않을 경우는 현재 레코드의 어드레스를 record lock table에 기록하고 해당 레코드를 락시키는 레코드 락셋팅단계와, 상기 락상태판단단계중에 판단한 결과 현재 할당된 레코드의 락상태가 읽기전용 락일경우 log table에 변경전 값을 그대로 유지하는 이전락상태 유지단계와, 상기 락상태 판단단계중에 판단한결과 현재의 락상태가 변경락일 경우 레코드의 락상태를 현재의 접근을 원하는 레코드의 변경락으로 변경저장하고 해당 데이터를 처리하는 락상태 변경단계와, 상기 락상태 변경단계후에 현재의 트랜잭션 수행이 종료되었을 경우 데이터를 복구 혹은 저장처리하는 레코드정보처리단계를 포함하는 데이터베이스 관리시스템의 트랜잭션처리방법을 제공한다.
도 1의 (a)-(b)는 종래 DBMS의 트랜잭션 테이블의 구조를 설명하는 설명도.
도 2는 종래 DBMS의 트랜잭션방법을 설명하는 플로우차트.
도 3은 본 발명의 방법이 적용되는 정보처리시스템의 블록도.
도 4는 본 발명의 DBMS의 트랜잭션 테이블의 구조를 설명하는 설명도.
도 5는 본 발명을 설명하는 플로우차트.
도 6의 (a)-(b)는 본 발명의 트랜잭션종료과정을 설명하는 설명도.
<부호의 상세한 설명>
1 : 교환기 2 : 교환기
3 : 램 4 : CPU
5 : 롬 6 : 하드디스크
이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명한다.
먼저, 본 발명이 적용되는 시스템은 종래의 시스템들과 유사한데, 예를들어 도 3에 도시된 바와같이 교환기(1)와 교환기(2)사이에서 DBMS를 구축하여 트랜잭션이 수행될 경우 그 접근을 원하는 정보을 도 4에 도시된 바와같은 log table과 record lock table내에 그 변경 전후의 값을 본 발명의 방법에 따라 구분하여 기록저장한다.
그러면, 본 발명이 적용되는 장치를 개략적으로 살펴보면, 본 발명의 방법에 따라 램(3)상에 DBMS를 구축하고 시스템의 동작을 전반적으로 제어하는 CPU(4)와, 이 CPU(4)의 제어신호에 따라 시스템을 구동할 수 있는 프로그램 예들들어 OS 프로그램등을 내장하는 롬(5)과, 상기 CPU(4)의 기능제어신호에 따라 램(3)상에 구축된 DBMS의 처리데이터를 백엎저장함과 더불어 각종처리데이터를 저장하는 하드디스크(6)를 포함한다.
한편, 상기와 같은 DBMS구축 장치에 적용되는 본 발명에 따른 log table과 record lock table은 상술한 바와같이 log table의 구조가 도4에 도시된 바와같이테이블 전체에 대한 정보가 담긴 헤더부분(70)과 레코드 처리결과가 담긴 데이터기록부분(71)으로 크게 나누어지고, 그 중 데이터기록부분(71)인 log_cont[0]는 다시 디스크 백엎여부를 판단하는 log_bkup, 현재 접근하고 있는 레코드의 실제 데이터베이스내에서의 위치를 알수 있는 log_disp, 현재 접근하고 있는 레코드의 크기를 표시하는 log_sz 및 현재 접근하고 있는 레코드 데이터의 변경전 값인 log_old로 구성된다. 그리고, 상기 record lock table은 종래처럼 현재 접근되고 있는 레코드의 어드레스정보를 기록한다.
환언하면, 본 발명의 DBMS에 사용되는 상기 log table의 log_cont[]에는 종래 log table에 사용되던 변경후의 데이터값을 기록하던 도 1의 (a)의 "C"와 같은 log_new항목을 log table의 log_cont[]상에서 삭제한다. 따라서, 본 발명의 DBMS에서 사용되는 log table의 log_cont[]의 구조는 도 4에 도시된 바와같이 log_bkup, log_disp, log_sz 및 log_old의 항목만으로 구성된다.
다음에는 상기와 같은 DBMS의 log table 구조을 이용하는 본 발명의 방법을 설명한다.
본 발명의 방법은 먼저, DBMS가 구축된 정보교환시스템 예컨데, 교환기(1)와 교환기(2)사이에서 해당 교환기(2)내에 구비된 CPU(4)가 롬(5)에 들어있는 DBMS을 램(3)에 구축하여 원하는 정보를 처리하기 위해 트랜잭션기능을 실행시키게 되는데, 이 CPU(4)는 도 5에 도시된 바와같이 초기상태(S1)에서 레코드검색단계(S2)로 진행하여 접근을 원하는 데이터의 레코드를 검색하게된다. 그리고, 상기 레코드검색단계(S2)후에 레코드 판단단계(S3)로 진행하여 현재 검색된 레코드중에서 접근을원하는 데이터의 레코드가 있는지를 판단한다. 이때 상기 레코드검색단계(S3)중에 판단한 결과 만약 현재 검색된 레코드중에서 접근을 원하는 레코드가 없을 경우는 트랜잭션이 이루어지지 않은 것으로 판단하여 전단계(S1)로 복귀하여 루프를 반복수행한다.
그러나, 상기 레코드검색단계(S3)중에 판단한 결과 만약 현재 검색된 레코드중에서 데이터의 접근을 원하는 레코드가 있을 경우는 테이블 할당단계(S4)로 진행하여 현재 접근하는 레코드를 log table 과 record lock table에 할당한다. 그리고, 상기 테이블 할당단계(S4)후에 레코드 락상태판단단계(S5)로 진행하여 현재 접근하고 있는 레코드가 락상태에 있는지를 판단한다. 이때 상기 락상태판단단계(S5)중에 판단한 결과 현재 할당된 레코드가 락상태에 있지 않을 경우는 레코드 락셋팅단계(S6)로 진행하여 현재 레코드의 어드레스를 record lock table에 기록하고 해당 레코드를 락시킨다.
그러나, 상기 락상태판단단계(S5)중에 판단한 결과 현재 할당된 레코드가 락상태에 있을 경우는 락상태 세부판단단계(S7)로 진행하여 현재의 락이 읽기전용 락 즉, SELECT인지를 판단한다. 이때 상기 락상태 세부판단단계(S7)중에 판단한결과 현재의 락이 읽기전용 락 즉, SELECT인지일경우는 이전락상태 유지단계(S8)로 진행하여 log table에 변경전 값을 그대로 유지한다. 그러나, 상기 락상태 세부판단단계(S7)중에 판단한결과 현재의 락이 읽기전용 락 즉, SELECT가 아닐경우는 예컨데, 현재의 레코드의 락 상태가 update/insert/delete 락일 경우 락상태 변경단계(S9)로 진행하여 레코드의 락상태를 현재의 변경락 즉, update/insert/delete 락으로변경저장하고 해당 데이터를 처리한다.
즉, CPU(4)에 의해 램(3)상에 구축된 DBMS는 외부의 교환기 혹은 그와 유사한 장치로부터 내부에 저장된 데이터에 접근하기를 원할 경우 그 접근을 원하는 레코드를 리드하여 log table과 record lock table을 할당한다. 그리고, 이 DBMS는 record lock table를 검색하여 현재 접근하고자 하는 레코드의 플래그에 락이 셋팅되어 있는지를 판단한다. 그리고, 상기 DBMS는 그 판단결과 현재 접근하고자하는 레코드의 플래그에 락이 셋팅되어 있지 않을 경우는 도 4에 도시된 record lock table상에서 해당 레코드의 플래그에 현재의 락(lock)신호를 셋팅하고 해당 레코드의 어드레스를 저장하고 도 4에 도시된 바와같이 log table의 log_old에 최초 변경전의 데이터값을, log_disp에 현재 접근하고 있는 레코드의 실제 데이터베이스내에서의 위치정보를, log_sz에 현재 접근하고 있는 레코드의 크기를 각각 저장시킨다. 여기서, 상기 log table의 log_old에는 트랜잭션의 최초 변경이전의 데이터값이 저장되어 있게된다.
그러나, 상기 DBMS는 record lock table를 검색한 결과 현재 접근하고자 하는 레코드의 플래그에 락이 셋팅되어 있을 경우 그 락상태를 세분 판단하게 되는데, 이때 현재의 락상태가 단지 읽기전용인 slect 락이고 이전 락이 변경락 즉, update/insert/delete 락중의 어느 하나 일경우는 이전 락상태 즉, 이전에 셋팅된 update/insert/delete 락중의 어느 하나의 상태를 그대로 유지시킨다. 그러나, 상기 DBMS는 현재 접근하고자하는 특정 레코드의 락상태가 변경락 즉, update/insert/delete 락중의 하나 일 경우는 현재의 변경 락상태로 변경처리한다.예컨데, 현재 접근하고자 하는 특정 레코드의 락상태가 insert락이고 이전 락상태가 delete락일 경우 이 특정 레코드의 락상태를 insert락으로 셋팅시킨다.
따라서, 특정 레코드의 반복접근시 종래에는 접근하고자하는 레코드 데이터를 무조건 변경저장하였으나 상기와 같은 본 발명에서는 접근하고자 하는 특정 레코드의 락상태에 따라 레코드의 저장공간을 할당하게 되므로 저장공간을 효율적으로 관리하게 된다.
한편, 상기 락상태 변경단계(S9)후에 트랜잭션종료 판단단계(S10)로 진행하여 현재의 트랜잭션 수행이 종료 혹은 취소되었는지를 판단한다. 그리고, 상기 트랜잭션종료 판단단계(S10)중에 판단한 결과 현재의 트랜잭션 수행이 종료되지 않았을 경우는 초기화단계(S1)로 복귀하여 루프를 반복수행한다. 그러나, 상기 트랜잭션종료 판단단계(S10)중에 판단한 결과 현재의 트랜잭션 수행이 종료되었을 경우는 레코드정보 백엎단계(S11)로 진행하여 현재 트랜잭션된 레코드의 플래그에 셋팅되어 있던 락을 해제하고 그 변경된 레코드의 데이터를 저장공간에 백엎시키고, 트랜잭션 취소일 경우 트랜잭션 이전값으로 데이터를 복구시킨다.
즉, 상기 DBMS는 트랜잭션이 종료되지 않았을 경우는 초기의 레코드 검색기능을 재실행시키게되는데, 이때 만약 트랜잭션이 취소될 경우는 도 6의 (a)에 도시된 바와같이 메인데이터에서 log table의 log_old에 처음부터 기록되어 있던 트랜잭션의 최초 변경이전의 데이터값을 이용하여 레코드의 데이터를 복원하고 record lock table을 이용하여 현재 lock되어 있는 레코드의 lock을 해제시킨다. 따라서, 상기와 같은 방법에 의해 트랜잭션취소시, 종래와는 달리 트랜잭션 취소에 따른 데이터 복원이 용이하게 이룰 수 있는것이다.
그리고, 상기 DBMS는 트랜잭션이 성공했을 경우 도 6의 (b)에 도시된 바와같이 메인데이터에서 log table의 log_old에 기록되어 있던 최종 변경 데이터값을 하드디스크(6)에 백엎시키고 record lock table을 이용하여 현재 lock되어 있는 레코드의 lock를 해제시킨다음 트랜잭션기능을 종료시킨다.
이상 설명에서와 같이 본 발명은 트랜잭션 수행중 로그 테이블과 레코드락 테이블내의 데이터에 대한 변경값을 레코드 락의 처리상태에 따라 구분하여 기록저장하므로써, 특정 레코드에 대해 반복적인 변경이 이루어진다하더라도 불필요하게 저장공간이 할당되는 일이 없으므로 이에따라 트랜잭션의 종료나 취소를 효율적으로 처리할 수 있는 효과가 있다.
본 발명에 의하면, 로그 테이블에서 로그_뉴 항목을 삭제시키고 특정레코드의 최초 변경전 값을 항상 기록하고 있기 때문에 특정 레코드에 대한 트랜잭션 취소시 최초 변경전 데이터로 복원이 용이하다는 장점도 가지고 있다.
Claims (2)
- DBMS가 구축된 정보교환시스템에서 데이터의 접근을 원하는 레코드가 있을 경우 현재 접근하는 레코드를 log table 과 record lock table에 할당하는 테이블 할당단계와, 상기 테이블 할당단계후에 현재 접근하고 있는 레코드가 락상태에 있는지를 판단하는 레코드 락상태판단단계와, 상기 레코드 락상태판단단계중에 판단한 결과 현재 할당된 레코드가 락상태에 있지 않을 경우는 현재 레코드의 어드레스를 record lock table에 기록하고 해당 레코드를 락시키는 레코드 락셋팅단계와, 상기 락상태판단단계중에 판단한 결과 현재 할당된 레코드의 락상태가 읽기전용 락일경우 log table에 변경전 값을 그대로 유지하는 이전락상태 유지단계와, 상기 락상태 판단단계중에 판단한결과 현재의 락상태가 변경락일 경우 레코드의 락상태를 현재의 접근을 원하는 레코드의 변경락으로 변경저장하고 해당 데이터를 처리하는 락상태 변경단계와, 상기 락상태 변경단계후에 현재의 트랜잭션 수행이 종료되었을 경우 데이터를 복구 혹은 저장처리하는 레코드정보처리단계를 포함하는 것을 특징으로 하는 데이터베이스 관리시스템의 트랜잭션처리방법.
- 제1항에 있어서, 상기 레코드정보처리단계가 트랜잭션이 취소될 경우 메인데이터에서 log table의 log_old에 처음부터 기록되어 있던 트랜잭션의 최초 변경이전의 데이터값을 이용하여 레코드의 데이터를 복원하고 record lock table을 이용하여 현재 lock되어 있는 레코드의 lock을 해제시키는 트랜잭션취소단계와, 상기트랜잭션이 성공했을 경우 메인데이터에서 log table의 log_old에 기록되어 있던 최종 변경 데이터값을 백엎시키고 record lock table을 이용하여 현재 lock되어 있는 레코드의 lock를 해제시키는 트랜잭션성공단계로 이루어지는 것을 특징으로 하는 데이터베이스 관리시스템의 트랜잭션처리방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000067319A KR20020037399A (ko) | 2000-11-14 | 2000-11-14 | 데이터베이스 관리시스템의 트랜잭션처리방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000067319A KR20020037399A (ko) | 2000-11-14 | 2000-11-14 | 데이터베이스 관리시스템의 트랜잭션처리방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020037399A true KR20020037399A (ko) | 2002-05-21 |
Family
ID=19698771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000067319A KR20020037399A (ko) | 2000-11-14 | 2000-11-14 | 데이터베이스 관리시스템의 트랜잭션처리방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020037399A (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030035122A (ko) * | 2001-10-30 | 2003-05-09 | 포디홈네트 | 인터넷 정보 가전용 내장형 데이터베이스 관리시스템에서의 다중 버전을 이용한 동시성 제어 방법 |
US7849060B2 (en) | 2006-01-10 | 2010-12-07 | Samsung Electronics Co., Ltd. | System and method for managing log information for transaction |
KR20190063835A (ko) * | 2017-11-30 | 2019-06-10 | 주식회사 리얼타임테크 | 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930014132A (ko) * | 1991-12-23 | 1993-07-22 | 경상현 | 실시간 데이타 베이스 관리 시스팀(dbms)의 트랜잭션 회복 방법 |
JPH05233415A (ja) * | 1992-02-24 | 1993-09-10 | Oki Electric Ind Co Ltd | トランザクションロック制御方法 |
KR950016412A (ko) * | 1993-11-05 | 1995-06-17 | 양승택 | 분산 데이타베이스 관리시스템(dbms)에서의 동시성 제어 및 트랜잭션 관리 방법 |
JPH08286964A (ja) * | 1995-04-13 | 1996-11-01 | Mitsubishi Electric Corp | 分散トランザクション処理方法 |
KR970029150A (ko) * | 1995-11-03 | 1997-06-26 | 양승택 | 분산 트랜잭션 처리 정보 저장방법 |
KR19990005715A (ko) * | 1997-06-30 | 1999-01-25 | 윤종용 | 교환기 디비엠에스의 트랜잭션 구현 방법 |
KR19990085299A (ko) * | 1998-05-15 | 1999-12-06 | 이계철 | 주기억장치 데이터베이스 관리 시스템을 위한 락 관리방법 |
JP2000293426A (ja) * | 1999-04-01 | 2000-10-20 | Nec Soft Ltd | レコードロック方式 |
-
2000
- 2000-11-14 KR KR1020000067319A patent/KR20020037399A/ko not_active Application Discontinuation
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR930014132A (ko) * | 1991-12-23 | 1993-07-22 | 경상현 | 실시간 데이타 베이스 관리 시스팀(dbms)의 트랜잭션 회복 방법 |
JPH05233415A (ja) * | 1992-02-24 | 1993-09-10 | Oki Electric Ind Co Ltd | トランザクションロック制御方法 |
KR950016412A (ko) * | 1993-11-05 | 1995-06-17 | 양승택 | 분산 데이타베이스 관리시스템(dbms)에서의 동시성 제어 및 트랜잭션 관리 방법 |
JPH08286964A (ja) * | 1995-04-13 | 1996-11-01 | Mitsubishi Electric Corp | 分散トランザクション処理方法 |
KR970029150A (ko) * | 1995-11-03 | 1997-06-26 | 양승택 | 분산 트랜잭션 처리 정보 저장방법 |
KR19990005715A (ko) * | 1997-06-30 | 1999-01-25 | 윤종용 | 교환기 디비엠에스의 트랜잭션 구현 방법 |
KR19990085299A (ko) * | 1998-05-15 | 1999-12-06 | 이계철 | 주기억장치 데이터베이스 관리 시스템을 위한 락 관리방법 |
JP2000293426A (ja) * | 1999-04-01 | 2000-10-20 | Nec Soft Ltd | レコードロック方式 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030035122A (ko) * | 2001-10-30 | 2003-05-09 | 포디홈네트 | 인터넷 정보 가전용 내장형 데이터베이스 관리시스템에서의 다중 버전을 이용한 동시성 제어 방법 |
US7849060B2 (en) | 2006-01-10 | 2010-12-07 | Samsung Electronics Co., Ltd. | System and method for managing log information for transaction |
KR20190063835A (ko) * | 2017-11-30 | 2019-06-10 | 주식회사 리얼타임테크 | 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6970970B2 (en) | Method of storing data in a non-volatile memory and apparatus therefor | |
JPS5830319Y2 (ja) | コンピユ−タシステム | |
US6771843B1 (en) | Data timeline management using snapshot volumes | |
US4897782A (en) | Local cache structure for maintaining updated file characteristics in a file sharing system | |
US5418966A (en) | Updating replicated objects in a plurality of memory partitions | |
US20070143340A1 (en) | System and method of time-based cache coherency maintenance in user file manager of object-based storage system | |
KR20030075854A (ko) | 공유 디스크 파일 시스템의 저널링 및 회복 방법 | |
US20130290636A1 (en) | Managing memory | |
US6209062B1 (en) | Method for holding cache pages that are not invalidated within normal time duration for a second access or that are likely to be accessed again soon | |
CN115167778A (zh) | 存储的管理方法、系统及服务器 | |
US5584015A (en) | Buffer memory management method, recording medium, and computer system incorporating same | |
US5900009A (en) | System and method for accessing records in a cache slot which are associated with a current owner storage element or at least one previous owner storage element | |
US6393533B1 (en) | Method and device for controlling access to memory | |
KR20020037399A (ko) | 데이터베이스 관리시스템의 트랜잭션처리방법 | |
US5666527A (en) | System for dynamically changing logical data structure of database | |
CN114780043A (zh) | 基于多层缓存的数据处理方法及装置、电子设备 | |
JPH01303547A (ja) | 情報記憶制御システム | |
GB2285525A (en) | A tape database control process | |
KR100449419B1 (ko) | 데이터 크기에 따른 선별적 공간데이터 관리방법 | |
JP2704028B2 (ja) | ファイル領域管理方式 | |
CN117407374B (zh) | 一种基于分布式文件系统的分布式锁实现方法和系统 | |
JP2903605B2 (ja) | ファイル領域管理処理方法 | |
KR100630213B1 (ko) | 데이터 저장시스템에서 데이터 버퍼 제어 블록을 이용한로그 우선 출력 프로토콜 수행 방법 | |
CN115994129A (zh) | 缓存框架升级过程中的数据迁移方法及装置 | |
JPH05158892A (ja) | 分散処理におけるデータ管理方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
N231 | Notification of change of applicant | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |