초록
Binding the object-oriented programming language C++ with a database management system provides a persistency to C++ programming objects so that objects can persist after program termina~,on. In such a binding system, we can manage a persistent object same as that we use a transient object and also use database management facilities such as transaction management and concurrency control. This paper presents a method providing the persistency to C++ programming objects in the binding system. We propose an improved interface based on C++ binding of ODMG-97 and present the design and implementation technique of it. The proposed interface provides a seamless interface for creating objects of the persistent capable class. We can create a persistent object without its class name as we do not give a class name when creating a transient object. Also, we guarantee the type compatibilty between the obiect created in database and the obiect created in main memory.
객체지향 언어 C++ 와 데이터베이스 관리 시스템의 결합은 C++ 응용 프로그램의 객체들이 프로그램이 종료되어도 지속되도록 데이터베이스의 저장 기능을 이용함과 동시에 데이터베이스 시스템에서 제공하는 다양한 기능을 사용하면서, 객체에 대한 조작은 C++의 일반 임시 객체처럼 C++에서 제공하는 기능들을 이용할 수 있도록 해 준다. 본 논문에서는 C++ 응용 프로그램의 객체에 영속성을 부여하는 방법으로 객체지향 데이터베이스 시스템의 상용 표준안인 ODMG-97의 C++ 바인딩에서 제시한 인터페이스를 보완하여 영속성 부여 인터페이스를 제시하고 이를 지원하기 위한 시스템의 설계 및 구현 내용을 서술한다. 제시한 인터페이스는 영속 가능한 클래스의 모든 객체는 동일한 인터페이스를 이용하여 사용자가 원하는 대로 임시 객체, 영속 객체를 모두 생성할 수 있고, 생성되는 객체의 클래스명을 추가로 명시하지 않고도 영속 객체를 생성할 수 있게 함으로써 이음새 없는 영속성 부여 인터페이스를 제공하고, 또한 객체 생성시 데이터베이스 객체와 메모리 객체간의 타입 호환성을 보장한다.