새로운 데이터 모델
객체지향 데이터베이스
객체지향 데이터 모델
- 객체 지향 개념에 기반을 둔 데이터 모델
- 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능 제공
객체지향 데이터 모델 구성 요소
- 객체(object): 현실 세계에 존재하는 개체를 추상적으로 표현한 것
- 각 객체는 시스템 전체에서 유일하게 식별될 수 있는 객체 식별자(OID; Object Identifier)를 가짐
- 상태를 의미하는 속성과 상태를 조작하는 메서드로 구성
- 속성(attribute): 관계 데이터 모델의 속성과 같은 의미
- 관계 데이터 모델의 속성은 기본으로 제공되는 데이터 타입을 도메인으로 하는 단일 값만 가질 수 있지만, 객체지향 데이터 모델의 속성은 값을 여러 개 가질 수 있음
- 메서드(method): 객체에 수행할 수 있는 연산
- 객체의 속성 값을 검색하거나 추가, 삭제, 수정하는데 주로 사용
- 프로그래밍 언어의 함수와 유사한 개념
- 메시지(message): 객체에 접근하기 위한 공용 인터페이스 역할
- 특정 객체의 속성과 메서드에 접근하려면 메시지를 사용해야 함 (ex. 객체의 속성 값을 수정하려면 그에 해당하는 메서드를 실행시키는 메시지를 해당 객체에 보내야 함)
- 클래스(class): 속성과 메서드를 공유하는 유사한 성질의 객체들을 하나로 그룹화한 것
- 객체 = 클래스 인스턴스(class instance) 또는 객체 인스턴스(object instance)
- 클래스 내부에 해당 클래스의 객체를 위한 데이터 구조와 메서드 구현의 세부 사항을 기술
클래스 계층(Class Hierarchy)과 상속(Inheritance)
- 상위클래스(superclass) : 클래스 계층에서 상위에 위치하는 클래스
- 하위클래스(subclass) : 클래스 계층에서 하위에 위치하는 클래스
- 상속(Inheritance): 상위클래스의 속성과 메서드를 자신의 모든 하위클래스에 물려주는 개념
- 단일 상속 : 하위클래스가 단 하나의 상위클래스로부터 상속받는 것
- 다중 상속 : 하위 클래스가 여러 개의 상위클래스로부터 상속받는 것
복합 객체(Composite object)
- 시스템에서 기본적으로 제공하지 않는 사용자 정의 클래스(userdefined class)를 도메인으로 하는 속성을 가진 객체
- 속성 값으로 다른 객체를 참조
객체지향 질의 모델
- 질의 대상은 클래스, 질의 결과는 클래스에 속하는 객체 집합
- 단일 오퍼랜드(single operand) 질의
- 하나의 클래스 또는 하나의 클래스와 그 클래스의 하위클래스 전체를 대상으로 하는 질의
- 다중 오퍼랜드(multiple operand) 질의
- 여러 클래스를 대상으로 하는 질의
- 객체지향 개념을 완벽히 표현하면서 쉽게 사용할 수 있는 표준 질의어가 없음
객체관계 데이터베이스
객체관계 데이터 모델
- 객체지향 개념과 관계 데이터 모델의 개념을 통합한 것
- 릴레이션, 객체, 메서드, 클래스, 상속, 캡슐화, 복합 객체 등을 모두 지원
- SQL을 표준 질의어로 채택하여 계속 발전시킴
- 기본 질의 기능과 함께 사용자 정의 타입, 객체, 객체 식별자, 메서드 등과 같은 객체지향 특성도 가지고 있음
객체지향 데이터베이스 vs. 객체관계 데이터베이스
- 객체지향 데이터베이스: 객체지향 프로그래밍 개념에 기반을 두고 데이터베이스의 기능을 추가하는데 목적을 두고 있음
- 객체관계 데이터베이스: 관계 데이터베이스에 기반을 두고 사용자가 다양한 데이터 타입을 추가할 수 있도록 하는데 목적을 두고 있음
- 기능적 유사성은 많지만, 기본 철학과 구현 방식이 달라 데이터베이스의 설계나 조작 방법 등에 차이가 있음
데이터베이스 응용 기술
분산 데이터베이스
분산 데이터베이스 시스템 (Distributed database system)
- 중앙 집중식 데이터베이스 시스템: 데이터베이스 시스템을 물리적으로 한 장소에 설치하여 운영하는 것
- 분산 데이터베이스 시스템: 물리적으로 분산된 데이터베이스 시스템을 네트워크로 연결해 사용자가 논리적으로는 하나의 중앙 집중식 데이터베이스 시스템처럼 사용할 수 있도록 한 것
분산 데이터베이스 시스템의 구성 요소
- 분산 처리기(distributed processor)
- 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터(local computer)
- 각 지역의 데이터베이스를 자체적으로 관리하는 DBMS를 별도로 가지고 있음
- 분산 데이터베이스(distributed database)
- 물리적으로 분산된 지역 데이터베이스(local database)
- 해당 지역에서 가장 많이 사용하는 데이터를 저장
- 통신 네트워크
- 분산 처리기는 통신 네트워크를 통해 자원을 공유
분산 데이터베이스 시스템의 주요 목표
- 분산 데이터 독립성(Distributed data independency): 데이터베이스가 분산되어 있음을 사용자가 인식하지 못하게 하는 것
- 분산 투명성(Distribution transparency)이 보장되어야 함
분산 투명성
- 위치 투명성(location transparency)
- 사용자가 접근하려는 데이터의 실제 저장 위치를 알 필요 없이 논리적 이름만으로 데이터에 접근할 수 있음
- 다른 지역에 있는 데이터에 대한 접근 요청을 처리하는 방법
- 다른 지역에 있는 데이터를 가져와 처리
- 데이터 접근 요청을 한 트랜잭션을 데이터가 있는 지역으로 보내 처리한 후, 결과 데이터만 가져옴
- 중복 투명성(replication transparency)
- 동일한 데이터가 여러 지역에 중복 저장되더라도 사용자가 중복을 인식하지 못하고, 하나의 데이터베이스 시스템에 데이터가 저장된 것처럼 사용하는 것
- 완전 중복: 동일한 데이터를 여러 분산 데이터베이스에 저장 / 부분 중복: 일부 데이터만 중복 저장
- 데이터 중복
- 장점: 신뢰성, 가용성, 병렬 처리, 컴퓨팅 분산
- 단점: 저장공간, 데이터 변경 시 비용 증가
- 단편화 투명성(fragmentation transparency)
- 단편화된 데이터를 여러 지역에 나누어 저장하지만 사용자는 데이터가 단편화된 것을 인식할 수 없도록 하는 것
- 단편화: 하나의 릴레이션을 더 작은 조각(단편)으로 나누고 각 조각을 별개의 릴레이션으로 처리하는 것
- 장점: 저장 공간 적게 사용, 데이터 중복의 장점은 취하면서 단점 보완
- 수평적 단편화: 릴레이션을 투플(행) 단위로 나눔 / 수직적 단편화: 릴레이션을 속성(열) 단위로 나눔
- 단편화 수행 조건: 완전성, 회복성, 분리성
- 병행 투명성(concurrency transparency)
- 분산 데이터베이스와 관련된 트랜잭션들이 동시에 수행되더라도 결과는 항상 일관성을 유지하는 것
- 장애 투명성(failure transparency)
- 특정 지역 시스템에 문제가 발생하더라도 전체 시스템이 작업을 계속 수행할 수 있는 것
분산 데이터베이스 기본 구조
- 전역 개념 스키마: 분산 데이터베이스에 저장할 모든 데이터 구조와 제약조건을 정의
- 단편화 스키마: 전역 개념 스키마를 논리적으로 분할하는 방법인 단편화를 정의
- 할당 스키마: 각 조각 스키마의 인스턴스를 물리적으로 저장해야 되는 지역을 정의
- 지역 스키마: 지역별로 저장하고 있는 데이터 구조와 제약조건을 정의
분산 데이터베이스 시스템의 장단점
- 장점
- 신뢰성과 가용성
- 지역 자치성과 효율성
- 확장성
- 단점
- 중앙 집중식 시스템에 비해 설계 및 구축 비용이 많이 발생
- 관리 복잡하고 비용 많이 발생
- 중앙 집중식 시스템에 비해 추가적인 통신, 처리 비용 발생
멀티미디어 데이터베이스
멀티미디어 데이터: 여러 미디어의 조합으로 이루어진 데이터
- 대용량 데이터
- 복잡한 검색 방법: 설명 기반 검색, 내용 기반 검색
- 복잡한 구조: 원시 데이터, 등록 데이터, 서술 데이터 등으로 구성
멀티미디어 데이터베이스의 발전 과정
- 파일 시스템 이용
- 멀티미디어 데이터를 파일로 저장하고 관리
- 응용 프로그램 개발이 어렵고, 복잡한 멀티미디어 데이터를 파일의 단순한 저장 구조에 저장하기 어려움
- 데이터의 동시 공유, 회복, 보안 등 데이터베이스 관리 시스템의 고급 기능을 제공하기 어려움
- RDB에서의 멀티미디어 데이터 처리
- 텍스트 같은 일반 데이터는 RDB에 저장하고, 이미지나 비디오 같은 데이터는 파일에 저장
- 파일에 저장된 데이터에 대한 처리 요청을 프로그래밍 언어로 작성하고, RDB에 저장된 데이터에 대한 처리 요청은 SQL로 작성
- 파일에 저장된 멀티미디어 데이터에 데이터베이스 관리 시스템의 고급 기능을 제공할 수 없음
- 지리 정보 시스템(GIS; Geographical Information System) 등에서 많이 사용
- 확장된 RDBMS 이용
- 텍스트뿐만 아니라 멀티미디어 데이터를 모두 저장할 수 있도록 기존의 관계 데이터베이스 관리 시스템을 확장
- 멀티미디어 데이터의 특성을 반영한 처리 요청을 SQL로 표현하기 쉽지 않음
- 객체지향 데이터베이스에서의 멀티미디어 데이터 처리
- 객체지향 개념을 지원하는 데이터베이스 관리 시스템을 이용해 멀티미디어 데이터를 처리하는 데 필요한 다양한 기능 제공
- 기존 관계 데이터베이스 관리 시스템에서 제공하는 동시성 제어, 질의 최적화, 회복 기능 등의 고급 기능을 제공하지 못함
멀티미디어 데이터의 질의
- 데이터 자체에 대한 질의보다는 데이터에 포함된 특정 객체, 데이터에 대한 설명이나 키워드를 이용한 질의를 주로 사용
- 미디어에 따라 다양한 유형의 질의가 존재
- 텍스트 질의, 비디오 질의, 이미지 질의, 공간 질의 ..
- 질의 처리 기법
- 매칭(matching) 기법: 저장된 데이터와 질의 조건으로 주어진 데이터 간의 유사도를 수학 함수로 계산하여, 유사도가 높은 데이터를 검색
- 랭킹(ranking) 기법: 질의 조건과의 관련 정도에 따라 정렬하여, 관련성이 높은 결과부터 제공
- 필터링(filtering) 기법: 질의 조건과의 관련성이 적은 데이터를 단계적으로 제거하여 검색 범위를 줄여가면서 검색
- 인덱스(index) 기법: 인덱스 구조를 이용해 질의 조건에 적합한 데이터를 검색
웹 데이터베이스
웹 데이터베이스(Web database)
- 웹 서비스의 특성과 데이터베이스 시스템의 데이터 관리 기능을 통합한 것
- 미들웨어(Middleware)
- 웹 서비스와 데이터베이스 시스템을 연결해주는 역할을 담당
- 데이터베이스 통로(database gateway)라고도 함
- 미들웨어를 통해 데이터베이스에 접근하는 프로그램을 웹 서버 쪽에 두는 서버 확장 방법이나 클라이언트 쪽에 두는 클라이언트 확장 방법으로 구현
데이터 웨어하우스
데이터 웨어하우스(Data warehouse)
- 데이터베이스 시스템에서 의사 결정에 필요한 데이터를 미리 추출하여, 이를 원하는 형태로 변환하고 통합한 읽기 전용의 데이터 저장소
- 주제 지향적(subject-oriented) 내용: 의사 결정에 필요한 주제를 중심으로 데이터를 구성
- 통합된(integrated) 내용: 내부적으로 데이터가 항상 일관된 상태를 유지하도록 여러 데이터베이스에서 추출한 데이터를 통합하여 저장
- 비소멸성(nonvolatile)을 가진 내용: 검색 작업만 수행되는 읽기 전용의 데이터를 유지
- 시간에 따라 변하는(time-variant) 내용: 데이터 간의 시간적 관계나 동향을 분석해 의사 결정에 반영할 수 있도록 현재와 과거 데이터를 함께 유지
- 각 시점의 데이터를 의미하는 스냅샷(snapshot)을 주기적으로 유지
'CS > 데이터베이스' 카테고리의 다른 글
12. 데이터 과학과 빅데이터 (0) | 2023.12.31 |
---|---|
10. 보안과 권한 관리 (1) | 2023.12.19 |
9. 회복과 동시성 제어 (1) | 2023.12.02 |
8. 정규화 (0) | 2023.11.30 |
7. 데이터베이스 설계 (1) | 2023.11.27 |