객체지향 데이터 모델
- 객체지향 개념에 기반을 둔 데이터 모델
- 객체와 객체 식별자, 속성과 메서드, 클래스, 클래스 계층 및 상속, 복합 객체 등을 지원
- 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원
- 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능 제공
- 특수한 몇몇 분야에서 사용됨
객체(Object)
- 현실 세계에 존재하는 개체를 추상적으로 표현한 것
- 객체지향 데이터 모델을 구성하는 기본 요소
- 각 객체는 시스템 전체에서 유일하게 식별될 수 있는 객체 식별자
- 객체 간의 관계는 객체 식별자를 사용해 참조할 수 있음
- 객체는 상태를 의미하는 속성과 상태를 조작하는 메서드로 구성
속성(attribute)
- 관계 데이터 모델의 속성과 같은 의미
- 관계 데이터 모델의 속성은 기본으로 제공되는 데이터 타입을 도메인으로 하는 단일 값만 가질 수 있지만, 객체지향 데이터 모델의 속성은 값을 여러 개 가질 수 있음
- 사용자가 정의한 클래스뿐만 아니라 해당 클래스의 하위 클래스도 도메인으로 정의 가능
메서드(method)
- 객체에 수행할 수 있는 연산
- 객체의 속성 값을 검색하거나 추가, 삭제, 수정하는데 주로 사용
- 프로그래밍 언어의 함수와 유사한 개념
메시지(message)
클래스(class)
- 속성과 메서드를 공유하는 유사한 성질의 객체들을 하나로 그룹화한 것
- 객체는 클래스의 구성원
- 클래스 내부에 해당 클래스의 객체를 위한 데이터 구조와 메서드 구현의 세부 사항을 기술
클래스 계층(class hierarcy)
상속(inheritance)
- 상위클래스의 속성과 메서드를 자신의 모든 하위클래스에 물려주는 개념
- 단일 상속 : 하위 클래스가 단 하나의 상위클래스로부터 상속받는 것
- 다중 상속 : 하위 클래스가 여러 개의 상위클래스로부터 상속받는 것
복합 객체(composite object)
- 시스템에서 기본적으로 제공하지 않는 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체
- 사용자 정의 클래스가 도메인인 속성은 객체 식별자를 값으로 가지므로 속성 값으로 다른 객체를 참조할 수 있음
- 일반적으로 Is-Part-Of 관계가 있는 객체를 표현하는 데 사용
객체지향 질의 모델
- 질의 대상은 클래스, 질의 결과는 클래스에 속하는 객체 집합
- 클래스, 속성, 메서드, 객체 등 객체지향 개념에 기반을 두고 질의를 표현
- 단일 오퍼랜드(single operand) 질의
- 하나의 클래스 또는 하나의 클래스와 그 클래스의 하위클래스 전체를 대상으로 하는 질의
- 다중 오퍼랜드(multiple operand) 질의
- 객체지향 개념을 완벽히 표현하면서 쉽게 사용할 수 있는 표준 질의어가 없음
객체관계 데이터 모델
객체지향 데이터베이스
객체지향 프로그래밍 개념에 기반을 두고 데이터베이스의 기능을 추가하는데 목적을 두고 있음
객체관계 데이터베이스
관계 데이터베이스에 기반을 두고 사용자가 다양한 데이터 타입을 추가할 수 있도록 하는데 목적을 두고 있음
중앙 집중식 데이터베이스 시스템
데이터베이스 시스템을 물리적으로 한 장소에 설치하여 운영하는 것
분산 데이터베이스 시스템(distributed database system)
물리적으로 분산된 데이터베이스 시스템을 네트워크로 연결해 사용자가 논리적으로는 하나의 중앙 집중식 데이터베이스 시스템처럼 사용할 수 있도록 한 것
주요 구성 요소
- 분산 처리기(distribued processor)
- 지역별로 데이터를 처리할 수 있는 지역 컴퓨터
- 각 지역의 데이터베이스를 자체적으로 관리하는 DBMS를 별도로 가지고 있음
- 분산 데이터베이스(distributed database)
- 물리적으로 분산된 지역 데이터베이스 (locla database)
- 해당 지역에서 가장 많이 사용하는 데이터를 저장
- 통신 네트워크
- 분산 처리기는 통신 네트워크를 통해 자원을 공유
- 통신 네트워크에 있는 모든 분산 처리기는 특정 통신 규약에 따라 데이터를 전송하고 수신함
주요 목표
- 분산 데이터 독립성(distributed data independency)
- 데이터베이스가 분산되어 있음을 사용자가 인식하지 못하게 하는 것
- 분산 투명성(distribution transparency)이 보장
- 위치 투명성
- 중복 투명성
- 단편화 투명성
- 병행 투명성
- 장애 투명성
분산 투명성 - 위치 투명성(location transparency)
- 사용자가 접근하려는 데이터의 실제 저장 위치를 알 필요 없이 논리적 이름만으로 데이터에 접근할 수 있음
- 시스템 카탈로그에서 데이터의 모든 위치 정보를 관리하다가 데이터 접근 요구가 발생하면 이 위치 정보를 통해 데이터를 제공함
- 다른 지역에 있는 데이터에 대한 접근 요청을 처리하는 방법
- 다른 지역에 있는 데이터를 가져와 처리함
- 데이터 접근 요청을 한 트랙잭션을 데이터가 있는 지역으로 보내 처리한 후, 결과 데이터만 가져옴
- 두 가지 방법을 모두 사용해서 처리함
분산 투명성 - 중복 투명성(replecation transparency)
데이터베이스 분산 저장 방법
1) 데이터가 중복되지 않게 분할하여 지역의 분산 데이터베이스에 저장
2) 지역의 분산 데이터베이스에 데이터를 중복해서 저장 (주로 이용)
데이터 중복의 장단점
- 장점
- 한 지역에서 문제가 발생해도 동일한 데이터가 저장되어 있는 다른 지역에서 작업을 계속 수행할 수 있으므로 신뢰성과 가용성이 높아진다
- 동일한 테이터가 저장된 여러 지역에서 병렬 처리를 수행할 수 있어 데이터 처리 성능이 향상된다.
- 데이터 처리 요청이 한 지역에 집중되지 않고 여러 지역에 분산되므로 처리 부담을 줄일 수 있다.
- 단점
- 동일한 테이터를 중복 저장하므로 저장 공간을 많이 사용
- 데이터를 변경하려면 중복 저장된 데이터를 모두 함께 변경해야 하므로 비용이 증가, 변경 도중 문제가 생겨 데이터 불일치가 발생할 수도 있다.
단편화(fragmentation)
- 의미
하나의 릴레이션을 더 작은 조각 (단편)으로 나누고 각 조각을 별개의 릴레이션으로 처리하는 것
- 장점
- 각 조각이 전체 릴레이션의 일부가 되기 때문에 저장 공간을 적게 사용하고, 관리할 데이터도 줄어듦
- 데이터 중복의 장점은 그대로 취하면서 데이터 중복의 단점을 보완할 수도 있음
수행 조건
-
완전성
전체 릴레이션의 모든 데이터는 어느 한 조각에는 꼭 속해야 함
-
회복성
단편화된 조각들로부터 원래의 전체 릴레이션을 회복할 수 있어야 함
-
분리성
전체 릴레이션의 모든 조각을 서로 중복되지 않게 분리해야 함
방법 - 수평적 단편화
릴레이션을 수평적으로 단편화하는 것, 릴레이션을 투플(행) 단위로 나눔
방법 - 수직적 단편화
릴레이션을 수직적으로 단편화하는 것, 릴레이션을 속성 (열) 단위로 나눔
방법 - 혼합 단편화
수평적 단편화와 수직적 단편화를 모두 사용하여 릴레이션을 나눔
분산 투명성 - 단편화 투명성(fragmentation transparency)
단편화된 데이터를 여러 지역에 나누어 저장하지만 사용자는 데이터가 단편화된 것을 인식할 수 없도록 하는 것
분산 투명성 - 병행 투명성(concurrency transparency)
분산 데이터베이스와 관련된 트랜잭션들이 동시에 수행되더라도 결과는 항상 일관성을 유지하는 것
분산 투명성 - 장애 투명성 (failure transparency)
특정 지역 시스템에 문제가 발생하더라도 전체 시스템이 작업을 계속 수행할 수 있는 것
분산 데이터베이스
기본 구조
-
전역 개념 스키마(global conceptual schema)
- 분산 데이터베이스에 저장할 모든 데이터 구조와 제약조건을 정의
- 데이터베이스 안에 존재하는 모든 릴레이션 스키마의 집합
- 데이터 분산은 고려하지 않고 정의함
-
단편화 스키마(fragmentation schema)
- 전역 개념 스키마를 논리적으로 분할하는 방법인 단편화를 정의
- 전역 개념 스키마와 각 조각 스키마의 대응 관계도 정의
-
할당 스키마(allocation schema)
- 각 조각 스키마의 인스턴스를 물리적으로 저장해야 되는 지역을 정의
-
지역 스키마(local schema)
- 지역별로 저장하고 있는 데이터 구조와 제약조건을 정의
질의 처리
질의 처리 전략선택 기준(고려사항)
- 디스크 접근 횟수
- 네트워크에서 데이터를 전송하는 비용
- 하나의 질의문을 분해하여 여러 지역에서 병렬 처리함으로써 얻는 성능상 이점
장점
-
신뢰성과 가용성 증대
- 장애 발생 시 다른 지역의 데이터베이스를 이용해 작업을 계속 수행할 수 있음
-
지역 자치성과 효율성 증대
- 데이터베이스를 지역별로 독립적으로 관리
- 데이터 요청에 대한 응답 시간을 줄이고 통신 비용도 절약됨
-
확장성 증대
- 처리할 데이터 양이 증가하면 새로운 지역에 데이터베이스를 설치하여 운영하면 됨
단점
- 중앙 집중식 시스템에 비해 설계 및 구축 비용이 많이 발생함
- 여러 지역에 대한 관리가 복잡하고 비용도 많이 발생함
- 중앙 집중식 시스템에 비해 추가적인 통신 비용이나 처리 비용이 발생함
중앙집중식데이터베이스 시스템의 질의 처리 전략선택 기준
데이터베이스가 위치한 디스크에 접근하는 횟수를 이용
멀티미디어 데이터베이스 시스템
- 데이터의 각 타입
- e.g.) 문자타입, 숫자 타입, 그래픽 타입, 이미지 타입, 비디오 타입 등
여러 미디어의 조합으로 이루어진 데이터
유형
텍스트 - 문자로 구성된 데이터
그래픽 - 수학 공식을 기반으로 제작된 벡터 이미지 데이터
이미지 - 정적 이미지나 사진과 같이 픽셀 단위로 표현되는 비트맵 이미지
비디오 - 동영상, 애니메이션
오디오 - 음성, 소리, 음악
특성
- 대용량 데이터
- 일반적으로 크기가 수 킬로바이트에서 수십 메가바이트 이상
- 압축해서 저장해야 하므로 일반 데이터와는 다른 구조로 별도의 저장 공간을 구성해 관리해야 함
- 복잡한 구조
- 원시 데이터(raw data)
- 등록 데이터(registration data)
- 멀티미디어 데이터의 특성과 필요한 정보를 별도로 추출한 데이터
- 서술 데이터(description data)
- 멀티미디어 데이터를 검색할 때 사용되는 데이터
- 멀티미디어 데이터에 지정된 키워드나 자세한 설명 등
- 복잡한 검색 방법
- 설명 기반 검색(description-based retrieval)
- 멀티미디어 데이터의 특성을 나타내는 키워드나 자세한 설명을 멀티미디어 데이터와 함께 저장해두었다가 검색에 이용
- 내용 기반 검색(content-based retrieval)
- 멀티미디어 데이터의 실제 내용을 검색에 이용
- 특정 객체를 포함한 멀티미디어 데이터 검색
발전 과정
- 관계 데이터베이스에서의 멀티미디어 데이터 처리
- 관계 데이터베이스에 멀티미디어 데이터를 위한 새로운 데이터 타입을 추가하여 멀티미디어 데이터를 저장하고 처리하는 방법
- 이진 대형 객체(BLOB; Binary Large Object) 데이터 타입
- 관계 데이터베이스가 제공하는 이론과 다양한 기법을 그대로 이용할 수 있음
- 멀티미디어 데이터가 가진 시공간적인 특성 표현, 다양한 미디어 데이터들의 통합 모델링 기능, 사용자의 요구에 맞는 다양한 여난 표현 및 조작 기능 등을 거의 제공 못함
- 객체지향 데이터베이스에서의 멀티미디어 데이터 처리
- 멀티미디어 데이터를 객체와 클래스로 표현하고 데이터 추상화, 캡슐화 상속 등의 개념을 지원
- 멀티미디어 데이터의 복잡하고 다양한 모델링 요구 사항을 완벽히 만족시키지 못함
관리 시스템의 구성
- 멀티미디어 데이터베이스 시스템의 요구 사항
- 데이터베이스 시스템의 기본 기능을 제공하면서 멀티미디어 데이터 특성에 따른 새로운 사항도 고려해야 함
- 대용량이나 시공간적 연속성과 같은 멀티미디어 데이터만의 특성을 지원하려면 데이터베이스 관리 시스템의 역할이 중요
-
멀티미디어 데이터 관리 기능을 제공하는 데이터베이스 관리 시스템 예
UniSQL, 오라클, 인포믹스, O2, DB2 UDB 등
-
파일 시스템을 이용하는 방식
- 초기에 많이 사용하던 방식
- 응용 프로그램에 필요한 멀티미디어 데이터를 파일로 저장하고 관리
- 프로그래밍 언어로 데이터를 처리하는 코드를 직접 작성하여 응용 프로그램에 포함시킴
- 응용 프로그램 개발이 어렵고, 복잡한 멀티미디어 데이터를 파일의 단순한 저장 구조에 저장하기 어려움
- 데이터의 동시 공유, 회복, 보안 등 데이터베이스 관리 시스템의 고급 기능을 제공하기 어려움
-
관계 데이터베이스 관리 시스템을 이용하는 방식
- 텍스트 같은 일반 데이터는 관계 데이터베이스에 저장하고, 이미지나 비디오 같은 데이터는 파일에 저장
- 지리 정보 시스템(GIS; Geographical Information System) 등에서 많이 사용
- 파일에 저장된 데이터에 대한 처리 요청을 프로그래밍 언어로 작성하고, 관계 데이터베이스에 저장된 데이터에 대한 처리 요청은 SQL로 작성
- 파일에 저장된 멀티미디어 데이터에 데이터베이스 관리 시스템의 고급 기능을 제공할 수 없음
-
확장된 관계 데이터베이스 관리 시스템을 이용하는 방식
- 텍스트뿐만 아니라 멀티미디어 데이터를 모두 저장할 수 있도록 기존의 관계 데이터베이스 관리 시스템을 확장
- 멀티미디어 데이터에 데이터베이스 관리 시스템의 고급 기능을 제공할 수 있지만, 완벽히 지원하기 어렵고 멀티미디어 데이터의 특성을 반영한 처리 요청을 SQL로 표현하기 쉽지 않음
-
객체지향 데이터베이스 관리 시스템을 이용하는 방식
- 객체지향 개념을 지원하는 데이터베이스 관리 시스템을 이용해 멀티미디어 데이터를 처리하는 데 필요한 다양한 기능 제공
- 기존 관계 데이터베이스 관리 시스템에서 제공하는 동시성 제어, 질의 최적화, 회복 기능 등의 고급 기능을 제공하지 못함
질의
- 특징
- 질의 유형
- 텍스트 질의
- 비디오 질의
- 이미지 질의
- 공간 질의
질의 처리 기법
-
매칭(matching) 기법
저장된 데이터와 질의 조건으로 주어진 데이터 간의 유사도를 수학 함수로 계산하여, 유사도가 높은 데이터를 검색
-
랭킹(ranking) 기법
질의 조건과의 관련 정도에 따라 정렬하여, 관련성이 높은 결과부터 제공
-
필터링(filtering) 기법
질의 조건과의 관련성이 적은 데이터를 단계적으로 제거하여 검색 범위를 줄여가면서 검색
-
인덱스(index) 기법
인덱스 구조를 이용해 질의 조건에 적합한 데이터를 검색
웹 데이터베이스(web database)
데이터 웨어하우스(data warehouse)
개념
-
데이터베이스 시스템에서 의사 결정에 필요한 데이터를 미리 추출하여 원하는 형태로 변화하고 통합한 읽기 전용의 데이터 저장소
-
데이터베이스에 저장된 수많은 데이터 중에서 의사 결정에 도움이 되는 데이터를 빠르고 정확히 추출할 수 있는 방법 중 하나
- 의사 결정 지원 시스템(DSS; Decision Support System) 구축에 활용 가능
-
여러 개의 데이터베이스 시스템을 대상으로 할 수도 있음
특징
-
주제 지향적(subject-oriented) 내용
일반 데이터베이스는 업무 처리 중심의 데이터로 구성되지만 데이터 웨어하우스는 의사 결정에 필요한 주제를 중심으로 데이터를 구성
-
통합된(integrated) 내용
데이터 웨어하우스는 내부적으로 데이터가 항상 일관된 상태를 유지하도록 여러 데이터베이스에서 추출한 데이터를 통합하여 저장
-
비소멸성(nonvolatile)을 가진 내용
일반 데이터베이스의 데이터는 삽입, 삭제, 수정 작업이 자주 발생하지만 데이터 웨어하우스는 검색 작업만 수행되는 읽기 전용의 데이터를 유지
-
시간에 따라 변하는 (time-variant) 내용
- 일반 데이터베이스는 현재의 데이터만 유지하지만 데이터 웨어하우스는 데이터 간의 시간적 관계나 동향을 분석해 의사 결정에 반영할 수 있도록 현재와 과거 데이터를 함께 유지
- 각 시점의 데이터를 의미하는 스냅샷 (snapshot)을 주기적으로 유지