DataBase Flashcards Preview

PE > DataBase > Flashcards

Flashcards in DataBase Deck (122)
Loading flashcards...
91

ERD

▣ 정의
- 데이터베이스의 구조 및 그에 수반한 제약조건들을 다양한 기법에 의해 설계하는 개체-관계 모델링
▣ 데이터 모델링
1) 분석
- 비즈니스 요구사항
- 논리 데이터 모델링
- 프로세스 모델링
- 상관 모델링
2) 설계
- 물리 데이터 모델링
- Application 설계
3) 개발
- DB 구축, 변경, 관리
- Application 개발
4) 테스트
- DB 튜닝
- Application 테스트
5) 전환/이행
- DB 전환
- Application 설치
▣ 기본요소
- 개체(Entity) : 사물, 사건, 명사형 (사각형)
- 관계(Relationship) : 연관성 (마름모)
- 속성(Attribute) : 원자 속성 : (타원)
▣ 절차
1) 엔티티 타입 도출
- 업무기술서, 장표, 인터뷰에서 명사 구분
2) 엔티티 관계 유형 정의
- 개체타입들 사이에 존재하는 관계타입 정의
3) 속성/식별자 정의
- 개체 타입별 속성 결정
- 유일성, 최소성 기준 주키 선정
4) 정규화
5) 통합
6) 검증
▣ 표기법
- Chen
- IDEFIX
- IE/Crow's Foot
- UML
- Barker
▣ 관계 표현
- 1:1 표현
- 1:M 표현
- M:M 표현

92

CRUD 매트릭스 (상관 모델링)

▣ 상관 모델링의 정의
- 정보화 시스템을 구축하기 위해 그 업무에 존재하는 무엇(데이터)에 대해 무슨일이 행해지고(프로세스) 있는지 또는 무슨 일에 의해 무엇(데이터)이 영향을 받는지 분석하는 방법
▣ 상관 모델링의 목적
- 검토목적 : 업무, 데이터, 프로세스
- 기능구분 : 연관성, 연계성 분석
- 테스트
- 고가용성
▣ CRUD Matrix의 정의
- 시스템 개발 시 프로세스(또는 메소드, 클래스)와 DB에 저장되는 데이터 사이의 Dependency를 나타내기 위한 Matrix
▣ CRUD Matrix의 특징
- 모델링 작업 검증
- 중요 산출물
- 테스트에서 사용
- 인터페이스 현황 파악
▣ CRUD Matrix 생성을 위한 필요 요소
- 데이터 모델링
- 업무 분해도
▣ 내용
- C(Create) : 데이터 생성
- R(Read) : 데이터 참조
- U(Update) : 수정/갱신
- D(Delete) : 삭제
▣ 작성
1) 세로 : 단위프로세스
- 접수한다.
- 대여한다.
- 통보한다.
- 등록한다.
- 수정한다.
- 반납한다.
2) 가로 : 엔티티 타입
- 고객
- 대여주문
- 대여목록
- 연체료
- 책목록
▣ 검증
- 모든 엔터티 타입은 CRUD가 한 번 이상 표기되었는가?
- 모든 엔터티 타입에 "C"가 한 번 이상 존재하는가?
- 모든 엔터티 타입에 "R"이 한번 이상 존재하는가?
- 모든 단위 프로세스는 하나 이상의 엔터티 타입에 표기 되었는가?
- 두 개 이상의 단위 프로세스가 하나의 엔터티 타입을 생성하는가?

93

OR Mapping

▣ 정의
- 객체지향 프로그래밍 시 설계할 클래스들과 데이터저장소로 이용될 RDBMS Table 간의 Mapping
▣ 클래스 Relationship의 종류
- Association : 협력 관계
- Aggregation : 전체-부분 관계
- Composition : 부모-자식 관계
- Generalization : 상속 관계
- Dependency : 종속적 관계
▣ 절차
- Class To Table
- Attribute To Column
- Class Relationship To Relational Relationship : Association, Aggregation, Generalization)
▣ 기법
1) Association
- 1:1 : 접근의 빈도수가 많은 쪽으로 상대방의 Primary Key가 Foregin Key로 등록
- 1:M : M쪽으로 1쪽의 Primary Key를 Foregin Key로 매핑
- M:M : 새로운 Associated Table 생성 후 양쪽 테이블의 Primary Key를 갖도록 설계
2) Aggregation
- Foreign Key 참조
3) Composition
- Delete Cascading 설계
4) Generalization
- Super 클래스와 각 Sub 클래스를 별도의 테이블로 매핑
- Super 클래스가 Sub 클래스의 모든 속성을 포함하여 단일 테이블로 매핑
- Sub 클래스들이 Super 클래스의 속성을 상속받아 Sub 클래스들을 테이블로 매핑

94

iBatis

▣ 공통점
- XML 템플릿 등과 같은 표준 패턴 이용
- JDBC와 같은 코드 사용시 보다 훨씬 간단한 구현 및 변경사항 적용
- 사용자에 의한 리소스 관리 및 코드의 중복 개발 감소
- 오픈 소스 기반의 ORM 프레임워크로 자유로운 이용과 배포 허용
▣ 기반사상
- SQL Mapping (Partial ORM)
▣ 매핑특징
- SQL 문을 활용한 객체 매핑
- 개발자가 직접 객체지향 관점에서 매핑
- 객체 모델과 데이터 모델 사이 매핑에 아무런 제약 사항이 없음
▣ 활용특징
- 응답 지연 시간이 짧음
- 사용자 학습 곡선이 작음
- SQL 지식이 높아야 함
- 유연성이 우수
▣ 적용방법
- 자바 객체를 SQL 문장에 매핑
- 자바 코드에서 SQL 부분을 제거하고 XML에 임베디드 된 SQL 활용
- SQL 문장은 개발자에 의해 작성됨
▣ 적용조건
- SQL 문을 통한 튜닝이나 최적화 필요 시
- 부적절한 DB 설계 상황
- 3rd Party 데이터베이스에 접근하는 경우
- 여러 개의 테이블과 하나의 자바 클래스 매핑 되는 경우
▣ 장점/단점
- 복잡한 데이터 전송 환경에 효과적
- SQL의 장점 활용에 비교 우위
▣ 유사제품
- Oracle SQLJ, Pro*C embedded SQL
- 대부분의 임베디드 SQL 시스템
▣ 환경설정
- SqlMapConfig.xml : DataSource, DataMapper 및 Thread 관리 등의 설정 정보
- SqlMap.xml : 많은 캐시 모델, 파라미터 맵, Results Maps, Statements 정보 포함

95

Hibernate

▣ 공통점
- XML 템플릿 등과 같은 표준 패턴 이용
- JDBC와 같은 코드 사용시 보다 훨씬 간단한 구현 및 변경사항 적용
- 사용자에 의한 리소스 관리 및 코드의 중복 개발 감소
- 오픈 소스 기반의 ORM 프레임워크로 자유로운 이용과 배포 허용
▣ 기반사상
- OR Mapping (Full ORM)
▣ 매핑특징
- 자바 클래스 객체와 테이블을 매핑
- 매핑 정보의 수정만으로 변경사항 적용
- SQL Mapper 보다 다양한 작업 수행
▣ 활용특징
- 응답 지연 시간이 김 (쿼리 자동 생성)
- 사용자 학습 곡선이 큼
- SQL 지식이 별로 필요 없음
- 유연성이 부족함
▣ 적용방법
- 자바 객체를 테이블 Row에 동기화
- 모든 SQL 문은 프레임워크에서 생성하고 실행하는 방식
- SQL 작업 필요 시 HSQL 통해 이루어짐
▣ 적용조건
- SQL Mapper 보다 효율적인 매핑
- 새로운 프로젝트가 시작된 상태
- 객체 모델과 데이터베이스 디자인이 미완성인 상태
- 하나의 테이블과 하나의 자바 클래스가 매핑되는 경우
▣ 장점/단점
- OR Mapper에 의한 자동화 지원
- 간단한 CRUD 어플리케이션 테이블-클래스 매핑 사용시 단순성과 성능 비교 우위
▣ 유사제품
- TopLink, JDO, ADO.NET
▣ 환경설정
- hibernate.properties : 전체 구성 지정
- hibernate.cfg.xml : hibernate.properties 파일에 대한 대응

96

Transaction

▣ 정의
- 한번에 수행되어야 할 데이터베이스의 일련의 Read와 Write연산을 수행하는 단위
▣ 특징 (ACID)
- 원자성 : 분해가 불가능한 최소의 단위, Commit/Rollback 연산 (트랜잭션 관리자)
- 일관성 : 모순 없는 일관성 상태 (무결성제어기)
- 고립성 : 연산의 중간 결과를 다른 트랜잭션이 접근할 수 없음 (병행제어관리자)
- 영속성 : 영구적으로 데이터베이스에 저장 (회복기법, 연관회복관리자)
▣ 트랜잭션 상태
- 활동 : 실행 중
- 부분완료 : 커밋 직전
- 실패 : 실행 중단
- 철회 : 롤백 수행
- 완료 : 커밋 수행
▣ 트랜잭션의 3가지 연산
1) 철회된 트랜잭션의 연산
- 트랜잭션 재실행(Restart) : HW, SW 오류
- 트랜잭션 폐기(Kill) : 트랜잭션 내부적 논리 오류
2) 트랜잭션의 정상종료연산
- Commit 연산
- 프로그램 정상 종료
3) 트랜잭션의 비정상 종료연산
- Commit 연산
- Rollback 연산

97

Transaction 의 Isolation Level 유형 및 병행제어 미처리 시 문제점

▣ Transaction의 Isolation Level 유형
- Read Uncommitted : Shared Lock 이 걸리지 않는 Level
- Read Committed : 완료한 데이터만 읽음
- Repeatable Read : 한번 읽은 집합을 다시 읽었을 때 값이 유지됨을 보장함. 하지만, 범위에 새로운 값이 발생하는 것은 허용
- Serialisable : Insert 작업 미허용
▣ 미처리 시 문제점
- Read Uncommitted : Dirty, Non-Repeatable, Phantom
- Read Committed : Non-Repeatable, Phantom
- Repeatable Read : Phantom
- Serialisable : 모두 방어

98

2PC (Two Phase Commit)

▣ 정의
- 분산 데이터베이스 환경에서 원자성을 보장하기 위해 분산 트랜잭션에 포함되어 있는 모든 노드가 Commit하거나 Rollback하는 매커니즘
▣ 구성요소
- 서버 : 모든 노드
- 조정자 : 참여자 목록, 글로벌 커밋
- 지역노드 : 로컬 트랜잭션 서버
- Commit Point Site : 분산 트랜잭션 참여 노드 중 처음으로 커밋/롤백을 수행하는 노드
- Client
▣ 처리 흐름
1) Commit 요청
2) Commit Point Site 결정
3) Prepare 메시지 전송
4) Prepare 메시지 응답
5) Commit/RollBack 명령
▣ 처리 절차
1) Prepare : 준비 단계
2) Commit : 커밋, 롤백

99

2PL (2-Phase Locking)

▣ 개념
- 모든 트랜잭션들이 lock과 unlock연산을 확장단계와 수축단계로 구분하여 수행 하는 압법
▣ 확장단계
- Lock 만 수행 Unlock은 미수행
▣ 수축단계
- unlock 만 수행
▣ 문제점
- Deadlock 완전 제거 불가
- Cascading Rollback (연쇄복귀)
▣ 문제점 회피 방안
1) Strict P2P : Exclusive lock
2) Rigorous 2PLP : 모든 lock
3) Static 2PL : 모든 항목에 lock
, 현실성 없음

100

타임스탬프기법을 이용한 DeadLock 회피기법, Wait-die와 Wound-wait 기법

▣ Wait-die 기법의 정의
- 나중에 시작된 프로세스가 먼저 시작된 프로세스가 점유한 자원 요청 시 복귀(rollback) 되거나 종료(die)
▣ Wound-Wait
- 먼저 시작된 프로세스가 나중에 시작된 프로세스의 자원을 선점(Preempt) 기능 (나중에 시작된 프로세스를 Killing 또는 Wounding)
▣ Wait-die와 Wound-wait 기법 적용을 통한 Deadlock 회피 방법
1) Wait-die Algorithm
- 상황 1 : 고참 프로세스(Older Process)가 신참 프로세스(Younger Process)가 점유한 자원을 요청 시, 고참 프로세스 기다림
- 상황 2 : 신참 프로세스(Younger Process)가 고참 프로세스가 점유한 자원을 요청 시, 신참 프로세스 철화(die)
= 고참 wait, 신참 die
2) Wound-Wait Algorithm
- 상황 1 : 고참 프로세스(Older Process)가 신참 프로세스(Younger Process)가 점유한 자원을 요청 시, 신참 프로세스를 wound(때리기) 하여 자원 선점(Preempted)
- 상황 2 : 신참 프로세스(Younger Process)가 고참 프로세스(Older Process)가 점유한 자원을 요청 시, 신참 프로세스는 기다림(Wait)
= 고참 wound, 신참 wait

101

DB Join 방식

▣ 정의
- 하나의 SQL 명령문에 의해 여러 테이블에 저장된 데이터를 한번에 조회할 수 있는 기능
▣ 분류
1) Nested Loop Join
- 선행 테이블의 처리범위를 하나씩 액세스하면서 추출된 값으로 테이블 조인
- 랜덤 액세스 이므로 집합 많으면 수행 속도 저하
2) Sort Merge Join
- 양쪽 테이블 처리 범위를 각자 액세스하여 정렬한 결과를 차례로 스캔하면서 연결고리의 조건으로 merge 해 가는 방식
- 정렬을 위한 영역에 따라 효율에 큰 차이 발생
3) Hash Join
- 해시 값을 이용하여 테이블을 조인하는 방식
- 대용량 처리시 메모리의 지나친 사용으로 오버헤드 발생

102

데이터 베이스 회복 기법

▣ 정의
- 데이터베이스 운영 도중 예기치 못한 장애가 발생할 경우 데이터베이스를 장애 발생 이전의 일관성과 무결성을 가진 상태로 복원
▣ 장애의 유형
- 트랜잭션 장애 : 논리, 시스템
- 시스템 장애 : 전원, HW, SW
- 디스크 장애 : 스토리지 붕괴
- 사용자 장애 : 이해부족, 실수
▣ 회복을 위한 주요 요소
1) 회복의 기본 원칙(중복)
- 데이터의 중복
- Archive 또는 Dump : 복사
- Log 또는 Journal : 로그
2) 회복을 위한 조치
- REDO : 재실행
- UNDO : 취소
3) 시스템
- 회복관리기능
▣ 회복 기법의 종류
1) 로그기반 기법
- 즉시 갱신 기법
- 지연 갱신 기법
- 로그 전체 조사 (시간지연)
- Redo, Undo 사용
- 느림
2) Check Point 기법
- 로그파일과 검사점 이용
- 상대적으로 회복 빠름
- Redo, Undo 사용
- 로그보다 빠름
3) 그림자 페이징 기법
- 그림자 페이지 테이블 이용
- Undo 간단, Redo 불필요
- 로그 기반이나, 검사점과 함께 사용
- 그림자 테이블 교체
- 복구 속도 빠름

103

동시성 제어 (병행제어)

▣ 정의
- 다중 사용자 환경을 지원하는 데이터 베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행 될 수 있도록 지원하는 기능
▣ 목적
- 트랜잭션의 직렬성 보장
- 데이터의 무결성 및 일관성 보장
▣ 동시성 제어를 하지 않은 경우 발생하는 문제점
- 갱신 손실 : 동일 데이터 동시 갱신 (갱신 값 덮어쓰기)
- 현황파악오류 : 중간 수행결과를 다른 트랜잭션이 참조
- 모순성 : DB가 일관성 없는 상태
- 연쇄복귀 : 특정 트랜잭션이 처리 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능
▣ 주요 동시성 제어 기법
- 기본 Locking 기법
- 2PL (2Phase Locking) 기법
- 타임 스탬프
- 낙관적 기법
- 다중버전 동시성 제어 기법

104

기본 Locking 기법

▣ 정의
- 트랜잭션이 사용하는 자원에 대하여 상호배제(Mutual Exclusive)기능을 제공하는 기법
- 상호배제는 특정 트랜잭션이 데이터 항목에 대하여 잠금(Lock)을 설정한 트랜잭션이 해제(UnLock) 할 때까지 데이터를 독점적으로 사용할 수 있는 기법
▣ 연산의 종류
1) 공유 Lock (Shared Lock)
- 공유 잠금한 트랜잭션이 데이터 항목에 대하여 읽기(read)만 가능
- 다른 트랜잭션도 읽기(read)만 실행 할 수 있는 형태
2) 전용 Lock (Exclusive Lock)
- 전용 잠금한 트랜잭션은 데이터 항목에 대해서 읽기(read)와 기록(write)이 모두 가능
- 다른 트랜잭션은 읽기(read)와 기록(write) 모두 할 수 없음
▣ Locking 의 단위
- 데이터 베이스
- 테이블
- 페이지
- 레코드 (튜플)
- 필드 (속성)
=> Locking 단위가 클수록 : 병행성 수준 떨어지고, 병행제어기법 간단해짐
=> Locking 단위가 작을수록 : 병행성 수준 높아지고, 관리 복잡해짐

105

2PL (2 Phase Locking)

▣ 개념
- Lock하는 시간이 있고, Unlock하는 시간이 있음
- 모든 트랜잭션들이 Lock과 Unlock연산을 확장단계와 수축단계로 구분하여 수행함
▣ 단계
- 확장단계 : lock 만 수행, unlock은 수행 불가
- 수축단계 : unlock만 수행, lock은 수행 불가
▣ 종류
1) Strict 2PL
- 트랜잭션이 Commits/Aborts 할 때까지 모든 배타 락들을 유지
- 연쇄복귀 방지
2) Rigorous 2PL
- 트랜잭션이 Commits/Aborts 할 때까지 모든 락(공유 락 및 배타 락)들을 유지
- 트랜잭션들이 Commit한 순서대로 직렬 가능
3) Static 2PL
- 트랜잭션이 접근하려는 모든 항목들에 Lock을 획득
- Dead lock 발생 안함
- 현실성 없음

106

타임 스탬프

▣ 정의
- 트랜잭션을 식별하기 위해서 DBMS가 부여하는 유일한 식별자인 타임 스탬프를 지정하여 트랜잭션 간의 순서를 미리 선택하는 기법
▣ 특징
- 트랜잭션이 기다리는 경우가 없으므로 데드락을 방지
- 복구 발생 확률이 높으면, 연쇄복구를 초래할 수 있음
▣ 종류
1) 시스템 시계 사용법
2) 논리적인 계수기 사용법
▣ 타임 스탬프 순서 알고리즘
1) 각각의 데이터 Q는 다음과 같은 2가지 타임스탬프를 가짐
- W-Timestamp(Q) : Write(Q)를 성공적으로 수행시킨 어떤 트랜잭션의 최대 타임 스태프
- R-Timestamp(Q) : Read(Q)를 성공적으로 수행시킨 어떤 트랜잭션의 최대 타임 스태프
2) 트랜잭션 Ti가 Read(Q)를 실행할 때(여기서 TS(Ti)는 Ti의 타임스템프를 의미)
- TS(Ti) ≤ W-Timestamp(Q)이면, Ti는 복구
- TS(Ti) ≥ W-Timestamp(Q)이면, Ti의 Read(Q)는 실행
3) 트랜잭션 Ti가 Write(Q)를 실행할 때
- TS(Ti)

107

낙관적 기법

▣ 개념
- 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사하는 동시성 제어 기법
▣ 특징
- 연산은 버퍼에서 이루어지며, 검증한 후 결과를 디스크에 반영하거나 복구
- 트랜잭션 수행 마지막에 갱신 사항들의 직렬 가능성 위반 여부를 검사하여 검증될 경우 일시에 데이터베이스로 반영
- 읽기 연산이 많은 경우에 적합하며, 데드락과 연쇄 복구가 발생하지 않음
▣ 트랜잭션 생명주기
1) 판독 단계(Read Phase)
- 지역 변수만을 이용해 트래잭션 실행
2) 검증 단계(Validation Phase)
- 무결성 유지 여부 검사 후 복구 여부 판정
3) 기록 단계(Write Phase)
- 실행 결과를 디스크에 반영
▣ 트랜잭션의 3가지 타임스탬프
- Start(Ti) : 트랜잭션 Ti가 판독 단계에 들어가면서 실행을 시작한 시간
- Validation(Ti) : 트랜잭션 Ti가 검증 단계에 들어가면서 검증을 시작한 시간 TS(Ti)는 Validation(Ti) 값으로 주어짐
- Finish(Ti) : 트랜잭션 Ti가 최종 기록 단계를 완료한 시간
▣ 낙관적 검증 기법의 검증방법
- TSTi) < TS(Tj) 일 때 다음 조건 중 하나를 만족 해야 함
- Finish(Ti) < Start(Tj): 직렬성 순서 유지
- Start(Ti) < Finish(Tj): 직렬성 순서 유지
- Start(Tj) < Finish(Ti) < Validation (Tj)

108

다중 버전 동시성 제어 기법 (MVCC : Multi-Version Concurrency Control)

▣ 개념
- 동시성 제어를 위해 데이터 항목이 변경될 때 그 데이터 항목의 이전 값을 보존하는 기법
- 한 데이터 항목에 대해 여러 개의 버전을 유지하는 기법
▣ 특징
- 데이터 항목Q에 대해 여러 버전이 시스템에 의해 유지
- 각 데이터 항목의 버전들을 유지하기 위해 많은 저장 공간이 필요
▣ 각각의 버전 QK에 대해 3개의 필드 값 보유
- 내용(Content) : 버전 QK의 값
- W-Timestamp(QK) : 버전 QK를 생성한 트랜잭션의 타임 스탬프
- R-Timestamp(QK) : 버전 QK를 성공적으로 판독한 트랜잭션 중에서 제일 큰 타임스탬프
▣ 다중 버전 타임스탬프 기법
1) Ti가 Read(Q) 실행
- 반환되는 값은 버전 QK의 내용(QK는 기록 타임스탬프가 TS(Ti) 보다 작거나 같으면서 가장 큰 값을 갖는 Q의 버전을 의미)
2) Ti가 Write(Q) 실행 :
- 만약에 TS(Ti)

109

옵티마이저

▣ 정의
- 사용자의 다양한 요구에 따라 그때마다 SQL문의 문법적 오류를 확인하고 가장 빠른 데이터 엑세스 경로를 작성 및 채택하여 최적의 경로(처리절차)를 찾아주는 역할을 하는 DBMS의 핵심 엔진
▣ 구성
1) Parse
2) Optimizer
- Query Rewrite
- Query Optimization (RBO, CBO)
3) QEP Generation
4) Query Execution
5) Result
▣ 역할
- Query Rewrite (질의 변환기) : 서브질의와 뷰의 병합, 효과적인 플랜 가능성 확인
- Query Optimization (비용산정기) : 질의에 대한 액세스 경로 결정
- QEP Generation (실행계획생성기) : 질의 실행계획 (QEP : Query Execution Plan) 생성
▣ 모드
1) RBO(Rule Base Optimizer)
2) CBO(Cost Base Optimizer)

110

DB튜닝

▣ 정의
- 한정된 자원으로 최적의 성능(시간/응답속도)를 얻을 수 있는 작업
▣ 주요항목
1) 설계관점
- 데이터 모델링, 인덱스 설계
2) DBMS관점
- CPU, 메모리, I/O
3) SQL관점
- join, indexing, Plan
4) HW관점
- CPU, Memory, Network, Disk
▣ 목표
- 처리능력 향상 : 전체 시스템
- 처리시간 단축 : 병행처리, 해시조인, 파티션
- 응답시간 단축 : 인덱스, 부분 범위 처리
- 로드시간 단축 : 작업 분산, 파티셔닝
▣ 절차
1) 분석
- 자료수집, 목표설정
- 인터뷰, 설계/시스템 구성 검토, 자원사용 현황분석, SQL Trace
2) 이행
- 최적화 방안 수립 및 적용
- 설계내용 튜닝
- SQL 튜닝
- OS, HW 튜닝
3) 평가
- 결과평가, 최종안 적용
- 튜닝결과 평가, 산출물 작성
▣ 튜닝기법
1) 설계 측면 튜닝
- 테이블의 분할/통합 : 파티셔닝
- 식별자 지정 : 본질/인조 식별자
- 인덱스 전략 : 15% 분포 유도
- 데이터 타입 : 조인순서, 방식
- 반정규화 : 테이블, 컬럼, 관계
2) HW 관점
- CPU : 증설 또는 과다 점유 해결
- 메모리 : 세션 메모리 확보
- I/O : RAID
- 네트워크 : Ping, tracert
- 작업수행 방식 : 병렬처리
- OS Param 조정 : 성능 옵션
3) DBMS 관점
- I/O 최소화 : SLQ Tunning, Index Tunning, Partitioning
- Buffer Pool 튜닝 : 자주사용하는 Data
- Commit/Check Point : 주기조절
- Thread/Reuse : Hard Parsing 제거
- Configuration Param
- Java Heap Size
- Redo Log
- Rollback Segment
4) SQL 튜닝
- 옵티마이저 선택/변경 : RBO, CBO
- 힌트사용
- 부분범위처리
- 인덱스 활용
- 조인 방식/순서
- 다중처리
- 병렬처리
- Dynamic SQL 지양

111

DB용량산정

▣ 개념
- DB 정보시스템개발, 운영에 소요되는 HW규모산정을 적정하게 하기 위한 일련의 활동
▣ 목적
- 디스크효율향상
- I/O 부하분산
- 데이터 접근성 향상
- 이벤트 발생 감소
▣ 용량산정을 위한 데이터 수집
- 트랜잭선 분석
- 업무패턴 분석
- 현행 데이터 분석
- 데이터 모델 분석
- 물리설계 파악
▣ 절차
- 테이블 크기 계산
- 인덱스 크기 계산
- 테이블 스페이스 용량 산정
- 디스크 용량산정

112

MDR (MetaData Registry)

▣ 정의
- 동일한 정보의 중복과 구문적, 문자적 차이를 식별할 수 있게 함으로써 의미적으로 동일한 요소들 간의 통합을 가능하게 하는 메타데이터 저장 기술
▣ 모형 개념도
1) 개념 레벨
- 데이터 요소 개념
- 개념영역
2) 표현 레벨
- 데이터 요소
- 값영역
▣ 구성요소
- 프레임워크 : 데이터 요소 개념, 데이터 요소, 값 영역, 개념영역 간 관계 설정
- 분류 : 객체 클래스, 속성 표현, 값 영역, 데이터 요소 개념, 데이터 요소로 분류
- 메타모형과 기본속성 : 메타데이터 항목들의 기본속성
- 데이터 정의의 공식화 : 필수요건 및 권고요건을 기술 다룸
- 명명과 식별 : 유일한 식별자 부여, 등록기관 식별자/데이터 식별자/버전식별자
- 등록 : 정보의 종류, 조건과 절치, 이해관계자

113

Sharding

▣ 정의
- 물리적으로 다른 데이터베이스에 데이터를 수평분할 방식으로 분산저장하고 조회하는 방법
▣ 분할방법
1) Vertical Partitioning
- 테이블 별로 서버 분할
2) Range based Partitioning
- 하나의 feature나 table이 점점 거대해지는 경우 서버를 분리
3) Key or Hash Based Portioning
- 엔티티를 해쉬 함수에 넣어서 나오는 값을 이용해서 서버를 정하는 방식

114

Query Off Loading

▣ 정의
- 읽기 관련 트랜잭션을 분산처리 하여 대규모 처리를 가능하게 하는 기술
▣ 특징
- Read Transaction이 많은 경우 하나의 Master DB에 Create /Update/Delete를 일으키고, 여러 개의 Slave DB에 데이터를 복사해 여려 개의 슬레이브 데이터베이스에서 읽기 관련 트랜잭션을 분산 처리
- Master DB에는 쓰기(Update)만을 허용하고, Master DB의 내용을 중간의 Staging DB라는 곳으로 복사
▣ 요소기술
- CDC(Change Data Capture) : MasterDB -> StagingDB -> SlaveDB로 복제하는 기술
- Application : DB에 대한 쓰기 로직과 읽기 로직 분리해서 구현

115

데이터 품질 관리

▣ 개념
- 시스템 별로 산재되어 있는 데이터 정보 요소에 대한 원칙을 수립하여 전사 적용하는 활동
▣ 구성요소
1) 데이터 표준 관리 조직
- 데이터 표준원칙, 표준 준수 여부 관리
2) 데이터 표준
- 데이터 모델 및 모든 오브젝트
3) 표준화 절차
- 요구사항 수집, 표준정의
▣ 전사 데이터 표준화 관리 대상
- 업무적 용어
- 기술적 용어
- 표준 단어
- 표준 도메인
- 표준 코드
▣ 관리 체계
1) 표준관리 (표준화 원칙 정의, 요구사항 수집, 데이터 표준 정의)
- DRM : 데이터 분류체계/모델
- 표준화 관리 : 식별/분류
- MDR : 메타데이터 표준 데이터 스키마
2) 품질관리 (데이터 표준 확정, 이행, 모니터링)
- DQM
- MDM
▣ 지속적인 전사 데이터 표준화 관리를 위한 조직의 R&R
- 업무 담당자
- 데이터 베이스 관리자
- 데이터 관리자
- 전사 데이터 관리자

116

DQC (Database Quality Certification)

▣ 정의
- 공공민간에서 개발하여 활용 중인 정보시스템의 데이터 품질을 확보하기 위해 데이터 자체 품질과 데이터 관리체계의 품질, 그리고 데이터베이스 보안 체계를 심사 인증제도
▣ 필요성
- 데이터 품질의 중요성과 문제점에 대한 인식 확산
- DB의 품질확보를 위한 관리체계 수립 미흡
▣ 인증항목
1) 데이터 인증 (DQC-V)
- 도메인, 업무규칙
2) 데이터 관리 인증 (DQM-M)
- 정확성, 일관성, 유용성, 접근성, 적시성, 보안성
3) 데이터 보안 인증 (DQC-S)
- 접근제어, 암호화, 작업결재, 취약점 분석

117

EDW (Enterprise Data Warehouse)

▣ 정의
- 사용자의 의사 결정에 도움을 주기 위하여, 다양한 운영 시스템에서 추출, 변환, 통합되고 요약된 데이터베이스
▣ 목적
- 전사적 정보통합
- 전사적 관점 정보 직접산출
- 지속적 RTE기반 대응
▣ 구성
1) Source : 기간계(계약, 상품, 고객), Web Log, 캠페인, 외부데이터
2) ETL/ETT
3) ODS(Operational Data Store)
4) ETL/ETT
5) EDW
6) ETL/ETT
7) 응용시스템(CRM, SEM), DataMart(OLAP, QUERY)
▣ 모델링
- Star 스키마 : 하나의 테이블에 모든 분석항목 존재
- Snowflake 스키마 : 정규화 작업을 마친 상태의 모델

118

Data Mining

▣ 정의
- 대용량 데이터 베이스에서 데이터의 관계, 특성, 패턴, 규칙을 찾아 모형화하여 유용한 지식으로 추론/변환하는 일련의 과정
▣ 수행과정
1) 문제정의
2) 데이터 선정 및 준비
3) 데이터 마이닝 과정
- Sampling : 추출
- Exploration : 탐색 (알고리즘 적용)
- Modification & Modeling : 모형 성능 향상, 모델 결정
- Assessment : 가장 좋은 모델 선택
4) 비즈니스 레포트
5) 의사결정
6) 피드백
▣ 기법
1) 예측 기반 기법
- 의사결정 트리
- 신경망
- 가설검정
2) 탐색 기반 기법
- 연관성 : 지지도, 신뢰도, 향상도
- 연속성 : 시간의 흐름
- 군집화 : k-means
▣ 활용분야
- 금융 : 대출신용평가, 금융사기 패턴 분석
- 통신 : 고객 이탈 방지, 사용자 부정 패턴
- 의료 : 질병 예측, DNA 칩 자료 분석
- 제조 : 제품의 수요예측, 제품 불량률 개선, 품질 개선
- 법률 : 부정행위 적발
- 기업 : 마케팅, 위험관리, 고객불만관리, 망관리, 주식분석, 투자종목 선택

119

웹 마이닝

▣ 정의
- 웹 환경에서 얻어지는 고객의 정보, 데이터로 부터 특정행위, 패턴 등의 유용한 정보를 이용하여 의사 결정에 활용하기 위한 마이닝 기법
▣ 특징
- 실시간성, 개인화, 타겟마케팅, 비정형 데이터 분석
▣ 유형
1) 웹 구조 마이닝
- 웹사이트 구조 요약 정보
- Web Document
- Hyperlink
- Requtation based filter
2) 웹 내용 마이닝
- 이용 가능 정보 검색
- HTML, Text, Audio, Image, Video
- Content-based filter
- Reputation based filter
- NLP (Natural Language Processing)
- Search Engine
3) 웹 사용 마이닝
- 웹 로그 분석, 접속경향 패턴 이해
- User profiles
- Access Pattern
- Collaborative filtering
- Event-based filter

120

Apriori 기법

▣ 개념
- 시스템 기술 등을 종합적으로 검토하고 선험성을 높이는 기법
▣ 알고리즘
- 1단계 : 최소 지지도 설정 값에 따라 빈도수 높은 항목의 집합 추출
- 2단계 : 이들 집합으로부터 신뢰도 설정 값을 모두 개산
▣ 정량화 기준
1) 지지도(Support)
- 전체 트랜젝션에서 A, B가 함께 구매되는 확률
- (A, B 동시거래건수) / 전체 거래건수
2) 신뢰도(Confidence)
- A를 거래할 때 B가 포함되는 조건부 확률, 높은 동시발생, 연관성 높음
- (A, B 동시거래건수) / A를 포함한 거래건수
3) 향상도(Lift)
- 신뢰도를 독립성 가정하의 신뢰도인 B의 거래 비율로 나눈 결과값
- ((A, B 동시거래건수) / (A 구매건수 * B구매건수)) * 전체 거래건수
▣ 선험적 규칙 처리 단계
1) 최소 지지도 연산
2) 결합단계
3) 가지치기 단계
4) 지지도 연산
5) 결합 단계
6) 가지치기 단계