데이터베이스 응용 기술
1. 객체지향 데이터베이스
등장 배경
관계 데이터베이스의 한계:
- SQL 표현력 제한
- 복잡한 데이터 구조 표현 어려움
- CAD/CAM/CASE 등 특수 분야 부적합
객체지향 데이터 모델
객체지향 개념을 기반으로 한 데이터 모델
핵심 개념
| 개념 | 설명 |
|---|---|
| 객체 | 현실 세계의 개체 표현 |
| OID | 객체 식별자 (유일) |
| 속성 | 객체의 상태 |
| 메서드 | 객체의 동작 |
| 클래스 | 유사 객체의 그룹 |
| 상속 | 속성/메서드 물려받기 |
객체와 OID
┌─────────────────┐
│ 객체 │
├─────────────────┤
│ OID: 고유 식별자 │
├─────────────────┤
│ 속성들 │
│ - 이름 │
│ - 나이 │
├─────────────────┤
│ 메서드들 │
│ - getName() │
│ - setAge() │
└─────────────────┘- OID로 객체 간 참조
- 메시지로 객체에 접근
클래스 계층과 상속
[Person]
│
IS-A 관계
│
┌────┴────┐
▼ ▼
[Student] [Employee]
│
▼
[Graduate]상속 유형
| 유형 | 설명 |
|---|---|
| 단일 상속 | 하나의 상위 클래스 |
| 다중 상속 | 여러 상위 클래스 |
복합 객체
다른 객체를 참조하는 객체
- Is-Part-Of 관계 표현
- 속성 값으로 다른 객체의 OID 저장
[자동차] ─────┬─────► [엔진]
├─────► [바퀴]
└─────► [핸들]
Is-Part-Of객체지향 질의
| 구분 | 관계 DB | 객체지향 DB |
|---|---|---|
| 대상 | 릴레이션 | 클래스 |
| 결과 | 릴레이션 | 객체 집합 |
한계: 표준화된 질의어 부재
2. 객체관계 데이터베이스
개념
관계 DB + 객체지향 개념
지원 기능
- 릴레이션
- 객체, 메서드
- 클래스, 상속
- 캡슐화
- 사용자 정의 타입
객체지향 DB vs 객체관계 DB
| 구분 | 객체지향 DB | 객체관계 DB |
|---|---|---|
| 기반 | OOP 개념 | 관계 DB |
| 목적 | DB 기능 추가 | 타입 확장 |
| 표준 | 미흡 | SQL3 |
SQL3 (1999~)
- 객체지향 개념 지원
- 사용자 정의 타입
- 객체 식별자
- 메서드 정의
3. 분산 데이터베이스 시스템
개념
물리적으로 분산된 DB를 논리적으로 하나처럼 사용
┌─────────────────────────────┐
│ 논리적: 하나의 DB │
├─────────────────────────────┤
│ │
│ ┌─────┐ ┌─────┐ │
│ │지역A│◄───►│지역B│ │
│ │ DB │ │ DB │ │
│ └──┬──┘ └──┬──┘ │
│ │ 네트워크 │ │
│ └─────┬─────┘ │
│ ▼ │
│ ┌─────┐ │
│ │지역C│ │
│ │ DB │ │
│ └─────┘ │
│ │
│ 물리적: 분산된 DB │
└─────────────────────────────┘구성 요소
| 구성 | 설명 |
|---|---|
| 분산 처리기 | 지역 컴퓨터 + DBMS |
| 분산 DB | 지역별 데이터베이스 |
| 네트워크 | 통신망 연결 |
분산 투명성
분산되어 있음을 사용자가 인식 못함
5가지 투명성
| 투명성 | 의미 |
|---|---|
| 위치 | 저장 위치 몰라도 접근 |
| 중복 | 중복 저장 인식 불필요 |
| 단편화 | 분할 저장 인식 불필요 |
| 병행 | 동시 수행해도 일관성 유지 |
| 장애 | 일부 장애에도 계속 작동 |
데이터 중복
완전 중복: 전체 데이터 복제 부분 중복: 일부만 복제 분할: 중복 없이 분할
| 장점 | 단점 |
|---|---|
| 신뢰성/가용성 향상 | 저장 공간 증가 |
| 병렬 처리 가능 | 변경 비용 증가 |
| 부하 분산 | 불일치 위험 |
단편화
릴레이션을 작은 조각으로 분할
조건
- 완전성: 모든 데이터 포함
- 회복성: 원본 복구 가능
- 분리성: 조각 간 중복 없음
유형
| 유형 | 분할 단위 |
|---|---|
| 수평적 | 투플(행) 단위 |
| 수직적 | 속성(열) 단위 |
| 혼합 | 둘 다 사용 |
분산 DB 스키마
전역 개념 스키마
│
▼
단편화 스키마 (논리적 분할)
│
▼
할당 스키마 (물리적 배치)
│
▼
지역 스키마 (각 지역 구조)장단점
장점
- 신뢰성/가용성 증대
- 지역 자치성
- 확장 용이
단점
- 설계/구축 비용 증가
- 관리 복잡
- 통신 비용 발생
4. 멀티미디어 데이터베이스
멀티미디어 데이터
| 유형 | 예시 |
|---|---|
| 텍스트 | 문서, 문자 |
| 그래픽 | 벡터 이미지 |
| 이미지 | 사진, 비트맵 |
| 비디오 | 동영상 |
| 오디오 | 음성, 음악 |
특성
대용량
- 수 KB ~ 수십 MB 이상
- 압축 저장 필요
복잡한 검색
| 방식 | 설명 |
|---|---|
| 설명 기반 | 키워드/설명으로 검색 |
| 내용 기반 | 실제 내용으로 검색 |
복잡한 구조
┌───────────────────┐
│ 멀티미디어 데이터 │
├───────────────────┤
│ 원시 데이터 │
│ (텍스트, 이미지 등) │
├───────────────────┤
│ 등록 데이터 │
│ (처리용 메타정보) │
├───────────────────┤
│ 서술 데이터 │
│ (검색용 키워드) │
└───────────────────┘구현 방식
| 방식 | 특징 |
|---|---|
| 파일 시스템 | 직접 관리, 개발 어려움 |
| 관계 DB + 파일 | SQL + 파일 처리 병행 |
| 확장 관계 DB | BLOB 타입 지원 |
| 객체지향 DB | 추상화/상속 지원 |
BLOB
Binary Large Object
- 대용량 이진 데이터 저장
- 이미지, 비디오 등
질의 처리 기법
| 기법 | 설명 |
|---|---|
| 매칭 | 유사도 계산 |
| 랭킹 | 관련성 순 정렬 |
| 필터링 | 단계적 범위 축소 |
| 인덱스 | 인덱스 활용 검색 |
5. 웹 데이터베이스
개념
웹 서비스 + DB 통합
┌─────────┐
│ 브라우저 │
└────┬────┘
│ HTTP
▼
┌─────────┐
│ 웹 서버 │
└────┬────┘
│
▼
┌─────────────┐
│ 미들웨어 │
│ (DB Gateway)│
└────┬────────┘
│ SQL
▼
┌─────────┐
│ DBMS │
└─────────┘미들웨어
웹 서버와 DB 연결
| 방식 | 위치 |
|---|---|
| 서버 확장 | 웹 서버 측 (주로 사용) |
| 클라이언트 확장 | 브라우저 측 |
6. 데이터 웨어하우스
개념
의사 결정 지원용 읽기 전용 DB
┌──────────┐ ┌──────────┐
│ 운영 DB 1 │ │ 운영 DB 2 │
└────┬─────┘ └────┬─────┘
│ 추출 │
└─────┬─────┘
▼
┌───────────┐
│ 변환/통합 │
└─────┬─────┘
▼
┌─────────────────┐
│ 데이터 웨어하우스 │
│ (읽기 전용) │
└────────┬────────┘
│
┌────┴────┐
▼ ▼
[분석] [리포트]일반 DB vs 웨어하우스
| 구분 | 일반 DB | 웨어하우스 |
|---|---|---|
| 목적 | 업무 처리 | 의사 결정 |
| 작업 | CRUD | 읽기 전용 |
| 데이터 | 최신만 | 과거+현재 |
| 사용자 | 업무 담당자 | 경영진/분석가 |
4가지 특징
주제 지향적
- 의사 결정 주제 중심
- 이해하기 쉬운 형태
통합성
- 여러 DB에서 추출
- 일관된 형태로 통합
시간 변이성
- 과거 + 현재 데이터
- 스냅샷 유지
비소멸성
- 읽기 전용
- 트랜잭션 변경 없음
요약
데이터베이스 유형
| 유형 | 핵심 |
|---|---|
| 객체지향 DB | 객체/클래스/상속 |
| 객체관계 DB | 관계 DB + 객체 |
| 분산 DB | 물리 분산, 논리 통합 |
| 멀티미디어 DB | 대용량 미디어 |
| 웹 DB | 웹 + DB 통합 |
| 웨어하우스 | 의사결정 지원 |
분산 DB 투명성
위치 - 저장 위치 몰라도 됨
중복 - 복제 인식 불필요
단편화 - 분할 인식 불필요
병행 - 동시 처리 일관성
장애 - 부분 장애에도 작동데이터 웨어하우스 특징
주제 지향 - 의사결정 중심
통합 - 여러 소스 통합
시간 변이 - 과거+현재
비소멸 - 읽기 전용