반응형
-
최근 데이터베이스 현황
-
컴퓨팅 환경이 다양해짐에 따라 멀티미디어 등과 같은 복잡한 데이터 처리에 기존 관계형 데이터베이스의 한계가 발생
- 이미지, CAD/CAM,멀티미디어 등과 같은 복잡하고 많은 양의 데이터를 취급해야 하는 새로운 분야의 업무 지원을 위해 새로운 개념의 데이터베이스 탄생이 요구됨
-
객체-지향 데이터베이스의 장점과 관계형 데이터베이스의 범용성을 통합 또는 상호 운영할 수 있는 방법이 요구됨
-
객체 지향 기법이 데이터베이스 기술에 획기적인 도약을 가져올 수 있으나 기존의 관계형 데이터베이스와 호환성이 최우선적으로 해결되어야 할 선결 과제임
-
-
-
객체-관계형 데이터 모델의개념
- 객체-지향 기술에 관한 관심 증가와 함께 기존 관계형 데이터 모델에 몇 가지 객체-지향 데이터베이스개념을 추가하여 확장한 데이터 모델
-
복합 데이터 타입과 같은 객체-지향의 풍부한 타입 시스템을 관계형 데이터 모델 내부에서 확장
- 내포 릴레이션(Nested Relations), 복합 타입, 복합값과 복합 객체의 생성
- 객체-관계형 DBMS는 확장 가능 데이터 타입, 사용자 정의 데이터 타입, 참조 타입, 사용자 정의 함수, 사용자 정의 프로시저, 사용자 정의 연산자, 대형 객체 타입, 테이블 상속 개념 등을 지원하고 있음
-
객체-관계형 DBMS 사용 예
-
Oracle 10g, illustra, informix, DB2 Universal Database 등
-
-
객체-관계형 데이터 모델의 특징
-
주요 특징
-
관계형 데이터 모델에서 객체-지향형 데이터 모델에서의 추가 데이터 타입을 다루기 위한 구조체를 포함하여 확장
- 내포 릴레이션, 복합 타입, 특수화(IS-A) 관계), 상속, 객체 식별성 등
- ISO에서 SQL 확장인 SQL-3 표준 제공
- 모델링 능력은 확장시킨 반면 관계형 데이터 모델의 기본(예, 선언적 접근 등)은 유지
- 기존의 관계형 언어와의 양립성을 향상시킴
-
-
확장된 릴레이션 지원
- 비원자 도메인 허용(정수들의 집합 또는 튜플들의 집합)
- 속성값으로 릴레이션을 허용 : 릴레이션 내의 릴레이션 허용(즉, 내포 릴레이션)
- 관계형 데이터베이스의 제1정규형에 위배되나, 관계형 데이터 모델의 수학적 기초를 유지
-
상속 지원
- 타입 상속
-
테이블 상속ER 모델에서 특수화/일반화의 의미와 유사
-
-
객체-릴레이션의 사상(ORM; Object-Relation Mapping)
-
객체 저장의 문제점
-
객체는 관계형 데이터베이스에 직접 저장될 수 없음
- 객체가 갖고 있는 데이터 이외의 정보(상태, 아이디 등)
- 관계형 DBMS의 구조에 맞지 않는 데이터(객체 간 연관 관계 정보, 상속 정보 등)
-
캡슐화 개념 손상
- 객체 외부에 실제 데이터베이스 접근을 위한 코드가 필요
-
-
ORM의 정의
- 객체 지향 데이터와 관계형 데이터베이스의 데이터를 연결시켜 주는 기술
- 응용 프로그램 내의 객체들을 관계형 DBMS에 있는 테이블로의 자동 사상
- SQL문을 사용하지 않고 데이터베이스로부터 데이터를 조회하고, 애플리케이션 객체의 상태가 변함에 따라 데이터베이스에 변경 사항이 바로 저장되도록 함
-
ORM의 주요 작업
-
클래스/객체와 테이블 사이의 사상
- 객체의 데이터베이스 저장/접근을 자동화
- 프로그램 코드가 아닌 매핑 정보를 통해 데이터 접근
- 매핑 정보 처리기를 이용해 필요한 시점에 자동으로 객체 저장/생성
- 1:1 관계, 서브셋(SUBSET) 사상, 슈퍼섹(SUPERSET) 사상 등
-
관계 모델링
- 객체의 다양한 연관 관계를 관계형 DBMS에 저장
- 상속, 1:1관계, 1:N관계, N:M 관계 등과 같이 객체의 연관 관계를 나타내기 위한 매핑 정보 작성
-
ORM 툴Hibernate, Ibatis, Oracle의 Toplink, OJB 등
-
-
테이블과 지속 클래스(Persistent Class) 사이의 사상 방법
-
1:1 관계
- 테이블의 모든 필드가 지속 클래스의 변수로 표현
- 테이블의 한 행(Row)은 지속 클래스의 하나의 객체에 해당
-
서브셋 사상
- 한 테이블을 여러 개의 클래스로 사상하는 방법
-
수직(Vertical) 사상한 테이블의 필드를 그룹화하여 여러 개의 클래스로 사상
-
수평(Horizontal) 사상한 테이블의 튜플을 구분하여 여러 개의 클래스로 사상
-
여과(Filtered) 사상수평 사상과 유사한 개념이나 한 테이블의 특성 속성값을 근거로 여과하여 클래스로 사상
-
슈퍼셋 사상
- 여러 테이블을 묶어서 하나의 클래스로 사상
- 뷰의 편의성을 위해 많이 구현됨
-
-
상속 관계를 가지는 객체와 테이블 사이의 사상
- 부모 객체와 자식 객체의 정보를 한 개의 테이블에 저장하는 방법
- 부모 객체에 해당되는 한 개의 테이블과 자식 객체의 특정 속성만을 가지고 있는 각각의 테이블에 저장하는 방법
- 부모 객체와 자식 객체의 정보를 각각 별도의 테이블들에 저장하는 방법
-
반응형
'밥벌이 > 데이터베이스' 카테고리의 다른 글
데이터베이스 설계의 개요 (0) | 2011.01.12 |
---|---|
데이터베이스 설계 단계 (0) | 2011.01.12 |
객체-지향 데이터베이스의 구현 요소 (0) | 2010.09.13 |
객체-지향 데이터베이스의 개요 (0) | 2010.09.13 |
내장(Embedded) SQL (0) | 2010.09.10 |