KR20030031283A - 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법 - Google Patents

객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법 Download PDF

Info

Publication number
KR20030031283A
KR20030031283A KR1020010063209A KR20010063209A KR20030031283A KR 20030031283 A KR20030031283 A KR 20030031283A KR 1020010063209 A KR1020010063209 A KR 1020010063209A KR 20010063209 A KR20010063209 A KR 20010063209A KR 20030031283 A KR20030031283 A KR 20030031283A
Authority
KR
South Korea
Prior art keywords
class
instance
pointer
deleted
deleting
Prior art date
Application number
KR1020010063209A
Other languages
English (en)
Other versions
KR100520301B1 (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 KR10-2001-0063209A priority Critical patent/KR100520301B1/ko
Priority to US10/269,567 priority patent/US7076490B2/en
Publication of KR20030031283A publication Critical patent/KR20030031283A/ko
Application granted granted Critical
Publication of KR100520301B1 publication Critical patent/KR100520301B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 주기억장치 상주 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스 인스턴스 삭제 방법에 관한 것으로, 상기 클래스 인스턴스 삭제 방법은, (a) 데이터 접근 응용 프로그램으로부터 요청된 질의를 분석하는 단계; (b) 상기 (a) 단계에서의 분석 결과 인스턴스 삭제 질의가 요청된 경우, 상기 질의에 의해 삭제될 클래스와 상기 클래스로부터 상속받은 하위 클래스에 대한 상호배제 락을 획득하는 단계; 및 (c) 상기 클래스 및 상기 하위 클래스로부터 상기 인스턴스 및 상기 인스턴스와 연관된 적어도 하나 이상의 인스턴스를 삭제하는 단계를 포함한다.

Description

객체관계형 데이터베이스 관리 시스템 및 그것의 클래스 인스턴스 삭제 방법{Object-relational database management system and method for deleting class instance for the same}
본 발명은 데이터베이스 관리 시스템(database management system ; DBMS)(이하 DBMS라 칭함)에 관한 것으로, 특히 주기억장치 상주 객체관계형 DBMS에서 수직적(상속 관계), 수평적(1:1, 1:N;, M:N) 상호 관계가 객체식별자(object identifier ; OID) 집합으로 저장되는 클래스(class)들간의 인스턴스(instance) 삭제 방법에 관한 것이다.
DBMS는 대용량의 정보를 일관되게 유지하고, 효율적인 검색을 제공하는 시스템 소프트웨어이다. 최근 인터넷을 중심으로 다양한 형태의 정보 가공 방법과 빠른 접근에 대한 필요성이 점차 확대되고 있다. 그 결과 정보 시스템의 근간이 되는 DBMS의 구조와 패러다임(paradigm)에 대한 전환이 요구되고 있는 실정이다. 이러한 전환의 산물로 데이터베이스를 주기억장치에 상주시키는 메모리 상주형 DBMS(main-memory resident DBMS)가 대두되고 있다. 메모리 상주형 DBMS는 독자적으로 사용될 수 있으며, 기존의 디스크 기반 DBMS의 프론트 엔드(front-end)로 사용되어 시스템의 성능을 향상시키기도 한다. 현재 메모리 상주형 DBMS는 전 세계적으로 디스크 기반 DBMS의 프론트 엔드 DBMS 및 내장형 DBMS로서 시장 규모를 넓혀 가고 있다.
최근에는, 메모리 상주형 DBMS의 특성을 가짐과 동시에 고성능 데이터 처리를 수행할 수 있는 주기억장치 상주 객체관계형 DBMS가 개발되고 있다. 이 객체관계형 DBMS는 객체지향 질의를 통한 융통성 있는 데이터 조작이 가능하다.
주기억장치 상주 객체관계형 DBMS에서는 클래스간의 수평적 관계와 수직적 관계를 모델링 할 수 있는데, 이는 객체(object) 내에 관련된 객체의 객체식별자(object identifier ; OID)를 속성으로 포함함으로써 성립된다. 객체관계형 DBMS는 클래스의 수평적 관계를 모델링하기 위해 관계성(1:1, 1:N 또는 M:N)을 정의한다. 이와 같은 관계성을 명시할 때 객체식별자는 관련된 객체로의 포인터역할을 함으로써 질의 실행 효율을 높일 수 있다. 즉, 관계성 있는 클래스들간의 조인(join)이 요구될 경우 임시 테이블 생성과 같은 부가적인 장소나 시간 낭비 없이 직접 결과를 얻을 수 있다.
그러나, 이와 같은 주기억장치 상주 객체관계형 DBMS는 각 클래스간의 수직적, 수평적 상호관계가 객체식별자 집합으로 저장되기 때문에, 클래스 인스턴스 삭제시, 삭제된 클래스와 연관된 객체식별자 포인터가 완전하게 삭제되지 않게 되면, 삭제된 클래스를 가리키는 객체식별자 포인터가 임의의 클래스에 남게 되어 데이터베이스의 일관성을 깨뜨리는 문제가 발생한다. 따라서, 복잡하게 얽혀있는 인스턴스 및 인스턴스 상호 관계를 안전하게 삭제할 수 있는 방안이 요구된다.
본 발명이 이루고자 하는 기술적 과제는, 주기억장치 상주 객체관계형 DBMS 서버로 클래스 인스턴스 삭제 요구시, 요청된 클래스 및 상기 클래스와 연관된 타 클래스의 객체식별자 포인터를 완전하게 삭제함으로써, 데이터베이스의 일관성을 보장할 수 있는 클래스 인스턴스 삭제 방법을 제공하는데 있다.
도 1은 본 발명의 바람직한 실시예에 따른 주기억장치 상주 객체관계형 DBMS 시스템의 블록도이다.
도 2는 데이터 접근 응용 프로그램에서 정의한 클래스간의 수직적 상호 관계의 일례를 보여주는 도면이다.
도 3은 데이터 접근 응용 프로그램에서 정의한 클래스들 간의 수평적 상호 관계(1:1)의 일례를 보여주는 도면이다.
도 4a 및 도 4b는 도 3에 도시된 수평적 상호 관계를 가지는 클래스들 간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 5는 데이터 접근 응용 프로그램에서 정의한 클래스들 간의 수평적 상호 관계(1:N)의 일례를 보여주는 도면이다.
도 6a 및 도 6b는 도 5에 도시된 수평적 상호 관계를 가지는 클래스들 간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 7은 데이터 접근 응용 프로그램에서 정의한 클래스들 간의 수평적 상호 관계(M:N)의 일례를 보여주는 도면이다.
도 8a 및 도 8b는 도 7에 도시된 수평적 상호 관계를 가지는 클래스들 간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 9는 본 발명의 바람직한 실시예에 따른 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법을 보여주는 흐름도이다.
도 10은 도 9의 405 단계에서 호출되는 함수 getLock()의 상세 흐름도이다.
도 11은 도 9의 410 단계에서 호출되는 delete() 함수의 상세 흐름도이다.
도 12는 도 11에 도시된 delete() 함수의 1:1 타입의 OID 집합에 대한 삭제 동작을 설명하는 흐름도이다.
도 13a 및 13b는 도 11에 도시된 delete() 함수의 1:N 타입의 OID 집합에 대한 삭제 동작을 설명하는 흐름도이다.
< 도면의 주요 부분에 대한 부호의 설명 >
10 : 객체관계형 DBMS 서버20 : 데이터베이스
30 : 질의 분석 모듈40 : 질의 수행 모듈
50 : 시스템 카탈로그 접근 모듈60 : 클라이언트
62 : 데이터 접근 응용 프로그램
상기의 과제를 이루기 위하여 본 발명에 의한 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법은, (a) 데이터 접근 응용 프로그램으로부터 요청된 질의를 분석하는 단계; (b) 상기 (a) 단계에서의 분석 결과 인스턴스 삭제 질의가 요청된 경우, 상기 질의에 의해 삭제될 클래스와 상기 클래스로부터 상속받은 하위 클래스에 대한 상호배제 락을 획득하는 단계; 및 (c) 상기 클래스 및 상기하위 클래스로부터 상기 인스턴스 및 상기 인스턴스와 연관된 적어도 하나 이상의 인스턴스를 삭제하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 상호 배제 락 획득 방법은, (a) 데이터 접근 응용 프로그램으로부터 인스턴스 삭제 질의가 요청된 경우, 상기 질의에 대응되는 클래스에 락을 요청하는 단계; (b) 상기 클래스에 락이 획득된 경우 상기 클래스의 하위 클래스를 검색하는 단계; 및 (c) 상기 (b) 단계에서 검색된 모든 하위 클래스에 대한 락을 획득하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 클래스 인스턴스 삭제 방법은, (a) 데이터 접근 응용 프로그램으로부터 인스턴스 삭제 질의가 요청된 경우, 삭제될 클래스에 포함된 애트리뷰트들 중 관계성을 나타내는 애트리뷰트의 타입을 판별하는 단계; (b) 상기 (a) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:1인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터를 NULL 값으로 할당하는 단계; (c) 상기 (a) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:N인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터 집합에서 상기 인스턴트 값을 삭제하는 단계; 및 (d) 상기 (b) 및 (c) 단계가 성공적으로 수행된 경우, 상기 삭제될 클래스의 상기 인스턴스를 삭제하는 단계를 포함하는 것을 특징으로 한다.
상기의 과제를 이루기 위하여 본 발명에 의한 객체관계형 데이터베이스 관리 시스템은, 클래스들간의 상호 관계가 객체 식별자 포인터들의 집합으로 저장된 데이터베이스; 및 상기 데이터베이스의 클래스간의 인스턴스 삭제시, 해당 인스턴스는 물론 상기 인스턴스와의 상호관계를 나타내는 타 클래스의 객체 식별자 포인터를 모두 삭제하는 객체관계형 데이터베이스 관리 시스템 서버를 포함하는 것을 특징으로 한다.
이하에서, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 주기억장치 상주 객체관계형 DBMS 서버(10) 및 상기 서버(10)에 연결된 클라이언트(60)의 블록도이다. 도 1을 참조하면, 주기억장치 상주 객체관계형 DBMS는 주기억장치 상주 객체관계형 DBMS서버(10)와, 네트워크(5)로 연결된 클라이언트(60)로 구성되며, DBMS서버(10)에는 주기억장치에 상주하는 데이터베이스(20)가 연결된다. DBMS서버(10)는 질의 분석 모듈(30), 질의 수행 모듈(40) 및 시스템 카탈로그 접근 모듈(50)을 포함하며, 클라이언트(60)는 데이터베이스 접근 응용 프로그램(62)을 포함한다.
질의 분석 모듈(30)은, 데이터 접근 응용 프로그램(62)으로부터 주기억장치 상주 데이터베이스(20) 접근 요청이 발생하면 이를 분석하는 동작을 수행하고, 질의 수행 모듈(40)은 분석된 질의에 따라 시스템 카탈로그 접근 모듈(50)을 통해 시스템 카탈로그(미도시됨)를 참조하여 데이터베이스를 검색, 변경, 또는 삭제하는 등의 동작을 수행한다.
도 2는 데이터 접근 응용 프로그램(62)에서 정의한 클래스간의 수직적 상호 관계의 일례를 보여주는 도면이다. 본 발명의 객체관계형 DBMS에서는 클래스간의 수직적 상관 관계(상속)를 다음과 같이 정의한다.
도 2를 참조하면, 임의의 클래스는 오직 한 클래스로부터 상속 가능하다.즉, 상위 클래스에서 정의한 애트리뷰트(attribute)의 이름과 타입을 변경 없이 상속받고, 자신의 고유한 애트리뷰트를 추가로 가질 수 있다. 이 때, 여러 상위 클래스로부터 상속받아 하위 클래스를 생성하는 다중 상속은 불가능하다.
도면에서 클래스 B(211)는 클래스 A(210)로부터 상속받고, 클래스 C(212)는 클래스 B(211)로부터 상속받게 되므로, 실제로 클래스 B(211)에는 클래스 A(210)에서 상속받은 애트리뷰트(A_att1(213))와, 자신의 클래스에서 정의한 애트리뷰트(B_att1(214))가 포함된다. 또한 클래스 C(212)에는 클래스 A(210)에서 상속받은 애트리뷰트(A_att1(213))와, 클래스 B(211)에서 상속받은 애트리뷰트(B_att1(214)) 및 자신의 클래스(212)에서 정의한 애트리뷰트(C_att1(215))가 포함된다. 따라서 최상위 클래스인 클래스 A(210)에서 애트리뷰트(A_att1(213)) 값을 삭제하는 삭제 질의는 클래스 B(211)와 클래스 C(212)의 애트리뷰트(A_att1(213))에도 모두 적용된다.
이어서, 본 발명의 객체관계형 DBMS에서 정의된 클래스간의 수평적 상관 관계를 살펴보면 다음과 같다. 본 발명의 객체관계형 DBMS에서는 클래스간의 수평적 상관 관계를 1:1 관계, 1:N 관계, 및 M:N 관계의 3가지 관계로 정의한다.
도 3은 데이터 접근 응용 프로그램(62)에서 정의한 클래스들(220, 221)간의 수평적 상호 관계(1:1)의 일례를 보여주는 도면이고, 도 4a 및 도 4b는 도 3에 도시된 수평적 상호 관계를 가지는 클래스들(220, 221)간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 3 및 도 4a를 참조하면, 클래스 A(220)와 클래스 W(221)는 1:1의 수평적상관 관계에 있다. 클래스 A(220)는 A_att2(222)라는 애트리뷰트를 통해 클래스 W(221)에 있는 소정의 인스턴스(β1)로 접근할 수 있으며, 클래스 W(221)는 W_att2(223)라는 애트리뷰트를 통해 자신의 인스턴스(β1)를 가리키는 클래스 A(220)의 인스턴스(α1)에 1:1로 접근할 수 있다. 즉, 클래스 A(220)의 A_att2(222)라는 애트리뷰트는 클래스 W(221)의 인스턴스 객체식별자(OID ; 224) 하나를 가지고 있어, 클래스 W(221)에 있는 소정의 인스턴스(β1)를 가리키는 역할을 수행한다. 그리고, 클래스 W(221)의 W_att2(223)라는 애트리뷰트는 자신의 인스턴스(β1)를 가리키는 인스턴스 객체 식별자(OID ; 225) 하나를 가지고 있어, 자신의 인스턴스(β1)를 가리키는 클래스 A(220)의 인스턴스(α1)를 가리키는 역할을 수행한다.
이와 같은 특성을 갖는 클래스 A(220)의 인스턴스(α1)를 삭제하는 경우, 다음과 같은 SQL(Structured Query Language)이 사용된다.
exec sql delete A where …;
상기와 같은 질의에 의해 'where' 절에 기술된 조건에 해당되는 인스턴스(α1)가 삭제되는 경우, 도 4b에 도시된 바와 같이, 먼저 상기 인스턴스(α1)와 연관된 클래스 W(221)의 인스턴스(β1)의 애트리뷰트(W_att2(223)) 값이 삭제되고, 그리고 나서(226), 클래스 A(220)의 인스턴스(α1)가 삭제된다. 이 경우, 클래스 A(220)의 인스턴스(α1)만 삭제되는 것이 아니라, 이와 연관된 클래스 W(221)의 인스턴스(β1)의 애트리뷰트(W_att2(223)) 값 또한 삭제되기 때문에, 인스턴스(α1)가 삭제된 후 클래스 W(221)에 의해 인스턴스(α1)가 참조되는 문제가발생되지 않게 된다. 따라서, 데이터베이스의 일관성이 유지되는 효과가 발생하게 된다.
도 5는 데이터 접근 응용 프로그램(62)에서 정의한 클래스들(230, 231) 간의 수평적 상호 관계(1:N)의 일례를 보여주는 도면이고, 도 6a 및 도 6b는 도 5에 도시된 수평적 상호 관계를 가지는 클래스들(230, 231) 간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 5 및 도 6a를 참조하면, 클래스 A(230)와 클래스 W(231)는 1:N의 수평적 상관 관계에 있다. 클래스 A(230)는 A_att2(232)라는 애트리뷰트를 통해 클래스 W(231)의 여러 인스턴스(즉, N개)로 접근할 수 있으며, 클래스 W(231)는 W_att2(233)라는 애트리뷰트를 통해 자신의 인스턴스를 가리키는 클래스 A(230)의 인스턴스로(α1)(즉, 1개)로 접근할 수 있다. 즉, 클래스 A(230)의 A_att2(232)라는 애트리뷰트는 클래스 W(231)의 여러 인스턴스들의 OID 집합(234)을 가지고 있어 이들을 가리키는 역할을 하게 되고, 클래스 W(231)에서는 W_att2(233)라는 애트리뷰트가 자신의 인스턴스를 가리키는 클래스 A(230)의 인스턴스의 OID(235)를 가지고 있어 이를 가리키는 역할을 하게 된다.
이와 같은 특성을 갖는 클래스 A(230)의 인스턴스(α1)를 삭제하는 경우, 본 발명의 객체관계형 DBMS에서는 다음과 같은 SQL을 이용한다.
exec sql delete A where …;
상기 질의에 의해 'where'절에 기술된 조건에 해당되는 인스턴스(α1)가 삭제되는 경우, 도 6b에 도시된 바와 같이, 제일 먼저 클래스 W(231)의 모든 인스턴스(β1, β2, β3)의 애트리뷰트(W_att2(233)) 값에서 클래스 A(230)의 인스턴스(α1) 값들(236)이 삭제되고, 그리고 나서 클래스 A(230)의 인스턴스(α1)가 삭제된다.
이와 같이, 본 발명에 의한 DBMS는 클래스 A(230)의 인스턴스(α1) 삭제시 해당 인스턴스(α1)만 삭제하지 않고, 이와 연관된 클래스 W(231)의 인스턴스들(β1, β2, β3)의 애트리뷰트(W_att2(233)) 값 또한 모두 삭제하기 때문에, 인스턴스(α1)가 삭제된 후 클래스 W(231)에 의해 인스턴스(α1)가 참조되는 문제가 발생되지 않게 된다. 따라서, 데이터베이스의 일관성이 유지되는 효과가 발생하게 된다.
도 7은 데이터 접근 응용 프로그램(62)에서 정의한 클래스들(240, 241)간의 수평적 상호 관계(M:N)의 일례를 보여주는 도면이고, 도 8a 및 도 8b는 도 7에 도시된 수평적 상호 관계를 가지는 클래스들(240, 241)간의 클래스 삭제 전·후 관계를 보여주는 도면이다.
도 7 및 도 8a를 참조하면, 클래스 A(240)와 클래스 W(241)는 M:N의 수평적 상관 관계에 있다. 클래스 A(240)는 A_att2(242)라는 애트리뷰트를 통해 클래스 W(241)의 여러 인스턴스(즉, N개)로 접근할 수 있으며, 클래스 W(241)는 W_att2(243)라는 애트리뷰트를 통해 자신의 인스턴스를 가리키는 클래스 A(240)의 여러 인스턴스(즉, M개)로 접근 가능하다. 즉, 클래스 A(240)의 A_att2(242)라는 애트리뷰트는 클래스 W(241)의 여러 인스턴스들(β1, β2, β3)의 OID 집합(244)을 가지고 있어, 이들(β1, β2, β3)을 가리키는 역할을 수행하고, 클래스 W(241)의W_att2(243)라는 애트리뷰트는 자신의 인스턴스(β1, β2, β3)를 가리키는 클래스 A(240)의 여러 인스턴스들(α1, α2)의 OID 집합(245)을 가지고 있어, 이를(α1, α2) 가리키는 역할을 수행한다.
이와 같은 특성을 갖는 클래스 A(240)의 인스턴스(α1)를 삭제하는 경우, 본 발명에 의한 객체관계형 DBMS에서는 아래와 같은 SQL을 이용한다.
exec sql delete A where …;
상기 질의에 의해 'where' 절에 기술된 조건을 만족하는 인스턴스(α1)가 삭제되는 경우, 도 8b에 도시된 바와 같이, 제일 먼저 클래스 W(241) 내의 모든 인스턴스(β1, β2, β3)의 값에서 클래스 A(240)를 가리키는 인스턴스들(246)이 삭제되고, 그리고 나서 클래스 A(240)의 인스턴스(α1)가 삭제된다.
이와 같이, 본 발명에 의한 DBMS는 클래스 A(240)의 인스턴스(α1) 삭제시 해당 인스턴스(α1)만 삭제하지 않고, 이와 연관된 클래스 W(241)의 인스턴스들(β1, β2, β3)의 애트리뷰트(W_att2(233)) 값 또한 모두 삭제하기 때문에, 인스턴스(α1)가 삭제된 후 클래스 W(241)에 의해 인스턴스(α1)가 참조되는 문제가 발생되지 않게 된다. 따라서, 데이터베이스의 일관성이 유지되는 효과가 발생하게 된다.
도 9는 본 발명의 바람직한 실시예에 따른 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법을 보여주는 흐름도이다. 도 9를 참조하면, 본 발명에 의한 DBMS 서버는 먼저 데이터베이스 접근 응용 프로그램(62)으로부터 질의를 받아들여(400 단계) 이를 분석하고(401 단계), 분석 결과를 바탕으로 입력된 질의가 삭제(delete) 질의인지 여부를 판별한다(402 단계).
판결 결과, 입력된 질의가 삭제 질의이면, 클래스에 상호배제 락(mutual exclusive lock)을 요청하는 getLock()함수를 호출한다(405 단계). 이어서, 요청한 클래스에 대한 상호배제 락이 획득되었는지 여부를 판별한다(406 단계). 상호배제 락이 획득된 경우에는 자신의 클래스와, 자신의 클래스로부터 상속받은 하위 클래스(child class)에 대해 질의에 기술된 조건에 맞는 인스턴스를 검색하고, 질의 조건에 맞는 인스턴스가 존재하는 동안 다음의 작업을 반복해서 수행한다.
먼저, 조건을 만족하는 인스턴스 OID를 입력 매개변수로 하여 delete()함수를 호출한다(410 단계). 이어서, delete()함수의 호출에 의해서 질의 조건을 만족하는 인스턴스가 성공적으로 삭제되었는지 여부를 판별한다(411 단계). 판별 결과, 해당 인스턴스의 삭제가 성공적으로 수행되었으면, 삭제한 인스턴스 개수를 1 증가시킨다(414 단계). 삭제가 성공적으로 수행되지 않았으면 삭제 질의를 철회하고 409 단계의 작업을 빠져 나온다. 409 단계에서 질의 조건을 만족하는 모든 인스턴스에 대해 성공적으로 삭제를 마친 경우에는, 이에 대한 결과를 저장하고(418 단계), 저장된 결과를 응용 프로그램(62)으로 송부한다(419 단계).
406 단계에서의 판별 결과, 405 단계에서 호출된 getLock() 함수에 의해 클래스의 상호배제 락이 획득되지 않은 경우, 트랜잭션을 철회하고(416 단계), 이의 결과를 저장하여(418 단계) 응용프로그램으로 송부한다(419 단계).
그리고, 402 단계에서의 판별 결과, 만약 입력된 질의가 삭제질의가 아니면 입력된 질의를 수행하고(417 단계), 이의 결과를 저장하여(418 단계) 응용프로그램으로 송부한다(419 단계).
도 10은 도 9의 405 단계에서 호출되는 getLock() 함수의 상세 흐름도이다. getLock() 함수는 클래스에 상호배제 락을 요청하는 함수로서, 이 함수에 사용되는 입력 매개변수는 상호배제 락을 획득하고자 하는 클래스이다. 도 10에서는 getLock() 함수에 클래스 A가 입력된 경우에 대해 설명한다.
도 10을 참조하면, getLock() 함수는 먼저 클래스 A에 대한 락을 요청하고(4051 단계), 클래스 A에 락이 획득되었는지 여부를 판별한다(4052 단계). 판별 결과 클래스 A에 락이 획득된 경우, 그 클래스의 하위 클래스를 검색한다(4053 단계). 이 경우, 만약 하위 클래스가 존재하면(4054 단계) 하위 클래스에도 상호배제 락을 요청하고(4055 단계), 해당 하위 클래스에 락이 획득되었으면(4056 단계) 다음 하위 클래스를 검색하여(4057 단계) 상기 4054 단계 이후의 과정을 반복한다.
이 때, 만약 상기 4052 단계에서 락을 획득하지 못했거나, 또는 상기 4056 단계에서 하나라도 하위 클래스가 상호배제 락을 획득하지 못했으면, 결과는 실패로 저장된다(4058 단계, 4060 단계). 그리고, 입력 매개변수인 클래스와 그것의 하위 클래스가 모두 상호배제 락을 획득한 경우에 결과가 성공으로 저장되어(4059 단계) 호출한 함수로 반환(return)된다.
도 11은 도 9의 410 단계에서 호출되는 delete() 함수의 상세 흐름도이다. delete() 함수는 응용 프로그램으로부터 입력된 삭제 질의가 수행되어 실질적으로 데이터베이스 내용을 삭제하는 함수이다. 도 11에서는 삭제하고자 하는 클래스 인스턴스의 OID가 α이고, 상기 인스턴스 OID(α)가 가리키는 상대 클래스의 인스턴스 OID가 β 또는 β1, β2, …, βN인 경우를 예를 들어 설명한다.
도 11을 참조하면, delete() 함수가 호출되면, 상기 함수는 먼저 삭제할 애트리뷰트 타입을 분석하여 아래의 과정을 반복한다(4100 단계). 애트리뷰트의 관계성을 나타내는 OID 집합은 크게 1:1 타입과 1:N 타입으로 구분되며, 이들 타입에 속하는 모든 애트리뷰트들에 대해 반복적으로 아래의 과정을 반복하게 된다.
4100 단계에서는, 먼저 애트리뷰트 타입을 검사하고(4101 단계), 검사 결과 OID 집합이 1:1 타입인 경우에는 삭제하고자 하는 클래스 인스턴스의 OID(α)를 가리키는 역포인터를 NULL 값으로 할당하고(4110 단계), 검사 결과 OID 집합이 1:N 타입인 경우에는 삭제하고자 하는 클래스 인스턴스의 OID(α)를 가리키는 역포인터 집합에서 α만 삭제한다(4120 단계).
도 12 및 도 13을 참조하여 상세히 설명되겠지만, 4110 및 4120 단계에서 역포인트가 삭제된 후에는 역포인트 삭제가 성공적으로 수행되었는지에 대한 결과가 저장된다. 4150 단계에서는 이 같은 결과 값을 받아들여 상기 결과가 실패이면 상기 결과를 반환하고, 상기 결과가 성공이면 인스턴스 α를 삭제하고(4160 단계) 그 결과를 반환한다.
도 12는 도 11에 도시된 delete() 함수의 1:1 타입의 OID 집합에 대한 삭제 동작(도 11의 4110 단계)을 설명하는 흐름도이다. 도 12에서는 삭제 하고자 클래스의 인스턴스 OID가 α이고, 상기 인스턴스 OID(α)가 현재 가리키는 상대 클래스의 인스턴스 OID가 β이며, 애트리뷰트 타입이 1: 1 타입인 경우를 예를 들어 설명한다.
애트리뷰트 타입이 1: 1 타입인 경우, 도 12에 도시된 바와 같이 먼저 상호배제 락이 요청된다(4111 단계). 이어서, 요청된 상호배제 락이 획득되었는지를 검사한다(4112 단계). 이 때, 락이 획득되지 못하였으면 결과를 실패로 저장하고(4117 단계), 락이 획득되었으면 β에서 α로의 역 포인터(OID 인스턴스) 타입을 검사한다(4113). 검사 결과, β에서 α로의 역 포인터 타입이 1:1 타입이면 해당 역포인터에 NULL 값의 OID를 할당한 후(4114 단계) 결과를 성공으로 저장한다(4116 단계). 그리고, β에서 α로의 역포인터 타입이 1:N 타입이면 역포인터 집합 중에서 α를 삭제한 후(4115 단계), 결과를 성공으로 저장한다(4116 단계).
도 13a 및 13b는 도 11에 도시된 delete() 함수의 1:N 타입의 OID 집합에 대한 삭제 동작을 설명하는 흐름도이다. 도 13a를 참조하면, 삭제 하고자 하는 클래스의 인스턴스 OID(α)가 현재 가리키고 있는 상대 클래스의 인스턴스 OID들의 집합을 β라 할 때, 먼저 현재 처리되고 있는 애트리뷰트가 삭제하고자 하는 클래스의 애트리뷰트 중 2 번째 애트리뷰트(INVERSE_OID) 인지 여부를 판별한다(4121 단계).
여기서, INVERSE_OID 애트리뷰트는 본 발명에 의한 객체관계형 DBMS에서 지원하는 애트리뷰트 중 하나로서, 사용자가 선언하지는 않았지만 DBMS가 이용하기 위해 모든 인스턴스에 추가한 애트리뷰트이다. INVERSE_OID 애트리뷰트에는 자신의 인스턴스를 가리키는 모든 클래스들 인스턴스들의 포인터(OID)들이 저장되어 있는데, 다른 애트리뷰트와 다른 점은 한 클래스가 아닌 여러 클래스들로부터의 포인터를 가질 수 있다는 점이다. 따라서 INVERSE_OID 애트리뷰트는, 한 클래스로부터의 포인터만 유지하는 일반 OID 집합 애트리뷰트와는 다른 방법으로 처리되어야 하기 때문에 4121 단계에서처럼 현재 애트리뷰트가 INVERSE_OID 애트리뷰트인지 여부가 판별되는 것이다.
판별 결과, 만약 현재 애트리뷰트가 INVERSE_OID가 아니면(즉, 일반 OID 집합 애트리뷰트이면), β 집합에 저장된 모든 OID 개수만큼 4122 단계를 반복하여 수행한다. 4122 단계에서는 먼저 β에 대한 상호배제 락을 요청하여(4123 단계) 락이 획득되었는지 여부를 검사한다(4124 단계). 이 경우, 락이 획득되지 못하였으면 결과를 실패로 저장하고(4128 단계), 락이 획득되었으면 β에서 α로의 역포인터(OID 인스턴스) 타입을 검사한다(4125 단계). β에서 α로의 역포인터 타입의 검사 결과, 역포인터 타입이 1:1 타입이면 해당 역포인터에 NULL 값을 할당하고(4126 단계), 1:N 타입이면 역포인터 집합 중에서 α만 삭제한다(4127 단계). 그리고, 이와 같은 과정이 β 집합에 저장된 모든 OID 개수만큼 반복되어 수행되고 나면 결과를 성공으로 저장한다(4129 단계).
그리고, 4121 단계에서의 검사 결과, 현재 애트리뷰트가 INVERSE_OID이면 β 집합에 속한 모든 OID에 대하여 도 13b에 도시된 과정을 수행한다.
도 13b를 참조하면, 현재 애트리뷰트가 INVERSE_OID이면 집합 β에 저장된 OID 개수만큼 4130 단계를 반복한다.
4130 단계에서는 먼저 삭제하고자 하는 α의 클래스를 myClass라 하고, β가속한 클래스를 myInvertedClass라 지정한다(4131 단계). 왜냐하면, 집합 β는 여러 클래스로부터의 역포인터들이 포함되기 때문이다. 이 때, myInvertedClass의 어떤 애트리뷰트가 myClass에 대한 역포인터를 갖는지 알 수가 없으므로, myInvertedClass의 모든 애트리뷰트에 대해 다음을 수행하되(4132 단계), myClass로의 역포인터를 가지는 애트리뷰트를 찾아 아래 4135 단계 내지 4140 단계를 한번 수행하게 되면 4132 단계에서 수행하는 루프(loop)를 빠져나오도록 한다.
4132 단계에서는 먼저 현재 myInvertedClass의 애트리뷰트가 OID 집합인지를 검사하고(4133 단계), 검사 결과 OID 집합이 아니면 4132 단계를 빠져나와 다음 애트리뷰트에 대한 수행을 계속하고, OID 집합이면 그 애트리뷰트가 가리키는 클래스가 myClass와 같은지 여부를 검사한다(4134 단계). 검사 결과, 만약 같지 않으면 4132 단계를 빠져나와 다음 애트리뷰트에 대해 수행을 계속한다.
검사 결과, 만약 애트리뷰트가 가리키는 클래스가 myClass와 같으면, myClass의 INVERSE_OID에서 추출한 β의 현재 애트리뷰트가 myClass를 가리키고 있음을 의미하므로(즉, myClass로의 포인터를 가지고 있음을 의미하므로), β에 대한 상호배제 락을 요청한다(4135 단계). 이어서, 락이 획득되었는지 여부를 판별하고(4136 단계), 락이 획득되지 못하였으면 결과를 실패로 저장하고(4137 단계), 락이 획득되었으면 β에서 α로의 역포인터(OID 인스턴스) 타입을 검사한다(4138 단계).
검사 결과, β에서 α로의 역포인터 타입이 1:1 타입이면 해당 역포인터에 NULL 값을 할당하고(4139 단계), 1:N 타입이면 역포인터 집합 중에서 α만 삭제한후(4140 단계), 상기 4132 단계에서 수행하는 루프를 빠져나온다.
이어서, 다음 수행할 β의 클래스가 이전 β의 클래스와 일치하는가를 검사한다(4141 단계). 검사 결과, β의 클래스와 이전 β의 클래스가 일치하면 같은 클래스 내에 속한 인스턴스들이므로 4131 단계 내지 4134 단계를 수행할 필요가 없다. 따라서, 직접 4135 단계로 진행하여 락을 획득한 후 포인터를 삭제하는 동작을 수행한다(4135 내지 4140 단계).
만약 4141 단계에서의 판별 결과, 다음 β의 클래스가 이전 β의 클래스와 다르면(즉, 해당 인스턴스들이 서로 다른 클래스의 인스턴스들이라면) 해당 인스턴스에 대해 4130 단계의 루프를 계속 수행한다. 그리고, 더 이상의 β가 존재하지 않아 4130 단계의 루프를 빠져나온 경우는, 이미 β에서 α로의 역포인트들이 모두 삭제된 이후이므로, α에 저장된 β의 집합을 모두 삭제한다(4142 단계). 이와 같은 일련의 과정이 모두 수행되면, 도 13a에 도시된 바와 같이 결과를 성공으로 저장하고(4129 단계) 그 결과를 반환한다.
그 결과, 응용 프로그램(62)으로부터 삭제 질의가 입력되면, 삭제 대상 클래스뿐만 아니라, 상기 클래스로부터 상속받은 하위의 클래스 인스턴스들과 상기 클래스와 상호 관계에 있는 타 클래스의 인스턴스들이 모두 삭제된다.
이와 같은 클래스 인스턴스 삭제를 수행하는 본 발명은, 단지 객체들의 참조를 통한 효율적인 관리 방식 등에 대해서만 개발되어 있는 기존의 객체 관계형 DBMS와 극명하게 구분되는 특징을 가진다.
이상에서, 본 발명의 실시예로서 주기억장치 상주 객체관계형 DBMS에서 객체식별자(OID) 집합이 포함된 클래스 인스턴스 삭제 방법에 대해 구체적으로 예시되었으나, 그밖에도 포인터 형태로 상대방 클래스를 참조하는 다른 DBMS들에도 본 발명을 적용할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에 설명한 바와 같이, 본 발명에 의한 클래스 인스턴스 삭제 방법에 의하면, 삭제 대상 클래스뿐만 아니라, 상기 클래스로부터 상속받은 하위의 클래스 인스턴스들과, 상호 관계에 있는 타 클래스의 인스턴스들이 모두 삭제된다. 따라서, 데이터베이스의 일관성이 보장될 수 있다.

Claims (13)

  1. (a) 데이터 접근 응용 프로그램으로부터 요청된 질의를 분석하는 단계;
    (b) 상기 (a) 단계에서의 분석 결과 인스턴스 삭제 질의가 요청된 경우, 상기 질의에 의해 삭제될 클래스와 상기 클래스로부터 상속받은 하위 클래스에 대한 상호배제 락을 획득하는 단계; 및
    (c) 상기 클래스 및 상기 하위 클래스로부터 상기 인스턴스 및 상기 인스턴스와 연관된 적어도 하나 이상의 인스턴스를 삭제하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  2. 제 1 항에 있어서, 상기 (b) 단계는,
    (b-1) 상기 삭제될 클래스에 상호배제 락을 요청하는 단계; 및
    (b-2) 상기 상호배제 락이 성공적으로 획득된 경우 모든 하위 클래스를 검색해 가며 상기 상호배제 락을 획득하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  3. 제 1 항에 있어서, 상기 (c) 단계는,
    (c-1) 삭제될 상기 클래스의 애트리뷰트 타입을 판별하는 단계;
    (c-2) 상기 (c-1) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:1인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터를 삭제하는 단계;
    (c-3) 상기 (c-1) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:N인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터 집합에서 상기 인스턴트 값을 삭제하는 단계; 및
    (c-4) 상기 (c-2) 및 (c-3) 단계가 성공적으로 수행된 경우, 상기 삭제될 클래스의 상기 인스턴스를 삭제하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  4. 제 3 항에 있어서,
    상기 역포인터는 상기 삭제될 클래스의 상기 하위 클래스에 포함되는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  5. (a) 데이터 접근 응용 프로그램으로부터 인스턴스 삭제 질의가 요청된 경우, 삭제될 클래스에 포함된 애트리뷰트들 중 관계성을 나타내는 애트리뷰트의 타입을 판별하는 단계;
    (b) 상기 (a) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:1인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터를 NULL 값으로 할당하는 단계;
    (c) 상기 (a) 단계에서의 판별 결과, 상기 애트리뷰트 타입이 1:N인 경우, 삭제하고자 하는 상기 인스턴트를 가리키는 역포인터 집합에서 상기 인스턴트 값을 삭제하는 단계; 및
    (d) 상기 (b) 및 (c) 단계가 성공적으로 수행된 경우, 상기 삭제될 클래스의 상기 인스턴스를 삭제하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  6. 제 5 항에 있어서,
    삭제하고자 하는 클래스 인스턴스의 객체 식별자 포인터가 α이고, 상기 포인터가 가리키는 하위 클래스 인스턴스의 객체 식별자 포인터가 β일 때, 상기 (b) 단계는,
    (b-1) 상기 삭제될 클래스와 상기 클래스의 하위 클래스에 대한 상호배제 락을 요청하는 단계;
    (b-2) 상기 클래스들에 상호배제 락이 획득된 경우 상기 포인터 β에서 α로의 역포인터 타입을 판별하는 단계;
    (b-3) 상기 (b-2) 단계에서의 판별 결과 상기 역포인터 타입이 1:1인 경우 해당 역포인터에 NULL 값을 할당하는 단계; 및
    (b-4) 상기 (b-2) 단계에서의 판별 결과 상기 역포인터 타입이 1:N인 경우 해당 역포인터 집합에서 상기 포인터 α를 삭제하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  7. 제 5 항 또는 제 6 항에 있어서,
    삭제하고자 하는 클래스 인스턴스의 객체 식별자 포인터가 α이고, 상기 포인터가 가리키는 하위 클래스 인스턴스의 객체 식별자 포인터가 β일 때, 상기 (c) 단계는,
    (c-1) 상기 포인터 β가 여러 클래스로부터의 역포인터들을 포함하는지 여부를 판별하는 단계;
    (c-2) 상기 (c-1) 단계에서의 판별 결과 상기 포인터 β가 단일 클래스로부터의 역포인터들을 포함하는 경우, 상기 포인터 α에 대한 상호 배제 락을 요청하고 상기 (b-2) 내지 (b-4) 단계를 상기 포인터 β의 개수만큼 반복하여 실행하는 단계; 및
    (c-3) 상기 (c-1) 단계에서의 판별 결과 상기 포인터 β가 여러 클래스로부터의 역포인터들을 포함하는 경우, 삭제하고자 하는 상기 클래스 인스턴스를 가리키는 역포인터들을 선별하고, 해당 역포인터 집합에서 상기 포인터 α를 삭제하는 단계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  8. 제 5 항에 있어서, 상기 (a) 단계는
    (a-1) 데이터 접근 응용 프로그램으로부터 인스턴스 삭제 질의가 요청된 경우, 상기 질의에 대응되는 클래스에 락을 요청하는 단계;
    (a-2) 상기 클래스에 락이 획득된 경우 상기 클래스의 하위 클래스를 검색하는 단계; 및
    (a-3) 상기 (a-2) 단계에서 검색된 모든 하위 클래스에 대한 락을 획득하는 단계를 더 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  9. 제 1 항 또는 제 8 항에 있어서,
    상기 하위 클래스는, 상기 하위 클래스가 상기 클래스로부터 수직적으로 상속된 수직적 상호 관계, 및 상기 하위 클래스와 상기 클래스에 저장된 객체 식별자가 1:1, 1:N, 및 M:N로 대응되는 수평적 상호관계 중 적어도 어느 하나의 상호 관계를 가지는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템의 클래스 인스턴스 삭제 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  11. 클래스들간의 상호 관계가 객체 식별자 포인터들의 집합으로 저장된 데이터베이스; 및
    상기 데이터베이스의 클래스간의 인스턴스 삭제시, 해당 인스턴스는 물론 상기 인스턴스와의 상호관계를 나타내는 타 클래스의 객체 식별자 포인터를 모두 삭제하는 객체관계형 데이터베이스 관리 시스템 서버를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템.
  12. 제 11 항에 있어서,
    상기 클래스들간의 상호 관계는, 임의의 클래스로부터 적어도 하나 이상의 클래스가 상속되는 수직적 상호 관계, 및 상기 객체 식별자가 1:1, 1:N, 및 M:N로대응되는 수평적 상호관계를 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템.
  13. 제 11 항에 있어서, 상기 객체관계형 데이터베이스 관리 시스템 서버는
    외부로부터 입력된 데이터베이스 접근 요청을 분석하는 질의 분석 모듈;
    분석된 질의에 따라 상기 데이터베이스의 검색, 변경, 또는 삭제 등의 동작을 수행하는 질의 수행 모듈; 및
    상기 질의 수행을 위해 시스템 카탈로그를 참조하는 시스템 카탈로그 접근 모듈을 포함하는 것을 특징으로 하는 객체관계형 데이터베이스 관리 시스템.
KR10-2001-0063209A 2001-10-13 2001-10-13 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법 KR100520301B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0063209A KR100520301B1 (ko) 2001-10-13 2001-10-13 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법
US10/269,567 US7076490B2 (en) 2001-10-13 2002-10-11 Object-relational database management system and method for deleting class instance for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0063209A KR100520301B1 (ko) 2001-10-13 2001-10-13 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법

Publications (2)

Publication Number Publication Date
KR20030031283A true KR20030031283A (ko) 2003-04-21
KR100520301B1 KR100520301B1 (ko) 2005-10-13

Family

ID=19715099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0063209A KR100520301B1 (ko) 2001-10-13 2001-10-13 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법

Country Status (2)

Country Link
US (1) US7076490B2 (ko)
KR (1) KR100520301B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622130B1 (ko) * 2004-12-21 2006-09-19 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195636A1 (en) * 2005-02-28 2006-08-31 Xidong Wu Large volume data management
US7577681B1 (en) * 2005-06-29 2009-08-18 Emc Corporation Methods and apparatus for managing contents of a database
CN101405790B (zh) * 2005-12-20 2012-06-06 创新科技有限公司 多个输入设备对系统资源的同时共享
US8706776B1 (en) 2006-06-30 2014-04-22 Sap Ag Extending status models in a computer system
US8522261B2 (en) * 2006-06-30 2013-08-27 Sap Ag Using status models with state guards in a computer system
US8365200B1 (en) * 2006-06-30 2013-01-29 Sap Ag Using cancellation status models in a computer system
US8504980B1 (en) 2008-04-14 2013-08-06 Sap Ag Constraining data changes during transaction processing by a computer system
US8639675B2 (en) * 2008-08-28 2014-01-28 Make Technologies, Inc. Linking of parent-child data records in a legacy software modernization system
US9275033B2 (en) * 2010-03-25 2016-03-01 Salesforce.Com, Inc. System, method and computer program product for creating an object within a system, utilizing a template
US20110238705A1 (en) * 2010-03-25 2011-09-29 Salesforce.Com, Inc. System, method and computer program product for extending a master-detail relationship
CN102073602B (zh) * 2010-12-14 2012-11-21 鸿富锦精密工业(深圳)有限公司 计算机系统、连接控制装置及连接与断开方法
US8996472B2 (en) 2012-04-16 2015-03-31 Sap Se Verification of status schemas based on business goal definitions
US8996473B2 (en) 2012-08-06 2015-03-31 Sap Se Checking compatibility of extended and core SAM schemas based on complex goals
US9213867B2 (en) * 2012-12-07 2015-12-15 Microsoft Technology Licensing, Llc Secure cloud database platform with encrypted database queries
US10417594B2 (en) 2013-05-02 2019-09-17 Sap Se Validation of functional correctness of SAM schemas including action chains
US10073981B2 (en) 2015-10-09 2018-09-11 Microsoft Technology Licensing, Llc Controlling secure processing of confidential data in untrusted devices
CN116737670B (zh) * 2023-08-11 2023-11-17 英诺达(成都)电子科技有限公司 Upf文件的删除方法、装置、设备及存储介质

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4480304A (en) * 1980-10-06 1984-10-30 International Business Machines Corporation Method and means for the retention of locks across system, subsystem, and communication failures in a multiprocessing, multiprogramming, shared data environment
US4589092A (en) * 1983-12-12 1986-05-13 International Business Machines Corporation Data buffer having separate lock bit storage array
US5043876A (en) * 1988-05-27 1991-08-27 International Business Machines Corporation N-level file shadowing and recovery in a shared file system
DE59108978D1 (de) * 1990-08-28 1998-06-10 Landis & Gyr Tech Innovat Verfahren zum Aendern einer in einem Computer eines Gerätes abgespeicherten Maschinensprachenfassung eines ersten Programms in eine Maschinensprachenfassung eines durch mindestens eine Aenderung vom ersten Programm abgeleiteten zweiten Programms
US5291583A (en) * 1990-12-14 1994-03-01 Racal-Datacom, Inc. Automatic storage of persistent ASN.1 objects in a relational schema
US5295256A (en) * 1990-12-14 1994-03-15 Racal-Datacom, Inc. Automatic storage of persistent objects in a relational schema
WO1995003586A1 (en) * 1993-07-21 1995-02-02 Persistence Software, Inc. Method and apparatus for generation of code for mapping relational data to objects
WO1995004960A2 (en) * 1993-08-02 1995-02-16 Persistence Software, Inc. Method and apparatus for managing relational data in an object cache
US5551029A (en) * 1993-08-18 1996-08-27 Lucent Technologies Inc. Method for associating integrity maintenance constraints with data object classes in an object-oriented database
US5717924A (en) * 1995-07-07 1998-02-10 Wall Data Incorporated Method and apparatus for modifying existing relational database schemas to reflect changes made in a corresponding object model
KR19980037407A (ko) * 1996-11-21 1998-08-05 양승택 디스크 공유 병렬 데이타베이스 시스템에서의 이중면 비휘발성 메모리의 구조 및 이를 이용한 회복 방법
US6141658A (en) * 1997-09-10 2000-10-31 Clear With Computers, Inc. Computer system and method for managing sales information
US6134558A (en) * 1997-10-31 2000-10-17 Oracle Corporation References that indicate where global database objects reside
US6108664A (en) * 1997-10-31 2000-08-22 Oracle Corporation Object views for relational data
KR100287065B1 (ko) * 1997-11-11 2001-04-16 정선종 객체지향데이터베이스시스템의영속객체관리방법
US6268850B1 (en) * 1997-12-22 2001-07-31 Sun Microsystems, Inc. User interface for the specification of lock groups
US6453356B1 (en) * 1998-04-15 2002-09-17 Adc Telecommunications, Inc. Data exchange system and method
KR100315601B1 (ko) * 1998-12-01 2002-01-12 오길록 주기억장치데이터베이스관리시스템에서객체지향질의어실행계획의저장과재실행방법
KR100305912B1 (ko) * 1998-12-24 2001-11-30 서평원 관계형디비엠에스를위한객체지향프로그램인터페이스
KR20000051051A (ko) * 1999-01-18 2000-08-16 김덕중 능동형 데이터베이스 관리 시스템 및 방법
SE515459C2 (sv) * 1999-02-10 2001-08-06 Ericsson Telefon Ab L M Metod för att synkronisera en värddatabas och en fjärrdatabas
KR100333682B1 (ko) * 1999-12-24 2002-04-22 오길록 객체-관계 데이터베이스 관리 시스템에서의 역 포인터를이용한 그루핑 연산 방법 및 그 방법에서 생성된 그룹테이블을 이용한 집계 함수 획득 방법
US6490581B1 (en) * 2000-05-24 2002-12-03 At&T Corp. System and method for providing an object-oriented interface to a relational database
US6938260B1 (en) * 2000-07-14 2005-08-30 International Business Machines Corporation Complex data navigation, manipulation and presentation support for visualage Java
KR100426620B1 (ko) * 2000-12-26 2004-04-13 한국전자통신연구원 주기억장치 상주 객체관계형 dbms 에서의 클래스 인스턴스 변경 방법
AU2003252065A1 (en) * 2002-07-22 2004-02-09 Thought, Inc. Dynamic object- driven database manipulation and mapping system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100622130B1 (ko) * 2004-12-21 2006-09-19 한국전자통신연구원 객체 기반 스토리지 시스템에서 고속의 데이터 입출력을위한 객체 저장소 관리 시스템 및 방법

Also Published As

Publication number Publication date
US7076490B2 (en) 2006-07-11
KR100520301B1 (ko) 2005-10-13
US20030074371A1 (en) 2003-04-17

Similar Documents

Publication Publication Date Title
KR100520301B1 (ko) 객체관계형 데이터베이스 관리 시스템 및 그것의 클래스인스턴스 삭제 방법
US6449620B1 (en) Method and apparatus for generating information pages using semi-structured data stored in a structured manner
US6581062B1 (en) Method and apparatus for storing semi-structured data in a structured manner
KR101022929B1 (ko) 데이터에 대한 함수 적용의 결과에 대한 구조화된 인덱스
US7631012B2 (en) System and method of operating a database
US6625615B2 (en) Data processing system and method for multi-level directory searches
US5615362A (en) Method and apparatus for managing relational data in an object cache
US9081836B2 (en) Method and system for implementing and accessing a virtual table on data from a central server
US7707159B2 (en) Method and apparatus for storing semi-structured data in a structured manner
US7912844B2 (en) System for navigating beans using filters and container managed relationships
Kornacker High-performance extensible indexing
US7475088B2 (en) Systems and methods of providing data from a data source to a data sink
CN112835638A (zh) 一种基于嵌入式应用程序的配置信息管理方法及装置
KR100426620B1 (ko) 주기억장치 상주 객체관계형 dbms 에서의 클래스 인스턴스 변경 방법
CN114730310A (zh) 用于快速数据检索的通用数据索引
US7779057B2 (en) Method and apparatus for retrieving and sorting entries from a directory
WO2001065419A2 (en) Method and apparatus for storing semi-structured data in a structured manner
Karunaratna et al. Establishing a knowledge base to assist integration of heterogeneous databases
US20040044692A1 (en) Collection storage system
US20020059255A1 (en) Apparatus and method for operating an information deposit and retrieval system with resource property system
CN116126620A (zh) 数据库日志处理方法、数据库变更查询方法及相关装置
CN112905622A (zh) 数据查询方法及装置
KR100311233B1 (ko) 애트리뷰트의순서조정을통한릴레이션크기최적화방법
CN115438146A (zh) 面向多版本非结构化数据语义信息的查询方法及装置
CN117851259A (zh) 基于资源层次关系分组的Restful API黑盒模糊测试方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20040607

Effective date: 20050831

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120924

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee