객체-지향 데이터베이스의 개요

반응형
  • 객체-지향 데이터베이스의 정의 및 등장 배경
    • 정의
      • 객체-지향 패러다임을 사용하는 객체-지향 프로그램 언어에서 영향을 받아 생성된 객체-지향 기술과 데이터베이스 기술의 결합체
      • 객체-지향 개념에 기반한 객체=지행 모델을 지원하는 데이터베이스 기술
    • 등장 배경
      • 컴퓨터 응용 분야의 확대 : CAD/CAM, 멀티미디어,CASE, AI, 문서, 하이퍼텍스트 등
      • 관계형 DBMS 등과 같은 기존 DBMS들의 한계 : 비정형 데이터 연산 능력 부족, 공학용 데이터 처리 곤란 등
           
  • 객체-지향 데이터베이스의 기능
    • 객체의 기본 특성을 지원하기 위해 객체-지향 패러다임 보유
      복합 객체, 객체 식별자, 타입 및 클래스,캡슐화, 상속성, 다형성, 확장성, 오버로딩, 타입 검증.추론 등
    • 기타 기능
      • 버전 관리 기능
        • 다중 버전을 저장하고 관리하며, 버전들을 비교하여 호환성 여부 결정
        • 버전들 간의 관계를 보여주는 버전 그래프 지원 등
      • 객체 질의 기능
    • 기존 관계형 DBMS의 기능
      데이터의 무결성, 연속성, 데이터 질의어, 데이터 모델과 정의어, 보고서 생성 기능, 분산 기능 등
    • 객체-지향 DBMS의 예
      ObjectSrore, Versant, O2, Gemstone
    •    
  • 객체-지향 데이터베이스의 장.다점
    • 장점
      • 객체-지향 프로그램과의 자연스런 통합 : 객체-지향 프로그램 모델 지원
      • 복잡한 객체 구조를 효과적으로 지원
        • 객체-지향 프로그램 언어가 지원하는 기본적인 데이터 타입 이외에 사용자가 정의한 데이터 타입을 지원
        • 한 객체가 다른 객체에 포함되는 중첩 객체(Nested Object)를 지원
      • 오디오, 비디오 등과 같은 비정형 데이터를 지원
      • 장시간 트랜잭션 처리 및 버전 관리 기능
      • 복잡한 객체의 생성, 조회, 삭제가 기존 관계형 데이터베이스보다 월등히 우수함
    • 단점
      • 수학적 이론 기반 부족
        객체-지향 모델의 표준 개념이 미흡하며, 가장 큰 장애 요인으로써 ODMG 활동으로 개선 중
      • 데이터 모델의 논리적/물리적 복잡성
        • 저장 공간의 낭비 : 객체 자신의 클래스뿐만 아니라 상위 클래스에도 정보가 중복될 수 있기 때문에 저장 공간의 낭비
        • 수행 속도 및 성능의 저하 유발
      • 기본 데이터베이스 기능 제공 미흡 : 기존 관계형 데이터베이스와의 호환 문제(SQL 지원 못함)가 존재하는데, 이것이 객체-지향 데이터베이스의 성장을 저해하는 요인이 됨
      • 질의 최적화의 복잡성 : 질의 최적화가 어렵고 비용이 많이 듬
           
  • 객체-지향 데이터베이스 언어
    • 접근 방법
      • SQL과 같은 질의어에 복합 객체 등과 같은 객체-지향 개념을 추가함으로써 확장하는 방법
      • 객체-지향 프로그래밍 언어를 데이터베이스를 다루도록 확장 : 지속성 지원 프로그래밍(Persistent Programming) 언어
      • 객체-지향 개념을 지원하는 새로운 데이터베이스 언어 : ODMG 2.0의 ODL, OQL 등
    • 적합한 객체-지향 질의어가 제안되지 못한 이유
      • 데이터 모델의 구조가 복잡하고 이론적인 기반이 결여되어 있어 간단하면서도 강력한 언어를 정의하는 것이 어려움
      • 캡슐화의 원리는 데이터의 구조가 사용자에게 감춰져야 하고, 반면에 질의를 위해서는 객체의 속성을 볼 수 있어야 하는 모순점이 존재
      • 복잡한 객체-지향 데이터 모델에 대해 단순한 질의어를 설계하기 어려움
반응형