랑아
article thumbnail

04. 분산 데이터베이스 설계

01. 트랜잭션 분석

1) 트랜잭션 분석의 개념

  • 데이터베이스에서 행해지는 작업의 논리적인 단위로써 테이블에 발생하는 업무 트랜잭션 양에 따라 데이터베이스의 용량을 산정하여 데이터베이스의 구조를 최적화하는 데 목적이 있음

2) 트랜잭션 분석의 활용

  1. 용량 산정의 근거 자료
    • 테이블의 생성 트랜잭션을 분석하면 테이블에 저장되는 데이터양을 유추할 수 있고 이를 근거로 데이터베이스 용량을 산정할 수 있음
  2. 디스크 구성의 이용
    • 트랜잭션 분석 결과를 이용하여 프로세스가 과도하게 발생하는 테이블에 대해서는 디스크를 여러 곳에 배치하여 디스크 입출력을 분산시켜 성능에 많은 향상을 기할 수 있음
  3. 데이터베이스와 연결되는 채널의 분산
    • 채널별로 집중화된 트랜잭션을 분산시킴으로써 대기 현상이나 타임 아웃 현상을 방지할 수 잇음



02. 분산 데이터베이스 설계

1) 분산 데이터베이스

1. 분산 데이터베이스의 개념

  • 분산 데이터베이스는 하나의 논리적 데이터베이스가 물리적으로 네트워크에서 복수의 컴퓨터에 분산되어 있을 경우에도 사용자가 단일 데이터베이스와 같이 인식하는 것이 가능하도록 논리적으로 통합 및 공유되는 데이터베이스를 의미
  • 데이터베이스를 복수의 장소에 물리적으로 분산시켰으므로 이를 하나의 논리적 데이터베이스로 인식시키기 위해서는 지역별 DBMS 외에 각 장소의 정보를 교환하고 관리시켜주는 시스템이 필요함

2. 분산 데이터베이스의 장점

  • 데이터에 대한 지역적 분산 제어를 통해 원격 데이터에 대한 의존도를 감소시킬 수 있음
  • 단일 서버에서 처리가 어렵거나 불가능한 규모의 대용량 데이터 처리가 가능해짐
  • 기존 시스템에 서버를 추가하는 방식을 통해 점진적 확장이 용이함
  • 데이터베이스 사용 중 하나의 사이트에 문제가 생겨 사용할 수 없는 상황이 발생해도 다른 사이트에서 사용할 수 있기 때문에 신뢰도와 가용성이 향상됨

3. 분산 데이터베이스의 단점

  • 분산 처리에 의해 복잡도와 소프트웨어 개발 비용이 증가함
  • 단일형 데이터베이스에 비해 상대적으로 통제 기능이 취약함
  • 분산 처리로 인한 오류 발생의 가능성이 증가함
  • 데이터가 물리적으로 저장된 장소와 해당 지역별 시스템에서 발생하는 상황의 영향으로 응답 속도가 불규칙적으로 나타날 수 있으며, 데이터의 무결성을 완전히 보장하기 어려움

2) 분산 데이터베이스 관리 시스템

  1. 투명성(Transparency)
    • 복수의 분할된 물리적 데이터베이스를 논리적으로 단일화된 데이터베이스처럼 인식하려면 사용자들이 데이터의 물리적 배치와 특정 지역 사이트의 데이터에 대한 액세스 방법을 별도로 알 필요가 없어야 함
  2. 분할 투명성(Fragmentation Transparency, 단편화 투명성)
    • 분할 투명성은 사용자에게 전역 스키마의 분할 상태를 알려주는 역할을 함
    • 사용자가 입력한 전역 질의를 여러 개의 단편 질의로 변환해 주기 때문에 사용자는 전역 스키마가 어떻게 분할되어 있는지를 알 필요가 없게 됨
    • 분할의 방법에는 한 릴레이션을 속성들의 부분 집합으로 이루어진 릴레이션들로 나누는 수직 분할과, 튜플들의 집합으로 이루어진 릴레이션들로 나누는 수평 분할로 나뉨
  3. 위치 투명성(Location Transparency)
    • 위치 투명성은 사용자나 애플리케이션에서 어떤 작업을 수행하기 위해 분산 데이터베이스상에 존재하는 어떠한 데이터의 물리적인 위치도 알 필요가 없어야 한다는 것
    • 사용자는 분산 환경과는 무관하게 동일한 명령을 사용할 수 있어야 함
    • 분산 데이터베이스 관리 시스템은 위치 투명성을 보장하기 위해 분산 데이터베이스에 저장되어 있는 모든 데이터에 대한 메타 데이터와 위치 정보를 참조하여 지역 트랜잭션의 경우에는 지역 데이터베이스를 처리하고, 전역 트랜잭션의 경우에는 다른 지역의 데이터베이스에 처리를 전담시키고 결과를 통보받음
  4. 중복 투명성(Replication Transparency, 복제 투명성)
    • 중복 투명성은 중복된 데이터가 무엇인지와 저장 위치 등에 대한 정보를 사용자가 별도로 인지할 필요가 없어야 한다는 것
    • 사용하고 있는 데이터가 논리적으로 유일하다고 생각할 수 있는 환경을 제공해야 함
    • 중복과 위치 투명성을 통하여, 분산 데이터베이스 관리 시스템은 사용자의 데이터 처리 요청에 대해 가장 효율적인 최적의 지역을 선정하여 처리할 수 있도록 하므로 수행 속도가 향상되지만, 복제 데이터의 갱신을 처리하기 위해서는 복제된 모든 지역에 대한 데이터 갱신이 이루어져야 하므로 무결성을 보장하기 어려워짐
  5. 장애 투명성(Failure Transparency, 장애 고장 투명성)
    • 장애 투명성은 데이터베이스의 분산된 물리적 환경에서 특정 지역의 컴퓨터 시스템이나 네트워크에 장애가 발생해도 데이터 무결성이 보장된다는 것
    • 분산 데이터베이스는 구성 요소의 장애와 무관하게 트랜잭션의 원자성이 유지되어야 함
  6. 병행 투명성(Concurrency Transparency)
    • 병행 투명성은 다수의 트랜잭션이 동시에 수행되는 경우에도 결과의 일관성이 유지되어야 한다는 것
    • 분산 데이터베이스 관리 시스템은 분산 트랜잭션의 일관성 유지를 위해 잠금(Locking)과 타임스탬프(Timestamp) 등의 방법이 주로 활용됨

3) 물리 데이터베이스 설계의 종류

  1. 중앙 집중형 데이터베이스 설계
    • 중앙 컴퓨터 서버만 데이터베이스를 관리할 수 있고 다른 지역은 접근이 가능하도록 설계하는 방식
  2. 지역 집중형 데이터베이스 설계
    • 지역 데이터베이스에 데이터를 복제하고 복사본을 실시간으로 갱신하는 방식과 주기적으로 갱신하는 방식
  3. 분산 논리적 데이터베이스 설계
    • 분산 환경에서 전체 지역의 데이터베이스를 하나의 논리적 데이터베이스로 유지하는 방식
  4. 분산 독립적 데이터베이스 설계
    • 분산 환경에서 지역 데이터베이스를 독립적 데이터베이스로 유지하는 방식
  5. 분산 데이터베이스 설계
    • 분산 데이터베이스 설계는 먼저 전역 관계 네트워크를 논리적 측면에서 중복되지 않는 소규모 단위로 분할하고, 분할된 결과를 복수의 노드에 할당하는 과정으로 진행함
    • 분할(Fragment)이 할당될 때 하나의 분할이 분산 네트워크상에 있는 하나의 노드에 1:1로 존재하도록 하여 단일 복사본이나 복제를 통해 유지할 수 있도록 함

4) 물리 데이터베이스의 분산과 분할

  1. 물리 데이터베이스의 분산
    • 테이블을 중복되지 않게 분산 배치하는 것
    • 대상 테이블이 특정 서버에 존재할 경우 다른 서버에는 존재하지 않도록 설계하는 것
    • 테이블의 위치를 다르게 지정하기 위해서 각각의 테이블마다 존재할 서버를 결정하여 설정해야 함
  2. 물리 데이터베이스의 분할
    • 분할을 위한 방법을 먼저 결정하고 결정된 분할을 할당함
    • 할당은 동일한 분할을 복수 서버에 생성하는 분산 방법
    • 분할은 분산 데이터베이스에 비 중복 또는 중복되어 존재하게 함

5) 물리 데이터베이스 분할의 규칙

  1. 완전성(Completeness)의 규칙
    • 분할(Fragment) 시 전 지역 테이블 내의 모든 데이터가 손실없이 분할로 사상(Mapping)되어야 하는 것으로 전체 데이터를 대상으로 분할함
  2. 재구성(Reconstruction)의 규칙
    • 분할 시 관계 연산을 활용하여 본래의 전역 테이블로 재구성이 가능하게 함
  3. 상호 중첩 배제(Dis-jointness)의 규칙
    • 분할 시 특정 분할에 속한 데이터 항목이 다른 분할 데이터 항목에 속하지 않도록 함

6) 물리 데이터베이스 분할 방식

  1. 수평 분할 방식
    • 각각의 분할에 포함된 레코드들이 상호 중복되지 않아야 함
    • 수평 분할의 경우 레코드 단위를 분리하는 것으로 특정 속성 값 기준의 분할을 의미
    • 속성 값으로 인해 서버 간 상호 배타적이므로 분할을 통합하는 상황에서도 중복 식별자는 발생하지 않음
  2. 수직 분할 방식
    • 식별자를 제외한 속성들이 중복되지 않아야 함
    • 수직 분할의 경우 데이터 컬럼 분할로 레코드 기준의 분리가 아니므로 서버별 동일 식별자를 가진 레코드가 중첩되게 존재함
    • 식별자가 동일한 구조를 포함하므로 식별자를 통해 분할 전 테이블의 재구성이 가능함

7) 물리 데이터베이스 할당(Allocation) 방식

  1. 비 중복 할당 방식
    • 최적 노드의 선정을 통해 분할이 분산 데이터베이스에서 단일 노드에서만 존재하도록 하는 것
    • 애플리케이션은 테이블을 서로 배타적 분할로 분리하는 것이 어렵기 때문에 분할 간 상호 의존성은 무시되고 비용 증가 및 성능의 문제 등이 발생할 수 있음
  2. 중복 할당 방식
    • 중복되지 않는 할당으로 비용 증가와 성능에 문제가 발생된다면 각각의 노드 분할을 중복하여 할당하는 방법을 고려해야 함
    • 복제의 경우 일부 분할만 복제하는 부분 복제와 전체 데이터베이스를 복제하는 완전 복제 등 두 가지 방식의 구성이 가능함

8) 분산 데이터베이스 설계와 데이터 통합

  • 최적 비용을 통해 물리적으로 분산된 데이터베이스에서 '데이터 일관성을 유지할 수 있는가'라는 측면에서 분산 설계가 출발함
  • 대부분 통합의 경우 데이터 통합이라는 측면에서 분산 아키텍처의 단점 보완과 정보의 적시성 및 실시간 데이터 교환 등의 목적을 위해 통합 아키텍처를 구축함
  • 통합 방식은 데이터웨어하우스(DW)를 활용하는 방법, EAI를 활용하는 방법, 두 가지 방법을 혼용하여 통합하는 방법 등으로 나뉨

9) 데이터웨어하우스(DataWarehouse)

1. 데이터웨어하우스의 개념

  • 기업의 정보 자산을 효율적으로 활용하기 위한 하나의 패러다임으로서 기업의 전략적 관점에서 효율적인 의사 결정을 지원하기 위해 데이터의 시계열적 축적과 통합을 목표로 하는 기술의 구조적, 통합적 환경

2. 기존의 데이터베이스와의 비교

  비교 항목     기존의 데이터베이스     데이터웨어하우스  
  기능     업무 데이터     의사 결정  
  데이터 형태     기능별 상세 데이터     주체별 요약 데이터  
  연산 명령     SELECT, INSERT, UPDATE, DELETE     SELECT  
  목표     신속한 처리     다양한 분석 정보 제공  

3. 데이터웨어하우스의 활용

  • 데이터 마트(Data Mart) : 단일 주체의 예측 가능한 질의에 대해서 매우 빠르게 응답할 수 있도록 데이터를 제공하는 시스템
  • 온라인 분석 시스템(OLAP) : 온라인으로 다양한 분석 정보를 제공하는 시스템으로 OLAP 도구를 활용하여 대규모 데이터를 실시간으로 분석 처리하며, OLAP 연산은 아래 표와 같음
  연산     설명  
  roll-up     구체적인 상세 데이터로부터 요약된 형태의 데이터로 접근함  
  drill-down     요약된 형태의 데이터로부터 구체적인 상세 데이터로 접근함  
  pivoting     보고서의 차원(행, 열, 페이지)을 변경해서 조회함  
  slicing     데이터 항목들을 다양한 형태로 조회하고 자유롭게 비교함  
  dicing     slicing보다 더 구체적으로 구분하여 조회하고 비교함  
  • 데이터 마이닝(Data Mining) : 데이터웨어하우스에 존재하는 전략적인 정보를 발견하거나 정보 간의 새로운 패턴을 찾아내는 지식 추출 기법으로, 빅데이터 분석 기술 중 대량의 데이터를 분석하여 데이터 속에 내재되어 있는 변수 사이의 상호 관례를 규명하여 일정한 패턴을 찾아내는 기법



03. 빅데이터(Big Data)

1) 빅데이터의 등장 배경

  • 디지털 환경의 확산으로 주체할 수 없는 방대한 데이터가 증가함
  • 문자, 음성, 이미지, 영상 등 다양한 형태의 데이터가 혼재함

2) 빅데이터의 특징

  • 빅데이터의 특성을 나타내는 3V는 규모(Volume), 속도(Velocity), 형태의 다양성(Variety)을 의미함
  • 기존의 데이터는 정형화된 수치 자료 중심이었다면 빅데이터는 그림, 영상, 소셜 미디어 데이터(SMS), 위치 데이터 등의 비정형 데이터를 포함함
  • 규모가 방대하고, 생성 주기가 짧으며, 형태가 다양함
  • 기존에는 고가의 저장 장치와 데이터베이스가 필요했지만 빅데이터는 클라우딩 컴퓨터와 경제적으로 효율적인 장치를 이용함
  • 빅데이터를 구현하기 위한 대표적인 프레임워크에는 오픈소스 형태의 하둡(Hadoop), NoSQL, 오픈소스 통계 솔루션(R) 등이 있음

3) 하둡(Hadoop)

1. 하둡의 출현 배경

  • 1일 사용 기준으로 구글의 동영상은 수천만 건, 구글의 Email은 4.5억 개 이상을 사용하므로 방대한 데이터를 관리할 필요성이 증대됨
  • 기존의 관계형 데이터베이스인 오라클, MySQL 등으로 구글의 방대한 데이터를 처리하기에 한계에 부딫히게 됨
  • 관계형 데이터베이스로 데이터를 관리할 때 데이터의 양이 증가하여 일정 수준이 되면 성능이 점차 감소되는 현상이 나타나므로 값비싼 고성능 컴퓨터 시스템을 필요로 함
  • 구글의 플랫폼 철학을 바탕으로 하둡이 출현함
  • 2003년 구글에서는 대용량의 데이터를 처리하기 위한 구글 파일 시스템의 아키텍처가 논문으로 발표되었고, 이 논문을 바탕으로 구글의 데이터 처리 개발자인 더그 커팅에 의해 하둡이 개발됨
  • 더그 커팅은 구글의 텍스트 검색 라이브러리인 아파치 루씬(Apache Lucene) 개발자로 이 라이브러리를 발전시켜 하둡을 개발하였고, 이들이 소중히 여기던 코끼리 인형의 이름으로 기술을 명명함

2. 하둡의 정의

  • 비정형 데이터를 포함한 빅데이터를 처리하기 위한 가장 적절한 플랫폼
  • 빅데이터의 저장과 분석을 위한 분산 컴퓨팅 솔루션
  • 대량의 데이터를 저장하고 분석하는 소프트웨어 플랫폼
  • 오픈소스를 기반으로 하는 병렬 분산 컴퓨터 플랫폼

3. 하둡의 특징

  • 자바(Java) 언어 기반으로 개발되었으며, 파이썬, PHP, C++ 등을 지원함
  • 리눅스 운영체제를 기반으로 사용됨
  • 빅데이터 파일을 여러 개의 서버에 분산 저장하기 위한 파일 시스템인 하둡 분산 처리 시스템(HDFS)에 데이터를 저장하고, 맵리듀스(MapReduce)를 이용하여 데이터를 처리함
  • 일반 PC급 컴퓨터들로 가상화된 대형 스토리지를 형성함
  • 다양한 소스를 통해 생성된 빅데이터를 효율적으로 저장하고 처리함
  • 더 이상 많은 데이터를 저장하기 위해 큰 비용이 들지 않게 됨
  • 기존의 데이터웨어하우스와 데이터 분석 등을 하둡에서 처리할 수 있음

4. 하둡의 기술

  • 수 많은 리눅스 서버들을 하나의 클러스터로 사용함
  • 하나의 클러스터에는 하나의 마스터와 여러 개의 슬레이브로 구성됨
  • 하둡 분산 처리 시스템(HDFS)에서 파일은 블록 단위로 저장됨
  • 마스터 서버가 중단되면 클러스터는 중단되지만 하나의 슬레이브가 중단되면 성능은 일시적으로 낮아지며 계속 사용할 수 있음
  • 마스터 서버의 성능이 낮아도 되지만 슬레이브의 확장성 때문에 가능한 성능이 좋은 서버로 유지하는 것이 일반적
  • 하둡의 클러스터는 보통 몇 백 개의 서버 이상으로 구성됨
  • 하둡의 2.0 버전은 마스터 서버가 중단될 때를 대비하여 마스터 서버의 이중화를 추가함
  • 하둡의 3.0 버전은 데이터 블록을 원본 대비 2배 이상 저장할 수 있도록 함
  • 타조(Tajo)는 하둡 기반 데이터웨어하우스 시스템으로 하둡 데이터 분석을 위해 맵리듀스 기술 대신 관계형 데이터베이스의 SQL을 사용할 수 있음

5. Sqoop

  • 하둡과 관계형 데이터베이스 간에 데이터를 전송할 수 있도록 설계된 도구
  • Import : RDB -> Hadoop
  • Export : Hadoop -> RDB

4) 맵리듀스(MapReduce)

  • 대용량 데이터를 분산 처리하기 위한 목적으로 개발된 프로그래밍 모델
  • Google에 의해 고안된 기술로써 대표적인 대용량 데이터 처리를 위한 병렬 처리 기법을 제공함
  • 임의의 순서로 정렬된 데이터를 분산 처리하고 이를 다시 합치는 과정을 거침
  • 맵(Map) : 데이터가 텍스트 형태로 입력되면 64KB로 분할하며, 텍스트 안에 단어를 분류하여 카운트함
  • 리듀스(Reduce) : 각 텍스트에서 정리된 맵들을 결합하여 동일한 단어를 카운트함

5) 빅데이터 처리 과정

  1. 생성
    • 내부 데이터 : 데이터베이스, 파일 관리 시슽
    • 외부 데이터 : 인터넷에서 생성된 데이터
  2. 수집
    • 크롤링 : 검색 엔진의 로봇 엔진을 사용하여 데이터 수집
    • ETL : 소스 데이터를 추출하거나 전송 및 변환하여 데이터 수집
  3. 저장
    • NoSQL : 데이터 모델을 단순화한 관계형 데이터 모델과 SQL을 사용하지 않는 모든 DBMS 또는 데이터 저장 장치
    • NoSQL 제품 : Cloudata, HBase 등
  4. 처리
    • 맵리듀스(MapReduce) : 데이터를 추출
    • 하둡(Hadoop) 분산 파일 시스템 : 다중 작업 처리
  5. 분석
    • NLP : 자연 언어 처리로 빅데이터 분석
    • 머신 학습 : 기계적인 학습을 통해 데이터의 패턴 파악
  6. 표현
    • 가상화(Virtualization, 시각화) : 데이터 분석 결과를 쉽게 이해할 수 있도록 표현하는 기술

'정보처리기사 > 데이터베이스 구축' 카테고리의 다른 글

데이터 전환 2  (0) 2023.05.29
데이터 전환 1  (0) 2023.05.28
물리 데이터베이스 설계 3  (0) 2023.05.28
물리 데이터베이스 설계 2  (0) 2023.05.28
물리 데이터베이스 설계 1  (0) 2023.05.28
profile

랑아

@RangA

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!