객체지향 데이터베이스
관계 데이터베이스는 관계 데이터 모델의 기능적 제약조건과 SQL의 표현력 한계로 인해 다양한 응용 분야에 부적합하다. 객체지향 데이터 모델은 객체지향 개념에 기반을 둔 데이터 모델로, 의미상 관계가 있는 데이터베이스 구조를 표현할 때 적합하다. 객체지향 데이터 모델이 지원하는 객체지향 개념은 다음과 같다.
- 객체: 현실 세계에 존재하는 개체를 추상적으로 표현한 것
- 객체 식별자: 각 객체를 유일하게 식별하는 수단
- 속성: 객체의 상태나 특성
- 메서드: 객체에 수행할 수 있는 연산, 객체의 속성 값을 조작한다.
- 클래스: 속성과 메서드를 공유하는 유사한 성질의 객체들을 그룹화한 것
- 복합 객체: 사용자 정의 클래스를 도메인으로 하는 속성을 가지고 있는 객체
객체지향 데이터베이스에서는 질의 대상이 클래스이고 질의 결과는 클래스에 속하는 객체 집합이다. 객체지향 데이터베이스의 데이터 모델과 질의어는 표준화되지 못했는데 이로 인해 보편적으로 사용되지 못하고 특수 분야에서만 사용된다.
이 문제를 해결하기 위하여, 객체지향 데이터 모델의 장점과 관계 데이터 모델의 장점을 모두 가진 객체관계 데이터베이스가 등장했다. 객체지향 개념을 지원하는 표준 SQL을 사용할 수 있다
분산 데이터베이스 시스템
데이터베이스 시스템을 물리적으로 한 장소에 설치하여 운영하는 것을 “중앙 집중식 데이터베이스”라고 한다. 그러나 데이터베이스 시스템을 한 곳에 설치하지 못하고 여러 곳에 분산하여 운영하는 것이 있는데 이를 “분산 데이터베이스 시스템”이라고 한다.
분산 데이터베이스 시스템은 “분산 처리기”, “분산 데이터베이스”, “통신 네트워크”로 구성된다.
- 분산 처리기: 물리적으로 분산되어 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터
- 분산 데이터베이스: 물리적으로 분산되어 해당 지역에서 가장 많이 사용되는 데이터를 저장하는 지역 데이터베이스
- 통신 네트워크: 지역의 분산 처리기가 하나의 시스템으로 자원을 공유할 수 있도록 연결해주는 네트워크
분산 데이터베이스 시스템의 목표
분산 데이터베이스 시스템에서는 사용자가 “데이터베이스가 분산되어 있음을 느끼지 못하도록” 하는 것이 중요하다. 이를 “분산 데이터 독립성”이라고 하며, 분산 데이터 독립성을 지원하기 위해서는 분산 투명성을 보장해야 한다. 분산 투명성의 종류는 다음과 같다.
위치 투명성 (Location Transparency)
위치 투명성은 데이터베이스가 지역적으로 분산되어 있지만, 사용자가 접근하려는 데이터의 실제 저장 위치를 알 필요 없이 데이터베이스의 논리적인 이름만으로 데이터에 접근할 수 있다는 것을 말한다.
위치 투명성이 보장되면, DBMS가 시스템 카탈로그에서 관리하는 위치 정보를 통해 데이터를 제공하여, 응용 프로그램의 처리를 쉽게 진행할 수 있다.
중복 투명성 (Replication Transparency)
중복 투명성은 동일한 데이터가 여러 지역에 저장되더라도 사용자가 중복을 인식하지 못하고, 하나의 데이터베이스 시스템에 데이터가 저장된 것처럼 사용하는 것을 말한다.
데이터베이스를 중복 저장하면 한 지역의 데이터베이스에 문제가 생겨도 다른 지역 데이터베이스를 이용할 수 있기에 신뢰성과 가용성을 높일 수 있다. 그러나 저장 공간을 많이 차지하고, 데이터 관리가 어려워진다는 단점이 있다.
그럼에도, 분산 데이터베이스에서는 데이터를 중복 저장해서 얻을 수 있는 장점이 크기에 데이터를 중복해서 저장한다. 분산 데이터베이스 시스템에서 데이터를 중복하여 저장하는 방법으로는 완전 중복과 부분 중복이 있다.
- 완전 중복: 동일한 데이터를 둘 이상의 지역에 있는 분산 데이터베이스 저장하는 것
- 부분 중복: 일부 데이터만 중복하여 저장하는 것
단편화 투명성 (Fragmentation Transparency)
단편화는 하나의 릴레이션을 더 작은 단편으로 나누고 각 조각을 별개의 릴레이션으로 처리하는 것을 말한다. 단편화를 하면 저장 공간을 적게 사용하고 관리할 데이터 수도 줄어든다.
단편화 투명성은 사용자가 데이터를 사용할 때, 데이터가 단편화된 것을 인식할 수 없도록 하는 것을 말한다.
단편화를 할 때는 다음 세 조건을 만족시켜야 한다.
- 완전성(Completeness): 전체 릴레이션의 모든 데이터는 어느 한 조각에는 반드시 속해야 한다.
- 회복성(Reconstructability): 단편화된 조각들로부터 원래의 전체 릴레이션을 회복시킬 수 있어야 한다.
- 분리성(Disjointness): 전체 릴레이션의 모든 조각을 서로 중복되지 않게 분리해야 한다.
릴레이션을 단편화하는 방법으로는 “수평적 단편화”, “수직적 단편화”, “혼합 단편화”가 있다. 이 세 가지 방법을 통하여 단편화된 데이터를 여러 지역에 나누어 저장한다.
- 수평적 단편화: 릴레이션을 수평적으로 단편화하는 것으로, 릴레이션을 “튜플(행)” 단위로 나눈다.
- 수직적 단편화: 릴레이션을 수직적으로 단편화하는 것으로, 릴레이션을 “속성(열)” 단위로 나눈다.
- 혼합 단편화: 수평적 단편화와 수직적 단편화를 모두 사용하여 릴레이션을 분리한다.
병행 투명성 (Concurrency Transparency)
병행 투명성은 분산 데이터베이스와 관련된 트랜잭션들이 동시에 수행되더라도 결과는 항상 일관성을 유지하는 것을 말한다.
장애 투명성 (Failure Transparency)
장애 투명성은 특정 지역 시스템에 문제가 발생해도 전체 시스템이 작업을 계속 수행할 수 있는 것을 말한다.
분산 데이터베이스의 구조
분산 데이터베이스의 일반적인 구조는 다음과 같다. 다만, 모든 분산 데이터베이스가 이러한 구조로 개발되지는 않는다.
- 전역 개념 스키마: 분산 데이터베이스에 저장할 모든 데이터 구조와 제약조건을 정의한다.
- 단편화 스키마: 전역 개념 스키마를 분할하는 방법인 단편화를 정의한다.
- 할당 스키마: 각 조각 스키마의 인스턴스를 물리적으로 저장해야 하는 지역을 정의한다.
- 지역 스키마: 지역별로 저장하고 있는 데이터 구조와 제약조건을 정의한다.
분산 데이터베이스 시스템에서는 최선의 질의 전략을 선택할 때, 데이터베이스에 위치한 디스크에 접근하는 횟수와 네트워크에서 데이터를 전송하는 비용, 하나의 질의문을 분해하여 여러 지역에서 병렬 처리함으로 얻는 성능상의 이점을 고려한다.
분산 데이터베이스의 장단점
분산 데이터베이스 시스템의 장단점은 다음과 같다.
- (장점): 신뢰성과 가용성 증대
- (장점): 지역 자치성과 효율성 증대
- (장점): 확장성 증대
- (단점): 설계 및 구축 비용 증가
- (단점): 관리의 복잡성
기타 데이터베이스 응용 기술
멀티미디어 데이터베이스 시스템
멀티미디어 데이터베이스 시스템은 다양한 미디어가 조합된 멀티미디어를 저장하고 관리하는 시스템이다. 미디어 종류에 따라 다양한 질의 유형과 처리 기법이 존재한다.
- 데이터 유형: 텍스트, 그래픽, 이미지, 비디오, 오디오
- 데이터 특성: 대용량 데이터, 검색 방법과 구조가 복잡한 데이터
웹 데이터베이스 시스템
웹 서비스와 데이터베이스 시스템이 제공하는 데이터 관리 기능을 통합한 데이터베이스이다.
데이터 웨어하우스 시스템
데이터베이스 시스템에서 의사 결정에 필요한 데이터를 미리 추출하여 원하는 형태로 변환하고 통합한 읽기 전용의 데이터 저장소이다. 주체 지향적이며 통합적이고 비소멸성을 가지며 시간에 따라 변화하는 데이터베이스이다.