KR100426620B1 - Method of an class instance updating with OID in the main memory resident, object-relational DBMS - Google Patents
Method of an class instance updating with OID in the main memory resident, object-relational DBMS Download PDFInfo
- Publication number
- KR100426620B1 KR100426620B1 KR10-2000-0082334A KR20000082334A KR100426620B1 KR 100426620 B1 KR100426620 B1 KR 100426620B1 KR 20000082334 A KR20000082334 A KR 20000082334A KR 100426620 B1 KR100426620 B1 KR 100426620B1
- Authority
- KR
- South Korea
- Prior art keywords
- class
- instance
- query
- changing
- oid
- Prior art date
Links
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
Abstract
본 발명은 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, 클래스간의 관계가 객체식별자(OID:Object Identifier) 집합으로 저장되는 클래스들간의 인스턴스를 변경하는 경우, 데이터베이스의 일관성을 보장하기 위한 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하기 위하여, 클라이언트로부터 요청된 질의를 분석하여 인스턴스 변경(update) 질의인지를 확인하는 제 1 단계; 상기 변경 질의 여부에 따라 분석한 변경 질의에 대해 자신의 클래스와 자신의 클래스로부터 상속받은 하위 클래스에 상호배제 로크를 획득하는 제 2 단계; 및 상기 상호배제 로크 획득한 결과에 따라 조건에 맞는 인스턴스를 찾아가며 인스턴스를 변경하고, 변경된 결과를 저장하여 상기 클라이언트로 전송하는 제 3 단계를 포함하며, 주기억장치 상주 객체관계형 데이터베이스 관리 시스템(DBMS) 서버 등에 이용됨.The present invention relates to a method of changing a class instance including a set of object identifiers and a computer-readable recording medium recording a program for realizing the method. The relationship between classes is stored as a set of object identifiers (OIDs). In the case of changing instances between classes, the client may provide a method of changing a class instance including a set of object identifiers to ensure database consistency, and a computer-readable recording medium recording a program for implementing the method. A first step of analyzing the requested query and confirming whether the query is an instance update query; A second step of obtaining mutual exclusion locks on a class and a subclass inherited from the class of the change query analyzed according to the change query; And a third step of changing an instance according to a result obtained by the mutual exclusion lock, changing the instance, and storing the changed result to the client, the main memory resident object relational database management system (DBMS). Used for server.
Description
본 발명은 주기억장치 상주 객체관계형 데이터베이스 관리 시스템(DBMS)에서의 질의 처리 분야의 하나로, 객체식별자(OID:Object Identifier) 집합이 포함된 클래스 인스턴스 변경 기술에 관한 것으로, 특히 수직적(상속 관계)/수평적(1:1, 1:N;, N:M) 상호 관계에 있는 클래스간의 인스턴스들을 변경하는 경우, 데이터베이스의 일관성을 보장하기 위한 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a class instance change technique including a set of object identifiers (OIDs), which is one of the fields of query processing in a main memory resident object relational database management system (DBMS). When changing instances between classes that have ever (1: 1, 1: N ;, N: M) interrelationships, and how to change the class instance with a set of object identifiers to ensure database consistency The present invention relates to a computer-readable recording medium having recorded thereon a program.
기존의 객체관계형 데이터베이스는 여러 데이터베이스에 저장된 객체들의 집합을 참조하여 여러 데이터베이스에 속하는 테이블들에 관련되는 각 객체들을 그 테이블들에 연관시키기 위하여, 객체를 고유하게 구분할 수 있는 객체 식별자(Object Identifier)를 이용한다. 따라서, 테이블들은 각 테이블을 고유하게 구분할 수 있도록 테이블 식별자를 가지며, 이를 통해 데이터베이스에서 해당 테이블로 사상시키는 테이블 매핑과 객체로의 참조를 생성할 수 있게 된다. 이 참조는객체 식별자를 포함한 객체와 그 객체가 속한 테이블의 식별자를 포함한다. 즉, 객체는 테이블 사상과 객체에 대한 참조를 기반으로 위치하게 된다.Existing object-relational databases refer to a set of objects stored in multiple databases, and associate an object identifier that can uniquely identify an object in order to associate each object related to tables belonging to multiple databases to those tables. I use it. Therefore, tables have a table identifier so that each table can be uniquely identified, and thus, a table mapping and a reference to an object can be generated to map the table to the corresponding table. This reference contains the object containing the object identifier and the identifier of the table to which the object belongs. That is, objects are located based on table mappings and references to objects.
즉, 종래에는 여러 테이블에 중복 포함되는 객체들을 객체 식별자로 유지함으로써, 데이터 저장소를 절약하고 효과적인 객체 참조가 가능하도록 할 수는 있었지만, 객체식별자를 이용하여 상호 관계에 있는 타 클래스의 인스턴스들과의 관계도 변경하는 내용의 특허는 등록되어 있지 않다.In other words, in the past, objects which are duplicated in several tables as object identifiers can be used to save data storage and enable efficient object references.However, object identifiers can be used to interact with instances of other classes that are interrelated. There are no registered patents for changing the relationship.
또한, 기존에는 객체관계형 데이터베이스와 관계형 데이터베이스에 저장된 테이블들로부터 뷰(view)를 생성하고, 이 뷰를 통하여 데이터를 표현하고 변경하기 위한 방법으로, 한 개 이상의 관계형 테이블 또는 객체형 테이블에 포함된 여러 테이블들을 기반으로 뷰를 정의하고, 이 뷰를 통하여 여러 테이블들의 데이터를 읽어와서 객체들의 집합으로 나타낼 수 있었다. 이때, 뷰에는 객체 식별자를 만들기 위한 값을 포함하는 테이블들로부터 행(column)들을 정의할 수 있고, 뷰에 트리거를 정의할 수 있다. 행 객체(column object)에는 속성을 가지는 행(column)으로 사용자 정의 객체 타입, 콜렉션 객체(nested table이나 변수 배열들) 또는 객체로의 참조등이 포함된다.In addition, in the past, a view is created from an object relational database and tables stored in a relational database, and a view for representing and changing data through the view is included in one or more relational tables or object tables. You could define a view based on tables, and read data from multiple tables and represent them as a set of objects. In this case, columns may be defined in tables including values for creating object identifiers, and triggers may be defined in views. A column object is a column of attributes that contains user-defined object types, collection objects (nested tables or arrays of variables), or references to objects.
그러나, 종래에는 관계형 데이터베이스를 그대로 이용하면서 객체 관계형 특성을 적용한 뷰를 통하여 데이터에 접근하는 방식으로 객체 관계형 데이터베이스에서 가지는 장점을 얻을 수 있지만, 객체 관계형 데이터베이스의 객체 관계형 모델로 저장된 데이터에 대한 접근 방식은 제공하지 않고 있다.However, in the related art, the advantages of the object relational database can be obtained by accessing the data through the view to which the object relational characteristics are applied while using the relational database as it is. It does not provide.
본 발명은, 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로, 클래스간의 관계가 객체식별자(OID:Object Identifier) 집합으로 저장되는 클래스들간의 인스턴스를 변경하는 경우, 데이터베이스의 일관성을 보장하기 위한 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-mentioned problems, and an object for guaranteeing the consistency of a database when a relationship between classes changes an instance between classes stored as a set of object identifiers (OIDs). It is an object of the present invention to provide a method of changing a class instance including an identifier set and a computer-readable recording medium having recorded thereon a program for realizing the method.
즉, 본 발명은, 데이터 접근 응용 프로그램(클라이언트)으로부터 전달된 데이터베이스 변경 명령어가 다른 클래스와 관계가 있는 클래스에 대한 변경일 경우, 변경하고자 하는 클래스 자신과 그로부터 상속된 모든 클래스에 대하여 다른 접근을 차단한 후 조건에 만족하는 인스턴스를 변경함으로써, 자신 및 그로부터 상속된 모든 클래스와 이들과 상호 관계에 있는 다른 클래스의 인스턴스내에 관계를 표현하는 객체식별자(OID) 포인터를 함께 변경할 수 있도록 한, 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법과 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.That is, according to the present invention, when a database change command transmitted from a data access application (client) is a change to a class related to another class, the present invention blocks other access to the class itself and all classes inherited therefrom. A set of object identifiers is then used to modify the instance that satisfies the condition, allowing the object identifiers (OID) pointers that represent the relationship within the instance of itself and all classes inherited from it and any other classes that interrelate with them. It is an object of the present invention to provide a computer-readable recording medium that records the included class instance changing method and a program for realizing the method.
도 1 은 본 발명이 적용되는 주기억장치 상주 객체관계형 DBMS 서버와 데이터 접근 응용 프로그램간의 관계를 나타낸 구성예시도.1 is a configuration example showing a relationship between a main memory device resident DBMS server and a data access application to which the present invention is applied.
도 2a 및 도 2b 는 본 발명에 따른 데이터 접근 응용 프로그램에서 정의한 클래스간의 수직적 상호 관계에 대한 일예시도.2A and 2B are examples of vertical interrelationships between classes defined in a data access application program according to the present invention.
도 3a 내지 도 3c 는 본 발명에 따른 데이터 접근 응용 프로그램에서 정의한 클래스간의 수평적 상호 관계에 대한 일예시도.3A to 3C are exemplary views illustrating horizontal interrelationships between classes defined in a data access application program according to the present invention.
도 4 는 본 발명에 따른 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법에 대한 일실시예 흐름도.4 is a flowchart illustrating a method for changing a class instance including an object identifier set according to the present invention.
도 5 는 도 4의 getLock() 함수 호출 과정에 대한 일실시예 흐름도.FIG. 5 is a flow diagram of an embodiment of the getLock () function call process of FIG.
도 6a 내지 도 6d 는 도 4의 update() 함수 호출 과정에 대한 일실시예 흐름도.6A through 6D are flowcharts of an embodiment of a process of calling the update () function of FIG. 4.
* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings
10 : 데이터 접근 응용 프로그램 20 : 주기억장치 상주 DBMS 서버10: data access application 20: main memory resident DBMS server
30 : 객체관계형 DBMS 서버 31 : 질의 구문 분석 모듈30: object relational DBMS server 31: query parsing module
32 : 질의 수행 모듈 33 : 시스템 카탈로그 접근 모듈32: Query Execution Module 33: System Catalog Access Module
40 : 주기억장치 데이터베이스40: Main memory database
상기 목적을 달성하기 위한 본 발명은, 주기억장치 상주 객체관계형 데이터베이스 관리 시스템(DBMS) 서버에 적용되는 객체식별자(OID) 집합이 포함된 클래스 인스턴스 변경 방법에 있어서, 클라이언트로부터 요청된 질의를 분석하여 인스턴스 변경(update) 질의인지를 확인하는 제 1 단계; 상기 변경 질의 여부에 따라 분석한변경 질의에 대해 자신의 클래스와 자신의 클래스로부터 상속받은 하위 클래스에 상호배제 로크를 획득하는 제 2 단계; 및 상기 상호배제 로크 획득한 결과에 따라 조건에 맞는 인스턴스를 찾아가며 인스턴스를 변경하고, 변경된 결과를 저장하여 상기 클라이언트로 전송하는 제 3 단계를 포함하여 이루어진 것을 특징으로 한다. 그리고, 본 발명은, 상기 자신의 클래스에서 상속된 하위 클래스들에 대해 상기 제 3 단계를 반복 수행하는 제 4 단계를 더 포함하여 이루어진 것을 특징으로 한다.In order to achieve the above object, the present invention provides a method for changing a class instance including an object identifier (OID) set applied to a main memory resident object relational database management system (DBMS) server. A first step of confirming whether the query is an update; A second step of obtaining mutual exclusion locks on a class and a subclass inherited from the class of the changed query analyzed according to the change query; And a third step of changing an instance by finding an instance meeting a condition according to a result of the mutual exclusion lock, and storing and transmitting the changed result to the client. The present invention may further include a fourth step of repeating the third step with respect to subclasses inherited from the own class.
또한, 본 발명은, 프로세서를 구비한 주기억장치 상주 객체관계형 데이터베이스 관리 시스템(DBMS) 서버에, 클라이언트로부터 요청된 질의를 분석하여 인스턴스 변경(update) 질의인지를 확인하는 제 1 기능; 상기 변경 질의 여부에 따라 분석한 변경 질의에 대해 자신의 클래스와 자신의 클래스로부터 상속받은 하위 클래스에 상호배제 로크를 획득하는 제 2 기능; 및 상기 상호배제 로크 획득한 결과에 따라 조건에 맞는 인스턴스를 찾아가며 인스턴스를 변경하고, 변경된 결과를 저장하여 상기 클라이언트로 전송하는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. 그리고, 본 발명은, 또한, 본 발명은, 상기 자신의 클래스에서 상속된 하위 클래스들에 대해 상기 제 3 기능을 반복 수행하는 제 4 기능을 더 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.The present invention also relates to a main memory resident object relational database management system (DBMS) server having a processor, comprising: a first function of analyzing a query requested from a client and checking whether the query is an instance update query; A second function of obtaining a mutual exclusion lock on a class and a subclass inherited from the class in response to the change query analyzed according to the change query; And a computer-readable recording medium having recorded thereon a program for realizing a third function of changing an instance according to a result obtained by the mutual exclusion lock, changing the instance, and storing and transmitting the changed result to the client. to provide. The present invention also provides a computer-readable recording medium having recorded thereon a program for further realizing a fourth function of repeatedly performing the third function on subclasses inherited from the own class. To provide.
본 발명은, 데이터 접근 응용 프로그램(클라이언트)으로부터 주기억장치 상주 객체관계형 DBMS 서버로 클래스 인스턴스 변경 요구시, 요청된 클래스에 상호배제 로크(mutual exclusive lock)를 걸고 조건에 만족하는 인스턴스를 검색하여 조건에 만족하는 모든 인스턴스들에 대해 자신의 인스턴스 내에 다른 클래스와의 연관관계가 있는 객체식별자(OID) 포인터가 존재한다면 관련있는 상대 클래스의 인스턴스로 접근하여 자신의 클래스를 가리키는 역 OID 포인터를 찾아, 이에 다시 상호배제 로크를 건 후 클라이언트의 요청에 부합하도록 OID 포인터(OID 인스턴스)를 수정하는 과정을 상속된 클래스에까지 반복 수행함에 있어, 상호 관계에 있는 클래스들 간의 데이터를 올바르게 변경하여 데이터베이스의 일관성을 보장하도록 하는 것을 특징으로 한다.In the present invention, when a class instance change request is made from a data access application (client) to a main memory resident object relational DBMS server, a mutual exclusive lock is applied to the requested class, and an instance satisfying the condition is searched. If there is an object identifier (OID) pointer in the instance that is associated with another class in all of its instances, access the instance of the relevant relative class and find the inverse OID pointer that points to the class. In order to repeat the process of modifying OID pointers (OID instances) to the inherited classes after locking the mutual exclusion lock, it is necessary to correctly change the data between the interrelated classes to ensure database consistency. Characterized in that.
상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1 은 본 발명이 적용되는 주기억장치 상주 객체관계형 DBMS 서버와 데이터 접근 응용 프로그램간의 관계를 나타낸 구성예시도로서, 데이터 접근 응용 프로그램(10)과, 주기억장치 상주 DBMS 서버(20)로 구성되며, 주기억장치 상주 DBMS 서버(20)는 객체관계형 DBMS 서버(30)와, 주기억장치 데이터베이스(40)를 구비한다.1 is an exemplary configuration diagram showing a relationship between a main memory resident object relational DBMS server and a data access application to which the present invention is applied, and includes a data access application 10 and a main memory resident DBMS server 20. The main memory resident DBMS server 20 includes an object relational DBMS server 30 and a main memory database 40.
도 1에 도시된 바와 같이, 객체관계형 DBMS 서버(30)는 본 발명과 관련된 부분과 관련된 모듈로서 질의 구문 분석 모줄(31)과 질의 수행 모듈(32)로 구성되며, 데이터 접근 응용 프로그램(10)에서 발생하는 주기억장치 데이터베이스(40)의 접근 요청에 따라 시스템 카탈로그 접근 모듈(System Catalog Access Module)(33)을 참조하여 데이터베이스 검색, 변경, 또는 삭제 등을 수행한다.As shown in FIG. 1, an object-relational DBMS server 30 is a module related to a part related to the present invention, and includes a query parsing module 31 and a query execution module 32. According to the access request of the main memory database 40 generated by the reference to the System Catalog Access Module (System Catalog Access Module) (33) performs a database search, change, or deletion.
도 2a 및 도 2b 는 본 발명에 따른 데이터 접근 응용 프로그램에서 정의한클래스간의 수직적 상호 관계에 대한 일예시도이다.2A and 2B are examples of vertical correlations between classes defined in a data access application program according to the present invention.
먼저, 도 2a 는 클래스(class) 간의 수직 관계(상속)를 다이어그램으로 나타내어 설명한 것으로서, 객체관계형 DBMS 서버(30)와 클래스 간의 수직적 상관 관계(상속)를 다음과 같이 정의한다.First, FIG. 2A illustrates a vertical relationship (inheritance) between classes as a diagram, and defines a vertical correlation (inheritance) between the object relational DBMS server 30 and a class as follows.
임의의 클래스는 오직 한 클래스로부터 상속 가능하다. 즉, 상위 클래스에서 정의한 애트리뷰트의 이름과 타입을 변경없이 상속받고, 자신의 고유한 애트리뷰트를 추가로 가질 수 있다. 여러 상위 클래스로부터 상속받아 하위 클래스를 생성하는 다중 상속은 불가능하다.Any class can be inherited from only one class. In other words, the name and type of the attribute defined in the parent class can be inherited without changing, and it can have its own unique attribute. Multiple inheritance that inherits from multiple superclasses and creates subclasses is not possible.
따라서, 클래스B(202)는 클래스A(201)로부터 상속받고, 클래스C(203)는 클래스B(202)로부터 상속받게 된다.Thus, class B 202 inherits from class A 201 and class C 203 inherits from class B 202.
실제로 도 2b 의 클래스 정의 문장을 살펴보면, class B에는 class A에서 상속받은 애트리뷰트(A_att1)(204)와 자신의 클래스인 애트리뷰트(B_att1)(205)로 구성된다. 또한, class C에는 class A에서 상속받은 애트리뷰트(A_att1)(204)와 class B에서 상속받은 애트리뷰트(B_att1)(205)와 자신의 클래스에서 정의한 애트리뷰트(C_att1)(206)로 구성된다.In fact, referring to the class definition statement of FIG. 2B, class B includes an attribute (A_att1) 204 inherited from class A and an attribute (B_att1) 205 which is its class. In addition, class C includes an attribute (A_att1) 204 inherited from class A, an attribute (B_att1) 205 inherited from class B, and an attribute (C_att1) 206 defined in its class.
따라서, 최상위 클래스 A에서 애트리뷰트(A_att1)(204)값을 수정하는 변경 질의는 클래스B와 클래스C의 애트리뷰트(A_att1)(204)에도 적용된다.Therefore, a change query that modifies the value of attribute (A_att1) 204 in the top class A also applies to the attributes (A_att1) 204 of class B and class C.
도 3a 내지 도 3c 는 본 발명에 따른 데이터 접근 응용 프로그램에서 정의한 클래스간의 수평적 상호 관계에 대한 일예시도로서, 본 발명의 객체관계형 DBMS 서버에서는 클래스 간의 수평적 상관 관계를 다음과 같이 3가지 관계로 정의한다.3A to 3C illustrate an example of horizontal interrelationships between classes defined in a data access application program according to the present invention. In the object relational DBMS server of the present invention, three relationships are described as follows. Defined as
첫 번째, 도 3a는 클래스 간 1:1 관계를 나타낸 것으로, 클래스 A(301)와 클래스 W(302)는 1:1 관계에 있고, 클래스 A(301)에서는 A_att2(303)라는 애트리뷰트를 통하여 클래스 W(302)의 오직 한 인스턴스로 접근할 수 있으며, 클래스 W(302)에서는 W_att2(304)라는 애트리뷰트를 통하여 자신의 인스턴스를 가리키는 클래스 A(301)의 오직 한 인스턴스로만 접근 가능하다. 즉, 클래스 A(301)의 A_att2(303)라는 애트리뷰트는 클래스 W(302)의 한 인스턴스의 객체식별자(OID)(305)를 가지고 있어, 이를 가리키는 역할을 하게 되고, 클래스 W(302)에서는 W_att2(304)라는 애트리뷰트가 자신의 인스턴스를 가리키는 클래스 A(301)의 오직 한 인스턴스의 객체식별자(OID)(306)를 가지므로 이를 가리키는 역할을 하게 된다.First, FIG. 3A illustrates a 1: 1 relationship between classes. Class A 301 and class W 302 have a 1: 1 relationship, and in class A 301, a class A_att2 303 is provided. Only one instance of W 302 is accessible, and in class W 302, only one instance of class A 301, pointing to its instance, is provided via an attribute called W_att2 304. That is, the attribute A_att2 303 of class A 301 has an object identifier (OID) 305 of one instance of class W 302, which serves to indicate that, and in class W 302, W_att2 An attribute named 304 has an object identifier (OID) 306 of only one instance of class A 301 that points to its instance and thus serves to point to it.
따라서, 클래스 A(301)의 인스턴스를 변경하는 경우, 본 발명의 객체관계형 DBMS에서 지원하는 다음과 같은 SQL(Structured Query Language)을 이용한다.Therefore, when changing an instance of class A 301, the following Structured Query Language (SQL) supported by the object relational DBMS of the present invention is used.
exec sql update A set A_att2=exec sql update A set A_att2 = (OID of class W)(OID of class W) where ...;where ...;
상기 질의만으로 A_att2에는 'set'절에 기술된 클래스 W의 객체식별자(OID)가 할당되고, 그와 연관된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 객체식별자(OID)가 삽입되어 상호 관계가 자동으로 유지된다.The query only assigns an object identifier (OID) of class W described in the 'set' clause to A_att2, and an object identifier (OID) of an instance of class A being changed is inserted into W_att2 of an instance of class W associated with it. Correlation is automatically maintained.
두 번째, 도 3b는 클래스 간 1:N 관계를 나타낸 것으로, 클래스 A(311)와 클래스 W(312)는 1:N 관계에 있고, 클래스 A(311)에서는 A_att2(313)라는 애트리뷰트를 통하여 클래스 W(312)의 여러 인스턴스로 접근할 수 있으며, 클래스 W(312)에서는 W_att2(314)라는 애트리뷰트를 통하여 자신의 인스턴스를 가리키는 클래스 A(311)의 오직 한 인스턴스로만 접근 가능하다. 즉, 클래스 A(311)의 A_att2(313)라는 애트리뷰트는 클래스 W(312)의 여러 인스턴스들의 객체식별자(OID)(315)를 가지고 있어, 이들을 가리키는 역할을 하게 되고, 클래스 W(312)에서는 W_att2(314)라는 애트리뷰트가 자신의 인스턴스를 가리키는 클래스 A(311)의 오직 한 인스턴스의 객체식별자(OID)(316)를 가지므로 이를 가리키는 역할을 하게 된다.Second, FIG. 3B illustrates a 1: N relationship between classes. Class A 311 and class W 312 have a 1: N relationship, and in class A 311, a class A_att2 (313) is provided through an attribute. Multiple instances of W 312 can be accessed, and class W 312 can only access one instance of class A 311 that points to its instance through an attribute called W_att2 314. That is, an attribute named A_att2 313 of class A 311 has an object identifier (OID) 315 of several instances of class W 312, which serves to point to them, and W_att2 in class W 312. The attribute (314) has an object identifier (OID) 316 of only one instance of class A 311 that points to its instance and thus serves to point to it.
따라서, 클래스 A(311)의 인스턴스를 변경하는 경우, 본 발명의 객체관계형 DBMS에서 지원하는 다음과 같은 SQL(Structured Query Language)을 이용한다.Therefore, when changing an instance of class A 311, the following Structured Query Language (SQL) supported by the object relational DBMS of the present invention is used.
exec sql update A set A_att2=exec sql update A set A_att2 = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 객체식별자(OID) 값들을 모두 삭제하고, 'set'절에 기술된 클래스 W(312)의 객체식별자(OID)가 할당되고, 할당된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 객체식별자(OID)가 할당되어 상호 관계가 자동으로 유지된다.The query deletes all existing object identifier (OID) values of A_att2, assigns the object identifier (OID) of class W 312 described in the 'set' clause, and changes W_att2 of the instance of the assigned class W. The object identifier (OID) of the instance of class A being assigned is assigned and the correlation is automatically maintained.
exec sql update A set A_att2+=exec sql update A set A_att2 + = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 객체식별자(OID) 값들에 'set'절에 기술된 클래스 W의 객체식별자(OID)를 추가하고, 추가된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 객체식별자(OID)가 할당되어 상호 관계가 자동으로 유지된다.The query adds the object identifier (OID) of class W described in the 'set' clause to the existing object identifier (OID) values of A_att2, and the instance of class A being changed in W_att2 of the added instance of class W. Object identifiers (OIDs) are assigned to maintain correlations automatically.
exec sql update set A_att2-=exec sql update set A_att2- = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 객체식별자(OID) 값들에서 'set'절에 기술된 클래스 W의 객체식별자(OID)를 삭제하고, 삭제된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 객체식별자(OID)가 삭제되어 상호 관계가자동으로 유지된다.The query deletes the object identifier (OID) of class W described in the 'set' clause from the existing object identifier (OID) values of A_att2, and changes the instance of class A that is being changed to W_att2 of the deleted instance of class W. The object identifier (OID) is deleted so that the correlation is automatically maintained.
세 번째, 도 3c는 클래스 간 M:N 관계를 나타낸 것으로, 클래스 A(321)와 클래스 W(322)는 M:N 관계에 있고, 클래스 A(321)에서는 A_att2(323)라는 애트리뷰트를 통하여 클래스 W(322)의 여러 인스턴스로 접근할 수 있으며, 클래스 W(322)에서는 W_att2(324)라는 애트리뷰트를 통하여 자신의 인스턴스를 가리키는 클래스 A(321)의 여러 인스턴스로 접근 가능하다. 즉, 클래스 A(321)의 A_att2(323)라는 애트리뷰트는 클래스 W(322)의 여러 인스턴스들의 객체식별자(OID)(325)를 가지고 있어, 이들을 가리키는 역할을 하게 되고, 클래스 W(322)에서는 W_att2(324)라는 애트리뷰트가 자신의 인스턴스를 가리키는 클래스 A(321)의 여러 인스턴스들의 객체식별자(OID)(326)를 가지므로 이를 가리키는 역할을 하게 된다.Third, FIG. 3C illustrates the M: N relationship between classes. Class A 321 and class W 322 have an M: N relationship. In class A 321, an A_att2 323 attribute is used to define a class. Multiple instances of W 322 can be accessed, and class W 322 can be accessed from multiple instances of class A 321 pointing to its own instance through an attribute called W_att2 324. That is, an attribute called A_att2 323 of class A 321 has an object identifier (OID) 325 of several instances of class W 322, which serves to point to them. In class W 322, W_att2 The attribute 324 has an object identifier (OID) 326 of several instances of class A 321 pointing to its instance and thus serves to point to it.
클래스 A(321)의 인스턴스를 변경하는 경우, 본 발명의 객체관계형 DBMS에서 지원하는 다음과 같은 SQL(Structured Query Language)을 이용한다.When changing an instance of class A 321, the following Structured Query Language (SQL) supported by the object relational DBMS of the present invention is used.
exec sql update A set A_att2=exec sql update A set A_att2 = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 OID 값들을 모두 삭제하고, 'set'절에 기술된 클래스 W의 OID가 할당되고, 할당된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 OID가 할당되어 상호 관계가 자동으로 유지된다.The query deletes all existing OID values of A_att2, assigns the OID of class W described in the 'set' clause, and assigns the OID of the instance of class A being changed to W_att2 of the assigned instance of class W. Correlation is automatically maintained.
exec sql update A set A_att2+=exec sql update A set A_att2 + = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 OID 값들에 'set'절에 기술된 클래스 W의 OID를 추가하고, 추가된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 OID가 추가되어 상호 관계가 자동으로 유지된다.The query adds the OID of class W described in the 'set' section to the existing OID values of A_att2, and adds the OID of the instance of class A that is being changed to W_att2 of the added instance of class W. Is maintained.
exec sql update set A_att2-=exec sql update set A_att2- = (OID of class W)(OID of class W) where ...;where ...;
상기 질의로 기존의 A_att2의 OID 값들에서 'set'절에 기술된 클래스 W의 OID를 삭제하고, 삭제된 클래스 W의 인스턴스의 W_att2에는 변경되고 있는 클래스 A의 인스턴스의 OID가 삭제되어 상호 관계가 자동으로 유지된다.The query deletes the OID of class W described in the 'set' clause from the existing O_values of A_att2 and deletes the OID of the instance of class A being changed in W_att2 of the deleted class W instance. Is maintained.
도 4 는 본 발명에 따른 객체식별자 집합이 포함된 클래스 인스턴스 변경 방법에 대한 일실시예 흐름도로서, 데이터 접근 응용 프로그램으로부터 인스턴스 변경 질의가 요청되었을 경우 DBMS 서버에서 처리하는 과정에 대한 것이다.FIG. 4 is a flowchart illustrating a method of changing a class instance including a set of object identifiers according to the present invention, and is a process of processing in a DBMS server when an instance change query is requested from a data access application.
도 4에 도시된 바와 같이, 먼저 데이터 접근 응용 프로그램으로부터 인스턴스 변경 요청이 수신되면(401), 이 질의를 분석하여 질의 정보를 저장하고(402), 변경(update) 질의인지를 검사한다(403).As shown in FIG. 4, when an instance change request is received from a data access application (401), the query is analyzed to store query information (402), and it is checked whether it is an update query (403). .
검사결과(403), 변경 질의면 클래스에 상호배제 로크를 요청하기 위하여 getLock()함수를 호출한다(404). 이어서, 요청한 클래스에 대한 상호배제 로크를 획득했는지를 검사하여(405), 획득한 경우에는 자신의 클래스와 하위 클래스들에 대해 질의에 기술된 조건에 맞는 인스턴스를 검색해 가며 조건에 맞는 인스턴스가 존재하는 동안 다음의 작업을 반복한다(406). 즉, 인스턴스가 존재하는 동안 작업하는 반복되는 작업에 대해 살펴보면, 조건을 만족하는 인스턴스 OID를 입력 매개변수로 update()함수를 호출하여(407) 결과를 검사하여(408) 성공이면 변경한 인스턴스 개수를 1 증가시키고(409), 실패이면 변경 질의를 철회하고 (406)단계의 작업 과정에서 빠져나온다. 조건에 만족하는 모든 인스턴스에 대해 성공적으로 변경을 마친 경우에 대한 결과를 저장하고(411), (404) 과정에서 클래스의 상호배제 로크를 획득하지 못하면 트랜잭션을 철회한 후(413), 이의 결과를 저장하여(411) 응용 프로그램에 송부하는 과정(412)을 진행한다.As a result of the check (403), the getLock () function is called (404) to request the mutual lock of the interrogation class. Subsequently, it is checked whether a mutual exclusion lock is obtained for the requested class (405), and if so, an instance matching the condition described in the query is searched for its own class and subclasses. Repeat the following operation (406). In other words, if you look at the repetitive task that works while the instance exists, the update () function is called with an instance OID that satisfies the condition (407) and the result is checked (408). Increments 1 by 409; if unsuccessful, withdraws the change query and exits the process of step 406. The result of the successful change for all instances satisfying the condition is stored (411), and if the mutual exclusion lock of the class is not obtained in step (404), the transaction is withdrawn (413). In operation 412, the process 412 transmits the stored data to the application program.
한편, 변경(update) 질의인지를 검사한 결과(403), 변경 질의가 아니면 그에 해당하는 질의를 처리한 후(414) 결과를 저장하여(411) 응용 프로그램에게 송부하는 과정(412)을 진행한다.On the other hand, the result of checking whether the update (update) query (403), if the query is not a change query (414) after storing the result (411) and proceeds to the step (412) to send to the application program. .
도 5 는 도 4의 getLock() 함수 호출 과정에 대한 일실시예 흐름도로서, 입력 매개변수(클래스 A)는 상호배제 로크를 획득하고자 하는 클래스이다.FIG. 5 is a flowchart illustrating an example of a process of calling the getLock () function of FIG. 4, in which an input parameter (class A) is a class for which a mutual exclusion lock is to be obtained.
도 5에 도시된 바와 같이, 함수가 시작되면 클래스에 대한 로크를 요청하여(501) 로크를 획득했는지를 검사하여(502), 로크를 획득하였으면 그 클래스의 하위 클래스를 찾아(503) 하위 클래스가 존재하는지를 확인하여(504), 하위 클래스가 존재하면 하위 클래스에 상호배제 로크를 요청한다(505). 만약 로크를 획득하였으면(506) 다음 하위 클래스를 찾은 후(507) 하위 클래스가 존재하는지를 확인하는 과정(504)부터 반복 수행하고, 로크를 획득하지 못했거나(502) 하위 클래스 중 한 클래스라도 상호 배제 로크를 획득하지 못하였으면(506) 그 결과를 실패로 저장된다(508).As shown in FIG. 5, when the function is started, a request for a lock on a class (501) is performed to check whether a lock is obtained (502), and when a lock is obtained, a subclass of the class is found (503). If the existence of the subclass exists, a mutual exclusion lock is requested to the subclass (505). If a lock is acquired (506), the next subclass is found (507), and the process of checking whether a subclass exists is repeated (504), and the lock is not obtained (502). If a lock is not obtained (506), the result is stored as a failure (508).
한편, 입력 매개변수인 클래스와 그의 하위 클래스가 모두 상호배제 로크를 획득하여 존재하지 않을 경우에만 그 결과를 성공으로 저장하여(509) 호출한 함수로 반환한다.On the other hand, when both the input parameter class and its subclasses acquire the mutual exclusion lock and only do not exist, the result is stored as success (509) and returned to the called function.
도 6a 내지 도 6d 는 도 4의 update() 함수 호출 과정에 대한 일실시예 흐름도이다.6A through 6D are flowcharts of an embodiment of a process of calling the update () function of FIG. 4.
여기서, 입력 매개변수는 변경하고자 하는 클래스 인스턴스의 OID 이고, 이 함수는 실제로 변경(update) 질의가 수행되어 데이터베이스 내용을 변경하는 함수이다.Here, the input parameter is the OID of the class instance to be changed, and this function is a function that actually changes the database contents by performing an update query.
도 6a 내지 도 6d에 도시된 바와 같이, 함수가 시작되면 변경 질의에 기술된 변경하고자 하는 애트리뷰트 중 관계성을 나타내지 않는 프리미티브(primitive) 데이터 타입을 가지는 모든 애트리뷰트에 대하여 반복적으로(601) 변경절 정보(애트리뷰트 이름, 타입, 연산자, 값 등)를 구성한다(602).As shown in Figs. 6A to 6D, when a function starts, iteratively 601 change clause information for all attributes having primitive data types that do not indicate a relation among attributes to be changed described in the change query. (Attribute name, type, operator, value, etc.) (602).
이어서, 프리미티브(primitive) 데이터 타입을 가지는 애트리뷰트에 대한 변경절 정보 구성시 오류가 없었다면 이의 내용을 데이터베이스에 적용한 후(603), 관계성을 나타내는 데이터 타입(OID 집합에는 1:1타입과 1:N타입이 존재함)의 모든 애트리뷰트들에 대해 반복적으로 다음과 같이 작업을 수행한다(604).Subsequently, if there was no error in constructing change clause information for an attribute having a primitive data type, the content thereof was applied to the database (603), and then the data type representing the relation (1: 1 type and 1: N for the OID set). For all attributes of type), the operation is repeatedly performed as follows (604).
즉, 애트리뷰트 타입을 검사하여(605) 애트리뷰트 타입을 1:1 관계(606)과 1:N 관계(607)로 구분하여 처리하는 과정을 반복적으로 수행한다.That is, the process of checking the attribute type (605) and dividing the attribute type into a 1: 1 relationship 606 and a 1: N relationship 607 is repeatedly performed.
도 6b에 도시된 바와 같이, 만약 애트리뷰트 타입이 1:1 관계이면(606)(update 하고자 클래스의 인스턴스 OID)가 현재 가리키고 있는 상대 클래스의 기존의 인스턴스 OID를라 하고(608) 이에 대한 상호배제 로크를 요청한다(609). 이어서, 로크를 획득하였는지 검사하여(610) 로크를 획득하지 못하였으면 결과를 실패로 저장하고(611), 획득하였으면에서(자신의 클래스)로의 역 포인터(OID 인스턴스) 타입을 검사한다(612).As shown in FIG. 6B, if the attribute type is a 1: 1 relationship (606) The existing instance OID of the partner class currently pointed to by the instance OID of the class to be updated. (608) request a mutual exclusion lock for this (609). Subsequently, it is checked whether a lock is acquired (610). If the lock is not obtained, the result is stored as a failure (611). in Check the type of back pointer (OID instance) to (your class) (612).
검사결과(612), 타입이 1:1이면의 역 포인터에 "NULL_OID"를 할당하고(613), 1:N이면의 역 포인터 집합 중에서(자신의 클래스 인스턴스)만 삭제한다(614).If the test result 612, the type is 1: 1 Assigns "NULL_OID" to the inverse pointer of (613), and 1: N Of the set of inverse pointers Delete only (own class instance) (614).
이후,(자신의 클래스 인스턴스)의 해당 애트리뷰트에 'set'절에 기술된 새로운 OID를 할당한다(615). 이어서,에서로의 역 포인터를 만들기 위하여에 상호배제 로크를 요청하고(616),에 대해 로크를 획득했는지 검사하여(617) 로크를 획득하지 못하였으면 그 결과를 실패로 저장하고(618), 로크를 획득하였으면에서로의 역 포인터 타입을 검사한다(619).after, The new OID described in the 'set' clause in the corresponding attribute of your own class instance (615). next, in To make an inverse pointer to Request a mutual exclusion lock from the server (616), Check if a lock has been acquired for (617), and if the lock is not obtained, store the result as a failure (618); in Check the pointer type in reverse (619).
검사결과(619),로의 역 포인터 타입이 1:1이면에서로의 역 포인터에를 할당하고(620), 1:N이면에서로의 역 포인터 집합 중에를 추가한다(621).Inspection result (619), If the inverse pointer type to 1: 1 is 1: 1 in To the station pointer of (620), and 1: N in During the set of inverse pointers to Add (621).
이후, 성공적으로와의 포인터가 설정되면 그 결과를 성공으로 저장하고(622) 저장된 결과를 호출한 함수로 반환한다(649).Since, successfully Wow If the pointer of is set, the result is stored as success (622) and the stored result is returned to the calling function (649).
도 6c에 도시된 바와 같이, 애트리뷰트 타입이 1:N 관계이면(607) 'set'절의 연산자를 검사한다(623). 먼저 연산자가 할당의 의미인 '='이면 기존의 OID들을 변경 질의 중 'set'절에 기술된 새로운 OID들로 대체하라는 의미이고, 연산자가 합집합(union)의 의미인 '+='인 경우는 기존의 OID 집합에 'set'절에 기술된 OID를 추가하라는 의미이고, 연산자가 차집합(difference)의 의미인 '-='인 경우는 기존의OID 집합에서 'set'절에 기술된 OID만 삭제하라는 의미이다.As shown in FIG. 6C, if the attribute type is 1: N relationship (607), the operator of the 'set' clause is checked (623). First, if the operator is '=' which means the assignment, it means to replace the existing OIDs with the new OIDs described in the 'set' clause of the change query.If the operator is '+ =' which means the union, It means to add the OID described in the 'set' clause to the existing OID set. If the operator is '-=' which means the difference, only the OID described in the 'set' clause in the existing OID set. It means to delete.
따라서, 연산자가 '='(할당)인 경우에는 기존의 OID를 찾아 모두 삭제한 후 새로운 OID 집합을 할당하는 처리가 필요하다. 즉, 현재(변경하고자 하는 클래스 인스턴스 OID)가 가리키는 상대 클래스의 모든 인스턴스 OID의 집합을에 저장한 후(624),에 저장된 OID 개수만큼 다음 작업을 반복 수행한다(625).Therefore, if the operator is '=' (allocation), it is necessary to find an existing OID, delete all, and allocate a new OID set. That is Set of all instance OIDs of the relative class pointed to by the class instance OID After saving to (624), The next operation is repeated as many times as the number of OIDs stored at 625.
즉, 집합에서 한 원소(OID)씩 삭제를 위한 상호배제 로크를 신청하여(626) 로크를 획득했는지 검사하여(627), 로크를 획득하지 못하였으면 그 결과를 실패로 저장하고(628), 로크를 획득하였으면에서로의 역 포인터 타입을 검사하여(629) 타입이 1:1이면의 역 포인터에 "NULL_OID"(null값을 가지는 OID)를 할당하고(630), 타입이 1:N이면의 역 포인터 집합 중에만 삭제한다(631). 상기 (625) 과정을 성공적으로 마친 후,에서 모든로의 포인터를 삭제한다(632).That is, a set Apply for mutual exclusion lock for deletion by one element (OID) in (626), check if the lock is obtained (627), if the lock is not obtained, save the result as failure (628), if the lock is obtained in If the type is 1: 1 Assigns "NULL_OID" (an OID with a null value) to the inverse pointer of (630), and if the type is 1: N Of the set of inverse pointers Only delete (631). After successfully completing step 625, All in The pointer to the row is deleted (632).
이후, '='(할당) 연산자에 대해 기존의 OID를 모두 삭제했거나 연산자가 '+='(합집합)또는 '-='(차집합)인 경우에, 'set'절에 기술된 인스턴스 OID들의 집합을로 저장하여(633)에 저장된 모든 OID에 대해 다음과 같은 과정(634)을 반복하여 수행한다.Then, if you delete all existing OIDs for the '=' (assignment) operator, or if the operator is '+ =' (set) or '-=' (difference), the instance OIDs described in the 'set' clause Set Saved as (633) Repeat the following process (634) for all OIDs stored in the.
도 6d에 도시된 바와 같이, 집합에 저장된 OID 개수만큼 반복 수행하는 과정(634)을 자세히 살펴보면, 먼저 'set'절의 연산자를 검사하여(635) 연산자가'='(할당) 또는 '+='(합집합)이면의 해당 애트리뷰트 OID 집합에 새로운 OID를 할당하고(636), 연산자가 '-='(차집합)이면의 해당 애트리뷰트 OID 집합으로부터 OID를 삭제한다(637).As shown in FIG. 6D, a set Looking closely at the process of repeating the number of OIDs stored in the (634), first check the operator of the 'set' clause (635), if the operator is '=' (assignment) or '+ =' (set) A new OID in the corresponding attribute OID set of Is assigned (636), and the operator is '-=' (difference) OID from the corresponding attribute OID set in It is deleted (637).
이후,에서로의 역 포인터를 변경하기 위하여, 상호배제 로크를 신청하여(638) 로크를 획득하였는지를 검사하고(639), 로크를 획득하지 못하였으면 그 결과를 실패로 저장하고(640), 로크를 획득하였으면에서로의 역 포인터를 설정하기 위하여 타입을 검사한다(641).after, in In order to change the reverse pointer to the lo, a mutually exclusive lock is applied (638) to check if a lock has been acquired (639), and if the lock is not obtained, the result is stored as a failure (640), and if the lock is obtained in The type is checked to set an inverse pointer to the path (641).
검사결과(641), 타입이 1:1이면 'set'절의 연산자를 검사하여(642) 연산자가 '='(할당)이거나 '+='(합집합)이면의 역 포인터에를 할당하고(643), 연산자가 '-='(차집합)이면의 역 포인터에 "NULL_OID"를 할당한다(644).Check result (641), if the type is 1: 1, check the operator in the 'set' clause (642) .If the operator is '=' (assignment) or '+ =' (set), On the station pointer Is assigned (643), and the operator is '-=' (difference) It allocates "NULL_OID" to the inverse pointer of 644.
한편, 검사결과(641), 타입이 1:N 이면 'set'절의 연산자를 검사하여(645) 연산자가 '='(할당)이거나 '+='(합집합)이면의 역 포인터에를 추가하고(646), 연산자가 '-='(차집합)이면의 역 포인터 중에를 삭제한다(647).On the other hand, if the result of the check 641, the type is 1: N, the operator of the 'set' clause is examined (645), if the operator is '=' (assignment) or '+ =' (set) On the station pointer (646), and if the operator is '-=' (difference) Among the inverse pointers of Delete (647).
이후, 상기와 같은 집합에 저장된 OID 개수만큼 반복하는 과정(634)을 성공적으로 마친 후 그 결과를 저장하여(648) 호출 함수로 반환한다(649).Then, the same set as above After successfully completing the process of repeating the number of OIDs stored in step 634, the result is stored (648) and returned to the calling function (649).
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크등)에 저장될 수 있다.The method of the present invention as described above may be implemented as a program and stored in a computer-readable recording medium (CD-ROM, RAM, ROM, floppy disk, hard disk, magneto-optical disk, etc.).
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, modifications, and changes are possible in the art without departing from the technical spirit of the present invention. It will be clear to those of ordinary knowledge.
상기한 바와 같은 본 발명은, 주기억장치 상주 객체관계형 DBMS에서 클래스간의 상호 관계에 있는 인스턴스들을 변경할 경우 자신의 클래스 뿐만 아니라 자신으로부터 상속받은 하위의 클래스들에도 적용되어 인스턴스를 변경하면서 상호 관계에 있는 타 클래스의 인스턴스들과의 관계도 변경함으로써 데이터베이스의 일관성을 보장할 수 있는 효과가 있다.As described above, the present invention applies to not only its own class but also subordinate classes inherited from itself when changing instances of the interrelationship between classes in the main memory-resident object relational DBMS. It also has the effect of ensuring database consistency by changing the relationship with instances of the class.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0082334A KR100426620B1 (en) | 2000-12-26 | 2000-12-26 | Method of an class instance updating with OID in the main memory resident, object-relational DBMS |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2000-0082334A KR100426620B1 (en) | 2000-12-26 | 2000-12-26 | Method of an class instance updating with OID in the main memory resident, object-relational DBMS |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20020053990A KR20020053990A (en) | 2002-07-06 |
KR100426620B1 true KR100426620B1 (en) | 2004-04-13 |
Family
ID=27686267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2000-0082334A KR100426620B1 (en) | 2000-12-26 | 2000-12-26 | Method of an class instance updating with OID in the main memory resident, object-relational DBMS |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100426620B1 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100520301B1 (en) * | 2001-10-13 | 2005-10-13 | 한국전자통신연구원 | Object-relational database management system and method for deleting class instance for the same |
KR100496970B1 (en) * | 2001-12-27 | 2005-06-27 | 삼성에스디에스 주식회사 | Method for managing the efficiency of the database |
KR102220978B1 (en) | 2019-05-14 | 2021-02-26 | 주식회사 마크베이스 | Appratus and method for management of database |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0127101B1 (en) * | 1994-05-13 | 1998-04-02 | 천성순 | Object-oriented database system |
KR19980044003A (en) * | 1996-12-05 | 1998-09-05 | 양승택 | How to control different consistency of various relevance semantics |
KR19980079611A (en) * | 1997-03-27 | 1998-11-25 | 포맨 제프리 엘 | Mechanism for locking tool data objects in the framework environment |
KR19990039270A (en) * | 1997-11-11 | 1999-06-05 | 정선종 | How to Manage Persistent Objects in Object-Oriented Database Systems |
KR20000038284A (en) * | 1998-12-05 | 2000-07-05 | 정선종 | Method and apparatus for storing and restoring database of constructed documents for document management system |
KR20000041891A (en) * | 1998-12-24 | 2000-07-15 | 서평원 | Object-oriented program interface for relational dbms |
US6128771A (en) * | 1996-02-09 | 2000-10-03 | Sun Microsystems, Inc. | System and method for automatically modifying database access methods to insert database object handling instructions |
-
2000
- 2000-12-26 KR KR10-2000-0082334A patent/KR100426620B1/en not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR0127101B1 (en) * | 1994-05-13 | 1998-04-02 | 천성순 | Object-oriented database system |
US6128771A (en) * | 1996-02-09 | 2000-10-03 | Sun Microsystems, Inc. | System and method for automatically modifying database access methods to insert database object handling instructions |
KR19980044003A (en) * | 1996-12-05 | 1998-09-05 | 양승택 | How to control different consistency of various relevance semantics |
KR19980079611A (en) * | 1997-03-27 | 1998-11-25 | 포맨 제프리 엘 | Mechanism for locking tool data objects in the framework environment |
KR19990039270A (en) * | 1997-11-11 | 1999-06-05 | 정선종 | How to Manage Persistent Objects in Object-Oriented Database Systems |
KR20000038284A (en) * | 1998-12-05 | 2000-07-05 | 정선종 | Method and apparatus for storing and restoring database of constructed documents for document management system |
KR20000041891A (en) * | 1998-12-24 | 2000-07-15 | 서평원 | Object-oriented program interface for relational dbms |
Non-Patent Citations (1)
Title |
---|
데이타베이스 시스템 교재;이석호 저, 정익사(출);발행일:1997.6.20 * |
Also Published As
Publication number | Publication date |
---|---|
KR20020053990A (en) | 2002-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5706506A (en) | Method and apparatus for managing relational data in an object cache | |
US6026408A (en) | Method for synchronizing the schema of a database with its representation in an object-oriented repository | |
US5581755A (en) | Method for maintaining a history of system data and processes for an enterprise | |
US6003039A (en) | Data repository with user accessible and modifiable reuse criteria | |
US6374256B1 (en) | Method and apparatus for creating indexes in a relational database corresponding to classes in an object-oriented application | |
US6405208B1 (en) | Dynamic recursive build for multidimensional databases and methods and apparatus thereof | |
US7792817B2 (en) | System and method for managing complex relationships over distributed heterogeneous data sources | |
US6108664A (en) | Object views for relational data | |
US8789011B2 (en) | Method and system for a generic data model | |
KR100520301B1 (en) | Object-relational database management system and method for deleting class instance for the same | |
US10282198B2 (en) | Mechanisms to persist hierarchical object relations | |
US20020156811A1 (en) | System and method for converting an XML data structure into a relational database | |
US20030182282A1 (en) | Similarity search engine for use with relational databases | |
US20050010606A1 (en) | Data organization for database optimization | |
US6591275B1 (en) | Object-relational mapping for tables without primary keys | |
US20070255685A1 (en) | Method and system for modelling data | |
US11561976B1 (en) | System and method for facilitating metadata identification and import | |
CN115905212A (en) | Centralized metadata repository with dependency identifiers | |
KR100426620B1 (en) | Method of an class instance updating with OID in the main memory resident, object-relational DBMS | |
US11940951B2 (en) | Identification and import of metadata for extensions to database artefacts | |
WO2002001415A2 (en) | Computer method and device for transporting data | |
Bergamaschi et al. | Object Wrapper: an object-oriented interface for relational databases | |
US7225201B1 (en) | Extensible data type | |
US7779057B2 (en) | Method and apparatus for retrieving and sorting entries from a directory | |
US12079179B2 (en) | Systems, methods, and media for accessing derivative properties from a post relational database utilizing a logical schema instruction that includes a base object identifier |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20120228 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |