가자공부하러!

데이터베이스(8) - 기타 실무 응용(병행 제어, 보안, 튜닝, ODB, 고급DB) 본문

공부/정보처리기사(실기)

데이터베이스(8) - 기타 실무 응용(병행 제어, 보안, 튜닝, ODB, 고급DB)

오피스엑소더스 2019. 6. 3. 10:16


1. 시스템 카탈로그

2. 인덱스

3. 트랜잭션

4. 회복(Recovery)

5. 병행 제어(Concurrency Control)

6. 보안(Security)

7. 튜닝(Tuning)

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

9. 고급 데이터베이스




1. 기타 실무 응용 - 시스템 카탈로그


https://dotheright.tistory.com/109#1

2. 기타 실무 응용 - 인덱스


https://dotheright.tistory.com/109#2

3. 기타 실무 응용 - 트랜잭션


https://dotheright.tistory.com/109#3

4. 기타 실무 응용 - 회복(Recovery)


https://dotheright.tistory.com/109#4

5. 기타 실무 응용 - 병행 제어(Concurrency Control)


1. 병행 제어(Concurrency Control)의 개념

  > 트랜잭션 간의 상호 작용을 제어하는 기술

- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행하는 경우

- 실행되는 트랜잭션들이 DB의 일관성을 파괴하지 않도록 제어

  > 병행성

- 여러 개의 트랜잭션들이 동시에 인터리빙 하게 실행되는 것

ㄴ 인터리빙(Interleaving) : 트랜잭션들이 번갈아가며 조금씩 작동


2. 병행 제어의 목적

  > DB 공유도 최대화

  > 시스템 활용도 최대화

  > 사용자에 대한 응답 시간 최소화

  > 단위 시간 당 트랜잭션 처리 건수 최대화

  > DB 일관성 유지


3. 병행 제어의 필요성

  > 예측 가능한 각종 문제 방지

- 갱신 분실(Lost Update)

ㄴ 2개 이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때, 갱신 결과의 일부가 없어지는 현상

- 모순성(Inconsistency) == 불일치성

ㄴ 복수의 사용자가 동시에 같은 데이터를 갱신할 때, DB내의 데이터들이 상호 일치하지 않아 모순된 결과가 발생하는 현상

ㄴ 불일치 분석(Inconsistent Analysis)이라고도 한다.

- 연쇄 복귀(Cascading Rollback)

ㄴ 병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback되는 경우 다른 트랙잭션들도 함께 Rollback되는 현상


4. 잠금(Lock)

  > DB관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것

  > 트랜잭션들은 어떤 데이터에 접근하기 전에 잠금을 요청하여 잠금을 허락받아야만 한다.

  > 데이터를 갱신할 때에는 반드시 아래의 규칙을 따라야 한다.

- 잠금(Lock) → 실행(Execute) → 해제(Unlock)

  > 잠금 단위

- 변행 제어에서 한 번에 잠금할 수 있는 단위이다.

- 데이터베이스, 테이블, 레코드, 필드 등이 사용될 수 있다.

- 잠금 단위의 크기

ㄴ 작은 경우 : 잠금 수가 많아 관리가 복잡하지만 공유성 수준이 높아진다.

ㄴ 큰 경우 : 잠금 수가 적어 관리가 쉽지만 공유성 수준이 낮아진다.

ㄴ [잠금단위 큼] 데이터베이스 → 테이블 → 레코드 → 필드 [잠금단위 작음]

  > 교착 상태(Dead Lock)

- 잠가놓은 자원 때문에 모든 트랜잭션들이 실행을 전혀 진전시키지 못하고 무한정 기다리고 있는 상태

ㄴ 트랜잭션 처리 후에는 즉각 unlock 해줘야 한다.


5. 병행 제어 기법의 종류

  > 2-단계 잠금 규약(Two-Phase Lock Protocol) 기법

- 트랜잭션 스케줄의 직렬성을 보장하는 대표적인 잠금 기법

- 모든 트랜잭션들을 다음과 같이 2단계로 잠금과 잠금 해제를 수행하게끔 제한한다.

ㄴ 확장(Growing) 단계 : 트랜잭션이 잠금만 수행할 수 있고 잠금 해제는 수행할 수 없는 단계

ㄴ 축소(Shirinking) 단계 : 트랜잭션이 잠금 해제만 수행할 수 있고 잠금은 수행할 수 없는 단계

- 스케줄의 직렬성을 보장하는 장점은 있지만, 교착 상태를 예방할 수 없는 단점이 있다.

  > 타임 스탬프 순서(Time Stamp Ordering) 기법

- 타임 스탬프 : 시스템이 각 트랜잭션을 실행할 때 부여하는 값

- 트랜잭션들을 인터리빙하게 실행한 결과가 시간 스탬프 순서대로 트랜잭션을 실행하는 직렬 스케줄의 실행 결과와 항상 동일하다는 것을 보장하는 기법

- 직렬성 순서를 결정하기 위해 트랜잭션 간 실행 순서를 미리 결정하는 기법들 중 가장 보편적인 방법

- 읽거나 변경할 데이터에 대해 트랜잭션을 실행하기 전에 타임 스탬프를 부여하고 그 순서에 따라 작업을 수행

- 교착상태가 발생하지 않는다.



6. 기타 실무 응용 - 보안(Security)


1. 보안(Security)의 개념

  > DB일부 또는 전체에 대하여 권한이 없는 사용자가 접근을 수행하는 것을 금지하기 위해 사용하는 기술

  > 불법적인 데이터 폭로나 변경 또는 파괴로부터 DB를 보호하는 기술


2. 보안 기술의 목표

  > 정보 보호(Information Security) : 정보의 불법적인 노출 방지

  > 정보 인증(Information Authentication) : 고의적인 허위 정보 저장 및 수정 방지

  > 사용자 인증(User Authentication) : PW나 음성, 지문 등을 활용하여 DB 사용자의 신원 확인


3. 보안 기법

  > SQL을 이용한 권한 부여 기법

- 뷰(View) 기법

ㄴ 일반 사용자에게 공개되지 않도록 설정된 데이터 값은 그 열을 제외한 뷰를 생성함으로써 데이터에 대한 접근을 차단하는 방법

- DCL(Data Control Language)을 이용한 기법

ㄴ DBA가 GRANT/REVOKE 명령어를 사용하여 사용자의 권한을 설정하는 방법

ㄴ 사용자 등급의 종류 : DBA, RESOURCE, CONNECT

  > 암호화 기법

- 개인키 암호화(Private Key Encryption) 기법

ㄴ 동일한 키로 데이터를 암호화 하고 복호화 한다.

ㄴ DB 사용자는 평문의 정보를 암호화 알고리즘과 개인키를 활용하여 암호문으로 바꾸어 저장한다.

ㄴ 사용자는 암호문을 복호화 알고리즘과 개인키를 활용하여 평문의 정보고 바꾸어 이용한다.

ㄴ 대칭 암호 기법, 단일키 암호화 기법이라고도 한다.

ㄴ 장점 : 암호화/복호화 속도가 빠름, 알고리즘 단순, 파일의 크기가 상대적으로 작음

ㄴ 단점 : 사용자 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐

- 공개키 암호화(Public Key Encryption) 기법

ㄴ 암호화에 쓰이는 공개키는 DB사용자에게 공개하고 복호화에 쓰의는 비밀키는 관리자가 비공개 관리

ㄴ DB 사용자는 공개키를 활용하여 암호문으로 바꾸어 저장

ㄴ 비밀키와 복호화 알고리즘에 대한 권한이 있는 사용자만이 그것들을 활용하여 암호문을 평문으로 바꾸어 이용

ㄴ 비대칭 암호 기법이라고도 하며 대표적으로는 RSA(Rivest Shamir Adleman)기법이 있다.

ㄴ 장점 : 키의 분배가 용이, 관리해야 할 키의 개수가 상대적으로 적음

ㄴ 단점 : 암호화/복호화 속도 느림, 알고리즘 복잡, 파일의 크기가 상대적으로 큼



7. 기타 실무 응용 - 튜닝(Tuning)


1. 튜닝?

  > DB응용프로그램, DB, 운영체제 등의 조정을 통하여 DBMS의 성능을 향상시키는 작업

  > 목적 : 

- DBMS가 높은 작업 처리량과 짧은 응답 시간을 갖도록 하는 것이 중요


2. 튜닝의 목표

  > DB에 접근하는 SQL문 실행 시 디스크 블록에 대한 접근 횟수를 최소화

- 원하는 데이터가 포함된 디스크를 적절히 분산시켜 디스크 입출력이 집중되는 것을 막는다.

  > 메모리 활용

- 디스크 블록에서 한번 읽어온 데이터는 가능한 한 메모리 영역에 보관한다.

ㄴ 다시 그 데이터가 필요할 때 메모리에서 신속히 가져오도록 하기 위함.

- 디스크-메모리 로드 절차 생략(캐시 활용)

  > 모든 SQL문은 공유가 가능하도록 대소문자 일치 등의 이름 작성 규칙을 준수하여 작성한다.

  > 여러 명의 사용자가 자원들을 안정적으로 접근할 수 있도록 허용하기 위해 잠금 기능 최소화

- 잠금이 최소한으로 발생하도록 트랜잭션을 분산시키는 방법 사용


3. 튜닝의 단계

  > 비즈니스 규칙(Business Rule) 튜닝

- 비즈니스 규칙이란? : 기업의 업무 규칙이나 절차 등을 지칭

- DBA들이 직면한 성능상의 문제들은 실제로 시스템의 설계화 구현에 대한 정확치 않은 분석이나 부적절한 비즈니스 규칙으로 인해 발생한다.

- 비즈니스 규칙은 동시에 많은 사용자들이 접속하는 현실적인 환경을 고려해야 한다.

  > 데이터 설계(Data Design) 튜닝

- 구현된 응용프로그램에서 필요한 데이터가 무엇인지 정확히 파악해야 한다.

- 데이터 간 관계와 속성을 명확히 파악한 후 정보의 구조화 작업을 수행하는 것이 필요하다.

  > 응용 프로그램 설계(Application Design) 튜닝

- 같은 시스템에 접근하는 app이라도 구현 목적에 따라 서로 다른 설계 가능

- 각 프로세스의 성능을 조사하여 부하가 발생하는 시점에서 해당 app 실행에 필요한 시간 및 데이터 조사

- 튜닝을 필요로 하는 대상 app을 선정하고, 그것을 위주로 집중적인 튜닝 수행

  > DB의 논리적 구조(Logical Structure) 튜닝

- 작업 부하가 예상되는 질의와 갱신을 고려하여 스키마를 작성함으로써 DBMS 성능을 향상시키기 위한 효율적인 DB의 논리적 구조를 생성

  > DB 접근 방식(Access Method) 튜닝

- SQL의 장점과 app의 작업 처리를 최대화시키기 위해 보유하고 있는 DBMS의 기능을 충분히 활용하도록 한다.

  > 접근 경로(Access Path) 튜닝

- 효과적인 데이터 접근을 위해 B-트리 인덱스, 비트맵 인덱스, 역방향 인덱스 등의 사용을 고려

- app 테스트 단계를 거치면서 원하는 응답 속도를 얻기 위해 인덱스의 추가/삭제는 물론 설계의 개선도 고려

  > 메모리 관리(Memory Management) 튜닝

- 메모리 자원을 효율적으로 할당하여 캐시의 성능을 개선하고 SQL문의 파싱 작업을 감소시켜야 한다.

  > 물리적 구조(Physical Structure) 및 입출력(Input/Output) 튜닝

- 접근 비용을 최소화하기 위해 효율적인 데이터 블록 운영을 고려하여 적용

- 디스크 입출력 성능은 app 성능 저하의 주된 원인이므로 디스크 간 데이터를 분산하여 입출력 경함을 감소시킨다.

  > 자원의 경합(Competition) 튜닝

- 다수의 사용자가 동일한 자원에 대해 동시 접근을 원하는 환경에서 자원에 대한 경합의 유발은 불가피하다.

- 그러나 블록, 공유풀, 잠금 등 경합 형태를 감소시키기 위한 노력을 계속 수행해야 한다.

* 공유 풀 : 사용자가 실행한 SQL문의 구문 분석 정보가 저장되는 영역

  > HW 시스템에 특화된 부분의 튜닝

- DB는 사용되는 HW 시스템의 종류와 특성에 따라 성능의 차이가 나타난다.


4. 인덱스 튜닝

  > 인덱스 종류

- B-트리 인덱스

ㄴ 일반적으로 사용되는 인덱스 방식

ㄴ 루트 노드에서 하위 노드로 키 값의 크기를 비교해 나가면서 단말노드에서 찾고자 하는 데이터를 검색한다.

ㄴ 데이터 양에 상관없이 모든 데이터의 인덱스 탐색 시간이 동일하다.

- 비트맵 인덱스

ㄴ 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법

ㄴ 분포도가 좋은 컬럼에 적합하다.

ㄴ 분포도 : (조건에 맞는 레코드의 수 / 전체 릴레이션 레코드 수) * 100

ㄴ 분포도 값이 낮을 수록 분포도가 좋다고 한다.

ㄴ 데이터가 Bit로 구성되어 있기 때문에 효율적인 논리 연산이 가능하고 저장 공간이 작다.

- 역방향 인덱스

ㄴ 인덱스 컬럼의 데이터를 역으로 변환하여 인덱스 키로 사용하는 방법이다.

ㄴ B-트리 인덱스에서 발생할 수 있는 불균형 문제를 해결한다.

ㄴ 인덱스 검색 시 검색 경로가 한쪽 방향으로만 계속해서 수행되는 경우를 지칭

ㄴ 데이터 분포도가 좋아져 검색 성능이 좋다

  > 인덱스 선정 기준

- 분포도가 좋은 컬럼은 단독으로 인덱스를 생성한다.

- 데이터의 변경이 빈번하지 않은 컬럼에 인덱스를 생성한다.

- 인덱스들이 자주 조합되어 사용되는 경우는 하나의 결합 인덱스를 생성한다.

ㄴ 결합 인덱스(Concatenate Index) : 한 릴레이션 내 여러 컬럼들을 묶어 하나의 인덱스로 만든 것

- 결합 인덱스의 컬럼 순서는 데이터 분포도가 낮은 컬럼을 선행 컬럼으로 결정

  > 인덱스를 사용하지 못하는 경우

- 인덱스 키 생성 시 NULL값은 인덱스 대상에 포함되지 않는다.

ㄴ IS NULL, IS NOT NULL을 적용하여 추출한 데이터에는 인덱스가 의미 없다.

- <>, !=, NOT 등 부정연산자 : 다수의 데이터를 검색하므로 인덱스 불가

- LIKS '%A'와 같은 경우에 찾고자 하는 검색어의 첫 글자를 알 수 없기 때문에 정렬되어 있는 인덱스를 처음부터 검색해야 한다.

- 인덱스 컬럼에 함수나 수식을 사용하면 인덱스 키 값이 변형되기 때문에 인덱스로 사용할 수 없다.


8. 기타 실무 응용 - 객체 지향 데이터베이스


1. 객체 지향 데이터베이스(ODB : Object-Oriented Database)

  > 객체지향 DB는 객체 지향 패러다임을 사용하는 객체 지향 프로그래밍 언어에서 영향을 받아 생성된 객체 지향 기술과 DB기술의 결합체이다.

  > 객체 지향 DB는 객체 지향 데이터 모델의 개념을 반영하여 실세계에 존재하는 객체를 표현하고 관리하는 DB기술이다.

  > 객체 지향 DBMS를 위한 표준 모델로는 객체 지향형 DB관리 그룹(ODMG) 2.0 표준이 있다.


2. 객체 지향 DB의 구성

  > 객체와 객체 식별자(OID : Object IDentifier)

- 객체는 실세계 환경에서 존재하는 개체를 추상적으로 표현한 것이다.

- 객체 식별자는 많은 수의 객체들을 유일하게 식별하기 위해 시스템에 의해 생성되는 값으로 변경할 수 없다.

  > 속성(Attribute)과 메소드(Method)

- 속성은 객체를 기술하는데 사용되며 유일한 이름과 데이터 타입을 갖는다.

- 메소드는 객체에 수행될 연산, 즉 객체의 속성 값에 대한 변경이나 검색을 기술한 것이다.

- 특정 메소드를 실행하기 위해서는 해당 객체에 메시지(Message)를 보내야 한다.

  > 클래스(Class)와 인스턴스(Instance)

- 클래스는 공통적인 특성을 소유한 객체들을 그룹화 및 추상화 한 것을 말한다.

- 클래스는 동일한 속성과 메소드를 갖는 객체들의 집합을 의미한다.

- 인스턴스는 클래스를 이용하여 생성한 하나의 객체를 의미한다.

  > 상속(Inheritance)

- 클래스 계층 구조를 형성하는 서브 클래스와 슈퍼 클래스 간 존재하는 계승의 개념

- 계층 관계에 있는 클래스 간 공통점 및 차이점을 기술하는 추상화 기술

- 서브 클래스는 슈퍼 클래스의 모든 속성 및 메소드를 상속받아 사용할 수 있다.

- 일반적으로 서브 클래스와 슈퍼 클래스 간 관계를 ISA 관계라고 한다.

  > 오버로딩(Overloading)과 오버라이딩(Overriding)

- 오버로딩은 하나의 메소드 이름으로 다른 파라미터를 지정하여 사용하는 기법으로 메소드 사용 효율 향상

- 오버라이딩은 슈퍼 클래스에 있는 메소드를 서브 클래스에서 상속받아 다른 기능을 수행하는 메소드로 재정의 하는 기법


3. 객체 관계 데이터베이스(ORDB : Object Relational Database)

- 객체 관계 DB는 관계형 DB에 객체 지향 DB의 개념을 추가한 DB이다.

  > 객체 관계 DB의 등장

- 관계형 DB는 데이터를 저장할 때 정형화된 데이터 타입을 필요로 한다.

- 정형화된 데이터 타입이란 릴레이션을 생성할 때 사용될 데이터의 크기를 미리 정해놓은 데이터 타입을 의미한다.

- 컴퓨터가 발전하면서 멀티미디어, 웹문서,  CAD/CAM 데이터 등의 비정형화된 데이터의 사용이 빈번해졌고 이러한 비정형화된 데이터는 관계형 DB에 저장하기 어렵다는 단점이 있다. 이러한 문제를 해결하기 위해 객체 관계 DB가 등장하게 되었다.

- 객체 관계 DBMS는 관계형 DB 개념에 객체 지향 DB 개념을 추가하여 구현한 DBMS이다.

  > 객체 관계 DB의 특징

- 객체 관계 DB를 위한 데이터 언어 표준으로는 ISO에서 제시한 SQL3가 있다.

- 객체 관계 DB는 확장 가능 데이터 타입, 사용자 정의 데이터 타입, 사용자 정의 함수, 사용자 정의 프로시저, 사용자 정의 연산자, 대형 객체 타입, 상속 개념 등을 지원하고 있다.



9. 기타 실무 응용 - 고급 데이터베이스


1. 분산 데이터베이스(Distributed Database)

  > 논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 DB

  > 분산DB 시스템 구성 요소

- 분산 처리기 : 자체적으로 처리 능력을 가지며 지리적으로 분산되어 있는 컴퓨터 시스템을 지칭

- 분산 DB : 지리적으로 분산되어 있는 DB로, 해당 지역의 특성에 맞게 DB가 구성된다.

- 통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 네트워크를 지칭

  > 분산 DB의 목표

- 위치 투명성(Location Transparency)

ㄴ DB의 실제 위치를 알 필요 없이 단지 DB의 논리적인 명칭만으로 접근 가능

- 중복 투명성(Replication Transparency)

ㄴ 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것 처럼 사용할 수 있고 시스템은 자동으로 여러 데이터에 대한 작업을 수행한다.

- 병행 투명성(Concurrency Transparency)

ㄴ 분산 DB와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.

- 장애 투명성(Failure Transparency)

ㄴ 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행된다.

  > 장점

- 지역 자치성이 높다, 데이터 공유성 향상, 분산 제어 가능, 시스템 성능 향상, 효율성 높음, 융통성 높음, 신뢰성 높음, 가용성 높음, 점증적 시스템 용량 확장 용이

  > 단점

- DBMS가 수행할 기능 복잡, DB설계 어려움, 소프트웨어 개발 비용 증가, 처리 비용 증가, 잠재적 오류 증가


2. 멀티미디어 데이터베이스(Multimedia Database)

  > 텍스트, 그래픽, 정지화상, 동영상, 음성등이 복합적으로 구성된 DB

  > 멀티미디어 DB의 특성

- 데이터가 일반적으로 대용량이다.

- 정형화된 데이터가 아니고 검색 대상의 내용이 데이터의 중간에 있을 수 있으므로 미디어 별로 별도의 검색 방법이 필요하다.

- 비정형 데이터이기 때문에 데이터의 구조가 복잡하고 관계를 구성하기가 어렵다.

  > 멀티미디어 DB 구축 방법

- 파일 기반 기법

ㄴ DBMS를 사용하지 않으며 단순한 검색 위주의 VOD(Video On Demand)등에 이용된다

ㄴ 데이터의 동시 접근이 어렵고 회복 기능 등의 지원이 빈약

- 관계형 DB 기반 기법

ㄴ CLOB(Charactor Large Object) : 텍스트 데이터를 저장하기 위한 데이터 타입

ㄴ BLOB(Binary Large Object) : 이미지, 비디오, 오디오 등을 저장하기 위한 데이터 타입

ㄴ 일반적이고 정형화된 데이터는 관계형 DB 기반 기법 활용, 비정형 데이터는 파일로 저장

- 객체 지향 DB 기반 기법

ㄴ 멀피미디어를 가장 잘 표현할 수 있는 기법

ㄴ 사용자 정의 클래스와 메소드를 이용하여 미디어 별 별도의 클래스 정의 가능

- 객체 관계형 DB 기반 기법

ㄴ 관계형 DB의 CLOB, BLOB 데이터 타입을 이용하거나 사용자 정의 메소드를 이용하여 미디어별 타입을 정의해서 사용할 수 있다.


3. 주기억장치 데이터베이스(Main Memory Database)

  > DB 전체를 주기억장치에 상주시킨 후 DB연산을 수행하는 시스템으로, 디스크 입출력이 발생하지 않음

  > 주기억장치 DB의 특성

- 모든 연산이 주기억장치에서 수행되므로 디스크 입출력이 줄어들어 빠른 연산 가능

- 시스템에 문제가 생겼을 경우 복구시켜 주는 회복 작업 구현이 어려움

- 주기억장치의 구입 비용이 많이 든다


4. 데이터 웨어하우스(Data Warehouse)

  > 급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스이다.

  > 데이터 웨어하우스 등장 배경

ㄴ 전사적 데이터 통합을 통한 효율적인 정보 분석으로 산출할 수 있는 의사결정용 DB의 필요성 대두

  > 다양한 원본 DB로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성한다. 이후, 데이터의 다차원 분석 도구로 데이터 웨어하우스를 분석하여 효율적인 의사결정에 필요한 자료를 얻는다.

  > 장점 : 

- 높은 투자 수익률, 데이터 분석을 통해 타사에 비해 경쟁우위 획득 가능, 의사 결정자의 생산성 향상

  > 단점 : 

- 기존 시스템과의 충돌로 인한 업무 혼란 초래 가능성, 불일치 문제 발생 가능, 데이터 절대량이 부족하면 의미없음, 자원 과잉사용 가능성이 높음, 유지보수 어려움


5. 데이터 마트(Data Mart)

  > 전사적으로 구축된 데이터 웨어하우스로부터 특정 주제나 부서 중심으로 구축된 소규모 단일 주제의 데이터 웨어하우스를 말한다.

  > 특정 부서의 의사 결정 지원을 목적으로 하는 부서별 또는 업무 기능 별로 구축되는 데이터웨어하우스로서, 일반적으로 한 기업 내에 복수개의 데이터 마트 존재

  > 전사적 통합성을 염두하여 데이터 마트가 데이터 웨어하우스보다 먼저 구축될 수도 있다.

  > 특징

- 분석 요건에 적합한 구조로 데이터 재구성 가능

- 추세, 패턴 분석 및 데이터 접근이 용이한 요약 데이터로 구성며, 필요시 일부 상세 데이터를 포함

- 분석에 필요한 이력 데이터만을 포함하는 제한된 규모의 데이터

- 다양한 질의나 요구를 충족하는 유연성과 접근성이 뛰어난 다차원 구조의 데이터


6. 데이터 마이닝(Data Mining)

  > 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법

  > 데이터 마이닝의 기법

- 연관(Association) : 연관관계를 발견하기 위한 기법(A이면 B이다)

- 연속(Sequence) : 개인별 트래잭션 이력 데이터를 시계열적으로 분석하여 트랜잭션의 향후 발생 가능성 예측

- 분류(Classfication) : 다른 그룹과의 차별적인 특성을 도출하기 위한 방법

- 클러스터링(Clustering, 군집화) : 상호 간 유사한 특성을 갖는 데이터들을 집단화하는 방법

- 특성화(Characterization) : 데이터 집합의 일반적인 특성을 분석하는 것

ㄴ 데이터의 요약 과정을 통해 특성을 발견

- 패턴 분석(Pattern Analysis) : DB내의 명시된 패턴을 찾는 방법

- 경향 분석(Trend Analysis) : 시계열 데이터들이 시간 축으로 변화하는 전개 과정을 특성화하여 동적으로 변화하는 데이터를 분석하는 방법


7. OLAP (Online Analytical Processing)

  > 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식

  > 데이터 웨어하우스나 데이터 마트와 같은 시스템과 상호 연관되는 정보 시스템이다.
  > 데이터 웨어하우스가 데이터를 저장하고 관리한다면, OLAP는 데이터 웨어하우스의 데이터를 전략적 정보로 변환시키는 역할을 수행한다.

  > 중간 매개체 없이 이용자들이 직접 컴퓨터를 이용하여 데이터에 접근하는데 있어 필수적인 시스템

  > OLAP 연산

- Roll-up : 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로 부터 요약된 형태의 데이터로 접근하는 기능

- Drill-Down : 요약된 형태의 데이터로 부터 구체적인 내용의 상세 데이터로 접근하는 기능

- Drill-Through : 데이터 웨어하우스나 OLTP에 존재하는 상세 데이터에 접근하는 기능

- Drill-Across : 다른 데이터 큐브의 데이터에 접근하는 기능

- Pivoting : 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능

- Slicing : 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능

- Dicing : Slicing을 세분화하는 기능

  > OLAP 종류

- ROLAP(Relational-OLAP) : 관계형 DB와 관계형 질의어를 사용하여 다차원 데이터를 저장하고 분석

- MOLAP(Multi-dimesion OLAP) : 다차원 데이터를 저장하기 위해 특수 구조 다차원 DB를 사용

ㄴ 데이터 검색 속도를 향상시키기 위해 큐브 캐시(Cube Cache)라고 하는 주기억장치 속에 데이터 큐브 보관

- HOLAP(Hybrid OLAP) : ROLAP와 MOLAP의 특성을 모두 가지고 있으며 빠른 검색이 필요한 경우에는 요약을 메모리에 저장하고 기본 데이터나 다른 요약들은 관계형 DB에 저장


8. OLTP(Online Transaction Processing)

  > 온라인 업무 처리 형태의 하나

  > 네트워크 상 여러 이용자가 실시간으로 DB의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식

  > 단위작업(트랜잭션)은 데이터 무결성을 위해 각 작업은 전체가 완전히 행해지든지 전혀 행해지지 않아야만 한다.

  > 빠른 응답 시간을 요구하며, 개개의 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화 되어있다.


9. ODBC(Open Database Connectivity)

  > 프로그램과 DB의 종류에 관계 없이 자유롭게 DB에 접근하여 사용할 수 있도록 MS에서 만든 app표준 인터페이스이다.

  > DB에 따른 차이는 ODBC 드라이버에 흡수되기 때문에 사용자는 DB종류를 의식하지 않고 ODBC 기준에 맞게 app을 작성하면 된다.

  > ODBC를 사용하면 여러 종류의 DB를 함께 사용할 수 있고 기존에 사용하던 DB를 교체하더라도 app을 그대로 사용할 수 있다.

  > ODBC 구조

- Application : DB에 접속할 때 ODBC API 활용

- Driver Manager : app과 ODBC Driver 간 통신을 관리하는 라이브러리

ㄴ DSN에서 정의된 형태로 특정 DB에 접속할 때 필요한 드라이버를 로딩하거나 언로딩

- DSN(Domain Service Name) : 서버에 연결할 때 필요한 드라이버와 DB정보 저장

- ODBC Driver : ODBC API가 지원하는 함수를 구현하는 라이브러리

- DB : ODBC Driver에서 요청한 SQL에 대한 결과 반환









맨 위로











Comments