2. 데이터 입출력 구현 (3)

RushBsite·2022년 7월 18일
0

정보처리기사

목록 보기
3/7

분산 데이터베이스 설계

데이터베이스 용량 설계의 목적

  • 데이터베이스 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용, 확장성 및 가용성을 높인다.

  • 디스크 특성을 고려하면서 설계 -> 디스크의 입 출력 부하를 분산시키고 채널의 병목현상을 최소화 한다.

분산 데이터베이스 설계

  • 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 사이트(site)에 분산된 DB

분산 데이터 베이스의 목적

종류목적
위치 투명성액세스 하려는 DB의 실제 위치를 알 필요 없이 단지 DB의 논리적인 명칭만으로 엑세스 가능
중복 투명성동일 데이터가 여러곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용, 시스템은 여러 자료에 대한 작업 수행
병행 투명성분산 DB 와 관련된 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션의 결과는 영향을 받지 않음
장애 투명성트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리

분산 설계 방법

  • 테이블 위치 분산 : db의 테이블을 각기 다른 서버에 분산
  • 분할
    • 분할 규칙 : 완전성/재구성/상호중첩 배제
    • 수평분할(row,행), 수직 분할(col, 열)이 있음
  • 할당 : 동일한 분할을 여러개의 서버에 생성

데이터베이스 이중화/ 분산 클러스터링

DB 이중화

  • Eager 기법과 Lazy 기법
  • 2가지 구성 방법
    - 활동 - 대기 : 한 db 가 활성, 다른 db 는 대기, 장애발생시 대기가 서비스 제공, 구성쉬움
    - 활동 - 활동 : 두 db가 서로 다른 서비스 제공, 한쪽이 장애 발생시 다른 db 가 서비스 제공, 복잡

클러스터링

  • 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술

  • 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공

  • 2가지 종류

    • 고가용성 클러스터링(일반적으로 이쪽 의미) : 하나의 서버에 장애시, 다른 노드(서버)가 받아 처리해서 서비스 중단을 방지
    • 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러개의 서버에서 분산하여 처리

RTO/ RPO

  • RTO : (Recovery Time Objective, 목표 복구 시간) 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간

  • RPO : ( Recovery Point Objective, 목표 복구 시점) 중단 시점으로부터 데이터를 복구할 수 있는 기준점


데이터베이스 보안

DB 보안이란 DB 일부 또는 전체에 대해서 권한이 없는 사용자가 액세스 하는 것을 금지하기 위해 사용되는 기술

암호화

data를 보낼때 송신자가 지정한 수신자 이외에는 내용을 알 수 없도록 평문을 암호문으로 바꾸는 과정

  • 암호화 기법 2가지
  1. 개인 키 암호 방식 (private)
  2. 공개 키 암호 방식 (public)

접근통제 (3요소) = 정책,보안모델,매커니즘

  • 접근 통제 기술 3가지
정책특징
DAC(임의접근통제)사용자의 신원에 따라 접근 권한 부여, 객채 생성자가 모든 권한 부여받고 타인에게 부여 가능
MAC(강제접근통제)주체와 객체의 등급을 비교해서 접근 권한 부여, 시스템이 권한 지정
RBAC(역할 기반 접근통제)사용자 역할에 따라 접근 권한을 부여, 중앙 관리자가 접근 통제 권한을 지정, 다중 프로그래밍 환경에 최적화

접근통제 정책

  • 신분 기반 정책
    신분에 근거하여 접근 제한

    IBP (Individual-based policy): 최소 권한 정책, 단일 주체에게 하나의 객체에 대한 허가 부여
    GBP (group-based policy): 복수 주체에게 하나의 객체에 대한 허가를 부여

  • 규칙 기반 정책
    주체가 갖는 권한에 근거하여 접근 제한

    MLP (Multi-level Policy): 사용자나 객체별로 지정된 기밀 분류에 따른 정책
    CBP (Compartment-based policy): 집단별로 지정된 기밀 허가에 따른 정책

  • 역할 기반 정책

    	GBP의 변형으로 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 접근 제한

접근통제 매커니즘

  • 정의된 접근통제정책을 구현하는 기술적인 방법 ex) 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화

접근통제 보안 모델

기밀성 모델 : 군사목적으로 개발된 최초의 수학적 모델, 기밀성 보장 최우선
무결성 모델 : 기밀성 모델에서 발생하는 불법적 정보변경 방지위해 무결성 기반으로 개발
접근통제 모델 : 접근통제 모델을 보안 모델로 발전시킨것, ex) Access Control Matrix(접근통제 행렬), - 행은 주체 ,열은 객체

접근 통제 조건

  • 값 종속 통제 : 저장된 값에 따라 다르게 접근 통제 허용
  • 다중 사용자 통제 : 지정된 객체에 다수의 사용자가 동시에 접근 요구시 사용
  • 컨텍스트 기반 통제 : 특정 시간, 네트워크 주소, 접근 경로, 인증 수준에 따른 접근 제한, 보안 시스템 취약점 보완시 사용

감사 추적

사용자나 app이 db에 접근하여 수행한 모든 활동을 기록하는 기능


데이터베이스 백업

로그 파일

  • db 처리 내용, 이용상황 등 상태변화를 시간의 흐름에 따라 모두 기록한 내용
    UNDO (복귀)/ REDO(재생) 의 근거 기반

DB 복구 알고리즘

  • no-undo / redo : DB 버퍼 내용을 비동기적으로 갱신한 경우 복구 알고리즘
  • undo / no-redo : DB 버퍼 내용을 동기적으로 갱신한 경우..
  • undo / redo : DB 버퍼 내용을 동기/ 비동기적으로 갱신한 경우..
  • no-undo / no-redo : DB 버퍼 내용을 동기적으로 저장 매체에 기록하지만 DB와는 다른 영역에 기록한 경우

백업 종류

  • 물리 백업 : DB 파일을 백업하는 방법
  • 논리 백업 : DB 내의 논리적 객체를 백업하는 방법

스토리지

단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기위해 서버와 저장장치를 연결하는 기술

DAS (Direct Attached Storage)

서버와 저장장치를 전용 케이블로 연결하는 방식

NAS(Network Attached Storage)

서버와 저장장치를 네트워크를 통해 연결하는 방식

SAN(Storage Area Network)

서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성


논리 데이터 모델의 변환

엔티티를 테이블로

논리적 설계(데이터 모델링)물리적 설계
엔티티테이블
속성컬럼
주 식별자기본키
외부 식별자외래키
관계관계

컬럼 변환시, primary UID -> 기본키
Secondary UID -> 유니크키로 변환


물리 데이터 모델 품질 검토

물리데이터모델 품질 기준

  • 정확성 : 데이터모델이 요구사항, 업무규칙, 표기법에 따라 정확하게 표현되었음
  • 완전성 : 데이터 모델이 구성요소 누락 없이 정의, 반영 하였음
  • 준거성 : 데이터 모델이 표준,규칙,법적요건등을 정확하게 준수
  • 최신성 : 최근이슈, 현행 시스템 반영
  • 일관성 : 표현상의 일관성 유지
  • 활용성 : 업무변화에 따른 데이터구조의 변경이 최소화 될 수 있도록 설계됨

자료구조


트리


이진트리

수식 표기법


정렬

삽입 정렬

  • 가장 간단한 정렬 방식, 이미 순서화된 파일에 새로운 레코드를 삽입시, 정렬
  • 시간복잡도 평균,최악 = O(n2)O(n^2)

선택 정렬

  • 레코드중 최소값 찾아 첫 번째 레코드에 놓고 나머지중 최소값 찾아 두 번째 레코드에 놓고...
  • 시간복잡도 평균,최악 = O(n2)O(n^2)

버블 정렬

  • 인접한 두개의 레코드 키 값을 비교하여 크기에 따라 레코드 위치를 서로 교환
  • 시간복잡도 평균,최악 = O(n2)O(n^2)

출처 : https://commons.wikimedia.org/

나머지 정렬들 특징

  • 쉘정렬

    입력파일을 매개변수 값으로 서브 파일을 구성하고, 각 서브파일을 Insertion sort로 배열 (삽입정렬의 확장 개념)
    • 평균O(n1.5)O(n^{1.5}), 최악 O(n2)O(n^2)
  • 퀵정렬

    	- 키를 기준으로 작은 값은 왼쪽, 큰 값은 오른쪽 서브 파일에 분해시키는 과정
    • 레코드의 많은 자료 이동을 줄이고, 하나의 파일을 부분적으로 나누어 가며 정렬
    • 평균 O(nlog2n)O(nlog_{2}n), 최악 O(n2)O(n^2)
  • 힙정렬(Heap Sort)

    	전이진 트리를 이용한 정렬 방식
    • 구성된 전이진 트리를 heap tree로 변환하여 정렬
    • 평균,최악 O(nlog2n)O(nlog_{2}n)
  • 2-way 합병 정렬(Merge Sort)

    	이미 정렬되어 있는 두개의 파일을 한 개의 파일로 합병하는 정렬 방식
    • 평균,최악 O(nlog2n)O(nlog_{2}n)
  • 기수 정렬 (Radix Sort = Bucket Sort)

    	queue를 사용하여 자릿수 별로 정렬하는 방식, 레코드 키값을 분석하여 같은 수, 문자끼리 순서에 맞는 버킷에 분배 후 버킷 순서대로 꺼내서 정렬
    • 평균,최악 O(dn)O(dn)

profile
게임 기획/개발 지망생

0개의 댓글