본문 바로가기

Study/정보처리기사

정보처리기사 실기 2장. 데이터 입출력 구현_7

2-22. 분산 데이터베이스 설계

 데이터베이스 용량 설계

   데이터가 저장될 공간을 정의하는 것

      ‣ 디스크 용량 산정 - 디스크의 저장 공간을 효과적으로 사용, 확장성 및 가용성을 높임

      ‣ 디스크 특성 고려 - 디스크의 입출력 부하를 분산, 채널의 병목 현상을 최소화

 

분산 데이터베이스 설계

   논리적으로 하나의 시스템이나, 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트에 분산된 데이터베이스

      ‣ 사용자가 분산된 데이터에 접근하게해 해당 지역에서 데이터 처리를 해결

 

 분산 데이터베이스의 목표

위치 투명성
(Location Transparency)
데이터베이스의 실제 위치를 알 필요 없이 논리적인 명칭만으로 액세스 가능
중복 투명성
(Replication Transparency)
하나의 데이터만 존재하는 것처럼 사용하지만 여러 곳에 중복된 데이터에 작업을 수행
병행 투명성
(Concurrency Transparency)
분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도
트랜잭션의 결과는 영향을 받지 않음
장애 투명성
(Faliure Transparency)
장애에도 불구하고 정확하게 트랜잭션 처리

✓ 투명성 

    사실의 존재 여부를 염두에 두지 않아도 되는 성질 (투명해서 보이지 않는 것)

 

 분산 설계 방법

테이블 위치 분산 테이블을 각기 다른 서버에 분산시켜 배치
분할
(Fragmentation)
테이블의 데이터를 분할하여 분산
분할 규칙 완전성(Completeness), 재구성(Reconstruction), 상호 중첩 배제(Disjointness)
주요 분할 방법 수평분할 특정 속성 값을 기준으로 행 단위로 분할
수직분할 컬럼(속성) 단위로 분할
할당
(Allocation)
동일한 분할을 여러개의 서버에 생성
중복이 없는 할당과 중복이 있는 할당으로 나뉨

 

 

 


2-23. 데이터베이스 이중화 / 서버 클러스터링

데이터베이스 이중화 (Database Replication)

   동일한 데이터베이스를 복제하여 관리하는 것

       시스템 오류로 인한 손상 발생 시 즉시 복구 가능

       데이터베이스 이중화 시스템에 연결된 다른 데이터베이스에도 작업이 동일하게 적용

       분산 처리에 의한 데이터베이스의 부하 감소

       손쉬운 백업 서버 운영

 

 데이터베이스 이중화의 분류

Eager 기법 이중화된 모든 데이터베이스에 즉시 전달 및 적용
Lazy 기법 트랜잭션 수행이 종료된 후 각 데이터베이스에 전달
데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주

 

 데이터베이스 이중화 구성 방법

활동-대기 방법
(Active-Standby)
A DB가 활성 상태일 때 B DB는 대기하다가 A에 장애가 발생하면 B가 자동으로 모든 서비스를 대신 수행
구성 방법과 관리가 쉬움 → 대부분의 기업에서 사용
활동-활동 방법
(Active-Active)
각각 서로 다른 서비스를 제공하다가 한 쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공
처리율이 높으나 구성 방법 및 설정이 복잡함

 

클러스터링 (Clustering)

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

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

 

   - 클러스터링 종류

고가용성 클러스터링 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스를 중단
대표적인 클러스터링 방법
병렬 처리 클러스터링 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리

✓ 고가용성 (HA, High Availability)

     시스템을 오랜 시간동안 계속해서 정상적으로 운영이 가능한 성질

 

RTO / RPO

RTO
(목표 복구 시간, Recovery Time Objective)
장애 시점부터 복구되어 가동될 때까지의 소요시간
RPO
(목표 복구 시점, Recovery Point Objective)
장애 시점부터 데이터를 복구할 수 있는 기준점

 


2-24. 데이터베이스 보안

 데이터베이스 보안

   데이터베이스에 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술

       테이블 전체부터 특정 테이블의 특정 행과 열까지 단위를 나눠서 보안 처리가 가능

 

암호화 (Encryption)

   평문을 암호문으로 변환하는 것

       암호화 (Encryption) : 평문 → 암호문

       복호화 (Decryption) : 암호문→ 평문

       암호화 기법 : 개인키 암호 방식 (Private Key Encryption), 공개키 암호 방식 (Public Key Encryption)

 

 접근통제

   데이터베이스에 대한 사용자들의 접근을 통제해 데이터를 보호

 

   - 접근통제 기술

임의 접근통제
(DAC, Discretionary
Access Control)
사용자의 신원에 따라 접근 권한을 부여
데이터 소유자가 접근통제 권한을 지정하고 제어
객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 다른 사용자에게 허가할 수도 있음
강제 접근통제
(MAC, Mandatory
Access Control)
등급을 비교하여 접근 권한을 부여
시스템이 접근통제 권한을 지정
데이터베이스 객체별로 보안 등급을 부여
사용자별로 인가 등급을 부여
역할기반 접근통제
(RBAC, Role Based
Access Control)
사용자의 역할에 따라 접근권한을 부여
중앙 관리자가 접근통제 권한을 지정
임의 접근통제와 강제 접근통제의 단점을 보완
다중 프로그래밍 환경에 최적화
  임의 접근통제 (DAC) 강제 접근통제 (MAC) 역할기반 접근통제 (RBAC)
권한 부여 방식 사용자의 신원 주체와 객체의 등급 비교 사용자의 역할
접근통제 권한 지정 데이터 소유자 시스템 중앙관리자

 

   - 접근통제 3요소

       접근통제 정책

신분 기반 정책 주체나 그룹의 신분에 근거하여 객체의 접근을 제한
IBP
(Individual-Base Policy)
단일 주체에게 하나의 객체에 대한 허가를 부여
최소 권한 정책
GBP
(Group-Based Policy)
복수 주체에게 하나의 객체에 대한 허가를 부여
규칙 기반 정책 주체가 갖는 권한에 근거하여 객체의 접근을 제한
MLP
(Multi-Level Policy)
사용자나 객체별로 지정된 기밀 분류에 따른 정책
CBP
(Compartment-Base Policy)
집단별로 지정된 기밀 허가에 따른 정책
역할 기반 정책 주체가 맡은 역할에 근거하여 객체의 접근을 제한
GBP의 변형된 정책

      

      • 접근통제 메커니즘

         접근통제 정책을 구현하는 기술적인 방법

          접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등 

 

       접근통제 보안 모델

기밀성 모델 군사적인 목적으로 개발된 최초의 수학적 모델
기밀성 보장이 최우선
군대 시스템 등 특수 환경에서 주로 사용
무결성 모델 무결성을 기반으로 개발된 모델
기밀성 모델에서 발생하는 불법적인 정보 변경을 방지
접근통제 모델 접근통제 메커니즘을 보안 모델로 발전시킨 것
접근통제 행렬
(Access Control
Matrix)
임의적인 접근통제를 관리하기 위한 보안 모델
행과 열로 주체와 객체의 권한 유형을 나타냄

 

   - 접근통제 조건

      접근통제 매커니즘의 취약점을 보완하기 위한 조건

값 종속 통제
(Value-Dependent Control)
객체에 저장된 값에 따라 다르게 접근통제를 허용해야 하는 경우에 사용
다중 사용자 통제
(Multi-User Control)
지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우에 사용
컨텍스트 기반 통제
(Context-Based Control)
특정 시간, 네트워크 주소, 접근 경로, 인증 수준 등에 근거한 접근 제어
다른 보안 정책과 결합해 보안 시스템의 취약점을 보안

 

 감사 추적

   데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능

      오류가 발생한 데이터베이스 복구 또는 부적절한 데이터 조작 파악시 사용


2-25. 데이터베이스 백업

 데이터베이스 백업

   장애에 대비해 저장된 데이터를 보호하고 복구하기 위한 작업

 

로그 파일

   데이터베이스의 상태 변화를 시간의 흐름에 따라 모두 기록한 파일

       데이터베이스 복구를 위해 필요한 가장 기본적인 자료

       로그 파일을 기반으로 복귀(UNDO)시키거나 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지

       트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등에서 기록

 

데이터베이스 복구 알고리즘

NO-UNDO / REDO 데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘
NO-UNDO 트랜잭션 완료 전에는 변경 내용이 DB에 기록되지 않으므로 취소할 필요가 없음
REDO 트랜잭션 완료 후 DB 버퍼에는 기록되어 있고,
저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 함
UNDO / NO-REDO 데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘
UNDO 트랜잭션 완료 전에 시스템이 파손되었다면 변경된 내용을 취소
NO-REDO 트랜잭션 완료 전에 데이터베이스 버퍼 내용을 이미 저장매체에 기록했으므로
트랜잭션 내용을 다시 실행할 필요가 없음
UNDO / REDO 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘
데이터베이스 기록 전에 트랜잭션이 완료될 수 있으므로
완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 함
NO-UNDO / NO-REDO 데이터베이스 버퍼의 내용을 동기적으로 저장 매체에 기록하지만
데이터베이스와는 다른 영역에 기록한 경우의 복구 알고리즘
NO-UNDO 변경 내용은 데이터베이스와 다른 영역에 기록되어 있으므로 취소할 필요가 없음
NO-REDO 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없음

 

 백업 종류

물리 백업 데이터베이스 파일을 백업하는 방법
장점 백업 속도가 빠르고 작업이 단순
단점 문제 발생 시 원인 파악 및 문제 해결이 어려움
논리 백업 DB 내의 논리적 객체들을 백업하는 방법
장점 복원 시 데이터 손상을 막고, 문제 발생 시 원인 파악 및 해결이 수월
단점 백업/복원 시 시간이 많이 소요