본문 바로가기
DB & SQL/데이터베이스 개론

데이터베이스 응용 기술

by k-mozzi 2022. 3. 3.
반응형
Preface

 

이번 장에선 관계 데이터베이스가 아닌, 다양한 종류의 DB를 알아보았다.

 

단편화 투명성을 공부하던 중, 단편화의 장점으로 저장 공간을 적게 사용한다는 것과 관리할 데이터의 수가 줄어든다는 내용을 본 후

 

'단편화를 통해 하나의 릴레이션을 여러 개의 릴레이션으로 분할하면 오히려 릴레이션이 늘어나 저장 공간을 더욱 많이 차지하고, 관리할 데이터의 수도 증가하는 것이 아닐까?'라는 의문이 들어 한참을 고민해 보니 해당 내용은 분산 DBS에만 국한된 개념일 것 같다는 생각이 들었다.

 

또, 분산 DBS의 장점 중 하나인 신뢰성과 가용성 증대를 완벽히 실현시키려면 데이터의 부분 중복이 아닌, 완전 중복을 항상 충족시켜야 할 것 같다는 생각이 들었다.

 

 

원래 이번 책은 개강 전에 마무리할 계획이었지만, 예상보다 공부 기간이 조금 길어졌다.

 

그래도 마지막 장 만을 남겨두고 있어 이번 주가 지나기 전에 끝낼 수 있을 것 같다.

 

책을 마친 후에는 개발 공부를 잠시 중단하고 2~3달 간 토익 공부에 몰두하고자 한다.

 

졸업 요건을 달성한 후에는 MySQL을 공부할 계획이다.


 

1. 객체지향 데이터베이스

 

 

- 관계 데이터베이스는 관계 데이터 모델의 기능적 제약조건과 SQL의 표현력 한계로 인해 다양한 응용 분야에 부적합하다.

 

 

- 객체지향 데이터 모델: 객체와 객체 식별자, 속성과 메서드, 클래스, 클래스 계층 및 상속, 복합 객체 등을 지원하는 객체지향 개념에 기반을 둔 데이터 모델

 

 

- 객체: 현실 세계에 존재하는 개체를 추상적으로 표현한 것

→ 하나 이상의 속성과 메서드로 구성된다.

 

 

- 객체 식별자(OID: Object Identifier): 시스템 전체에서 유일하게 식별되는 것

1) 특정 객체에 접근하기 위한 유일한 수단으로 사용한다.

2) 객체 식별자를 사용해 객체 간의 관계를 참조할 수 있다.

 

 

- 속성: 관계 데이터 모델의 속성과 같은 의미

1) 값을 여러 개 가질 수 있다.

2) 사용자가 정의한 클래스뿐 아니라 해당 클래스의 하위 클래스도 도메인으로 정의할 수 있다.

 

 

- 메서드: 객체에 수행할 수 있는 연산

 

 

- 메시지: 객체에 접근하기 위한 공용 인터페이스

 

 

- 클래스: 속성과 메서드를 공유하는 유사한 성질의 객체들을 하나로 그룹화한 것

→ 객체는 클래스의 구성원으로 클래스(객체) 인스턴스 라고도 한다.

 

 

- 클래스 계층: 클래스를 단계적으로 세분화 한 것

→ 상속이라는 객체지향 개념을 지원한다.

 

 

- 상속: 상위클래스의 속성과 메서드를 자신의 모든 하위클래스에 물려주는 것

1) 단일 상속: 하위클래스가 단 하나의 상위클래스로부터 속성과 메서드를 상속받는 것

2) 다중 상속: 하위 클래스가 여러 개의 상위 클래스로부터 속성과 메서드를 상속받는 것

 

 

- 복합 객체: 시스템에서 기본적으로 제공하지 않는 사용자 정의 클래스를 도메인으로 하는 속성을 가진 객체

→ 속성 값으로 다른 객체를 참조한다.

 

[ 복합 객체 클래스의 예 ]

 

 

- 객체지향 데이터베이스에서는 질의 대상이 클래스이고 질의 결과는 클래스에 속하는 객체 집합이다.

 

 

- 오퍼랜드 : 피연산자

1) 단일 오퍼랜드 질의: 클래스 하나 또는 클래스 하나와 해당 클래스의 하위 클래스 전체를 대상으로 하는 질의

2) 다중 오퍼랜드 질의: 여러 클래스를 대상으로 하는 질의

 

 

- 객체지향 DB의 데이터 모델과 질의어는 표준화되지 못하여 널리 사용되지 못하고 특수한 몇몇 분야에서만 사용된다.

 


 

2. 객체관계 데이터베이스

 

 

- 객체관계 데이터 모델: 객체지향 개념과 관계 데이터 모델의 개념을 통합한 것

→ 릴레이션, 객체, 메서드, 클래스, 상속, 캡슐화, 복합 객체 등을 모두 지원한다.

 

 

- 객체관계 데이터를 위한 SQL: 기본 질의어 기능 + 사용자 정의 타입, 객체, 객체 식별자, 메스드 등과 같은 객체지향 특성

 

 

- 데이터베이스의 목적

1) 객체지향: 객체지향 프로그래밍 개념에 기반을 두고 DB의 기능을 추가하기 위함

2) 객체관계: 관계 DB에 기반을 두고 사용자가 더 풍부한 데이터 타입을 추가할 수 있도록 하기 위함

 


 

3. 분산 데이터베이스 시스템

 

 

- 중앙 집중식 데이터베이스 시스템: DBS를 물리적으로 한 장소에 설치하여 운영하는 것

 

 

- 분산 데이터베이스 시스템: 물리적으로 분산된 DBS를 네트워크로 연결해 사용자가 논리적으로는 하나의 중앙 집중식 DBS처럼 사용할 수 있도록 한 것

 

 

- 분산 DBS의 구성

1) 분산 처리기: 지역별로 필요한 데이터를 처리할 수 있는 지역 컴퓨터

→ DB를 자체적으로 관리할 수 있는 DBMS를 가지고 있다.

 

2) 분산 데이터베이스: 물리적으로 분산된 지역 DB

→ 보통 해당 지역에서 가장 많이 사용하는 데이터를 저장한다.

 

3) 통신 네트워크

 

 

- 분산 데이터 독립성: DB가 분산되어 있음을 사용자가 인식하지 못하게 하는 것

→ 분산 투명성을 보장해야 한다.

 

 

- 분산 투명성의 종류


1. 위치 투명성: DB가 지역적으로 분산되어 있지만, 사용자가 접근하려는 데이터의 실제 저장 위치를 알 필요 없이 DB의 논리적인 이름만으로 데이터에 접근할 수 있는 것

 

- 다른 지역에 있는 데이터에 접근하는 방법

1) 다른 지역에 있는 데이터를 가져와 처리한다.

2) 데이터 접근 요청을 하는 트랜잭션을 데이터가 있는 지역으로 보내 처리한 후, 결과 데이터만 가져온다.

3) 두 방법을 모두 사용해 처리한다.

 


 

2. 중복 투명성: 동일한 데이터가 여러 지역에 중복 저장되더라도 사용자가 중복을 인식하지 못하고, 하나의 DBS에 데이터가 저장된 것처럼 사용하는 것

 

- 데이터 중복의 유형

1) 완전 중복: 동일한 데이터를 둘 이상의 지역에 있는 분산 DB에 저장하는 것

2) 부분 중복: 일부 데이터만 중복하여 저장하는 것

3) 분할 데이터베이스: 지역의 분산 DB에 중복되는 데이터가 전혀 없는 경우

 

- 데이터 중복의 장점

1) 한 지역에 문제가 발생해도 동일 데이터가 있는 다른 지역에서 작업을 계속할 수 있으므로 신뢰성과 가용성이 높아진다.

2) 동일 데이터가 저장된 여러 지역에서 병렬 처리를 수행할 수 있어 데이터 처리 능력이 향상된다.

3) 데이터가 여러 지역에 분산되므로 처리 부담을 줄일 수 있다.

4) 새로운 지역에 DB를 설치할 수 있는 확장성이 증대된다.

 

- 데이터 중복의 단점

1) 저장 공간을 많이 사용한다.

2) 데이터 변경 비용이 증가하고, 데이터 불일치가 발생할 수도 있다.

3) 설계 및 구축과 관리 비용이 증가한다.

→ 추가 통신 비용, 처리비용 등

 


 

3. 단편화 투명성: 데이터가 단편화된 것을 인식할 수 없도록 하는 것

 

- 단편화: 하나의 릴레이션을 더 작은 조각(단편)으로 나누고 각 조각을 별개의 릴레이션으로 처리하는 것

→ 저장 공간을 적게 사용하고, 관리할 데이터 수도 줄어든다.

 

- 단편화 수행의 조건

1) 완전성: 전체 릴레이션의 모든 데이터는 어느 한 조각에는 꼭 속해야 한다.

2) 회복성: 단편화된 조각들로부터 원래의 전체 릴레이션을 회복할 수 있어야 한다.

3) 분리성: 전체 릴레이션의 모든 조각을 서로 중복되지 않게 분리해야 한다.

 

- 단편화의 종류

1) 수평적 단편화

2) 수직적 단편화

3) 혼합 단편화

 


 

4. 병행 투명성: 분산 DB와 관련된 트랜잭션들이 동시에 수행되더라도 결과는 항상 일관성을 유지하는 것

 

 

5. 장애 투명성: 특정 지역 시스템에 문제가 발생하더라도 전체 시스템이 작업을 계속 수행할 수 있는 것


 

 

- 전역 개념 스키마: 분산 DB에 저장할 모든 데이터 구조와 제약조건을 정의

→ 데이터의 분산은 고려하지 않는다.

 

 

- 단편화 스키마: 전역 개념 스키마를 분할하는 방법인 단편화와, 전역 개념 스키마 및 조각 스키마의 대응 관계를 정의

→ 어떻게 분할 할 것인가

 

 

- 할당 스키마: 각 조각 스키마의 인스턴스를 물리적으로 저장해야 되는 지역을 정의

→ 분할된 데이터를 어디에 저장할 것인가

 

 

- 지역 스키마: 지역별로 저장하고 있는 데이터 구조와 제약조건을 정의

 


 

4. 멀티미디어 데이터베이스 시스템

 

 

- 미디어: 데이터의 각 타입

 

 

- 멀티미디어 데이터: 여러 미디어의 조합으로 이루어진 데이터

 

 

- 멀티미디어 데이터의 특성

1) 대용량 데이터

→ 데이터를 압축저장해야 하므로 별도의 저장 공간이 필요하다.

 

2) 검삭 방법이 복잡한 데이터

1) 설명 기반 검색: 멀티미디어 데이터의 특성을 나타내는 키워드나 설명을 데이터와 함께 저장해두었다가 검색 시 사용

2) 내용 기반 검색: 멀티미디어 데이터의 실제 내용을 이용하여 검색

→ 데이터 정보를 추출하는 기술과 멀티미디어 데이터용 질의 처리 기법이 별도로 필요하다.

 

3) 구조가 복잡한 데이터

1) 원시 데이터: 기본 타입의 데이터

2) 등록 데이터: 멀티미디어 데이터의 특성과 필요한 정보를 별도로 추출한 데이터

→ 원시 데이터를 처리하는 데 도움

3) 서술 데이터: 멀티미디어 데이터에 지정된 키워드나 설명 등

 

 

- 멀티미디어 DBMS의 구성


1. 파일 시스템을 이용하는 방식: 응용 프로그램에 필요한 멀티미디어 데이터를 파일로 저장하고 관리

1) 프로그래밍 언어로 데이터 처리 코드를 작성한 후 응용 프로그램에 포함시킨다.

2) 복잡한 멀티미디어 데이터를 저장하기 어렵다.

3) 고급 기능을 제공하기 어렵다.

 

 

2. 관계 DBMS를 이용하는 방식: 일반 데이터는 관계 DB에 저장하고, 대용량 데이터는 파일에 저장

1) 파일에 저장된 데이터 처리 요청은 프로그래밍 언어로 작성한다.

2) 관계 DB에 저장된 데이터 처리 요청은 SQL로 작성한다.

→ 데이터 처리 요청을 위해 두 방법을 모두 지원해야 한다.

 

 

3. 확장된 관계 DBMS를 이용하는 방식: 모든 멀티미디어 데이터를 저장할 수 있도록 기존의 관계 DBMS를 확장

1) 이진 대형 객체라는 새로운 데이터 타입을 추가한다.

2) 관계 DBMS의 고급 기능을 완벽히 지원하기 어렵고, 처리 요청을 SQL로 표현하기도 쉽지 않다.

 

 

4. 객체지향 DBMS를 이용하는 방식: 객체지향 개념을 지원하는 DBMS를 이용

1) 객체지향 개념을 지원하므로 멀티미디어 데이터를 처리하는 데 필요한 여러 기능을 제공한다.

2) 관계 DBMS의 고급 기능을 제공하지 못하는 경우가 많다.


 

- 멀티미디어 DB에서는 데이터 자체에 대한 질의보단, 데이터에 포함된 특정 객체나 데이터에 대한 설명, 키워드를 이용한 질의를 주로 사용한다.

 

 

- 멀티미디어 데이터의 질의 유형

1) 텍스트 질의: 사용자가 제시한 키워드를 포함하는 문서를 검색하는 질의

2) 이미지 질의: 사용자가 제시한 키워드와 관련 있는 이미지를 검색하는 내용 검색이나, 사용자가 제시한 이미지와 유사한 이미지를 검색하는 유사도 검색 질의

3) 비디오 질의: 장면을 대상으로 하는 검색 질의

4) 공간 질의: 주어진 범위 조건에 맞는 특정 위치를 검색하는 질의

 

 

- 멀티미디어 데이터의 질의 처리 기법

1) 매칭 기법: 저장된 데이터와 질의 조건으로 주어진 데이터 간의 유사도를 계산하여, 유사도가 높은 데이터를 검색

2) 랭킹 기법: 검색 결과를 질의 조건과의 관련 정도에 따라 정렬하여, 관련성이 높은 결과부터 제공

3) 필터링 기법: 질의 조건과 관련성이 적은 데이터를 단계적으로 제거하여 검색 범위를 줄임

4) 인덱스 기법: 인덱스 구조를 이용해 질의 조건에 적합한 데이터를 검색

 


 

5. 기타 데이터베이스 응용 기술

 

 

- 웹 데이터베이스: 웹 서비스의 특성과 DBS의 데이터 관리 기능을 통합한 것

 

 

- 미들웨어: 웹 서비스와 DBS를 연결해주는 매개체

1) 서버 확장 방법: 미들웨어를 통해 DB에 접근하는 프로그램을 웹 서버 쪽에 두는 방법

→ 주로 사용되는 방법

2) 클라이언트 확장 방법: 클라이언트 쪽에 두는 방법

 

 

- 데이터 웨어하우스: DBS에서 의사 결정에 필요한 데이터를 미리 추출하여, 이를 원하는 형태로 변환하고 통합한 읽기 전용의 데이터 저장소

1) 검색 위주의 의사 결정 업무를 위한 것

2) 현재의 데이터와 과거의 데이터를 함께 유지하는 경우가 많음

→ 올바른 의사 결정을 위해

→ 스냅샷: 데이터 웨어하우스가 저장하고 있는 각 시점의 데이터

 

728x90
반응형

'DB & SQL > 데이터베이스 개론' 카테고리의 다른 글

(Fin) 데이터 과학과 빅데이터  (2) 2022.03.06
보안과 권한 관리  (0) 2022.02.28
회복과 병행 제어  (0) 2022.02.24
정규화  (0) 2022.02.23
데이터베이스 설계  (0) 2022.02.21

댓글