일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JPQL
- jscalendar
- 페이징
- jQuery값전송
- 벌크연산
- 자바서블릿
- calendar
- 페치조인
- JQuery
- jQueryUI
- Hibernate
- LIST
- 제네릭
- springflow
- fullcalendar
- paging
- fetchjoin
- 대량쿼리
- JPA
- javascriptcalendar
- namedQuery
- values()
- 프로젝트생성
- 제너릭
- 스프링데이터흐름
- javaservlet
- joinfetch
- 엔티티직접사용
- Generic
- jQuery값전달
- Today
- Total
가자공부하러!
데이터베이스(8) - 기타 실무 응용(병행 제어, 보안, 튜닝, ODB, 고급DB) 본문
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에 대한 결과 반환
맨 위로
'공부 > 정보처리기사(실기)' 카테고리의 다른 글
업무 프로세스(2) - (시스템 통합 등) (0) | 2019.06.04 |
---|---|
업무 프로세스(1) - (정보 전략 계획 수립 등) (0) | 2019.06.04 |
데이터베이스(7) - 기타 실무 응용(시스템 카탈로그, 인덱스, 트랜잭션, 회복) (0) | 2019.06.01 |
데이터베이스(6) - 정규화(이상, 함수적 종속, 정규화) (0) | 2019.05.31 |
데이터베이스(5) - SQL(VIEW, 내장SQL, 스토어드프로시저) (0) | 2019.05.30 |