KR101588375B1 - 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 - Google Patents

데이터베이스 관리 방법 및 데이터베이스 관리 시스템 Download PDF

Info

Publication number
KR101588375B1
KR101588375B1 KR1020140050176A KR20140050176A KR101588375B1 KR 101588375 B1 KR101588375 B1 KR 101588375B1 KR 1020140050176 A KR1020140050176 A KR 1020140050176A KR 20140050176 A KR20140050176 A KR 20140050176A KR 101588375 B1 KR101588375 B1 KR 101588375B1
Authority
KR
South Korea
Prior art keywords
index
bookmark
deletion
target record
record
Prior art date
Application number
KR1020140050176A
Other languages
English (en)
Other versions
KR20150123603A (ko
Inventor
서경식
Original Assignee
네이버 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 네이버 주식회사 filed Critical 네이버 주식회사
Priority to KR1020140050176A priority Critical patent/KR101588375B1/ko
Priority to JP2015052838A priority patent/JP6752547B2/ja
Publication of KR20150123603A publication Critical patent/KR20150123603A/ko
Application granted granted Critical
Publication of KR101588375B1 publication Critical patent/KR101588375B1/ko

Links

Images

Abstract

본 발명의 일 실시예는 데이터베이스의 테이블에 저장된 하나 이상의 레코드 중 삭제 대상 레코드의 삭제 명령을 획득하는 삭제 명령 획득 단계; 상기 삭제 명령에 기초하여 적어도 하나의 인덱스를 검색하여 상기 삭제 대상 레코드의 식별값을 획득하는 식별값 획득 단계; 상기 삭제 대상 레코드의 식별값에 기초하여, 상기 테이블에서 상기 삭제 대상 레코드의 각 항목의 데이터들을 획득하는 삭제 대상 레코드 획득 단계; 획득된 상기 삭제 대상 레코드의 각 항목의 데이터들에 기초하여, 상기 적어도 하나의 인덱스 각각에서 상기 삭제 대상 레코드의 북마크를 삭제하는 인덱스 처리 단계; 및 상기 테이블에서 상기 삭제 대상 레코드를 삭제하는 테이블 처리 단계;를 포함하고, 상기 인덱스 처리 단계에서 모든 인덱스에 상기 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 상기 테이블 처리 단계가 수행되어 상기 삭제 대상 레코드가 삭제되는 데이터베이스 관리 방법을 개시한다.

Description

데이터베이스 관리 방법 및 데이터베이스 관리 시스템{Method and system for managing database}
데이터베이스 관리 방법 및 데이터베이스 관리 시스템에 관한 것이다. 상세하게는, 데이터베이스의 테이블 및 인덱스를 관리하는 방법 및 시스템에 관한 것이다.
데이터베이스 관리 시스템(Database Management System: DBMS, '이하 DBMS'라 함)은 방대한 양의 데이터가 저장되어 있는 데이터베이스를 관리하기 위한 시스템으로서, 대량의 정보들이 쉴 새 없이 생성되고 있는 현시대에 없어서는 안 될 중요한 요소로 인식되고 있다.
이러한 DBMS에서는 데이터를 테이블(Table) 형태로 데이터베이스에 저장하는데, 여기서 테이블이란 데이터베이스에서 데이터를 저장하는 기본구조를 말한다. 하나의 테이블은 하나 이상의 레코드(Record)들로 구성된다. 여기서, 레코드란 테이블의 한 행(Row)를 의미한다. 각 레코드는 하나 이상의 칼럼으로 구성되는데, 칼럼이란 테이블을 구성하는 실세계의 테이블 항목을 표현하는 이름을 가진 도메인(Domain)을 의미하는 것으로서, 어트리뷰트(Attribute) 또는 필드(Field)라고도 한다.
이러한 DBMS는 외부로부터 특정 명령(Query)이 입력되는 경우, 입력된 명령에 따라 데이터베이스에 데이터를 선택, 삽입, 갱신, 삭제 등의 기능을 수행한다. 여기서 명령이란 데이터베이스의 테이블에 저장되어 있는 데이터에 대한 어떠한 요구, 즉 데이터에 대한 어떠한 조작을 하기 원하는지를 기술한 것을 의미하는 것으로서, SQL(Structured Query Language)과 같은 언어를 이용하여 표현한다.
데이터의 양이 갈수록 방대해짐에 따라 DBMS는 일반적으로 인덱스(index)를 구비한다. 여기서, 인덱스(index)란 데이터베이스 분야에 있어서 테이블에 대한 탐색 속도를 높여주는 자료구조를 의미하며, 이와 같은 인덱스는 데이터 레코드(튜플)에 빠르게 접근하기 위해 (키값, 식별값) 쌍으로 구성되는 북마크를 포함한다.
한편, 일부 인덱스에서 북마크를 삭제하고자 하였으나, 삭제하고자 하는 북마크가 유실되어 인덱스에 존재하지 않음으로 인해 북마크의 삭제에 실패하는 경우, 시스템이 불능상태에 빠지거나 정지 상태가 될 수 있다. 이러한 경우, 시스템 관리자는 직접 인덱스 및/또는 테이블을 업데이트함으로써 시스템이 정상적으로 동작할 수 있도록 시스템을 수리해야 하며, 관리자가 시스템을 수리하기 전까지는 시스템은 모든 작업을 멈추고 정지되곤 한다. 시스템이 정지되면 인력, 시간, 전력, 서비스 품질 등 각종 측면에서 손실이 발생하며, 데이터베이스에 저장되는 데이터의 용량이 점점 방대해지는 현 추세를 고려하면, 시스템 정지에 따른 손실은 점점 더 커질 것으로 예상된다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 실시예들은 데이터베이스 관리 방법 및 데이터베이스 관리 시스템을 제공한다. 본 발명의 실시예들은 데이터베이스 처리 과정에서 일부 문제가 발생하더라도, 치명적 문제가 아닌 경우에는 상기 처리를 정상적으로 종료함으로써 시스템이 불능 상태에 빠지지 않도록 하는 데이터베이스 관리 방법 및 데이터베이스 관리 시스템을 제공한다. 본 실시예들이 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
본 발명의 일 실시예는 삭제 대상 레코드의 삭제 명령을 획득하는 삭제 명령 획득 단계; 상기 삭제 명령에 기초하여 적어도 하나의 인덱스를 검색하고 상기 삭제 대상 레코드의 식별값을 획득하는 식별값 획득 단계; 상기 삭제 대상 레코드의 식별값에 기초하여, 테이블에서 상기 삭제 대상 레코드의 각 항목의 데이터들을 획득하는 삭제 대상 레코드 획득 단계; 획득된 상기 삭제 대상 레코드의 각 항목의 데이터들에 기초하여, 상기 적어도 하나의 인덱스 각각에서 상기 삭제 대상 레코드의 북마크를 삭제하는 인덱스 처리 단계; 및 상기 테이블에서 상기 삭제 대상 레코드를 삭제하는 테이블 처리 단계;를 포함하고, 상기 인덱스 처리 단계에서 모든 인덱스에 상기 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 상기 테이블 처리 단계가 수행되어 상기 삭제 대상 레코드가 삭제되는 데이터베이스 관리 방법을 개시한다.
본 발명의 다른 실시예는 삭제 대상 레코드의 삭제 명령을 획득하는 삭제 명령 획득부; 상기 삭제 명령에 기초하여 적어도 하나의 인덱스를 검색하고 상기 삭제 대상 레코드의 식별값을 획득하는 식별값 획득부; 상기 삭제 대상 레코드의 식별값에 기초하여, 테이블에서 상기 삭제 대상 레코드의 각 항목의 데이터들을 획득하는 삭제 대상 레코드 획득부; 획득된 상기 삭제 대상 레코드의 각 항목의 데이터들에 기초하여, 상기 적어도 하나의 인덱스 각각에서 상기 삭제 대상 레코드의 북마크를 삭제하는 인덱스 처리부; 및 상기 테이블에서 상기 삭제 대상 레코드를 삭제하는 테이블 처리부;를 포함하고, 상기 인덱스 처리부에서 상기 삭제 대상 레코드의 북마크를 삭제할 때, 모든 인덱스에 상기 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 상기 테이블 처리부는 상기 삭제 대상 레코드를 삭제하는 데이터베이스 관리 장치를 개시한다.
본 발명의 다른 실시예는 상기된 데이터베이스 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 개시한다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다. 이러한 일반적이고 구체적인 측면이 시스템, 방법, 컴퓨터 프로그램, 또는 어떠한 시스템, 방법, 컴퓨터 프로그램의 조합을 사용하여 실시될 수 있다.
본 발명의 실시예들에 관한 데이터베이스 관리 방법 및 데이터베이스 관리 시스템은 데이터베이스의 운영 효율성을 향상시킨다.
본 발명의 실시예들에 관한 데이터베이스 관리 방법 및 데이터베이스 관리 시스템은 데이터베이스의 일부 레코드 삭제가 요청되었을 때 일부 인덱스에서 북마크가 유실되어 삭제 요청이 정상적으로 수행되지 않는 경우에라도, 치명적 오류가 아닐 때에는 전체 시스템을 정지시키지 않고 테이블에서 삭제 대상 레코드를 정상적으로 삭제할 수 있다. 시스템이 정지되는 경우 인력, 전력, 시간 등의 다양한 측면에서 소모가 크지만, 전술한 본 발명의 실시예들에 따르면 상기 소모를 최소화할 수 있다.
본 발명의 실시예들에 관한 데이터베이스 관리 방법 및 데이터베이스 관리 시스템은 특정 결과를 유도하는 요청이 수신되었을 때 데이터베이스에 일부 오류가 있더라도, 오류가 없는 경우와 동일하게 상기 특정 결과를 도출할 수 있다면, 굳이 전체 시스템을 정지시키지 않고 상기 특정 결과를 도출함으로써, 요청에 정상적으로 대응할 수 있다.
도 1은 일 실시예에 따른 데이터베이스 관리 시스템(1)을 개략적으로 도시한 것이다.
도 2는 일 실시예에 따른 데이터베이스 관리 장치(100)를 개략적으로 도시한 블록도이다.
도 3은 일 실시예에 따른 데이터베이스 관리 방법의 흐름도이다.
도 4는 일 실시예에 따른 데이터베이스 관리 방법의 일부를 자세히 도시한 흐름도이다.
도 5는 일 실시예에 따른 데이터베이스의 테이블 및 인덱스의 일 예를 도시한 것이다.
도 6은 도 5의 테이블(51)의 상세한 예를 도시한 것이다.
도 7a 내지 도 7c는 도 5의 인덱스(52)의 일 예를 도시한 것이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 두께는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
도 1은 일 실시예에 따른 데이터베이스 관리 시스템(1)을 개략적으로 도시한 것이다.
데이터베이스 관리 시스템(1)은 데이터베이스(30)에 연결되어 데이터베이스(30)에 기록된 데이터를 갱신 또는 삭제하거나, 데이터베이스(30)에 데이터를 추가하는 등 데이터베이스(30)를 통합적으로 관리하는 기능을 수행한다. 도 1을 참조하면, 일 실시예에 따른 데이터베이스 관리 시스템(1)은 서버(10), 데이터베이스(30)가 통신망(40)을 통해 단말(20)과 연결되어 있다.
서버(10)는 단말(20)로부터 각종 명령을 수신하고, 명령에 대응되는 처리를 수행한다. 상기 명령은 데이터베이스를 관리하기 위한 명령일 수 있다. 서버(10)는 단말(20)로 다양한 서비스를 제공하도록 구비될 수 있다. 도면에는 도시되지 않았으나, 일 실시예에 따른 서버(10)에는 메모리, 입/출력부, 프로그램 저장부, 제어부 등이 더 포함될 수 있다. 서버(10)에 포함될 수 있는 상세 구성에 대하여서는 도 2를 참조하여 후술하기로 한다.
단말(20)은 유무선 통신 환경을 갖춘 통신 단말기를 의미한다. 여기서 단말(20)은 도 1에 도시된 것과 같은 퍼스널 컴퓨터일 수 있으나, 반드시 이에 한정되는 것은 아니다. 단말(20)은 휴대용 단말, 예컨대 스마트폰일 수도 있으며, 통신 환경을 갖춘 단말은 제한 없이 차용될 수 있다.
단말(20)은 화면을 표시하는 표시부, 사용자로부터 데이터를 입력받는 입력장치 등을 구비할 수 있다.
데이터베이스(30)는 다양한 데이터를 저장하는 저장 장치로써, 상기 데이터는 테이블 형식으로 저장될 수 있다. 데이터베이스(30)에는 상기 테이블의 메타데이터인 인덱스가 저장될 수 있다. 이하에서 테이블에 저장되는 데이터는 레코드라고 지칭하고, 레코드는 여러 항목의 데이터들을 포함한다. 인덱스는 모든 레코드의 북마크를 포함할 수 있다. 북마크는 예컨대 (키, 식별값)와 같이 두 데이터의 조합으로 구성될 수 있다. 여기서 키는 레코드의 일 항목 데이터이고, 식별값은 레코드를 식별하기 위해 레코드에 부여된 고유한 값을 의미한다. 인덱스에 포함된 북마크들은 각 북마크의 키 값에 따라 정렬된다. 한편, 북마크가 반드시 두 데이터의 조합으로 구성되는 것은 아니다. 예컨대, 북마크는 (키1, 키2, 식별값)과 같이 복수의 항목 데이터를 포함하는 데이터의 조합으로 구성될 수도 있다.
도 1에서는 데이터베이스(30)가 한 개 구비되는 것으로 도시되었으나, 본 발명의 사상은 이에 제한되지 아니하며, 데이터베이스(30)의 개수 및 구성은, 데이터베이스 관리 시스템(1)의 구성, 저장되는 데이터 분량, 및 용도 등에 따라 다양하게 변경 가능하다 할 것이다.
통신망(40)은 서버(10)와 단말(20)을 연결한다. 예를 들어, 통신망(40)은 단말(20)이 서버(10)에 접속한 후 패킷 데이터를 송수신할 수 있도록 접속 경로를 제공한다.
도 2는 일 실시예에 따른 데이터베이스 관리 장치(100)를 개략적으로 도시한 블록도이다. 도 2에 도시된 데이터베이스 관리 장치(100)는 서버(10)에 구비된 것일 수 있다.
일 실시예에 따른 데이터베이스 관리 장치(100)는 데이터베이스(30)를 포함하는 외부 장치들과 통신하며, 데이터베이스(30)에 저장된 데이터를 관리한다. 예컨대, 데이터베이스(30)의 데이터를 추가, 삭제, 또는 변경할 수 있다.
본 발명의 일 실시예에 따른 데이터베이스 관리 장치(100)는 적어도 하나 이상의 프로세서(processor)에 해당하거나, 적어도 하나 이상의 프로세서를 포함할 수 있다. 이에 따라, 데이터베이스 관리 장치(100)는 마이크로 프로세서나 범용 컴퓨터 시스템과 같은 다른 하드웨어 장치에 포함된 형태로 구동될 수 있다. 레코드 추가 처리부(120) 및 레코드 삭제 처리부(130)는 하나의 모듈로 구성될 수 있다.
도 2에 도시된 데이터베이스 관리 장치(100)는 본 실시예의 특징이 흐려지는 것을 방지하기 위하여 본 실시예와 관련된 구성요소들만을 도시한 것이다. 따라서, 도 2에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.
도 2를 참조하면, 일 실시예에 따른 데이터베이스 관리 장치(100)는 통신부(110), 레코드 추가 처리부(120), 및 레코드 삭제 처리부(130)를 포함할 수 있다. 이하에서는 데이터베이스 관리 장치(100)의 상세 구성에 대하여 도 2를 참고하여 설명한다.
먼저 통신부(110)는 데이터베이스 관리 장치(100) 내부의 구성요소들과 외부장치들 간의 데이터 송수신 경로를 제공한다.
레코드 추가 처리부(120)는 데이터베이스(30)에 레코드를 추가하고자 하는 명령이 단말(20)로부터 수신되었을 때, 상기 명령에 따라 데이터베이스(30)에 레코드를 추가하는 처리를 수행한다. 레코드 추가 처리부(120)는 추가 명령 획득부(121), 테이블 업데이트부(122), 및 인덱스 업데이트부(123)를 포함한다.
추가 명령 획득부(121)는 단말(20)로부터 레코드의 추가 명령을 획득한다. 추가 명령은 데이터베이스(30)에 추가하고자 하는 추가 대상 레코드의 정보를 포함한다.
테이블 업데이트부(122)는 추가 대상 레코드를 데이터베이스(30)의 테이블에 추가한다.
인덱스 업데이트부(123)는 추가 대상 레코드가 추가된 테이블을 참고하여, 테이블에 대한 인덱스를 업데이트한다. 상기 업데이트는 기존의 인덱스의 일부를 수정하는 것일 수도 있고, 기존의 인덱스를 삭제한 뒤 새로운 인덱스를 재생성하는 것일 수도 있다.
레코드 삭제 처리부(130)는 데이터베이스(30)에 저장된 소정 레코드를 삭제하고자 하는 명령이 단말(20)로부터 수신되었을 때, 상기 명령에 따라 데이터베이스(30)에 저장된 소정 레코드를 삭제하는 처리를 수행한다. 레코드 삭제 처리부(130)는 삭제 명령 획득부(131), 식별값 획득부(132), 삭제 대상 레코드 획득부(133), 인덱스 처리부(134), 및 테이블 처리부(135)를 포함한다. 삭제 대상 레코드 획득부(133)는 북마크 추출부(1331)를 포함할 수 있다.
삭제 명령 획득부(131)는 단말(20)로부터 레코드의 삭제 명령을 획득한다. 삭제 명령은 데이터베이스(30)에 저장된 하나 이상의 레코드 중에서 삭제하고자 하는 삭제 대상 레코드의 정보를 포함한다. 이 때, 삭제 명령에 포함되는 삭제 대상 레코드의 정보는, 삭제 대상 레코드에 포함된 모든 항목 데이터들 및 삭제 대상 레코드의 식별값을 모두 포함할 수도 있으나, 삭제 대상 레코드의 적어도 일부 항목 데이터만을 포함하거나, 삭제 대상 레코드의 식별값만을 포함할 수도 있다. 삭제 대상 레코드는 한 개일 수도 있으나, 여러 개일 수도 있다. 예를 들어, 특정 항목 데이터를 포함하는 모든 레코드가 삭제 대상 레코드일 수도 있다. 이하에서는 삭제 명령이 삭제 대상 레코드의 일 항목 데이터를 포함하는 경우를 가정한다.
식별값 획득부(132)는 삭제 명령 획득부(131)에 의해 획득된 삭제 명령에 기초하여, 적어도 하나의 인덱스를 검색하여 삭제 대상 레코드의 식별값을 획득한다. 삭제 명령이 삭제 대상 레코드의 식별값 정보를 포함하는 경우, 식별값 획득부(132)는 인덱스를 참고하지 않더라도 삭제 명령에서 식별값 정보를 획득할 수도 있을 것이다.
전술한 것과 같이 일 실시예에 따라 인덱스에 포함되는 북마크는 (키, 식별값)의 데이터 쌍으로 구성되고 키는 레코드의 항목 데이터에 해당하므로, 식별값 획득부(132)는 삭제 대상 레코드의 항목 데이터를 포함하는 북마크를 인덱스에서 검색함으로써, 해당 항목 데이터를 포함하는 레코드의 식별값을 획득할 수 있다. 삭제 대상 레코드의 항목 데이터는 삭제 명령에 포함된 것일 수 있다.
삭제 대상 레코드 획득부(133)는 식별값 획득부(132)에 의해 획득된 식별값에 기초하여, 테이블에서 삭제 대상 레코드의 각 항목 데이터들을 획득할 수 있다.
삭제 대상 레코드 획득부(133)는 북마크 추출부(1331)를 포함할 수 있으며, 북마크 추출부(1331)는 삭제 대상 레코드의 각 항목 데이터를 참조하여, 각 항목 데이터에 대응되는 북마크를 추출한다. 추출되는 북마크는 (키(항목 데이터), 식별값)의 데이터 쌍일 수 있다.
인덱스 처리부(134)는 삭제 대상 레코드 획득부(133)에 의해 획득된 삭제 대상 레코드의 각 항목 데이터들(또는 각 항목 데이터에 대응되는 북마크)에 기초하여, 모든 인덱스에서 삭제 대상 레코드의 북마크를 삭제할 수 있다. 이와 같은 작업은, 테이블에서 삭제 대상 레코드를 삭제하기 이전에, 테이블의 메타데이터인 인덱스에서 삭제 대상 레코드의 북마크를 먼저 삭제하는 것이다.
테이블 처리부(135)는 인덱스 처리부(134)의 처리가 완료되면 삭제 대상 레코드를 테이블에서 삭제한다. 한편, 테이블 처리부(135)는 인덱스 처리부(134)의 처리 단계에서 모든 인덱스에 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 삭제 대상 레코드를 테이블에서 삭제한다. 예를 들어, 일부 인덱스에서 삭제 대상 레코드의 북마크가 유실되거나 손상되어, 삭제 대상 레코드의 북마크를 포함하지 않는 인덱스가 있었더라도, 인덱스 처리부(134)는 인덱스 처리를 정상적으로 종료한다. 이에 따라 테이블 처리부(135)는 일부 인덱스에서 삭제 대상 레코드의 북마크가 존재하지 않아 삭제 대상 북마크의 삭제가 불가하더라도, 삭제 대상 레코드의 북마크가 존재하는 나머지 인덱스들에서 삭제 대상 레코드의 북마크가 삭제되면, 테이블에서 삭제 대상 레코드를 삭제한다.
도 3은 일 실시예에 따른 데이터베이스 관리 방법의 흐름도이다.
도 3은 도 2의 데이터베이스 관리 장치(100)가 데이터베이스(30)를 관리하는 일 실시예를 나타내는 흐름도이다. 따라서, 이하 생략된 내용이라 하더라도 도 2에서 설명된 데이터베이스 관리 장치(100)에 관하여 이상에서 기술된 내용은 도 3의 실시예에 따른 데이터베이스 관리 방법에도 적용된다.
도 3을 참조하면, 단계 31에서 도 2의 추가 명령 획득부(121) 또는 삭제 명령 획득부(131)는 데이터베이스 관리를 위한 명령을 획득하고, 단계 32로 진행한다.
단계 31에서 획득한 명령이 레코드의 추가 명령인 경우 단계 32에서 단계 311로 진행하고, 레코드의 삭제 명령인 경우 단계 32에서 단계 321로 진행한다.
먼저, 단계 311로 진행하는 경우 단계 311에서 도 2의 테이블 업데이트부(122)는 추가 대상 레코드를 테이블에 추가하여 테이블을 업데이트한다.
단계 312에서 인덱스 업데이트부(123)는 단계 311에서 업데이트된 테이블을 참조하여, 테이블의 인덱스를 업데이트한다. 단계 312가 완료되면 레코드 추가 프로세스가 종료될 수 있다.
단계 32에서 단계 321로 진행하는 경우, 단계 321에서 도 2의 식별값 획득부(132)는 단계 31에서 획득된 삭제 명령에 기초하여 적어도 하나의 인덱스를 검색하여 삭제 대상 레코드의 식별키를 획득한다.
단계 322에서 삭제 대상 레코드 획득부(133)는 삭제 대상 레코드의 식별키에 기초하여 테이블에서 삭제 대상 레코드의 각 항목 데이터들을 획득한다.
단계 323에서 북마크 추출부(1331)는 획득된 삭제 대상 레코드의 항목들 각각에 대응하는 북마크를 추출한다.
단계 324에서 인덱스 처리부(134)는 단계 322에서 획득된 항목 데이터들에 기초하여, 적어도 하나의 인덱스 각각에서 삭제 대상 레코드의 북마크를 삭제한다. 또는 단계 324에서 인덱스 처리부(134)는 단계 323에서 추출된 북마크에 기초하여, 적어도 하나의 인덱스 각각에서 삭제 대상 레코드의 북마크를 삭제한다. 예를 들어, 북마크 추출부(1331)는 삭제 대상 데이터의 소정 항목의 데이터를 참조하여, 소정 항목을 기준으로 북마크가 정렬된 인덱스에서 상기 삭제 대상 데이터의 북마크를 삭제한다. 또는 북마크 추출부(1331)는 삭제 대상 데이터의 소정 항목에 대응하는 북마크를 참조하여, 상기 소정 항목을 기준으로 북마크가 정렬된 인덱스에서 삭제 대상 데이터의 북마크를 삭제한다. 단계 324는 반복 수행될 수 있으며, 테이블에 대응하여 저장된 모든 인덱스에 대하여 수행될 수 있다.
단계 325에서 테이블 처리부(135)는 테이블에서 삭제 대상 레코드를 삭제한다. 한편, 단계 325에서 테이블 처리부(135)는, 단계 324가 수행되기 전 모든 인덱스에 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 테이블에서 삭제 대상 레코드를 삭제한다. 예를 들어, 단계 324에서 일부 인덱스에서 삭제 대상 레코드의 북마크 삭제에 실패하더라도 단계 325에서 테이블 처리부(135)는 삭제 대상 레코드의 삭제를 정상적으로 수행한다. 여기서, 북마크 삭제에 실패한다는 의미는, 단계 324가 수행되기 이전에 인덱스에 삭제 대상 레코드의 북마크가 정상적으로 포함되어 있었고 단계 324에서 이를 정상적으로 삭제한 경우를 제외한 모든 경우를 포함한다. 예컨대 일부 인덱스에 삭제 대상 레코드의 북마크가 존재하지 않음으로 인해 삭제 대상 레코드의 북마크를 삭제하는 처리가 수행되지 않은 경우, 또는 일부 인덱스에 삭제 대상 레코드의 북마크가 존재하지 않음으로 인해 삭제 대상 레코드의 북마크를 인위적으로 추가한 후, 추가한 북마크를 다시 삭제한 경우 등을 모두 포함한다.
단계 326에서 테이블 처리부(135)는 테이블에서 삭제 대상 레코드의 삭제가 완료되었음을 알리는 완료 메시지를 출력할 수 있다. 완료 메시지는 단말(20)로 전송될 수 있다.
한편, 이상에서는 단계 31에서 획득된 명령이 삭제 명령, 또는 추가 명령인 경우의 예를 설명하였으나, 단계 31에서 획득된 명령은 레코드 변경 명령일 수도 있다. 변경 명령은 기존의 레코드를 삭제한 후 새로운 레코드를 추가하는 작업과 동일하므로, 단계 31에서 획득된 변경 명령은 삭제 명령과 추가 명령으로 나누어질 수 있다. 단계 31에서 획득된 명령이 변경 대상 레코드의 변경 명령인 경우, 먼저 단계 321 및 이하의 단계들을 통해 상기 변경 대상 레코드를 먼저 데이터베이스(30)에서 삭제한 후, 단계 311 및 이하의 단계들을 통해 변경 대상 레코드를 데이터베이스(30)에 추가할 수 있다.
한편, 상기 변경 명령에 대한 처리는 상기된 방법에 한정하지 않는다. 예컨대 변경 명령에 대한 처리를 수행할 때에는 인덱스에서 일일히 북마크를 삭제하는 단계가 생략될 수도 있을 것이다. 예컨대, 테이블에 저장된 레코드를 새로운 레코드로 덮어 씌워 테이블을 업데이트한 후, 업데이트된 테이블에 대하여 인덱스를 업데이트할 수 있다. 나아가, 빠른 처리를 위하여 기존 레코드 대비 변경된 항목에 대한 인덱스만을 업데이트할 수도 있다.
한편, 일 실시예에 따른 데이터베이스 관리 장치(100)는 데이터베이스(30)에 데이터를 기록하고 독취하는 과정에서, 데이터베이스 관리 장치(100)의 내부에 마련된 내부 메모리를 활용하여 데이터 처리 속도를 높일 수 있다.
도 4는 일 실시예에 따른 데이터베이스 관리 방법의 일부를 자세히 도시한 흐름도이다.
상세히 도 4는 도 3의 데이터베이스 관리 방법 중 단계 324의 일 예를 상세히 도시한 흐름도이다.
도 4를 참조하면, 단계 41에서 인덱스 처리부(134)는 삭제 대상 레코드의 항목들(또는 추출된 북마크)를 참조하여, 인덱스 각각에 삭제 대상 레코드의 북마크가 포함되어 있는지를 확인한다. 삭제 대상 레코드의 북마크가 인덱스에 포함된 경우 단계 411로 진행하여 인덱스에서 삭제 대상 레코드의 북마크를 삭제한다. 반면, 삭제 대상 레코드의 북마크가 인덱스에 포함되지 않은 경우 단계 421로 진행한다.
단계 421에서 인덱스 처리부(134)는 인덱스에 삭제 대상 레코드의 북마크를 추가하고, 추가된 북마크를 단계 422에서 삭제하고, 단계 423에서 오류 로그를 출력한다. 단계 423에서 오류 로그를 출력할 때, 인덱스 처리부(134)는 데이터베이스 관리 시스템(1)의 상태를 활성(valid) 상태로 설정할 수 있다. 이는 만일 삭제 대상 레코드의 북마크를 포함하지 않은 인덱스에 의해 데이터베이스 관리 시스템(1)의 상태가 비활성(invalid) 상태로 변경되었을 경우에라도, 이를 강제로 활성(valid) 상태로 변경함으로써, 데이터베이스 관리 시스템(1)이 정상적으로 동작하게 하기 위함이다.
한편, 단계 421 및 단계 422는 생략될 수도 있다. 다시 말하면, 단계 41에서 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 인덱스 처리부(134)는 상기 인덱스에 대하여 북마크 삭제 처리를 생략하고, 단계 423에서 오류 로그만을 출력한 후 인덱스 처리 프로세스를 종료하고, 도 3의 단계 325으로 진행할 수 있다는 것이다.
도 4에 도시된 인덱스 처리 방법은 반복적으로 수행될 수 있고, 테이블에 대응하여 존재하는 모든 인덱스마다 수행될 수 있다.
도 5는 일 실시예에 따른 데이터베이스의 테이블 및 인덱스의 일 예를 도시한 것이다.
도 5를 참조하면, 데이터베이스(30)는 다양한 데이터들이 저장되는 테이블(51)과, 테이블(51)의 메타데이터인 인덱스(52)를 포함한다.
테이블(51)은 하나 이상의 레코드(R1, …, Rn)를 포함하고, 각 레코드는 하나 이상의 항목 데이터를 포함한다. 예컨대, 소정 게시판에 대한 게시물들이 저장된 데이터베이스인 경우, 테이블은 게시물들의 집합을 의미하고, 레코드는 각 게시물을 의미하며, 항목이란 게시물 식별자, 게시물 작성자, 조회수 등이 저장되는 영역을 의미한다. 다른 예로, 사용자 계정들이 저장된 데이터베이스인 경우, 테이블은 사용자 계정의 집합을 의미하고, 레코드는 각 사용자 계정을 의미하며, 항목이란 사용자 계정의 식별자, 아이디, 사용자 이름, 나이, 성별, 연락처 등이 저장될 수 있는 영역을 의미한다.
인덱스(52)는 테이블(51)에 대한 동작의 속도를 높여주기 위해 마련되는 자료 구조로, 예컨대 인덱스(52)는 테이블(51)에 포함된 레코드들의 북마크가 소정 항목을 기준으로 하여 정렬된 구조를 갖는다.
인덱스(52)는 여러 개 마련될 수 있다. 예를 들어, 인덱스(52)는 레코드의 항목 개수만큼 마련될 수 있다. 각각의 인덱스(52)는 서로 다른 항목을 기준으로 테이블(51)에 포함된 레코드들의 북마크를 정렬하여 저장할 수 있다.
도 5를 참조하면, 제1 항목을 기준으로 레코드들의 북마크(B1R1, …, B1Rn)가 정렬된 제1 인덱스(521), 제2 항목을 기준으로 레코드들의 북마크(B2R1, …, B2Rn)가 정렬된 제2 인덱스(522), 제3 항목을 기준으로 레코드들의 북마크(B3R1, …, B3Rn)가 정렬된 제3 인덱스(523)가 예시된 것을 볼 수 있다.
한편, 테이블(51)은 데이터베이스(30)의 유저 데이터 영역에, 인덱스(52)는 데이터베이스(30)의 메타데이터 영역에 저장될 수 있으나, 반드시 이에 한정하지는 않는다.
도 6은 도 5의 테이블(51)의 상세한 예를 도시한 것이다.
도 6을 참조하면, 테이블(51)은 복수의 레코드를 포함한다. 도 6에는 제1 레코드(R1), 제2 레코드(R2), 및 제3 레코드(R3)가 도시되었으나, 테이블(51)은 더 많은 레코드를 포함할 수 있고, 더 적은 레코드를 포함할 수도 있다.
도 6의 예에서는, 데이터베이스가 사용자 계정을 저장한다. 본 예에서 테이블(51)은 사용자 계정들을 저장하고, 레코드는 사용자 계정에 대응되고, 항목은 사용자 계정에 포함되는 세부 정보들 예컨대 항목 1은 이름, 항목 2는 성별, 항목 3은 나이에 대응되는 것으로 도시되었다.
한편, 도 6에 도시된 레코드들의 세부 항목 데이터들은 예시일 뿐이므로, 본 발명의 실시예들이 이에 한정되는 것은 아니다. 레코드는 더 많은 항목을 포함할 수도 있고, 더 적은 항목을 포함할 수도 있다.
도 7a 내지 도 7c는 도 5의 인덱스(52)의 일 예를 도시한 것이다.
상세히, 도 7a는 제1 인덱스(521), 도 7b는 제2 인덱스(522), 도 7c는 제3 인덱스(523)의 예를 도시한다. 제1 인덱스(521), 제2 인덱스(522) 및 제3 인덱스(523)는 는 테이블(51)에 포함된 레코드들의 북마크를 정렬한다.
제1 인덱스(521)에 포함된 북마크의 키는 항목 1, 즉 본 예시의 경우 이름 데이터이고, 제1 인덱스(521)에 포함된 북마크는 이름 순으로 정렬된다. 제2 인덱스(522)에 포함된 북마크의 키는 항목 2, 즉 본 예시의 경우 성별 데이터이고, 제2 인덱스(522)에 포함된 북마크는 성별 순으로 정렬된다. 제3 인덱스(523)에 포함된 북마크의 키는 항목 3, 즉 본 예시의 경우 나이 데이터이고, 제3 인덱스(523)에 포함된 북마크는 나이 순으로 정렬된다.
이하에서는 도 6, 도 7a, 도 7b, 및 도 7c를 함께 참고하여 일 실시예에 따른 데이터베이스 관리 방법을 설명하기로 한다.
먼저, 도 2의 삭제 명령 획득부(131)는 사용자로부터 삭제명령을 획득한다. 삭제 명령은 소정 항목을 기준으로 하여 획득될 수 있다. 예를 들어 사용자는 삭제명령을 서버(10)에 전송할 수 있고, 삭제 명령은 소정 항목 데이터를 포함할 수 있다. 예컨대, 삭제 명령의 내용은 ‘김철수’의 계정을 삭제하라는 것일 수 있다. 이하에서는 상기 경우를 가정하여 본 발명의 실시예를 예시적으로 설명하기로 한다.
전술한 삭제 명령이 획득되면, 도 2의 식별값 획득부(132)는 삭제 명령에 기초하여 제1 인덱스를 참고해 ‘김철수’의 식별값을 획득한다. 상세히, ‘김철수’라는 항목 데이터를 포함하는 북마크의 식별값을 획득한다. 도 7a를 참고하면 ‘김철수’의 식별값은 3이다.
다음으로, 도 2의 삭제 대상 레코드 획득부(133)는 ‘김철수’의 식별값에 해당하는 레코드(R3), 즉 삭제 대상 레코드를 획득한다. 삭제 대상 레코드 획득부(133)는 레코드(R3)의 각 항목(김철수, 남, 35,...)에 해당하는 북마크들을 추출할 수 있다. 추출된 북마크는 예컨대, (김철수, 3), (남, 3), 및 (35, 3)을 포함할 수 있다.
다음으로, 도 2의 인덱스 처리부(134)는 레코드(R3)의 항목 데이터들을 참고하여, (또는 추출된 북마크를 참고하여) 모든 인덱스에서 삭제 대상 레코드(R3)의 북마크를 삭제한다. 예컨대, 도 7a에 도시된 제1 인덱스(521)에서 삭제 대상 레코드(R3)의 북마크(B1R3)를 삭제하고, 도 7b에 도시된 제2 인덱스(522)에서 삭제 대상 레코드(R3)의 북마크(B2R3)를 삭제하고, 도 7c에 도시된 제3 인덱스(523)에서 삭제 대상 레코드(R3)의 북마크(B3R3)를 삭제한다.
그러나, 도 7c을 참조하면 삭제 대상 레코드(R3)의 북마크가 존재하지 않음을 볼 수 있다. 실제로 데이터베이스(30)의 운용 과정에서 일부 인덱스의 북마크가 유실되거나 손상되는 경우가 발생할 수 있는데, 도 7c의 제3 인덱스(523)는 그러한 예를 도시한 것이다.
본 발명의 일 실시예의 경우, 도 7c의 예와 같이 삭제하고자 하는 북마크가 인덱스에 없더라도, 도 2의 인덱스 처리부(134)는 시스템을 정지시키지 않으며 삭제가 정상적으로 수행된 것과 같이 다음 단계로 진행한다. 삭제하고자 하는 북마크가 인덱스에 없는 경우에도 삭제가 정상적으로 수행된 것과 같이 인식하기 위해서는 다음과 같은 처리가 가능하다.
첫번째 방법은, 삭제하고자 하는 북마크를 인덱스에 추가하는 것이다. 인덱스 처리부(134)는 추가된 북마크를 삭제할 수 있다. 이 경우 모든 인덱스에서 추가 대상 레코드의 북마크의 삭제 처리가 실제로 수행되었으므로, 인덱스를 정상적으로 처리한 것과 같게 된다.
두번째 방법은, 삭제하고자 하는 북마크가 인덱스에 없어서 데이터 처리 과정에서 데이터베이스 관리 시스템(1)의 운용에 문제가 발생하는 경우, 예컨대 데이터베이스 관리 시스템(1)의 상태가 비활성(invalid) 상태로 변경되는 경우, 인덱스 처리부(134)가 데이터베이스 관리 시스템(1)의 상태를 강제로 활성(valid) 상태로 변경하는 것이다. 이에 따르면, 일부 인덱스에서 추가 대상 레코드의 북마크의 삭제 처리가 실제로 수행되지 않았더라도 데이터베이스 관리 시스템(1)은 오류를 인지하지 못하므로, 인덱스를 정상적으로 처리한 것과 같게 된다.
상기된 방법들은 삭제하고자 하는 북마크가 인덱스에 없는 경우, 오류를 발생시키지 않고 데이터 처리를 정상적으로 종료하기 위한 세부 방법의 예시로써, 상기된 예시 이외의 다른 방법들이 본 실시예에 적용될 수 있다.
한편, 사용자로부터 획득된 삭제명령을 참고하여 특정 인덱스에서 삭제 대상 레코드의 식별값을 획득하는 과정에서, 상기 특정 인덱스에서 삭제 대상 레코드의 북마크가 유실되었음으로 인해 삭제 대상 레코드의 식별값을 획득하지 못할 수도 있다.
예컨대, 도 6 내지 도 7c의 예에서 본다면, 나이가 35인 사용자 계정을 삭제하라는 삭제 명령이 획득된 경우, 나이 항목에 대응되는 인덱스인 제3 인덱스(523)에서 35라는 데이터를 키로 포함하는 북마크를 검색하게 된다. 그러나 도 7c에 예시된 제3 인덱스(523)의 경우 35를 키로 포함하는 북마크가 유실되어 존재하지 않는다. 이러한 경우, 본 발명의 일 실시예에 따른 데이터베이스 관리 장치(100)는 실질적인 삭제 처리는 수행하지 않으나, 삭제 명령에 대한 대응을 일단 정상적으로 종료할 수 있다.
결과적으로 사용자가 삭제하고자 하는 삭제 대상 레코드(상기 예의 경우, 나이가 35인 사용자 계정, 즉 R3)는 테이블에 여전히 존재하지만, 오류 로그 등을 남겨놓을 수 있음은 별론으로 하고, 데이터베이스 관리 장치(100)는 삭제 명령에 대한 대응을 정상적으로 종료할 수 있다. 이에 따라, 서버(10)는 정지되지 않으며 정상적으로 동작하게 된다.
`제1 인덱스(521), 제2 인덱스(522), 및 제3 인덱스(523)를 포함하는 모든 인덱스에서 삭제 대상 레코드의 북마크 삭제 처리가 모두 완료(북마크를 삭제한 경우, 및 북마크를 삭제하지 않았더라도 오류가 무시된 경우를 모두 포함)되면, 도 2의 테이블 처리부(135)는 도 6의 테이블(51)에서 레코드(R3)를 삭제한다. 이 때, 테이블 처리부(135)는 비록 일부 인덱스에 삭제 대상 레코드의 북마크가 존재하지 않음으로써 삭제 대상 레코드의 북마크가 삭제되는 처리가 수행되지 않았더라도, 이와 무관하게 테이블(51)에서 레코드(R3)를 삭제한다.
모든 인덱스에 삭제 대상 레코드의 북마크가 포함되어 있었던 경우와, 일부 인덱스에 삭제 대상 레코드의 북마크가 포함되어 있지 않았던 경우를 각각 가정할 때, 본 발명의 일 실시예에 따라 삭제 대상 레코드의 삭제 처리를 수행하고 난 후의 데이터베이스(30)는 동일할 수 있다.
종래에는 일부 인덱스에서 북마크가 유실되어 삭제하고자 하는 북마크의 삭제에 실패하는 경우, 시스템이 불능상태에 빠지거나 정지 상태가 되었다. 이러한 경우, 시스템 관리자는 직접 인덱스 및/또는 테이블을 업데이트함으로써 시스템이 정상적으로 동작할 수 있도록 시스템을 수리해야 했으며, 관리자가 시스템을 수리하기 전까지는 시스템은 모든 작업을 멈추고 정지되곤 했다`.
그러나 전술한 본 발명의 실시예들에 따르면, 데이터베이스의 일부 레코드 삭제가 요청되었을 때 일부 인덱스에서 북마크가 유실되어 삭제 요청이 정상적으로 수행되지 않는 경우에라도, 치명적 오류가 아닐 때에는 전체 시스템을 정지시키지 않고 테이블에서 삭제 대상 레코드를 정상적으로 삭제할 수 있다. 시스템이 정지되는 경우 인력, 시간, 전력, 서비스 품질 등의 다양한 측면에서 소모가 크지만, 전술한 본 발명의 실시예들에 따르면 상기 소모를 최소화할 수 있다.
전술한 본 발명의 실시예들에 따르면, 특정 결과를 유도하는 요청이 수신되었을 때 데이터베이스에 일부 오류가 있더라도, 오류가 없는 경우와 동일하게 상기 특정 결과를 도출할 수 있다면, 굳이 전체 시스템을 정지시키지 않고 상기 특정 결과를 도출함으로써, 요청에 정상적으로 대응할 수 있다. 다만, 오류 로그 등을 남겨 데이터베이스 관리 및 점검에 참고할 수 있다. 한편, 도 3 및 도 4에 도시된 데이터베이스 관리 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크, 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1: 데이터베이스 관리 시스템
10: 서버
20: 단말
30: 데이터베이스
40: 통신망
100: 데이터베이스 관리 장치
110: 통신부
120: 레코드 추가부
130: 레코드 삭제부
121: 추가 명령 획득부
122: 테이블 업데이트부
123: 인덱스 업데이트부
131: 삭제 명령 획득부
132: 식별값 획득부
133: 삭제 대상 레코드 획득부
1331: 북마크 추출부
134: 인덱스 처리부
135: 테이블 처리부

Claims (19)

  1. 삭제 대상 레코드의 정보를 포함하는 삭제 명령을 획득하는 삭제 명령 획득 단계;
    상기 삭제 대상 레코드의 정보에 기초하여 적어도 하나의 인덱스에서 상기 삭제 대상 레코드의 식별값을 획득하는 식별값 획득 단계;
    상기 삭제 대상 레코드의 식별값에 기초하여, 테이블에서 상기 삭제 대상 레코드의 각 항목의 데이터들을 획득하는 삭제 대상 레코드 획득 단계;
    획득된 상기 삭제 대상 레코드의 각 항목의 데이터들에 기초하여, 상기 적어도 하나의 인덱스 각각에서 상기 삭제 대상 레코드의 북마크를 삭제하는 인덱스 처리 단계; 및
    상기 테이블에서 상기 삭제 대상 레코드를 삭제하는 테이블 처리 단계;를 포함하고,
    상기 인덱스 처리 단계에서 모든 인덱스에 상기 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 상기 테이블 처리 단계가 수행되어 상기 삭제 대상 레코드가 삭제되는
    데이터베이스 관리 방법.
  2. 제1 항에 있어서,
    상기 테이블 처리 단계는,
    상기 인덱스 처리 단계에서, 상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스의 북마크 삭제에 실패하더라도, 상기 테이블에서 상기 삭제 대상 데이터를 삭제하는
    데이터베이스 관리 방법.
  3. 제1 항에 있어서,
    상기 인덱스 처리 단계는,
    상기 삭제 대상 레코드의 항목들을 참조하여, 상기 인덱스 각각에 상기 삭제 대상 레코드의 북마크가 포함되어 있는지를 확인하는 북마크 확인 단계; 및
    상기 삭제 대상 레코드의 북마크가 포함된 인덱스에서 상기 삭제 대상 레코드의 북마크를 삭제하는 북마크 삭제 단계;를 포함하는
    데이터베이스 관리 방법.
  4. 제1 항에 있어서,
    상기 인덱스 처리 단계는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우,
    오류 로그를 출력하고, 상기 테이블 처리 단계로 진행하는
    데이터베이스 관리 방법.
  5. 제1 항에 있어서,
    상기 인덱스 처리 단계는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 상기 인덱스에 상기 삭제 대상 레코드의 북마크를 추가한 후, 상기 추가된 북마크를 삭제하는
    데이터베이스 관리 방법.
  6. 제1 항에 있어서,
    상기 인덱스 처리 단계는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 상기 인덱스에서의 상기 북마크 삭제를 생략하는
    데이터베이스 관리 방법.
  7. 제1 항에 있어서,
    상기 삭제 대상 레코드 획득 단계는,
    획득된 상기 삭제 대상 레코드의 항목들 각각에 대응하는 북마크를 추출하는 북마크 추출 단계;를 더 포함하고,
    상기 인덱스 처리 단계는, 추출된 상기 북마크에 대응되는 항목의 인덱스에 상기 북마크가 포함되어 있는지를 확인하는
    데이터베이스 관리 방법.
  8. 제1 항에 있어서,
    상기 테이블에서 상기 삭제 대상 데이터의 삭제가 완료되었음을 알리는 메시지를 출력하는 메시지 출력 단계;를 더 포함하는
    데이터베이스 관리 방법.
  9. 제1 항에 있어서,
    추가 대상 레코드를 상기 데이터베이스에 추가하기 위한 추가 명령을 획득하는 추가 명령 획득 단계;
    상기 추가 대상 레코드를 상기 테이블에 추가하는 테이블 업데이트 단계; 및
    상기 추가 대상 레코드가 추가된 상기 테이블을 참조하여, 상기 테이블의 인덱스를 업데이트하는 인덱스 업데이트 단계;를 더 포함하는
    데이터베이스 관리 방법.
  10. 삭제 대상 레코드의 정보를 포함하는 삭제 명령을 획득하는 삭제 명령 획득부;
    상기 삭제 대상 레코드의 정보에 기초하여 적어도 하나의 인덱스에서 상기 삭제 대상 레코드의 식별값을 획득하는 식별값 획득부;
    상기 삭제 대상 레코드의 식별값에 기초하여, 테이블에서 상기 삭제 대상 레코드의 각 항목의 데이터들을 획득하는 삭제 대상 레코드 획득부;
    획득된 상기 삭제 대상 레코드의 각 항목의 데이터들에 기초하여, 상기 적어도 하나의 인덱스 각각에서 상기 삭제 대상 레코드의 북마크를 삭제하는 인덱스 처리부; 및
    상기 테이블에서 상기 삭제 대상 레코드를 삭제하는 테이블 처리부;를 포함하고,
    상기 인덱스 처리부에서 상기 삭제 대상 레코드의 북마크를 삭제할 때, 모든 인덱스에 상기 삭제 대상 레코드의 북마크가 존재하였는지 여부와 무관하게 상기 테이블 처리부는 상기 삭제 대상 레코드를 삭제하는
    데이터베이스 관리 장치.
  11. 제10 항에 있어서,
    상기 테이블 처리부는,
    상기 인덱스 처리부에서, 상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스의 북마크 삭제에 실패하더라도, 상기 테이블에서 상기 삭제 대상 데이터를 삭제하는
    데이터베이스 관리 장치.
  12. 제10 항에 있어서,
    상기 인덱스 처리부는,
    상기 삭제 대상 레코드의 항목들을 참조하여, 상기 인덱스 각각에 상기 삭제 대상 레코드의 북마크가 포함되어 있는지를 확인하고, 상기 삭제 대상 레코드의 북마크가 포함된 인덱스에서 상기 삭제 대상 레코드의 북마크를 삭제하는
    데이터베이스 관리 장치.
  13. 제10 항에 있어서,
    상기 인덱스 처리부는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 오류 로그를 출력하는
    데이터베이스 관리 장치.
  14. 제10 항에 있어서,
    상기 인덱스 처리부는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 상기 인덱스에 상기 삭제 대상 레코드의 북마크를 추가한 후, 상기 추가된 북마크를 삭제하는
    데이터베이스 관리 장치.
  15. 제10 항에 있어서,
    상기 인덱스 처리부는,
    상기 삭제 대상 레코드의 북마크가 포함되지 않은 인덱스가 확인되는 경우, 상기 인덱스에서의 상기 북마크의 삭제를 생략하는
    데이터베이스 관리 장치.
  16. 제10 항에 있어서,
    상기 삭제 대상 레코드 획득부는,
    획득된 상기 삭제 대상 레코드의 항목들 각각에 대응하는 북마크를 추출하는 북마크 추출부;를 더 포함하고,
    상기 인덱스 처리부는, 추출된 상기 북마크에 대응되는 항목의 인덱스에 상기 북마크가 포함되어 있는지를 확인하는
    데이터베이스 관리 장치.
  17. 제10 항에 있어서,
    상기 테이블 처리부는
    상기 테이블에서 상기 삭제 대상 데이터의 삭제가 완료되었음을 알리는 메시지를 출력하는
    데이터베이스 관리 장치.
  18. 제10 항에 있어서,
    추가 대상 레코드를 상기 데이터베이스에 추가하기 위한 추가 명령을 획득하는 추가 명령 획득부;
    상기 추가 대상 레코드를 상기 테이블에 추가하는 테이블 업데이트부; 및
    상기 추가 대상 레코드가 추가된 상기 테이블을 참조하여, 상기 테이블의 인덱스를 업데이트하는 인덱스 업데이트부를 더 포함하는
    데이터베이스 관리 장치.
  19. 제1 항 내지 제9 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 컴퓨터 프로그램을 저장한 컴퓨터로 읽을 수 있는 기록매체.
KR1020140050176A 2014-04-25 2014-04-25 데이터베이스 관리 방법 및 데이터베이스 관리 시스템 KR101588375B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140050176A KR101588375B1 (ko) 2014-04-25 2014-04-25 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
JP2015052838A JP6752547B2 (ja) 2014-04-25 2015-03-17 データベース管理方法及びデータベース管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140050176A KR101588375B1 (ko) 2014-04-25 2014-04-25 데이터베이스 관리 방법 및 데이터베이스 관리 시스템

Publications (2)

Publication Number Publication Date
KR20150123603A KR20150123603A (ko) 2015-11-04
KR101588375B1 true KR101588375B1 (ko) 2016-01-25

Family

ID=54600066

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140050176A KR101588375B1 (ko) 2014-04-25 2014-04-25 데이터베이스 관리 방법 및 데이터베이스 관리 시스템

Country Status (2)

Country Link
JP (1) JP6752547B2 (ko)
KR (1) KR101588375B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190020105A (ko) * 2016-06-20 2019-02-27 알리바바 그룹 홀딩 리미티드 스트리밍 데이터의 분배 처리 방법 및 디바이스

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110874182B (zh) * 2018-08-31 2023-12-26 杭州海康威视系统技术有限公司 一种条带索引的处理方法、装置及设备
CN109815240B (zh) 2019-01-29 2022-02-25 北京百度网讯科技有限公司 用于管理索引的方法、装置、设备和存储介质
CN110597781B (zh) * 2019-08-09 2023-05-05 北京人大金仓信息技术股份有限公司 一种数据库的闪回删除方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181297A (ja) 2007-01-24 2008-08-07 Nec Corp 追記型データベース管理システム、不要領域修復処理方法及び不要領域修復プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05241928A (ja) * 1992-02-27 1993-09-21 Yokogawa Electric Corp データベース管理方法
KR100340337B1 (ko) * 1999-07-13 2002-06-12 서평원 실시간 메모리 데이터 베이스 관리 시스템의 데이터 베이스 관리 장치 및 방법
KR20070064224A (ko) * 2005-12-15 2007-06-20 (주)파슨텍 소규모 단말 환경에서 임베딩을 통하여 구축한 db 관리시스템 및 그 db 관리 방법
US7509332B1 (en) * 2005-12-16 2009-03-24 Tevaclata Us, Inc. Customized indexes for user defined data types
KR101103029B1 (ko) * 2009-05-22 2012-01-06 김철회 인덱스 인식에 따라 데이터를 추출하는 시스템 및 그 운용방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008181297A (ja) 2007-01-24 2008-08-07 Nec Corp 追記型データベース管理システム、不要領域修復処理方法及び不要領域修復プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190020105A (ko) * 2016-06-20 2019-02-27 알리바바 그룹 홀딩 리미티드 스트리밍 데이터의 분배 처리 방법 및 디바이스
KR102099544B1 (ko) * 2016-06-20 2020-05-18 알리바바 그룹 홀딩 리미티드 스트리밍 데이터의 분배 처리 방법 및 디바이스
US11036562B2 (en) 2016-06-20 2021-06-15 Advanced New Technologies Co., Ltd. Streaming data distributed processing method and device

Also Published As

Publication number Publication date
JP6752547B2 (ja) 2020-09-09
KR20150123603A (ko) 2015-11-04
JP2015210815A (ja) 2015-11-24

Similar Documents

Publication Publication Date Title
US8938430B2 (en) Intelligent data archiving
US8719237B2 (en) Method and apparatus for deleting duplicate data
KR101083563B1 (ko) 데이터베이스 관리 방법 및 시스템
CN106407360B (zh) 一种数据的处理方法及装置
US10205730B2 (en) Access control for database
WO2020248875A1 (zh) 版本比对方法、系统、计算机设备及可读存储介质
US9128974B2 (en) Methods for tracking database changes and devices thereof
CN108491326B (zh) 测试行为重组方法、装置及存储介质
KR101588375B1 (ko) 데이터베이스 관리 방법 및 데이터베이스 관리 시스템
US10664459B2 (en) Database managing method, database managing system, and database tree structure
CN105373541A (zh) 数据库的数据操作请求的处理方法和系统
CN110245145A (zh) 关系型数据库到Hadoop数据库的结构同步方法和装置
CN107832448A (zh) 数据库操作方法、装置及设备
US9747328B2 (en) Method and apparatus for modifying a row in a database table to include meta-data
US20210303404A1 (en) Systems and methods for database migration
WO2016101528A1 (zh) 内存数据库的数据处理方法及装置
CN111753141A (zh) 一种数据管理方法及相关设备
US10534761B2 (en) Significant cleanse change information
CN105095513B (zh) 一种破解Oracle数据库账户密码的方法和装置
CN112632266B (zh) 数据写入方法、装置、计算机设备及可读存储介质
CN114116907A (zh) 一种数据库的同步方法、装置、电子设备和存储介质
CN108984720B (zh) 基于列存储的数据查询方法、装置、服务器及存储介质
US8818955B2 (en) Reducing storage costs associated with backing up a database
US20180075118A1 (en) Replication queue handling
CN116339717B (zh) 一种数据执行方法、装置、设备和介质

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 5