학습(공부)하는 블로그 :: 13. 데이터베이스 응용 기술 - 객체지향 DB, 분산 DB, 멀티미디어 DB
 

 
반응형
블로그 이미지
학습하고 공부한 것을 보고 싶을때 다시 볼려고 요약해서 정리한 블로그입니다. 좋은 정보는 서로 공유합시다. 깨비형
« 2026/7 »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

Archive»


Category»

Notice»

Recent Post»

Recent Comment»

Recent Trackback»

07-19 17:23

반응형

 

💡 1분 핵심 요약 (TL;DR)

  • 객체지향 데이터베이스 — 객체·속성·메서드·클래스·상속·복합 객체 개념으로 데이터를 모델링
  • 분산 데이터베이스 — 물리적으로 흩어진 DB를 네트워크로 묶어 하나처럼 사용, 5대 투명성이 핵심
  • 단편화 — 릴레이션을 수평·수직으로 쪼개 저장 공간과 관리 부담을 줄이는 기법
  • 멀티미디어 DB·데이터 웨어하우스 — 대용량·비정형 데이터 처리와 의사결정 지원을 위한 응용 기술

 

지금까지 관계형 데이터베이스의 SQL, 설계, 정규화, 트랜잭션, 보안까지 쭉 훑어봤다면, 이번 시간은 조금 결이 다른 응용 기술들을 다룹니다. 객체지향 프로그래밍 개념을 DB에 녹인 객체지향 데이터베이스, 여러 지역에 흩어진 DB를 하나처럼 쓰게 해주는 분산 데이터베이스, 그리고 이미지·영상 같은 비정형 데이터를 다루는 멀티미디어 데이터베이스데이터 웨어하우스까지 정리했습니다.

 

 

 

01 객체지향 데이터베이스 — 구성 요소

객체·속성·메서드·메시지·클래스로 세상을 표현하기

 

📖 객체지향 데이터 모델이란?
객체지향 개념에 기반을 둔 데이터 모델로, 객체·객체 식별자·속성·메서드·클래스·클래스 계층 및 상속·복합 객체 등을 지원합니다. 의미적으로 관계가 있는 데이터베이스 구조를 표현하는 데 강력하지만, 표준화가 덜 되어 있어 특수한 몇몇 분야에서 주로 사용됩니다.

 

💡 실무 팁 : 현대의 대안, NoSQL
오늘날 비정형 데이터나 객체 구조를 다룰 때는 객체지향 DB를 직접 쓰기보다, 훨씬 유연하고 확장성이 뛰어난 NoSQL(Not Only SQL) 데이터베이스(MongoDB, Redis 등)가 더 널리 쓰입니다. NoSQL은 문서형·그래프형 등 다양한 데이터 모델을 제공해 비정형 데이터 처리에 최적화되어 있습니다.

 

구성 요소 설명
객체(object) 현실 세계의 개체를 추상적으로 표현. 시스템 전체에서 유일한 객체 식별자(OID)를 가지며, 상태(속성)와 그 상태를 조작하는 메서드로 구성
속성(attribute) 관계 데이터 모델의 속성과 같은 의미. 단, 관계형은 단일 값만 가능한 반면 객체지향은 값을 여러 개 가질 수 있고, 사용자 정의 클래스나 그 하위 클래스도 도메인으로 지정 가능
메서드(method) 객체에 수행할 수 있는 연산. 속성 값을 검색·추가·삭제·수정하는 데 사용, 프로그래밍 언어의 함수와 유사
메시지(message) 객체에 접근하기 위한 공용 인터페이스. 특정 객체의 속성·메서드에 접근하려면 반드시 메시지를 사용
클래스(class) 속성·메서드를 공유하는 유사한 객체들의 그룹. 객체는 클래스의 구성원으로, 클래스 인스턴스(객체 인스턴스)라 부름

 

예를 들어 사원 클래스가 사번·성명·전화번호·직급을 속성으로, 전화번호검색()·직급변경()을 메서드로 가진다면, E001(김연희)·E002(오형준)·E003(고명석)은 이 클래스의 객체 인스턴스가 됩니다.

 

클래스 계층과 상속

 

📖 클래스 계층(class hierarchy)
클래스를 세분화(specialization)하면 클래스 간 계층 관계가 형성됩니다. 위쪽을 상위클래스(superclass), 아래쪽을 하위클래스(subclass)라 하며, 둘 사이에는 일반적으로 IS-A 관계가 성립합니다.

 

운동선수
축구선수
└ 공격수 · 수비수 · 골키퍼
야구선수
└ 투수 · 포수 · 타자

운동선수(상위) → 축구선수·야구선수(하위) → 각 포지션(더 하위)으로 이어지는 IS-A 계층입니다.

 

✓ 상속(inheritance)
상위클래스의 속성과 메서드를 하위클래스에 물려주는 개념입니다.
· 단일 상속 : 하위클래스가 단 하나의 상위클래스로부터 상속
· 다중 상속 : 하위클래스가 여러 개의 상위클래스로부터 상속

예) '스마트폰' 클래스는 '컴퓨터'와 '휴대전화' 두 상위클래스의 속성·메서드를 모두 물려받는 다중 상속의 예입니다.

 

📖 복합 객체(composite object)
시스템이 기본 제공하지 않는 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체입니다. 이 속성은 객체 식별자를 값으로 가지므로 다른 객체를 참조할 수 있고, 일반적으로 Is-Part-Of 관계(부분-전체 관계)를 표현하는 데 사용됩니다.

예) '운동선수' 객체의 '소속팀' 속성이 '팀'이라는 사용자 정의 클래스를 도메인으로 가진다면, 이는 IS-A 관계(운동선수→축구선수)와는 별개로 운동선수가 팀의 일부(Is-Part-Of)임을 나타냅니다.

 

 

 

 

02 객체지향 DB vs 객체관계 DB

철학은 다르지만 기능은 닮은 두 모델

 

객체지향 데이터베이스의 질의 대상은 클래스이고, 질의 결과는 그 클래스에 속하는 객체 집합입니다. 하나의 클래스(와 하위클래스 전체)를 대상으로 하는 단일 오퍼랜드 질의, 여러 클래스를 대상으로 하는 다중 오퍼랜드 질의가 있지만, 아쉽게도 객체지향 개념을 완벽히 표현하면서 쉽게 쓸 수 있는 표준 질의어는 아직 없습니다.

 

객체지향 데이터베이스

객체지향 프로그래밍 개념에 기반을 두고, 데이터베이스의 기능을 추가하는 데 목적
  객체 관계 데이터베이스

관계형 데이터베이스에 기반을 두고, 사용자가 다양한 데이터 타입을 추가할 수 있도록 하는 데 목적

 

📖 객체관계 데이터 모델
객체지향 개념과 관계 데이터 모델을 통합한 것으로, 릴레이션·객체·메서드·클래스·상속·캡슐화·복합 객체를 모두 지원합니다. SQL을 표준 질의어로 채택해 계속 발전하고 있으며, 1999년 발표된 SQL3부터 객체지향 개념을 지원하기 때문에 기본 질의 기능과 사용자 정의 타입·객체·메서드 같은 객체지향 특성을 함께 가지고 있습니다.

 

 

 

03 분산 데이터베이스 시스템 — 구성과 단편화

여러 지역에 흩어진 DB를 하나처럼

 

📖 분산 데이터베이스 시스템(distributed database system)
물리적으로 분산된 데이터베이스 시스템을 네트워크로 연결해, 사용자가 논리적으로는 하나의 중앙 집중식 시스템처럼 사용할 수 있도록 한 것입니다. (반대 개념인 중앙 집중식 시스템은 DB를 물리적으로 한 장소에 설치·운영하는 방식)

 

지역 1
분산 처리기 + 분산 DB
통신 네트워크 지역 2 / 지역 3
분산 처리기 + 분산 DB

 

 

구성 요소 설명
분산 처리기
(distributed processor)
지역별로 필요한 데이터를 처리하는 지역 컴퓨터. 각 지역의 DB를 관리하는 DBMS를 별도로 보유
분산 데이터베이스
(distributed database)
물리적으로 분산된 지역 데이터베이스. 해당 지역에서 가장 많이 쓰는 데이터를 저장
통신 네트워크 분산 처리기들이 자원을 공유하는 통로. 모든 분산 처리기는 특정 통신 규약에 따라 데이터를 송수신

 

데이터베이스 분산 저장 방법 — 중복 저장의 장단점

 

데이터를 중복 없이 분할해서 저장할 수도, 중복해서 저장할 수도 있습니다. 실무에서는 중복 저장을 주로 이용하는데, 장단점이 뚜렷합니다.

 

구분 내용
장점 · 한 지역에 문제가 생겨도 다른 지역에서 작업 계속 가능 (신뢰성·가용성 ↑)
· 여러 지역에서 병렬 처리 가능 (성능 ↑)
· 요청이 한 지역에 몰리지 않아 처리 부담 분산
단점 · 중복 저장이라 저장 공간을 많이 사용
· 데이터 변경 시 중복된 곳을 모두 함께 바꿔야 해서 비용 증가, 변경 도중 데이터 불일치 위험

 

💡 분산 DB 설계의 딜레마 : CAP 이론
분산 시스템은 네트워크로 분할(Partition)되는 상황에서도 가용성(Availability)을 지킬지, 아니면 일관성(Consistency)을 최우선으로 할지 선택해야 하는 CAP 이론의 한계에 직면합니다. 분할 내성은 분산 환경에서 사실상 필수이므로, 실제로는 일관성과 가용성 중 둘 중 하나만 완전히 만족할 수 있고 모든 것을 완벽히 갖춘 시스템은 현실적으로 존재하기 어렵습니다. 위에서 본 데이터 중복의 '불일치 위험'도 결국 이 딜레마의 한 단면입니다.

 

📖 단편화(fragmentation)
하나의 릴레이션을 더 작은 조각(단편)으로 나누고, 각 조각을 별개의 릴레이션으로 처리하는 것입니다. 각 조각이 전체의 일부만 저장하므로 저장 공간을 적게 사용하면서도, 중복 저장의 장점(신뢰성·병렬 처리)은 그대로 취할 수 있습니다.

 

예) 제품 릴레이션을 두 지역으로 단편화해보겠습니다.

 

제품번호 제품명 재고량 단가 제조업체
p01 그냥만두 5000 4500 대한식품
p02 매운쫄면 2500 5500 민국푸드
p03 콩떡파이 3600 2600 한빛제과

원본 : 제품 릴레이션

 

제품번호 제품명 재고량 단가 제조업체
p01 그냥만두 5000 4500 대한식품
p02 매운쫄면 2500 5500 민국푸드
수평적 단편화 — 지역 1 (튜플 단위로 분할)
 
제품번호 제품명 재고량 단가 제조업체
p03 콩떡파이 3600 2600 한빛제과
수평적 단편화 — 지역 2 (튜플 단위로 분할)

 

제품번호 제품명 재고량
p01 그냥만두 5000
p02 매운쫄면 2500
p03 콩떡파이 3600
수직적 단편화 — 지역 1 (속성 단위로 분할)
 
제품번호 단가 제조업체
p01 4500 대한식품
p02 5500 민국푸드
p03 2600 한빛제과
수직적 단편화 — 지역 2 (속성 단위로 분할)

 

 

두 방식을 함께 쓰는 혼합 단편화도 가능하며, 어떤 단편화든 아래 3가지 조건을 반드시 만족해야 합니다.

 

조건 내용
완전성 전체 릴레이션의 모든 데이터는 어느 한 조각에는 꼭 속해야 함
회복성 단편화된 조각들로부터 원래의 전체 릴레이션을 회복할 수 있어야 함
분리성 전체 릴레이션의 모든 조각을 서로 중복되지 않게 분리해야 함

 

 

 

04 분산 데이터베이스의 목표(투명성)와 구조

분산되어 있다는 사실을 사용자가 몰라도 되게 만들기

 

📖 분산 데이터 독립성 (분산 투명성)
분산 데이터베이스 시스템의 핵심 목표로, 데이터베이스가 분산되어 있다는 사실을 사용자가 인식하지 못하게 하는 것입니다. 아래 5가지 투명성으로 구성됩니다.

 

투명성 의미
위치 투명성 데이터의 실제 저장 위치를 몰라도 논리적 이름만으로 접근 가능. 시스템 카탈로그가 위치 정보를 관리
중복 투명성 동일 데이터가 여러 지역에 중복 저장돼도 사용자는 중복을 인식하지 못함 (완전 중복 / 부분 중복)
단편화 투명성 데이터가 여러 지역에 단편화되어 저장되어도 사용자는 이를 인식할 수 없음
병행 투명성 관련 트랜잭션들이 동시에 수행되어도 결과는 항상 일관성을 유지
장애 투명성 특정 지역 시스템에 문제가 생겨도 전체 시스템은 작업을 계속 수행

 

분산 데이터베이스는 아래처럼 4단계 스키마로 구조화됩니다.

 

전역 개념 스키마 — 분산 DB에 저장할 모든 데이터 구조·제약조건 정의 (데이터 분산은 고려 안 함)
단편화 스키마 — 전역 개념 스키마를 논리적으로 분할하는 방법(단편화) 정의
할당 스키마 — 각 조각 스키마를 물리적으로 저장할 지역 정의
지역 스키마 — 지역별로 저장하는 데이터 구조·제약조건 정의

 

질의를 처리할 때는 디스크 접근 횟수, 네트워크 전송 비용, 여러 지역 병렬 처리로 얻는 성능 이점 세 가지를 기준으로 최적의 처리 전략을 선택합니다.

 

장점
· 신뢰성·가용성 증대 (장애 시 다른 지역 이용)
· 지역 자치성·효율성 증대
· 확장성 증대, 응답 시간·통신 비용 절감
  단점
· 중앙 집중식보다 설계·구축 비용 ↑
· 여러 지역 관리가 복잡, 관리 비용 ↑
· 추가적인 통신·처리 비용 발생

 

 

 

05 멀티미디어 데이터베이스와 데이터 웨어하우스

비정형 데이터 처리와 의사결정 지원까지

 

📖 멀티미디어 데이터(multimedia data)
여러 미디어의 조합으로 이루어진 데이터입니다.

 

유형 의미
텍스트 문자로 구성된 데이터
그래픽 수학 공식을 기반으로 제작된 벡터 이미지 데이터
이미지 정적 이미지나 사진처럼 픽셀 단위로 표현되는 비트맵 이미지
비디오 동영상, 애니메이션
오디오 음성, 소리, 음악

 

멀티미디어 데이터는 대용량(수 KB~수십 MB 이상, 압축 저장 필요), 복잡한 검색 방법(설명 기반 검색·내용 기반 검색), 복잡한 구조(원시 데이터·등록 데이터·서술 데이터)라는 세 가지 특성을 가집니다.

 

이런 데이터를 관리하는 방식은 아래처럼 발전해왔습니다.

 

방식 한계
파일 시스템 응용 프로그램 개발이 어렵고, 동시 공유·회복·보안 같은 고급 기능 제공 어려움
관계 DBMS 이용 텍스트는 DB에, 이미지·비디오는 파일에 저장(GIS 등에서 사용) — 파일 데이터엔 고급 기능 제공 불가
확장된 관계 DBMS BLOB(Binary Large Object) 타입 추가로 멀티미디어도 저장 — 완벽 지원은 어렵고 SQL 표현이 까다로움
객체지향 DBMS 다양한 처리 기능 제공 — 동시성 제어·질의 최적화·회복 같은 관계 DB의 고급 기능은 부족

※ 멀티미디어 데이터 관리 기능을 제공하는 대표 DBMS로는 UniSQL, 오라클, 인포믹스, O2, DB2 UDB 등이 있습니다.

 

📖 데이터 웨어하우스(data warehouse)
데이터베이스 시스템에서 의사 결정에 필요한 데이터를 미리 추출해, 원하는 형태로 변환·통합한 읽기 전용 데이터 저장소입니다. 여러 개의 데이터베이스 시스템을 대상으로 하며, 의사 결정 지원 시스템(DSS) 구축에 활용됩니다.

 

데이터베이스 1·2·3 → 변환 및 추출 → 데이터 웨어하우스 사용자
(의사결정)

 

특징 의미
주제 지향적 (subject-oriented) 특정 주제(매출, 고객 등) 중심으로 데이터를 구성
통합된 (integrated) 여러 시스템의 데이터를 하나로 통합
비소멸성 (nonvolatile) 한 번 적재된 데이터는 삭제·변경되지 않고 유지
시간에 따라 변하는 (time-variant) 현재 데이터뿐 아니라 과거 데이터도 함께 누적 보관

 

데이터 마트(Data Mart) : 데이터 웨어하우스의 방대한 데이터를 특정 부서나 특정 목적에 맞춰 더 좁고 구체적인 주제로 다시 추출한 작은 규모의 저장소입니다. 전사적 데이터 웨어하우스보다 가볍기 때문에 부서 단위의 소규모 의사 결정에 훨씬 빠르고 효율적으로 활용할 수 있습니다.

 

 

 

📌 핵심 정리

· 객체지향 DB : 객체(OID) · 속성(다중값 가능) · 메서드 · 메시지 · 클래스로 구성, 클래스 계층은 IS-A, 복합 객체는 Is-Part-Of 관계 — 현대 실무에서는 NoSQL이 유사한 역할을 더 널리 대체
· 객체관계 DB : SQL3부터 객체지향 개념을 지원하며 관계형 위에 확장된 모델
· 분산 DB : 분산 처리기·분산 DB·통신 네트워크로 구성, 단편화(수평/수직/혼합)로 저장 효율을 높임 (완전성·회복성·분리성 필수)
· CAP 이론 : 분산 시스템은 분할 내성 하에서 일관성과 가용성을 동시에 완벽히 만족할 수 없음
· 분산 투명성 5가지 : 위치·중복·단편화·병행·장애 투명성
· 멀티미디어 DB : 대용량·복잡한 검색·복잡한 구조라는 특성, 파일 시스템 → 관계 DBMS → 확장 관계 DBMS → 객체지향 DBMS로 관리 방식이 발전
· 데이터 웨어하우스·데이터 마트 : 주제 지향적·통합적·비소멸성·시간에 따라 변하는 읽기 전용 저장소이며, 부서·목적별로 더 작게 추출한 것이 데이터 마트

 

 

태그 : 객체지향 데이터베이스 개념클래스 계층 상속 IS-A복합 객체 Is-Part-Of객체관계 데이터베이스 SQL3분산 데이터베이스 시스템단편화 수평 수직 혼합분산 투명성 5가지멀티미디어 데이터베이스BLOB 데이터 타입데이터 웨어하우스 DSSNoSQL 문서형 그래프형CAP 이론 분산시스템데이터 마트 Data Mart

반응형
: