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

2023. 12. 20. 23:09· CS/데이터베이스
목차
  1. 새로운 데이터 모델
  2. 객체지향 데이터베이스
  3. 객체관계 데이터베이스
  4. 데이터베이스 응용 기술
  5. 분산 데이터베이스
  6. 멀티미디어 데이터베이스
  7. 웹 데이터베이스
  8. 데이터 웨어하우스

새로운 데이터 모델

객체지향 데이터베이스

객체지향 데이터 모델

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

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

  • 객체(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
  1. 새로운 데이터 모델
  2. 객체지향 데이터베이스
  3. 객체관계 데이터베이스
  4. 데이터베이스 응용 기술
  5. 분산 데이터베이스
  6. 멀티미디어 데이터베이스
  7. 웹 데이터베이스
  8. 데이터 웨어하우스
'CS/데이터베이스' 카테고리의 다른 글
  • 12. 데이터 과학과 빅데이터
  • 10. 보안과 권한 관리
  • 9. 회복과 동시성 제어
  • 8. 정규화
호프
호프
호프
Untitled
호프
전체
오늘
어제
  • 분류 전체보기 (341)
    • 오류😬 (4)
    • 스터디📖 (96)
      • 웹 개발 기초 (8)
      • Spring (20)
      • ML, DL (30)
      • Node.js (22)
      • React (0)
      • 블록체인 (12)
      • Go (3)
      • Javascript (1)
    • 알고리즘💻 (153)
      • 그리디 (23)
      • Bruteforce&Backtracking (16)
      • DP (17)
      • 이분탐색&정렬&분할정복 (17)
      • 누적합&투포인터 (6)
      • 스택&큐&덱 (19)
      • 그래프(DFS&BFS) (19)
      • 트리 (7)
      • 우선순위큐&다익스트라 (11)
      • 벨만포드&플로이드와샬 (8)
      • map&set&number theory (5)
      • 기타 (5)
    • 프로젝트 (3)
      • 캡스톤 디자인 프로젝트 (3)
    • 블록체인🔗 (3)
      • Solana (2)
      • 개발 (0)
      • Harmony (1)
    • ASC (6)
    • CS (73)
      • 데이터베이스 (12)
      • 클라우드컴퓨팅 (21)
      • 운영체제 (11)
      • 컴퓨터네트워크 (14)
      • 블록체인응용 (15)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 복습

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
호프
11. 데이터베이스 응용 기술
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.