CS/데이터베이스

11. 데이터베이스 응용 기술

호프 2023. 12. 20. 23:09

새로운 데이터 모델

객체지향 데이터베이스

객체지향 데이터 모델

  • 객체 지향 개념에 기반을 둔 데이터 모델
  • 의미적으로 관계가 있는 데이터베이스 구조를 표현하기 위한 강력한 설계 기능 제공

객체지향 데이터 모델 구성 요소

  • 객체(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)을 주기적으로 유지