Design and Implementation of Seamless Interface Providing Persistence to C++ Object

C++ 객체 영속성 부여를 위한 이음새 없는 인터페이스의 설계 및 구현

  • 이미영 (한국전자통신연구원 컴퓨터소프트웨어기술연구소) ;
  • 김명준 (한국전자통신연구원 컴퓨터소프트웨어기술연구소)
  • 발행 : 2000.10.01

초록

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++ 바인딩에서 제시한 인터페이스를 보완하여 영속성 부여 인터페이스를 제시하고 이를 지원하기 위한 시스템의 설계 및 구현 내용을 서술한다. 제시한 인터페이스는 영속 가능한 클래스의 모든 객체는 동일한 인터페이스를 이용하여 사용자가 원하는 대로 임시 객체, 영속 객체를 모두 생성할 수 있고, 생성되는 객체의 클래스명을 추가로 명시하지 않고도 영속 객체를 생성할 수 있게 함으로써 이음새 없는 영속성 부여 인터페이스를 제공하고, 또한 객체 생성시 데이터베이스 객체와 메모리 객체간의 타입 호환성을 보장한다.

키워드

참고문헌

  1. Won Kim, Nat Ballou, Hong-tai Chou, Jorge F. Garza, Darrell Woelk, 'Integrating An Object-Oriented Programming System with a Database System,' OOPSLA'88 Proceedings, Sept. pp.142-152, 1988 https://doi.org/10.1145/62083.62097
  2. ISO 9075-1992, 'Information Processing System - Database Language SQL,' ISO, 1992
  3. 이미영, 채미옥, 김평철, 전성택, '바다-III/C++: 바다-III에서의 C++ 결합 방법', 한국정보과학회 '95 가을 학술발표논문집(A), 제22권 2호, pp.271-274, 1995
  4. 이미영, 조옥자, 김영균, 전성택, 'C++ 객체에 영속성을 부여하는 클래스 라이브러리의 설계 및 구현', 한국정보과학회, 정보과학회논문지(C), 제3권 제5호, pp.549-557, 1997
  5. Cattell, R.G.G., The Object Database Standard: ODMG 2.0, Morgan Kaufmann, 1997
  6. Rakesh Agrawal, Shaul Dar, Narain Gehani, 'The 0++ Database Programming Language: lmplementation and Experience,' Proc. IEEE 9th Int'l Conf. Data Engineering, pp.61-70, 1993 https://doi.org/10.1109/ICDE.1993.344077
  7. 박종목, 조완섭, 황규영, 'C++ 기반 객체지향 데이타 베이스 시스템에서 직교적 지속성을 제공하기 위한 강제계승방법', 한국정보과학회, 정보과학회논문지(B), 제22권 제 11호, pp.1510-1519, 1995
  8. Deux, O., 'The 02 System,' CACM, 34(10), pp. 34-48, 1991 https://doi.org/10.1145/125223.125238
  9. Lamb,C., 'The ObjectStore Database System,' CACM, 34(10), pp, 50-63, 1991 https://doi.org/10.1145/125223.125244
  10. UniSQL Inc., UniSQL/X User's Manual, UniSQL Inc., 1995
  11. 이미영, 허대영, 김명준, '바다-III 멀티미디어 DBMS 설계', SoftEXPO'97 Conf. pp. 193-200, 1997
  12. Mi-Ok Chae, Ki-Hyung Hong, Mi-Young Lee, June Kim, Ok- ja Cho, Sungtaeg jun, YoungKyun Kim, 'Design of the Object Kernel of BADA - III:An Object-Oriented Database Management System for Multimedia Data Services,' International Workshop on Network and System Management 1995, pp.l43-152, 1995
  13. 이진수, 박순영, 채미옥, 김준, 허대영, 'MIDAS-II의 설계 및 구현', 한국정보과학회 '93 가을학술발표논문집, 제20권 2호, pp.183-196, 1993
  14. 김완석, 이용현, 정광철, 전성택, '바다-III/VM의 설계', 한국정보처리학회, '96춘계 학술발표논문집, 제3권 1호, pp.660-665, 1996
  15. 조옥자, 이미영, 전성택, '바다-III 객체 관리자의 설계 및 구현', 한국정보처리학회 '96 추계 학술발표논문집 제3권 제2호, pp.161-166, 1996
  16. Bjarne Stroustrup, The C++ Programming Language, Addison-Wesley Publishing Company, 1991