1. 데이터베이스 장애와 복구 개념

 1) 데이터복구(Data Recovery)의 정의

  - 데이터베이스 장애가 발생할 경우 데이터베이스를 장애 발생 이전으로 일관성과 무결성을 복원하는 것

 

 2) 데이터베이스 장애(실패) 유형

  - 트렌젝션 장애 : 논리적 오류, 시스템 오류(Deadlock 등)

  - 시스템 장애 : 전원, 하드웨어, 소프트웨어 등

  - 디스크 장애 : 디스크 스토리지 고장

  - 사용자 장애 : DBA 작업등의 사용자 실수

 

 3) 데이터베이스 복구의 기본원리 

  - 아카이브, 덤프 : 데이터베이스를 다른 저장 장치에 복사 저장

  - 로그, 저널 : 데이터베이스가 변경될 때마다 별도 파일에 기록

 

 4) 데이터베이스 복구조치 유형

유형 특징 설명
REDO (재수행) 아카이브 사본 + 로그 => 완료 후 상태 - 아카이브 복원 후, 로그를 통한 백업시점 이후의 트렌젝션 재실행 복원 
- 완료(Commit)된 트렌젝션만 해당
- 쓰기 연산의 재실행 (Forward Recovery)
UNDO (취소) 로그 + 후방향 취소연산 => 시작 상태 - 로그를 통한 트렌젝션 취소로 복원
- 장애 발생 이후의 트렌젝션 취소
- 쓰기 연산의 취소 (Backward Recovery)

 

2. 데이터베이스 장애 복구 방법

 1) 데이터베이스 복구 기법

구분 로그 기반 기법 검사점 복구 기법 그림자 페이징 기법
개념 로그파일을 이용한 복고 검사점과 로그파일을 이용한 복구 그림자 페이지 테이블을 이용한 복구
특징 로그 전체를 조사하여 REDO, UNDO 로그보다 빠른 복구 속도 그림자 페이지 테이블 기록의 부하
멀티 트렌젝션환경에 부적합
복구과정 REDO, UNDO 사용 UNDO 사용 그림자 테이블 교체
복구속도 느림 로그보다 빠름 매우 빠름

 

 2) 분산 데이터베이스에서의 복구(회복)와 2단계 완료 프로토콜

  (1) 분산 데이터베이스 트렌젝션

   - 여러 사이트에 걸쳐 동작하는 트렌젝션

   - DBMS간 다른 회복 기법과 트렌젝션 관리자를 사용할 수 있음

   - 분산 데이터베이스 트렌젝션은 원자성을 위해 2단계 완료 프로토콜 사용

 

  (2) 2단계 완료 프로토콜 (2 Phase Commit Protocol)

   - 분산 데이터베이스 트렌젝션의 원자성 유지를 위한 대표 트렌젝션 완료 규약

   - 1단계 : 트렌젝션 조정자 C는 A와 B 데이터베이스에 트렌잭션 완료 준비를 묻는 메세지를 보내고, A와 B는 완료줌비 또는 완료 불가 응답을 회신

   - 2단계 : 모든 참여 데이터베이스가 "완료 준비"되었으면 조정자는 "완료(Commit)" 신호를 보내거나, 하나 이상의 참여 데이터베이스가 "완료 불가" 신호를 보내면 조정자는 "철회(Abort)" 신호를 보냄

 

3. 데이터베이스 백업

 1) 데이터베이스 백업 개요

  (1) 데이터베이스 백업 정의

   - 장애시 데이터베이스 복구를 위해 데이터베이스의 전체 또는 일부를 중복시켜 보관하는 작업

  (2) 백업의 목적

   - 데이터 유실 방지, 비지니스 연속성 확보

 

 2) 데이터베이스 백업의 요구사항 및 주요 작업사항

  (1) 데이터베이스 백업 요구사항

항목 요구사항
업무적 요구사항 Mean-Time-To-Recovery (MTTR)
Mean-Time-Between-Failures (MTBF)
운영 요구사항 서비스 운영 요건 (예 : 24/365)
테스트와 검증차원 백업 요건
기술적 요구사항 OS 물리적 이미지 copy
데이터베이스 백업 수준 (object, schema, data)
백업 주기 산정
재난복구 요구사항 재해, 재난에 대한 비지니스 영향도 분석

  (2) 데이터베이스 백업관리 내용

항목 내용 예시
백업정책 - 백업주기, 소산정책 등
- 백업 전략, 기술, 정비 등을 기술
Daily : DB Archive
Weekly : OS/User Data
Full Backup : DB/AP
백업구성 기술적 백업 아키텍쳐 구성 디스크, 테이프, VTI, LAN, SAN 등
백업수행 및 이력관리 백업수행 결과 Log 기록 및 분석  
백업용량산정 백업 데이터의 양 산정 통상 원본크기의 2~6배 산정

 

 3) 데이터 베이스 백업 방식의 종류와 특징

분류 기준 백업방식 설명 장/단범
서비스
중단 여부
오프라인 백업
(Cold Backup)
DB를 정지하고 백업 받는 방식 백업수행중 서비스 중단
온라인 백업
(Hot Backup)
DB를 운영하면서 백업 받는 방식 - 서비스 지속
- CPU/메모리 사용 증가
백업 범위 전체 백업
(Full Backup)
데이터베이스 전체를 백업 긴 수행시간, 데이터 중복
차등 백업
(Differential Backup)
직전 전체백업 이후의 변경 데이터 백업 - 백업 용량 및 시간 축소
- 복구시간 단축
증분 백업
(Incremental Backup)
직전 증분백업 이후의 변경 데이터 백업 - 백업 용량 및 시간 축소
(차등 > 증분)
- 복구시 전체백업과 이후 증분백업들을 적용
- 증분 백업 데이터중 문제 발생시 복구 실패

아카이브 로그 백업
(Archive Log Backup))
트렌젝션의 수행내용 기록 - 특정 복구 시점 복원 가능
- 데이터 손실 최소화
- 트렌젝션의 백업 - 데이터 백업본 필요

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

XIV. 빅데이터 및 NoSQL에 대한 이해

- 목표 : 빅데이터 개념과 관련 기술, NoSQL의 개념과 특징

- 핵심 키워드 : 빅데이터, 3V, 비정형데이터, 분산파일시스템(DFS), NoSQL, CAP이론

 

01 빅데이터의 개요

. 빅데이터 정의 및 특징

  1) 빅데이터 정의

      - 기존 DB 관리도구의 데이터 수집, 저장, 분석하는 역량을 넘어서는 데이터

      - 다양한 종류의 대규모 데이터로부터 저비용으로 추출, 빠른 수집, 발굴, 분선을 지원하는 차세대 기술 및 아키텍처

 

   2) 빅데이터 특징(3V)

3 요소 설명
크기(Volume) - 수십 테라바이트(Terabyte)/페티바이트(Petebyte) 이상의 데이터
속도(Velocity) - 고속 생성, 실시간 처리(수집, 처리, 저장, 분석)
다양성(Valiety) - 다양한 종류 데이터(정형, 반정형, 비정형)

 - 빅데이터 6V : Volume, Variety, Velocity + Veracity(진실성), Visualization(시각화), Value(가치)

 

  3) 정형 데이터 VS 비정형 데이터

데이터 형태 설명
정형(Structured) - 고정된 필드에 저장되는 데이터
반정형(Semi-Structured) - XML, HTML 처럼 메타 데이터나 스키마 포함 데이터(CVS, XLS, RDF)
비정형(Unstructed) - 문서, 그림, 동영상, 오디오, 비디오

 

) 빅데이터의 Life Cycle별 세부기술

구분 설명 세부기술
수집 - 데이터 수집 기술 - 크롤링(웹로봇), ETL, CEP
저장/처리 - 분산 저장/처리 - DFS, NoSQL, MapReduce
분석 - 유의미한 정보 추출 - NLP, ML, 데이터 마이닝
표현 - 분석 결과의 효과적 표현 - R, 그래프, 도면, 시각화

 * CEP(Complex Event Processing, 실시간 복합 이벤트 처리)

   - 실시간 데이터의 가시화를 통해 이벤트 간 연관성, 패턴을 이해하고 유의미한 정보를 통해 다양한 비즈니스 가치를 창출하는 과정

 

02. 빅데이터 관련 기술

  가) 수집기술

    - ETL, 웹 크롤링, RSS Feeding, Open API, CEP

   - 웹 크롤링 : 웹 문서, 데이터 자동 수집(SNS, 블로그, 뉴스), HTML 코드 분석, 특정 태그 데이터 수집 

기술 설명 솔루션
DBMS 이용 SQL 기능 이용 Oracle, MariaDB, Tibero
센서 이용 일정 조건 만족 시 데이터 수집 CQL, Kafka
FTP 수집 파일 이동 포트 이용 수집  
HTTP 수집 HTML  태그 이용 수집 스크래퍼

  ) 빅데이터 저장/처리 기술

기술 설명 솔루션
분산파일시스템(DFS) - 대용량, 비정형 데이터의 분산 저장/처리 아키텍처
- 가격 저렴, Scale-Out, 고가용성, Batch 처리
GFS(Google File System), HDFS(Hadoop DFS)
NoSQL - BASE특성의 저장/검색 시스템
- 유연한 스키마, 비 관계형 모델, 확장성
HBase, Cassandra, MongoDB, CouchBase, Redis, Neo4J
MapReduce - 클러스터 환경에서의 병렬 분산 처리 프레임워크
- HDFS 연동, 다양한 옵션
HDFS

- 최근 클라우드 환경에서 가상화 기술 이용한 클라우드 기반 분산 파일 시스템 도입 중

 

    다) 표현기술

    - 이해하기 쉽도록 분류, 통계, 그래프 이용하는 기법

  라) 빅데이터 분석

     - 빅 데이터로부터 의미 있는 패턴을 발견하는 것

 

  마) 주요 빅데이터 분석 방법

개념 설명
로지스텍 회귀분석
(Logistic Regression)
- 독립변수의 선형결합 이용, 사건의 발생확률 예측 기법
의사결정트리 분석(Decision Tree) - 의사결정 규칙을 도표화, 소집단으로 분류, 예측하는 계량적 분석방법
신경망 분석(Neural Network) - 인간 두뇌 모방, 네트워크 기반으로 병렬, 분산, 확률적 계산 분석방법
텍스트 마이닝 (Text Mining) - Test 데이터를 NLP, 문서처리 기술 적용하여 추출/가공하는 기술
- 핵심기술 : 요약, 분류, 군집, 특성 추출
SNA (Social Network Analysis) - 객체 간의 관계, 네트워크의 특성/구조 분석, 시각화화는 분석방법론
Opinion Mining - 비정형 리뷰에서 정보 분석, 지능적 유추 기술
- 핫 이슈 추출, 여론 분석, 마케팅 정책에 활용
자연어처리(NLP) - 사람의 언어를 이해, 생성, 분석하는 AI기술
- 절차 : 전처리 → 형태소 분석 → 구문분석 → 의미분석 → 담화분석

   ) 데이터 과학자

     - 데이터 수집, 정리, 조사, 분석, 가시화 전문가. 데이터를 이용해 기업/조직에 필요한 정보 제공

 

03. NoSQL

 ) NoSQL 정의 및 특징

 - 비정형, 초고용량 데이터 처리 위해 쓰기속도 증가, 복제/분산 저장, 수평적 확장이 가능한 비관계형 분산 데이터 저장소

 - 특징

특징 설명
대용량 데이터 처리 - 페타바이트 수준 처리 가능, 느슨한 데이터 구조
유연한 스키마 - 유연한 저장, Key-value, Graph, Document 구조
저렴한 클러스터 구성 - 상용 HW 활용, 수평적 확장, 복제 및 분산 저장
단순한 CLI - 쿼리 언어 없음, API Call, Http 이용 단순한 인터페이스
고가용성 - 클러스터 환경에 자동 분할, 적재
적정한 무결성 - BASE 기반, 무결성을 응용에서 일부 처리
Schema-Less - Key 이용 저장, 접근 기능 사용, 칼럼, , 문서, 그래프 방식
탄력성 - 성능 확장 용이, 입출력 부하 분산 용이
질의가능(Query) - 대규모 시스템에서 검색/처리 가능한 질의언어, API 제공
캐싱(Caching) - 파티셔닝 통한 점진적 노드 추가 가능
높은 확장성 - 메모리 기반 처리, 논블락킹 Write/단순한 알고리즘 사용
원자성 - 각각의 쓰기는 원자성 보유
일관성 - 결과적 일관성 보유
지속성 - 데이터는 디스크에 유지
배포의 유연함 - 노드 추가/삭제 자동 로드, 이기종간 동작 가능
모델링의 유연함 - Key-value, 계층적 데이터, 그래프 등 다양한 모델링 가능
퀴리의 유연함 - 다중 GET, 범위 기반 쿼리 가능

 

 

 

 

) NoSQLBASE 속성

구분 설명
Basically Available - 가용성 중시, Optimistic Locking/규 사용
- 다수 스토리지에 복제를 통해 가용성 보장
Soft-State - 외부의 전송 정보를 통해 노드 상태 결정
- 데이터가 노드에 도달한 시점에 갱신
Eventually Consistent - 일시적 비일관적 상태 → 최종적으로는 일관성 성립

 BASE 속성과 ACID 속성 비교

속성 BASE ACID
분야 NoSQL RDBMS
범위 시스템 전체 특성 트랜잭션에 한정
일관성 측면 약한 일관성 강한 일관성
중점사항 ‘Availability’에 집중 ‘Commit’에 집중
시스템 측면 성능에 초점 엄격한 데이터 관리에 초점
효율성 쿼리 디자인이 중요 테이블 디자인이 중요

 ) NoSQL의 저장방식

 - NoSQL 종류

종류 설명
Key-Value 기반 - 단순/빠른 Get, Put, Delete 기능 제공
- Dynamo, Redis, MemcacheDB
Column Family 기반 - 칼럼 패밀리에 행으로 데이터 저장
- Cassandra, HBase, SimplDB
Document 기반 - 문서를 Key-ValueValue 부분에 저장
- MongoDB, CouchDB
Graph 기반 - 엔트리 속성을 노드로, 관계를 엣지로 표현
- Neo4J, 플록DB

   라) NoSQL 데이터 모델의 특징 비교              

방식 관계형DB 데이터 모델링 NoSQL 데이터 모델링
개념도
핵심 - ACID 기반 데이터 모델링 - BASE기반 데이터 모델링
방식 - 최소 중복 통한 데이터 일관성 확보 - 데이터 중복통한 빠른 조회 확보
단계 - 데이터 모델링(설계)후 개발 - 화면, 개발 로직 고려한 데이터셋 설계
독립성 - 프로그램 독립적 설계(데이터 독립성 중요) - 프로그램 종속적 설계(데이터 독립서 회피)
특징 - 논리적 연결점 보유한 모델링 기법 - 파일구조 설계에 근접

   마) NoSQL 데이터 모델의 특징

     1) CAP 이론의 정의

        - 대용량 분산 DB는 일관성(Consistency), 가용성(Availability), 단절내성(Partition Tolerance)을 모두 만족시키는 것은 

          불가능, 두 가지만 전략적으로 선택해야 한다는 이론

     2) CAP 이론의 구성과 관리 전략

특성 설명
구성도
Consistency - 각 사용자는 항상 동일한 데이터 조회
Availability - 소수 노드 장애 발생에도 다른 노드에 영향 없음
Partition Tolerance - 일부 메시지 손실에도 시스템은 정상 동작
C + A - 메시지 손실 방지하는 강한 신뢰성, 일반 RDBMS
C + P - 모든 노드가 함께 퍼포먼스 내는 성능형, Big Table, Hyper Table, HBase
A + P - 비동기화된 스토어 작업에 필수적
- Dynamo, Apache Cassandra, CouchDB, Oracle Coherence

  - NoSQL 시스템들은 A+P, C+P의 특성을 가지는 분산시스템들로 구성

 

[TOPCIT 목차]

 

01. 데이터 품질관리 프레임워크

 

                                       대상
조직      
데이터 값 데이터 구조 데이터 관리 프로세스
CIO/EDA
(개괄적 관점)
데이터 관리 정책
DA
(개념적 관점)
표준 데이터 개념 데이터 모델
데이터 참조 모델
데이터 표준관리
요구사항 관리
모델러(Modeler)
(논리적 관점)
모델 데이터 논리 데이터 모델 데이터 모델 관리
데이터 흐름 관리
 DBA
(물리적 관점)
관리 데이터 물리 데이터 모델
데이터 베이스
DB 관리
DB 보안관리
사용자
(운용적 관점)
업무 데이터 사용자 뷰 데이터 활용 관리

-  데이터 품질관리 ? 데이터의 품질을 향상 시키기 위해 데이터 값, 데이터 구조, 데이터 관리 프로세스 대상에 대한 활동을 수행

 

가) 데이터 값

 ① 표준 데이터 : 공통된 형식과 내용으로 정의하여 사용하는 표준 관련 데이터

     ex> 표준 단어(word) 사전, 표준 도메인(domain) 사전, 표준 용어(term) 사전, 표준 코드, 데이터 표준 요소

 

 ② 모델 데이터 : 데이터 모델을 운용, 관리하는 데 필요한 데이터

    - 완전성, 일관성, 추적성, 상호연계성, 최신성, 호환성 관리

     ex> 모델에 대한 메타 데이터 및 DBMS 객체 정보 

 

 ③ 관리 데이터 : DB를 표과적으로 운영, 관리하는 데 필요한 데이터

    ex> 사용 관리 데이터, 장애 및 보안관리 데이터, 성능관리 데이터, 흐름 관리 데이터, 품질 관리 데이터

 

 ④ 업무 데이터 : 기관이나 기업의 업무 및 비즈니스를 수행하는데 필요한 데이터

    ex> 소스데이터, 운영 데이터, 분석 데이터

 

나) 데이터 구조

 ① 개념 데이터 모델

정의  - 업무 요건을 충족하는 데이터의 주제영역과 핵심 데이터 집합을 정의하고 상호 간의 관계를 정의한 모델
관리 항목  - 주제영역, 핵심 엔티티, 핵심관계

 

 ② 데이터 참조 모델

정의  - 데이터 아키텍처의 구축·유지관리 및 조직에서 사용하고 있는 데이터 모델의 상호 운영과 타 조직 데이터모델의 참조·재사용을 목적으로 업무영역별, 주제영역별로 표준 데이터 집합과 관리 항목들을 정의한 데이터 모델 
관리 항목  - 재사용이 가능한 형태의 데이터 모델로, 속성단위, 엔티티, ERD 전체 업무 영역 단위 등
 - 개념 데이터 모델, 논리 데이터 모델, 물리 데이터 모델

 

 ③ 논리 데이터 모델

정의  - 개념 데이터 모델을 상세화하여 논리적인 데이터 집합, 관리 항목, 관계를 정의한 모델
관리 항목  - 주제영역, 엔티티, 관계, 속성

 

④ 물리 데이터 모델

정의  - DBMS의 특성과 성능을 고려하여 논리 데이터 모델을 구체화시킨 모델
관리 항목  - 주제영역, 테이블, 관계, 컬럼

 

⑤ 데이터베이스

정의  - 물리 모델을 구현한 결과물이며 구축된 실제 데이터가 저장되는 데이터 저장소
관리 항목  - 저장공간, 테이블, 제약조건, 인덱스, 트리거, DB링크, 프로시저, 뷰, 동의어, 롤

 

⑥ 사용자 뷰

정의  - 데이터를 제공하는 정보시스템 상의 화면이나 출력물
관리 항목  - 화면, 출력물

 

다) 데이터 관리 프로세스

라) 데이터 품질관리 성숙모형

 ① 데이터 품질 기준

    - 데이터 유효성 측면 : 정확성, 일관성

    - 데이터 활용성 측면 : 유용성, 접근성, 적시성, 보안성

 

 ② 데이터 품질 관리 프로세스

    - 정확성, 일관성, 유용성, 접근성, 적시성, 보안성을 향상 시키기 위한 프로세스를 식별

프로세스 활동 설명
데이터 품질기준 수립 DQI, CTQ 선정 - 데이터 품질 기준정보
- DQI 등 업무영역 선정
프로파일링 대상 선정 프로파일링 - 일반적 유형 현황 파악
- 컬럼, 관계, 패턴, 코드 등
BR(Business Rule) 선정 BR 도출 및 확정 - 각종 업무 규칙 수집
- 측정 가능형태로 선정
데이터 품질진단 BR 측정 및 진단 - 확정 BR의 측정, 진단
- 결과에 따른 현상 분석
개선/정제 데이터 정제 - 저품질 BR 오류 분석
- 개선/정제 후 재측정

 

 ③ 데이터 품질 관리 성숙 수준

    - 단계 : 1~5단계로 정의

    - 성숙수준이 높을 수록 체계적이고 정교한 관리가 수행됨을 의미

 

02. 데이터 표준화

가) 데이터 표준화 개요

  • 기업내 시스템별로 산재해 있는 데이터 정보요소에 대한 명칭, 정의, 형식, 규칙에 대한 원칙을 수립하여 전사적으로 적용하는 관리 활동
  • 시스템 별로 산재해 있는 데이터 정보요소에 대한 명칭, 정의, 형식, 규칙에 대한 원칙을 수립하여 이를 전사적으로 적용하는 것
  • 데이터의 정확한 의미를 파악, 데이터의 상반된 시각적 조정하는 역할 수행

 

나) 데이터 표준화 필요성

필요성 설명
시스템 별 데이터
일치 요구
 – 데이터 표준 정책 미비로 명칭 중복 관리 등 
 – 동일 데이터를 시스템 간 상이하게 처리
데이터 의미 파악
개선 필요
 – 정보 요건 변경 시 필요 데이터 파악 시간 낭비
 – 정보 사용자에게 정확한 정보 제공 어려움
유지보수 개선 필요  – 정보시스템 유지보수 시 데이터 의미 파악 곤란
 – 새로운 요건 반영 시 기존 데이터 파악 어려움

 

다) 데이터 표준화 구성요소

구분 구성요소 상세 설명
데이터 표준 표준 용어 – 업무적 용어, 기술적 용어 표준
표준 단어 – 용어를 구성하는 단어 표준
표준 도메인 – 컬럼의 성질(Type) 그룹핑
표준 코드 – 도메인 데이터 값까지 사전 정의
데이터 표준 관리 조직 전사 데이터 관리자 – 정책 결정, 검토된 표준화 승인
업무 데이터 관리자 – 업무 단위 요구사항 반영, 검토
업무 시스템 관리자 – 시스템 관리 요구사항 정의
데이터 표준화 절차 요구사항 수집 – 개별 시스템 데이터 표준 수집
표준 정의 – 표준화 정의(용어,단어,도메인,코드)
표준 확정 – 표준 확정, 검토, 공표
표준 관리 – 표준 이행, 관리 절차 수립
  • 데이터 표준화 위해 표준관리, 구조관리, 프로세스 관리 등 존재

 

라) 데이터 표준 정의

 ① 표준단어의 도출 전체 개요

    - 표준단어는 모든 시스템에서 사용되고 있는 용어를 단어 단위로 분할하여 도출

    - 표준단어는 전사적으로 관리하고 있는 엔티티와 속성을 개별단위로 추출

 

 ② 단어 분할

     - 수집된 용어를 업무상 사용되며 일정한 의미를 가지고 있는 최소 단위의 단어로 분할

       ex>  주민등록 번호 -> 주민 + 등록 + 번호

 

 ③ 이음동의어 처리

    - 의미가 동일한 단어들에 대해 하나의 대표 단어를 표준으로 선정

    - 최종 도출된 모든 단어들은 한글명과 영문 약어명 모두 유일해야 함

      ex>  비밀번호, 암호, 패스워드를 비밀번호로 통일

 

 ④ 표준 도메인 사전 도출

    - 각 속성은 임의의 도메인에 할당 되어야 하며, 하나 이상의 도메인에 복수로 할당할 수 없음

    - 새로운 속성이 추가될 경우 해당 속성의 도메인을 선정, 등록해야함

      ex> (용어)주민번호-(도메인명)등록번호-(타입)char(13)

 

 ⑤ 표준 코드 사전 도출

     - 전사적으로 사용되고 있는 모든 코드들을 수집하여 동일 코드를 파악하고 통합하여 표준 코드를 정의

       ex> 색상코드->포장이 생삭코드

 

 ⑥ 표준 용어 사전 도출

     - 전사적으로 보유하고 있는 엔티티와 속성을 대상으로 추출된 표준 단어를 조합하여 표준용어를 생성

       ex> (표준단어)고객, 구분, 코드, ID->(표준용어) 고객구분코드, 고객ID 

 

마) 데이터 표준 확정

 ① 데이터 표준 검토 대상

    - 표준 단어 사전, 표준 도메인 사전, 표준 코드 사전, 표준 용어 사전 등

 

 ② 데이터 표준에 대한 주요 검증 기준

    - 유일성, 완전성, 정확성, 범용성

1. 데이터베이스 설계 및 구축 과정

가) 요구사항 수집 및 분석

-. 사용자 요구사항 수집 분석

-. 요구 조건 명세서 작성

-. 정적요구사항, 동적 요구사항 파악

   * 정적 요구사항: 엔터티, 속성, 관계, 제약조건

   * 동적 요구사항: 트랜잭션의 유형, 빈도

 

나) DB 설계

데이터 모델링 내용 수준
개념적 데이터 모델링 업무중심적, 포괄적 수준의 모델링, 전사 아키텍쳐(EA) 수립시 많이 이용 추상적
논리적 데이터 모델링 Key, 속성, 관계 표현, 데이터 모델 재사용성이 높음    :
물리적 데이터 모델링 실제 DB 이식, 성능 향상 및 저장의 효율화를 위해 물리적 성격 고려 설계 물리적
데이터 모델링 내용
개념적 데이터 모델링 현실세계에서나타나는 정보구조를 추상적으로 개념화하는 것
엔티티, 엔티티의 식별자, 엔티티간 관계, 관계의 대응 수 및 차수, 엔티티의 속성 등이 도출됨
일반적으로 개체-관계 모델로 표현됨
논리적 데이터 모델링 사람의 이해를 위한 개념적 설계의 결과를 데이터 베이스 저장이 용이한 논리적 구조로 변환하는 것
관계형, 네트워크형, 계층형, 객체 지향형 모델이 있으며 이 중 관계형 모델이 가장 일반적으로 사용됨
관계형 모델의 경우 논리적 설계 단계에서 테이블명, 기본키, 외래키 등이 결정됨
단계 산출물로 논리 스키마가 도출됨
요구 수준에 맞춘 정규화가 수행됨
물리적 데이터 모델링 논리적 구조 설계를 통해 생성된 데이터베이스의 물리적 저장 구조 결정
열의 데이터 형식, 제약조건 및 특정 데이터에 접근하기 위한 접근 방법, 접근 경로를 정의함
성능 요구사항에 따라 구조를 변환하는 기술이 필요함
구체적으로 트랜잭션 분석, 뷰 설계, 인덱스 설계, 용량 설계, 접근 방법 설계 등이 수행됨
단계 산출물로 물리 스키마가 도출됨

다) DB 구축

-. DB 구현, DB 개발 단계라고도 한다.

-. DB 구성에 필요한 SQL 문을 작성하고 이를 실행하여 사용자 요구사항을 수용할 수 있는 데이터 베이스를 생성한다.

-. 구축해야 할 데이터를 수집하고 이를 가공한다.

-. 수집, 가공된 데이터를 입력, 저장한다. 

 

라) 운영 및 유지보수

-. 데이터베이스 품질 관리 및 모니터링

-. 데이터베이스 복구, 회복에 대한 전략 수립

-. 보안 정책 수립

-. 지속적인 유지보수 및 사후 평가: 분석 대상 산출물, 설계 주체, 설계 영향도

 

2. 데이터베이스 설계 고려사항

가) 분석 대상 산출물

단계 고려사항 설명
개념 모델 설계 단계 고려사항 데이터에 대한 의미와 데이터들 간의 사고관계에 관한 규칙을 정의하는 단계
주제영역, 핵심 엔티티, 관계가 정의되어 개념 데이터 모델이 작성되어야 함
논리 모델 설계 단계 고려사항 개념 데이터 모델 기반, 속성, 키 정의 엔티티가 상세화, 이력관리가 정의된 형태로 최종 개체-관계 다이어그램 작성 되어야 함
물리 모델 설계 단계 고려사항 데이터베이스가 구현되기 위한 물리적인 스키마를 구현하는 단계
성능을 고려한 반정규화가 수행, 테이블 정의서 도출

나) 설계 주체 고려사항

DA, DBA

 

3. 프로젝트 라이프사이클에서 DB 설계 영향도

 

[TOPCIT 목차]

 

키워드 : 갱신손실, 현황파악오류, 모순성, 연쇄복귀, Locking, 2PL, Timestamp

 

01. 트랜젝션이란

  가) 트랜잭션의 개념

  • 하나의 논리적인 작업 단위를 이루는 여러 연산 집합으로 데이터베이스의 일관된 상태를 또 다른 일관된 상태로 변환시킴
  • 한 번에 수행되어야 할 데이터베이스의 일련의 읽기(Read)와 쓰기(Write) 연산을 수행하는 단위

  나) 트랜잭션의 ACID 특징

특징 ACID가 깨지는 사례
Atomicity
(원자성)
철수는 10건의 데이터를 입력 처리하는 작업을 1개의 트랜잭션으로 처리하는데 9건을 성공적으로 수행되었고 한 건은 실패되어 저장
-> 1개의 트랜잭션에서 모든 데이터는 함께 성공하든지 함께 실패하든지 해야 함
Consistency
(일관성)
강희는 SQL의 연산을 칼럼1+칼럼2+칼럼3-칼럼4의 로직으로 실행하는데 실행 때마다 예측된 결과가 나오지 않고 다른 결과가 나오는 경우가 있음
-> 트랜잭션의 실행은 항상 기대되는 값을 정확하게 보여줘야 함, 중간에 다른 트랜잭션이 끼어들지 못 하게 하는 Lock, Timestamp, Validation 등을 사용하여 제어함
Isolation
(고립성)
영희가 100건의 데이터를 수정하는 작업을 실행하여 데이터베이스에서는 35건째 수정작업이 진행 중인데 첫 번째 수정한 데이터를 철수가 접근하여 재수정하였다.
-> 트랜잭션의 Commit 또는 Rollback이 발행되기 전에 다른 트랜잭션이 끼어들어서 처리하면 안 됨
Durability
(영속성)
철수가 10건의 회원 정보를 회원 테이블에 저장(Insert)하고 성공적으로 Commit 하였으나 전원이 일시적으로 나갔다가 들어오면서 데이터가 유실됨
->한번 성공한 트랜잭션은 지속성을 보장해야 함, 이 같은 경우 순방향 복구 알고리즘에 의해 복구되어야 함
  다) 트랜잭션 종료 시 연산
  • 트랜잭션 완료(Commint) 연산 : 트랜잭션 안에서 수행한 모든 SQL 문장들의 결과를 데이터베이스에 영구적으로 반영하면서 해당 트랜잭션을 종료하는 연산
  • 트랜잭션 복귀(Rollback) 연산 : 트랜잭션의 수행 도중에 치명적인 오류가 있어 더 이상 진행할 수 없거나, 사용자에 의해 반영 취소 명령(rollback)이 수행되었을 때 지금까지 수행해왔던 트랜잭션 안에서 변경된 모든 데이터 값을 트랜잭션 수행 이전 상태로 되돌리는 연산{즉, 트랜잭션을 철회(abort)하는 연산}

  라) 트랜잭션 처리 시 고려사항

  • 트랜잭션의 동시성 구현 : 트랜잭션의 동시 실행은 트랜잭션의 처리율과 시스템 이용률을 높이고 대기시간을 줄임으로써 동시성을 높일 수 있음
  • 트랜잭션 수행시간을 최대한 짧게 수행 : 긴 트랜잭션의 경우에 잠금(Lock) 수행시간이 길어져 충돌 현상 및 교착상태를 발생시킬 소지가 큼. 트랜잭션은 직렬성을 보장할 수 있도록 잠금(Lock)을 충분히 오랫동안 유지해야 하지만 동시에 성능을 저하하지 않도록 짧게 구성할 필요가 있음.

02. 동시성(병행)제어

  가) 트랜잭션의 직렬가능 스케줄의 정의

  • 직렬성을 가진 트랜잭션 스케줄이란 각각의 트랜잭션이 동시에 수행되더라도 그 결과가 순차적으로 트랜잭션이 수행된 결과와 같은 경우
  • 트랜잭션의 직렬화 수행 보장
 

  나) 동시성(병행) 제어의 정의

  • 다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
  • 다중 사용자 환경을 지원하는 데이터베이스 시스템의 경우 필수적으로 지원해야 하는 기능으로 동시성(병행) 제어라고도 함

  다) 동시성(병행) 제어의 목적

  • 직렬가능스케줄(Serializable Schedule)의 생성 또는 트랜잭션들의 직렬가능성 보장
  • 공유도 최대, 응답시간 최소, 시스템 활동의 최대 보장
  • 데이터의 무결성 및 일관성 보장

  라) 동시성(병행) 제어를 하지 않았을 경우 발생하는 문제점

구분 내용
갱신 손실
(Lost Update)
- 트랜잭션들이 동일 데이터를 동시에 갱신할 경우 발생
- 이전 트랜잭션이 데이터를 갱신한 후 트랜잭션을 종료하기 전에 나중 트랜잭션이 갱신 값을 덮어쓰는 경우 발생
오손 데이터 읽기
(Dirty Read)
- 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
- 현황파악오류
모순성
(Inconsistency)
- 두 트랜잭션이 동시에 실행할 때 DB가 일관성이 없는 상태로 남는 문제
연쇄 복귀
(Cascading Rollback)
-복수의 트랜잭션이 데이터 공유 시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능
반복할 수 없는 읽기
(Unrepeatable Read)
- 한 트랜잭션 내에서 같은 질의를 두 번 수행했는데, 그사이에 다른 트랜잭션이 값을 수정 또는 삭제하는 경우 두 질의의 결과가 다르게 나타나는 현상

  마) 동시성(병행) 제어 기법들

  • 잠금(Lock) 기반 기법
  • 타임 스탬프 기반 기법
  • 다중버전 기법
  • 검증(낙관적) 기반 기법

  바) 2PL(2-Phase Locking) 기법이란

  • 직렬성 보장을 통해 동시성을 제어하는 2단계 잠금(Locking) 기법으로 Lock과 Unlock 연산을 확장단계와 수축단계로 구분하여 수행하는 2 PL 규약을 따른다.

        - 확장단계 : 트랜잭션은 Lock만 수행할 수 있고 Unlock은 수행할 수 없는 단계

        - 수축단계 : 트랜잭션은 Unlock만 수행할 수 있고 Lock은 수행할 수 없는 단계

  • 모든 잠금 연산(Read_Lock, Write_Lock)들이 최초의 unlock 연산보다 앞에 나오는 경우, 그 트랜잭션은 2단계 잠금 프로토콜을 준수한다.
  • 만일 모든 트랜잭션이 2단계 잠금 규약을 준수한다면, 모든 트랜잭션은 직렬성을 보장받게 되나 그 역은 성립하지 않는다.
  • 직렬가능성을 보장할 수 있는 규약으로 가장 많이 사용된다.

03. 트랜잭션 수준(Isolation Level)

  가) 완료되지 않은 읽기(Read Ucommitted)

  • 트랜잭션에서 처리 중인 아직 완료되지 않은 데이터를 다른 트랜잭션이 읽는 것을 허용한다.

  나) 완료된 읽기(Read Committed)

  • 트랜잭션이 완료되어 확정된 데이터만 다른 트랜잭션이 읽도록 허용한다.

  다) 반복 읽기(Repeatable Read)

  • 트랜잭션 내에서 질의를 두 번 이상 수행할 때, 첫 번째 질의에 있던 레코드가 사라지거나 값이 바뀌는 현상을 방지해준다.

  라) 직렬화(Serializable Read)

  • 트랜잭션 내에서 질의를 두 번 이상 수행할 때, 첫 번째 질의에 있던 레코드가 사라지거나 값이 바뀌지 않음은 물론 새로운 레코드가 나타나지도 않게 한다.
Isolation Level Dirt Read Non repeatable Read Phantom Read
레벨 0 Read Uncommitted 발생 발생 발생
레벨 1 Read Committed X 발생 발생
레벨 2 Repeatable Read X X 발생
레벨 3 Serializable X X X

04. 교착상태(Daedlock)

  가) 교착상태 정의

  • 다중처리 환경 또는 다중 트랜잭션 데이터베이스 시스템에서 다수의 프로세스 또는 트랜잭션이 특정 자원의 할당을 무한정 기다리고 있는 상태
  • 교착상태에 있는 트랜잭션들은 결코 실행을 끝넬 수 없으며 시스템 자원이 묶여있어서 다른 작업을 시작하는 것도 불가능하므로, 교착상태가 발생하면 반드시 시스템은 두 트랜잭션 중의 하나를 취소시켜야 한다.
  • 모든 트랜잭션이 실행을 전혀 진전시키지 못하고 무한정 기다리고 있는 상태

        - T1T2가 데이터 XUnlock 하기를 기다림

        - T2는 데이터 XLocking하고 있는 상태

        - T2T이 데이터 YUnlock 하기를 기다림

        - T1은 데이터 YLocking하고 있는 상태

구분 Deadlock(교착상태) Stravation(무한대기)
정의 다수의 프로세스가 아무 일도 못 하고 특정사건 무한대기 특정 프로세스가 자원을 할당받기 위한 무한정 대기 상태
발생원인 상호배제, 점유와 대기, 비선점, 환형 대기 자원의 편중된 분배정책
해결방안 예방, 회피, 발견, 회복 Aging 기법
 
  나) 교착상태 발생원인
 
원인 내용
상호배제(Mutual Exclusion) 프로세스들이 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용하지 못함
점유와 대기(Block & Wait) 프로세스가 어떤 자원을 할당받아 점유하고 있으면서 다른 자원을 요구
비선점(Non Preemption) 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없으며, 점유하고 있는 프로세스 자신만이 해제 가능
환형 대기(Circular wait) 프로세스 간 자원 요구가 하나의 원형으로 구성
  다) 교착상태의 해결방안
해결방안 내용
교착상태 예방
(Deadlock Prevention)
- 시스템이 교착상태에 빠지지 않도록 보장하는 규약 사용
- 시스템이 교착상태에 빠질 확률이 상대적으로 높을 때 사용
- 상호배제 예방, 부분할당 예방, 비선점 예방, 환형 대기 예방
- 회피기법 : 타임 스탬프를 사용하는 Wait-Die, Wound-Wait 기법
교착상태 탐지와 복구
(Deadlock detection & Recovery)
- 시스템이 교착상태에 빠질 수 있도록 하고 교착상태 탐지와 복구 기법을 이용하여 교착상태 해결
- Dection : 시스템의 상태 감시를 알고리즘을 통하여 교착상태 검사(Wait for Graph reduction, cycle dection, knot detection)
- Recovery : deadlock이 없어질 때까지 프로세스를 순차적으로 Kill 하여 제거함{희생자 선택(프로세스 최소 종료 비용을 계산), 롤백, 기아 상태}
 

 

관련 링크

 1. Topic >  동시성 제어(Concurrency Control)/병행 제어

 2. 합격답안 > [답안] 동시성 제어 필요성, 해결방법(1교시)

+ Recent posts