객체지향 데이터베이스
- 관계 데이터베이스는 관계 데이터 모델의 기능적 제약조건과 SQL의 표현력의 한계로 인해 다양한 응용 분야에 부적합하다는 문제가 제기되었다.
- 따라서 관계 데이터베이스와 다른 형태의 데이터베이스들이 연구되었는데 그중 하나가 객체지향 데이터 모델이다.
- 객체지향 데이터베이스의 데이터 모델과 질의어는 표준화되지 못하여 한정적인 분야에서만 사용된다.
객체지향 데이터 모델
- 객체지향 데이터 모델은 객체지향 개념에 기반을 둔 데이터 모델이다.
- 객체지향 모델은 다양한 응용 분야의 데이터 모델링을 위한 새로운 요구 사항을 지원하고, 의미상 관계가 있는 데이터베이스 구조를 표현하려고 할 때 강력한 설계 기능을 제공한다.
- 객체와 객체 식별자
- 객체는 현실 세계에 존재하는 개체를 추상적으로 표현한 것이다. 각 객체는 시스템 전체에서 유일하게 식별될 수 있는 객체 식별자를 가지고, 객체 식별자를 특정 객체에 접근하기 위한 유일한 수단으로 사용한다.
- 객체 간의 관계는 객체 식별자를 사용해 참조할 수 있다.
- 속성과 메서드
- 객체는 객체의 상태를 나타내는 하나 이상의 속성과 객체의 상태를 조작할 수 있는 하나 이상의 메서드로 구성된다.
- 객체지향 데이터 모델의 속성은 관계 데이터 모델의 속성과 같은 의미로 볼 수 있지만, 객체지향 데이터 모델은 속성 값을 여러 개 가질 수 있고 관계 데이터 모델의 속성 값은 하나만 가질수 있다는 차이점이 있다.
- 객체지향 데이터 모델의 속성은 사용자가 정의한 클래스, 클래스의 하위 클래스도 도메인으로 정의할 수 있다.
- 메서드는 객체에 수행할 수 있는 연산이며 객체의 속성 값을 검색하거나 추가, 삭제, 수정하는데 주로 사용한다.
- 객체의 속성과 메서드에 접근하려면 메시지를 사용해야 한다.
- 클래스
- 클래스는 속성과 메서드를 공유하는 유사한 성질의 객체들을 하나로 그룹화한 것이다.
- 객체는 클래스의 구성원으로 클래스 인스턴스(객체 인스턴스)라고 한다.
- 클래스 내부에는 해당 클래스의 객체를 위한 데이터 구조와 메서드 구현에 관한 세부 사항을 기술한다.
- 클래스 계층과 상속
- 클래스를 단계적으로 세분화하면 클래스 간의 계층 관계가 발생하여 클래스 계층이 하나 형성된다.
- 클래스 계층에서 상위에 있는 클래스를 상위클래스라 하고 하위에 있는 클래스를 하위클래스라 한다.
- 상속이란 상위 클래스의 속성과 메서드를 자신의 모든 하위 클래스에 물려주는 것이다.
- 하위 클래스가 하나의 상위클래스에서 상속받는 것을 단일 상속이라 하고, 여러 상위 클래스에서 상속 받는 것을 다중 상속이라 한다.
- 복합 객체
- 복합 객체는 시스템에서 기본으로 제공하지 않는 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체를 복합 객체라 한다.
- 복합 객체에서 사용자 정의 클래스를 도메인으로 하는 속성은 해당 클래스에 속하는 객체 인스턴스의 객체 식별자를 값으로 가지게 된다.
- 일반적으로 복합 객체는 Is-Part-Of 관계가 있는 객체를 표현하는 데 사용한다.
객체지향 질의 모델
- 관계 데이터베이스에서는 질의 대상과 결과가 모두 릴레이션이지만, 객체지향 데이터베이스에서는 질의 대상이 클래스이고 질의 결과는 클래스에 속하는 객체 집합이다.
- 객체지향 데이터베이스에서는 객체지향 개념을 기반으로 클래스, 속성, 메서드, 객체 등을 이용해 질의를 표현한다.
- 클래스 하나 또는 클래스 하나와 해당 클래스의 하위 클래스 전체를 대상으로 하는 질의를 단일 오퍼랜드 질의라 하고 여러 클래스를 대상으로 하는 질의를 다중 오퍼랜드 질의라고 한다.
객체관계 데이터베이스
- 객체지향 데이터베이스가 특수한 몇몇 분야에서만 많이 사용되는 한계를 극복하기 위해 관계 데이터 모델과 객체지향 모델의 장점을 모두 가진 객체관계 데이터 모델이 등장하였다.
- 객체관계 데이터 모델은 릴레이션, 클래스, 메서드, 클래스, 상속, 캡슐화, 복합 객체등을 모두 지원한다.
- 객체관계 데이터 모델은 SQL을 표준으로 채택하였으며 관계 데이터베이스에서 사용하는 질의 기능에 객체지향 특성도 함께 가지고 있다.
- 객체지향 데이터베이스는 객체지향 프로그래밍 개념에 기반을 두고 데이터베이스의 기능을 추가하는 데 목적을 두고 있고, 객체관계 데이터베이스는 관계 데이터베이스에 기반을 두고 사용자가 더 풍부한 데이터 타입을 추가할 수 있도록 하는데 목적을 두는 차이점이 있다.
분산 데이터베이스 시스템
- 데이터베이스 시스템을 물리적으로 한 장소에 설치하여 운영하는 것을 중앙 집중식 데이터베이스라 한다.
- 반대로 데이터베이스 시스템을 여러 곳에 분산 설치하여 네트워크로 연결한 것을 분산 데이터베이스 시스템이라 한다.
분산 데이터베이스 시스템의 구성
- 분산 데이터베이스 시스템은 분산 처리기, 분산 데이터베이스, 통신 네트워크로 구성된다.
- 분산 처리기
- 분산 데이터베이스 시스템은 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터가 필요하다. 지역 컴퓨터를 분산 처리기라고 한다. 분산 처리기는 지역에서 운영하는 데이터베이스를 자체적으로 관리할 수 있는 데이터베이스 관리 시스템을 가지고 있다.
- 분산 데이터베이스
- 분산 데이터베이스는 물리적으로 분산된 지역 데이터베이스다. 분산 데이터베이스는 해당 지역의 분산 처리기와 함께 지역의 데이터 처리를 지원한다. 분산 데이터베이스는 보통 해당 지역에서 가장 많이 사용하는 데이터를 저장한다. 그리고 각 지역의 분산 처리기에 설치된 데이터베이스 관리 시스템이 이를 관리한다.
- 통신 네트워크
- 지역의 분산 처리기는 네트워크를 통해 자원을 공유하기 때문에 논리적으로는 하나의 시스템과 같은 기능을 제공할 수 있다. 통신 네트워크에 있는 모든 분산 처리기는 특정 통신규약에 따라 데이터를 전송하고 수신한다. 그런데 통신 네트워크는 그 구조가 데이터 통신에 많은 영향을 주므로 효율적으로 설계해야 한다.
분산 데이터베이스 시스템의 주요 목표
- 분산 데이터베이스 시스템에서는 데이터베이스가 분산되어 있음을 사용자가 인식하지 못하게 하는 것이 중요하며 이것을 분산 데이터 독립성이라 한다.
- 분산 데이터 독립성이 분산 데이터베이스 시스템의 주요 목표이다.
- 위치투명성
- 위치 투명성은 데이터베이스가 지역적으로 분산되어 있지만 사용자가 실제 저장 위치를 알 필요 없이 데이터베이스의 논리적인 이름만으로 데이터에 접근할 수 있다는 의미이다.
- 데이터베이스 관리 시스템이 시스템 카탈로그에서 데이터의 모든 위치 정보를 관리하다가 데이터 접근에 대한 요구가 발생하면 이 정보를 제공함으로써 데이터에 대한 접근을 수행한다.
- 분산 데이터베이스에서의 데이터 요청
- 다른 지역에 있는 데이터를 가져와 처리한다.
- 데이터 접근 요청을 하는 트랜잭션을 데이터가 있는 지역으로 보내 처리한 후, 결과 데이터만 가져온다.
- 위 두 가지 방법을 모두 사용해 처리한다.
- 중복 투명성
- 데이터베이스를 여러 지역에 분산해 저장할 때 데이터가 중복되지 않게 분할하여 지역의 분산 데이터베이스에 저장하는 것과 지역의 분산 데이터베이스에 데이터를 중복하여 저장하는 방법이 있다.
- 데이터를 여러 지역에 중복 저장하면 한 지역의 데이터베이스에 문제가 생기더라도 다른 지역 데이터베이스를 이용할 수 있기 때문에 신뢰성과 가용성을 높일 수 있다.
- 데이터를 중복해서 저장하면 단점이 발생하지만 데이터 처리의 효율성, 신뢰성, 가용성과 같은 장점이 크기 때문에 분산 데이터베이스에서는 여러 지역 데이터베이스에 데이터를 중복해서 저장하는 방법을 많이 사용한다.
- 분산 데이터베이스 시스템에서 데이터를 중복하여 저장하는 방법에는 완전 중복과 부분 중복이 있다. 완전 중복은 동일한 데이터를 둘 이상의 지역에 있는 분산 데이터베이스에 저장하는 것이고, 부분 중복은 일부 데이터만 중복하여 저장하는 것이다. 지역의 분산 데이터베이스에 중복되는 데이터가 전혀 없는 경우를 특히 분할 데이터베이스라고 한다.
- 단편화 투명성
- 단편화는 하나의 릴레이션을 더 작은 조각으로 나누고 각 조각을 별개의 릴레이션으로 처리하는 것이다. 단편화를 하면 각 조각이 전체 릴레이션이 아니라 전체 릴레이션의 일부가 되기 때문에 저장 공간을 적게 사용할 뿐만 아니라, 관리할 데이터 수도 줄어든다. 그러므로 단편화를 통해 데이터 중복의 장점은 그대로 취하면서 데이터 중복의 단점을 보완할 수 있다.
- 단편화 방법에는 수평적 단편화, 수직적 단편화, 혼합 단편화가 있다.
- 병행 투명성
- 병행 투명성은 분산 데이터베이스와 관련된 트랜잭션들이 동시에 수행되더라도 결과는 항상 일관성을 유지하는 것이다.
- 장애 투명성
- 장애 투명성은 특정 지역 시스템에 문제가 발생하더라도 전체 시스템이 작업을 계속 수행할 수 있는 것이다.
분산 데이터베이스의 구조
- 전역 개념 스키마
- 전역 개념 스키마는 분산 데이터베이스에 저장할 모든 데이터 구조와 제약조건을 정의한다. 전역 개념 스키마를 정의할 때 데이터의 분산은 고려하지 않는다. 전역 개념 스키마는 관계 데이터 모델의 관점에서 보면 데이터베이스 안에 존재하는 모든 릴레이션 스키마의 집합이다.
- 단편화 스키마
- 분산 데이터베이스에서는 분산을 위해 전체 데이터 구조도 여러 조각으로 분할해야 한다. 단편화 스키마는 전역 개념 스키마를 분할하는 방법인 단편화를 정의한다. 그리고 전역 개념 스키마와 각 조각 스키마의 대응 관계도 정의한다.
- 할당 스키마
- 단편화는 전역 개념 스키마를 논리적으로 분할한 것이고 분할된 각 조각 스키마의 인스턴스는 실제로 하나 이상의 지역에 물리적으로 저장된다. 할당 스키마는 각 조각 스키마의 인스턴스를 물리적으로 저장해야 되는 지역을 정의한다.
- 지역 스키마
- 지역 스키마는 지역별로 저장하고 있는 데이터 구조와 제약조건을 정의한다.
분산 데이터베이스의 질의 처리
중앙 집중식 데이터베이스 시스템에서는 최선의 질의 처리 전략을 선택하는 기준으로 데이터베이스가 위치한 디스크에 접근하는 횟수를 이용한다.
반면, 분산 데이터베이스 시스템에서는 디스크 접근 횟수뿐만 아니라, 네트워크에서 데이터를 전송하는 비용과 하나의 질의문을 분해하여 여러 지역에서 병렬 처리함으로써 얻는 성능상의 이점도 고려한다.
분산 데이터베이스 시스템의 장, 단점
- 장점
- 신뢰성과 가용성 증대
- 중앙 집중식 데이터베이스 시스템에서는 장애가 발생하면 전체 시스템이 작업을 중지하지만, 분산 데이터베이스 시스템에서는 장애가 발생하지 않은 다른 지역의 데이터베이스를 이용해 작업을 계속 수행할 수 있다. 즉, 분산 데이터베이스를 이용하면 시스템의 신뢰성과 가용성을 높일 수 있다.
- 지역 자치성과 효율성 증대
- 분산 데이터베이스 시스템에서는 데이터베이스를 지역별로 독립적으로 관리할 수 있다. 특히 가장 많이 사용하는 지역에 해당 데이터를 분산시켜 저장하면 데이터 요청에 대한 응답 시간을 줄이고 통신 비용도 절약된다.
- 확장성 증대
- 처리할 데이터의 양이 증가하면 중앙 집중식 데이터베이스 시스템에서는 작동을 중단하고 시스템 자체를 교체해야 한다. 반면, 분산 데이터베이스 시스템에서는 새로운 지역에 데이터베이스를 설치하여 운영하면 되기 때문에 확장이 쉽다.
- 신뢰성과 가용성 증대
- 단점
- 비용
- 분산 데이터베이스 시스템은 데이터의 분산, 단편화, 중복 등 중앙 집중식 데이터베이스 시스 템에 비해 추가로 고려할 사항이 많아 설계 및 구축 비용이 더 많이 든다.
- 데이터 처리 요청이 발생하면 여러 지역에 있는 분산 데이터베이스를 함께 이용해야 하기 때문에 중앙 집중식 데이터베이스 시스템에는 필요 없는 추가통신 비용이나 처리 비용이 발생한다.
- 관리의 복잡성
- 물리적으로 분산된 여러 지역을 모두 관리해야 하기 때문에 중앙 시스템만 관리하면 되는 중앙 집중식 데이터베이스 시스템보다 관리가 복잡하다.
- 비용
멀티미디어 데이터베이스 시스템
- 이미지나 동영상 같은 멀티미디어 데이터를 이용하는 다양한 응용 분야가 나타나면서 멀티미디어 데이터를 관리하고 이에 대한 질의를 효율적으로 처리하는 멀티미디어 데이터베이스 시스템의 필요성이 늘고 있다.
- 멀티미디어 데이터는 일반 데이터와는 다른 특성이 있다. 그래서 기존의 데이터베이스 시스템을 그대로 이용하면 여러 문제가 발생할 수 있어 멀티미디어 데이터를 위한 데이터베이스 시스템이 따로 필요하다.
- 멀티미디어 데이터베이스 시스템은 숫자나 문자 데이터와 같은 일반 데이터를 처리하는 기능뿐 아니라 영상, 음향 및 애니메이션과 같은 멀티미디어 데이터도 효과적으로 저장하고 처리하는 기능을 함께 제공해야 한다.
멀티미디어 데이터의 특성
- 문자나 숫자 같은 데이터뿐 아니라 그래픽, 이미지, 비디오, 오디오 등 다양한 타입의 데이터가 존재한다. 일반적으로 데이터의 각 타입을 미디어라 하고, 여러 미디어의 조합으로 이루어진 데이터를 멀티미디어 데이터라고 한다.
- 대용량 데이터
- 멀티미디어 데이터는 일반적으로 숫자나 문자 데이터와 달리, 크기가 수 킬로바이트에서 수십 메가바이트 이상이기 때문에 압축해서 저장해야 한다.
- 일반 데이터와는 다른 구 조로 별도의 저장 공간을 구성하여 관리해야 한다.
- 검색 방법이 복잡한 데이터
- 멀티미디어 데이터는 일반 데이터와 달리 검색 방법이 복잡하다. 멀티미디어 데이터를 검색하는 방법에는 설명 기반 검색과 내용 기반 검색이 있다.
- 설명 기반 검색
- 초기의 멀티미디어 검색 시스템에서 많이 사용한 방법이다. 멀티미디어 데이터의 특성을 나타내는 키워드나 자세한 설명을 멀티미디어 데이터와 함께 저장해 두었다가 이를 검색에 이용한다. 많은 양의 멀티미디어 데이터를 처리하는 데 적합하지 않고, 설명을 작성하는 사람의 주관적인 관점이 반영되어 같은 멀티미디어 데이터에 대한 설명이 달라질 수 있다.
- 내용 기반 검색
- 멀티미디어 데이터의 실제 내용을 이용하여 검색하는 방법이다. 특정 객체를 포함한 멀티미디어 데이터를 검색한다. 멀티미디어 데이터가 포함한 내용에 대한 정보를 추출해서 데이터베이스에 저장하는 기술과 이 정보를 이용해 사용자의 질의를 처리하는 멀티미디어 데이터용 질의 처리 기법이 별도로 필요하다.
- 구조가 복잡한 데이터
- 멀티미디어 데이터는 원시 데이터, 등록 데이터, 서술 데이터등으로 구성된다.
- 원시 데이터는 텍스트, 그래픽, 이미지, 비디오, 오디오 등 기본 타입의 데이터다.
- 등록 데이터는 멀티미디어 데이터의 특성과 필요한 정보를 별도로 추출한 데이터이며 원시 데이터를 처리하는 데 도움이 된다.
- 서술 데이터는 멀티미디어 데이터를 검색할 때 사용되는 것으로 멀티미디어 데이터에 지정된 키워드나 자세한 설명 등이 이에 해당한다.
- 멀티미디어 데이터들은 공간이나 시간적으로 관련이 있는 경우가 많으므로 이러한 복잡한 관계성을 표현하고 관리할 수 있는 기술이 필요하다.
멀티미디어 데이터베이스의 발전 과정
- 멀티미디어 데이터를 저장하고 처리하는 방법은 크게 두 가지로 발전하였다.
- 관계 데이터베이스 시스템을 확장하여 멀티미디어 데이터를 처리하는 것과 객체지향 데이터베이스를 확장하여 멀티미디어 데이터를 처리하는 것이다.
- 관계 데이터베이스에서의 멀티미디어 데이터 처리
- 관계 데이터베이스에 멀티미디어 데이터를 위한 새로운 데이터 타입을 추가하여 멀티미디어 데이터를 저장하고 처리하는 방법이다.
- 멀티미디어 데이터베이스 개발 초기에 이미지와 같은 대용량 멀티미디어 데이터를 저장하고 관리하기 위해 많이 사용했다.
- 이 방법을 적용한 시스템으로 GENESIS, STAIRS 등이 있고 이러한 시스템에서는 이미지, 그래픽 등의 대용량 멀 티미디어 데이터를 처리하기 위해 이진 대형 객체라는 새로운 데이터 타입을 지원한다.
- 관계 데이터베이스를 확장하여 멀티미디어 데이터를 저장하고 관리하면 관계 데이터베이스 가 제공하는 안정적인 이론과 다양한 기법을 그대로 이용할 수 있다는 장점이 있다.
- 그러나 멀티미디어 데이터를 단순히 저장하고 검색하는 일부 기능만 제공할 뿐, 멀티미디어 데이터가 가진 시공간적인 특성 표현, 다양한 미디어 데이터들의 통합 모델링 기능, 사용자의 요구에 맞는 다양한 연산 표현 및 조작 기능 등은 거의 제공하지 못한다는 한계가 있다.
- 객체지향 데이터베이스에서의 멀티미디어 데이터 처리
- 1980년대 후반부터 객체지향 데이터베이스를 멀티미디어 데이터 처리에 이용하려고 시도하기 시작했다. 객체지향 데이터베이스는 다양한 관계의 표현, 데이터 추상화와 캡슐화, 상속 등 멀티미디어 데이터를 처리하는 데 필요한 다양한 기능을 제공한다. 멀티미디어 데이터를 객체지향 개념에 기반을 두고 처리하는 시스템으로는 ORION, MULTOS, MINOS 등이 있다.
- 이 시스템들의 공통 특징은 멀티미디어 데이터를 객체와 클래스로 표현하고, 데이터 추상화와 캡슐화, 상속 등의 개념을 지원한다는 것이다. 객체지향 데이터베이스를 이용해 멀티미디어 데이터를 처리하는 시스템도 멀티미디어 데이터의 복잡하고 다양한 모델링 요구 사항을 완벽히 만족시키지 못한다는 한계가 있다.
멀티미디어 데이터베이스 관리 시스템의 구성
- 멀티미디어 데이터는 일반 데이터와 달리 보통 대용량이고 시공간적 연속성을 가지고 있다.
- 대용량이나 시공간적 연속성과 같은 멀티미디어 데이터만의 특성을 지원하려면 멀티미디어 데이터베이스 시스템에서 데이터베이스 관리 시스템의 역할이 중요하다.
- 멀티미디어 데이터를 관리하는 기능을 제공하는 상용화된 데이터베이스 관리 시스템으로 는 UniSQL, 오라클, 인포믹스, 02, DB2 UDB 등이 있다.
- 대상으로 하는 미디어 데이터의 유형에 따라 멀티미디어 데이터베이스 관리 시스템의 구성이 달라진다.
- 미디어 데이터 하나를 대상으로 하는 경우와 대용량의 텍스트, 이미지, 비디오 등 여러 종류의 미디어 데이터를 대상으로 하는 경우의 데이터베이스 관리 시스템은 내부 구조가 다를 수밖에 없기 때문이다. 일반적으로는 다양한 유형의 미디어 데이터를 지원하는 데이터베이스 관리 시스템을 더 요구한다.
- 파일 시스템을 이용하는 방식
- 초기에 많이 사용하던 방식으로, 응용 프로그램에 필요한 멀티미디어 데이터를 파일로 저장하고 관리한다.
- 프로그래밍 언어로 데이터를 처리하는 코드를 직접 작성하여 응용 프로그램에 포함시킨다. 다양한 응용 분야에서 사용할 수 있지만 데이터를 응용 프로그램에서 직접 관리해야 하기 때문에 응용 프로그램 개발이 어렵고, 파일의 단순한 저장 구조에 복잡한 멀티미디어 데이터를 저장하기도 쉽지 않다. 그리고 데이터의 동시 공유, 회복, 보안 등 데이터베이스 관리 시스템의 고급 기능을 제공하기 어렵다는 문제가 있다.
- 관계 데이터베이스 관리 시스템을 이용하는 방식
- 텍스트 같은 일반 데이터는 관계 데이터베이스에 저장하고, 이미지나 비디오 같은 데이터는 파일에 저장한다.
- 지리 정보 시스템 등에서 많이 사용한다. 파일에 저장된 데이터에 대한 처리 요청을 프로그래밍 언어로 작성하고, 관계 데이터 베이스에 저장된 데이터에 대한 처리 요청을 SQL로 작성한다.
- 데이터 처리 요청을 위해 두 가지 방법을 모두 지원해야 한다는 부담이 있다. 그리고 파일에 저장되는 멀티미디어 데이터에 데이터베이스 관리 시스템의 고급 기능을 제공할 수 없다는 문제가 있다.
- 확장된 관계 데이터베이스 관리 시스템을 이용하는 방식
- 텍스트뿐만 아니라 이미지, 오디오, 비디오 같은 대용량의 멀티미디어 데이터를 모두 저장할 수 있도록, 기존의 관계 데이터베이스 관리 시스템을 확장한 방식이 있다.
- 모든 멀티미디어 데이터에 데이터베이스 관리 시스템의 고급 기능을 제공할 수 있지만, 이 특성을 완벽히 지원하기 어렵고, 멀 티미디어 데이터의 특성을 반영한 처리 요청을 SQL로 표현하기도 쉽지 않다.
- 객체지향 데이터베이스 관리 시스템을 이용하는 방식
- 객체지향 개념을 지원하는 데이터베이스 관리 시스템을 이용하는 방식이다.
- 객체지향 데이터베이스 관리 시스템은 다양한 관계의 표현, 데이터 추상화와 캡슐화, 상속 등의 객체 지향 개념을 지원하므로 멀티미디어 데이터를 처리하는 데 필요한 여러 가지 기능을 제공한다. 하지만 기존 관계 데이터베이스 관리 시스템에서 제공하는 동시성 제어, 질의 최적화, 회복 기능 등의 고급 기능을 제공하지 못하는 경우가 많다.
멀티미디어 데이터의 질의
- 멀티미디어 데이터에 대한 검색 요청을 기존의 SQL로 완벽하게 표현하기 어려울 뿐만 아니라, 경우에 따라서는 불가능할 수도 있다. 멀티미디어 데이터에 대한 사용자 질의를 적절히 표현하고 처리하려면 멀티미디어 데이터베이스 관리 시스템만의 질의 처리 기법이 필요하다.
- 멀티미디어 데이터베이스에서는 데이터 자체에 대한 질의보다는 데이터에 포함된 특정 객체, 데이터에 대한 설명이나 키워드를 이용한 질의를 주로 사용한다. 멀티미디어 데이터에 대한 질의 처리가 어려운 가장 큰 이유는 미디어에 따라 다양한 유형의 질의가 존재하기 때문이다.
- 멀티미디어 데이터의 질의 유형
- 텍스트 질의
- 사용자가 제시한 키워드를 포함하는 문서를 검색하는 질의
- 이미지 질의
- 사용자가 제시한 키워드와 관련 있는 이미지를 검색하는 내용 검색이나, 사용자가 제시한 이미지와 유사한 이미지를 검색하는 유사도 검색 질의
- 비디오 질의
- 비디오는 장면이라는 여러 정지 화면으로 구성되므로, 장면을 대상으로 하는 검색질의
- 공간 질의
- 주어진 범위 조건에 맞는 특정 위치를 검색하는 질의
- 텍스트 질의
- 멀티미디어 데이터의 질의 처리
- 매칭 기법
- 수학 함수로 저장된 데이터와 질의 조건으로 주어진 데이터 간의 유사도를 수학 함수로 계산하여, 유사도가 높은 데이터를 검색한다.
- 랭킹 기법
- 검색 결과를 질의 조건과의 관련 정도에 따라 정렬하여, 관련성이 높은 결과부터 제공한다.
- 필터링 기법
- 질의 조건과 관련성이 적은 데이터를 단계적으로 제거하여 검색 범위를 줄여가면서 검색한다.
- 인덱스 기법
- 인덱스 구조를 이용해 질의 조건에 적합한 데이터를 검색한다.
- 매칭 기법
기타 데이터베이스 응용 기술
웹 데이터베이스
- 웹 서비스에서 대용량 데이터를 효율적으로 관리하려면 데이터베이스 시스템에서 제공하는 기능이 반드시 필요하다. 이러한 이유로 웹 서비스와 데이터베이스 시스템을 통합한 웹 데이터베이스가 등장하게 되었다.
- 웹 데이터베이스는 웹 서비스의 특성과 데이터베이스 시스템의 데이터 관리 기능을 통합한 것으로 다양한 웹 서비스 분야에서 활용할 수 있다.
- 웹 데이터베이스를 올바르게 수행하려면 웹 서비스와 데이터베이스 시스템을 연결해 주는 미들웨어가 필요하다. 웹 서비스는 미들웨어를 통해 데이터베이스 시스템의 기능을 제공받으며 미들웨어를 데이터베이스 통로라고도 한다.
- 미들웨어를 구현하는 방법은 미들웨어를 통해 데이터베이스에 접근하는 프로그램을 웹 서버 쪽에 두는 서버 확장 방법이과, 클라이언트 쪽에 두는 클라이언트 확장 방법이 있으며 둘 중에서 서버 확장 방법을 주로 이용한다.
데이터 웨어하우스
- 다양한 분야에서 데이터를 관리하고 처리하기 위해 데이터베이스 시스템을 이용하는 일이 보편화되고, 기술의 발달로 데이터베이스에 저장하는 데이터의 양이 크게 증가하였다.
- 데이터베이스에 많은 양의 데이터를 효과적으로 저장하는 것도 중요하지만 사용자가 원하는 데이터를 빠르게 검색하여 제공하는 기능이 무엇보다 중요해졌다.
- 데이터베이스에 저장된 엄청난 양의 데이터를 분석하여 사용자에게 필요한 정보를 효율적으로 추출하는 일은 쉽지 않다.
- 기업과 같은 대규모 조직에서는 정보 시스템에 저장된 데이터를 분석하고 요약하여 추출한 유용한 정보를 의사 결정에 이용하는 의사 결정 지원 시스템이 많이 사용되고 있다.
- 이 때문에 데이터베이스에 저장된 수많은 데이터 중에서 의사 결정에 도움이 되는 데이터를 빠르고 정확히 추출할 수 있는 방법에 대한 연구가 많이 이루어졌으며 그중 한 가지 방법이 데이터 웨어하우스다.
- 데이터 웨어하우스는 데이터베이스 시스템에서 의사 결정에 필요한 데이터를 미리 추출하여, 이를 원하는 형태로 변환하고 통합한 읽기 전용의 데이터 저장소다. 데이터 웨어하우스는 데이터베이스 시스템 하나를 대상으로 할 수도 있고 여러 개를 대상으로 할 수도 있다.
- 데이터 웨어하우스는 의사 결정을 위한 정보의 집합으로, 검색 위주의 의사 결정 업무를 위한 것이다.
- 일반 데이터베이스는 최신 데이터를 유지하지만, 데이터 웨어하우스는 올바른 의사 결정을 위해 현재의 데이터와 과거의 데이터를 함께 유지하는 경우가 많다.
- 데이터 웨어하우스의 특징
- 주체 지향적 내용
- 일반 데이터베이스가 업무 처리 중심의 데이터로 구성된 반면, 데이터 웨어하우스는 의사 결정이 필요한 주제를 중심으로 데이터를 구성한다.
- 즉, 일반 데이터베이스는 의사 결정에 필요 없어도 업무 처리에 필요한 데이터를 모두 유지하지만, 데이터 웨어하우스는 의사 결정에 필요한 주제와 관련된 데이터만 유지한다.
- 일반 데이터베이스는 업무 담당자가 업무를 처리할 때 주로 사용하지만 데이터 웨어하우스는 최고 경영자나 데이터 분석가 등이 사용하므로 데이터를 좀 더 이해하기 쉬운 형태로 제공하기 위해 주제 지향적 특징을 지닌다.
- 통합된 내용
- 데이터 웨어하우스는 여러 데이터베이스에서 필요한 데이터를 추출하여 의사 결정에 필요한 분석 및 비교 작업을 지원한다.
- 구조가 다른 여러 데이터베이스에서 데이터를 추출할 때는 이름이나 타입 등에서 충돌이 발생할 수 있다. 예를 들어 서로 다른 두 데이터베이스에서 추출한 데이터가 이름은 같지만 내용이 다르거나, 타입이 다른 경우이다. 데이터 웨어하우스는 내부적으로 데이터가 항상 일관된 상태를 유지하도록 여러 데이터베이스에서 추출한 데이터를 통합하여 저장하는 특징이 있다.
- 시간에 따라 변하는 내용
- 일반 데이터베이스는 현재의 데이터만 유지하지만 데이터 웨어하우스는 올바른 의사 결정을 위해 현재와 과거 데이터를 함께 유지한다. 이는 중요한 순간마다 사진을 찍어두는 것과 유사하며 데이터 웨어하우스가 저장하고 있는 각 시점의 데이터를 스냅샷이라 한다.
- 데이터 웨어하우스가 과거와 현재의 데이터를 동시에 유지하는 이유는 데이터 간의 시간적 관계나 동향을 분석하여 의사 결정에 반영할 수 있도록 하기 위해서다.
- 비소멸을 가진 내용
- 일반 데이터베이스에 저장된 데이터는 삽입 • 삭제 • 수정 작업이 자주 발생하지만 데이터 웨어하우스는 검색 작업만 수행되는 읽기 전용의 데이터를 유지한다.
- 계획된 정책에 따라 정기적인 데이터 변경이 이루어지기는 하지만, 트랜잭션 단위로 변경 작업을 처리하는 일 반 데이터베이스와는 다르다. 검색 작업 위주의 데이터 웨어하우스는 삽입, 삭제, 갱신 이상이 발생할 염려가 없어, 검색의 효율성을 고려하여 설계하는 경우가 많다.
- 주체 지향적 내용
Q & A
본 도서의 내용을 정리한 것이 아닌 학습 스터디를 위해 제가 작성한 질답입니다.
사실과 다른 내용이 있다면 지적 부탁드립니다 :)
Q1 : 객체지향 데이터 모델의 속성과 관계 데이터 모델의 속성의 차이를 알려주세요.
객체지향 데이터 모델은 속성 값을 여러 개 가질 수 있고 관계 데이터 모델의 속성 값은 하나만 가질수 있다는 차이점이 있습니다.
Q2 : 데이터 웹하우스가 무엇인지 설명해 주세요.
데이터 웨어하우스는 데이터베이스에서 데이터를 수집, 통합, 저장하고, 이를 분석하여 정보를 제공하는 시스템을 말합니다.
Q3 : 멀티미디어 데이터가 무엇인지 설명해 주세요.
문자나 숫자 같은 데이터뿐 아니라 그래픽, 이미지, 비디오, 오디오 등 다양한 타입의 데이터가 존재하는데 데이터의 각 타입을 미디어라 하고, 여러 미디어의 조합으로 이루어진 데이터를 멀티미디어 데이터라고 합니다.
Q4 : 분할 데이터베이스가 무엇인지 설명해주세요.
분산 데이터베이스 시스템에서 데이터를 중복하여 저장하는 방법에는 완전 중복과 부분 중복이 있다. 완전 중복은 동일한 데이터를 둘 이상의 지역에 있는 분산 데이터베이스에 저장하는 것이고, 부분 중복은 일부 데이터만 중복하여 저장하는 것이다. 지역의 분산 데이터베이스에 중복되는 데이터가 전혀 없는 경우를 특히 분할 데이터베이스라고 합니다.
출처 : 김연희, 데이터베이스 개론 3판, 한빛아카데미(2022)
'Database' 카테고리의 다른 글
[데이터베이스 개론] Chapter11 - 보안과 권한 관리 (0) | 2023.06.02 |
---|---|
[데이터베이스 개론] Chapter10 - 회복과 병행 제어 (0) | 2023.05.27 |
[데이터베이스 개론] Chapter9 - 정규화 (0) | 2023.05.26 |
[데이터베이스 개론] Chapter8 - 데이터베이스 설계 (1) | 2023.05.13 |
[데이터베이스 개론] Chapter7 - 데이터베이스 언어 SQL (1) | 2023.05.12 |