본문 바로가기

IT/정보처리기사

[시나공 토막강의] 53-56강 정리

53강. 분산 데이터베이스 설계

 

1. 데이터베이스 용량 설계

- 데이터베이스 용량 설계는 데이터가 저장될 공간을 정의하는 것

- 데이터베이스 용량을 설계할 때는 테이블에 저장될 데이터양과 인덱스, 클러스터 등이 차지하는 공간 등을 예측하여 반영해야함

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

  -- 데이터베이스의 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용하고 확장성 및 가용성을 높임

  -- 디스크의 특성을 고려하여 설계함으로써 디스크의 입.출력 부하를 분산시키고 채널의 병목 현상을 최소화함

 

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

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

- 분산 데이터베이스는 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 함

- 분산 데이터베이스 설계는 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 함

 

3. 분산 데이터베이스의 목표

 1) 위치 투명성(Location Transparency) : 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스할 수 있음

 2) 중복 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행

 3) 병행 투명성(Concurrency Transparency) : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음

 4) 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

 

4. 분산 설계 방법

 1) 테이블 위치 분산 : 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법

 2) 분할(Fragmentation)

  - 테이블의 데이터를 분할하여 분산시키는 것

  - 분할 규칙 : 완전성(Completeness), 재구성(Reconstruction), 상호 중첩 배제(Disjointness)

  - 주요 분할 방법 : 수평 분할(특정 속성의 값을 기준으로 행 단위로 분할), 수직 분할(데이터 컬럼:속성 단위로 분할)

 3) 할당(Allocation)

  - 동일한 분할을 여러 개의 서버에 생성하는 분산 방법

  - 중복이 없는 할당과 중복이 있는 할당으로 나뉨

 

 

54강. 데이터베이스 이중화 / 서버 클러스터링

 

1. 데이터베이스 이중화(Database Replicaion)

- 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것

- 데이터베이스 이중화를 수행하면 하나 이상의 데이터베이스가 항상 같은 상태를 유지하므로 데이터베이스에 문제가 발생하면 복제된 데이터베이스를 이용하여 즉시 문제를 해결할 수 있음

- 여러 개의 데이터베이스를 동시에 관리하므로 사용자가 수행하는 작업은 데이터베이스 이중화 시스템에 연결된 다른 데이터베이스에도 동일하게 적용됨

- 애플리케이션을 여러 개의 데이터베이스에서 분산 처리하므로 데이터베이스의 부하를 줄일 수 있음

- 데이터베이스 이중화를 이용하면 손쉽게 백업 서버를 운영할 수 있음

 

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

 1) Eager 기법

  - 트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록 하는 기법

 

 2) Lazy 기법

  - 트랜잭션의 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법

  - 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주됨

 

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

 1) 활동-대기(Active-Standby) 방법

  - 한 DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 모든 서비스를 대신 수행함

  - 구성 방법과 관리가 쉬워 많은 기업에서 이용됨

 2) 활동-활동(Active-Active) 방법

  - 두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 다른 DB가 서비스를 제공함

  - 두 DB가 모두 처리를 하기 때문에 처리율이 높지만 구성 방법 및 설정이 복잡함

 

4. 클러스터링(Clustering)

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

- 클러스터링은 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공함

- 클러스터링 종류

 1) 고가용성 클러스터링

  - 하나의 서버에 장애가 발생하면 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식

  - 일반적으로 언급되는 클러스터링이 고가용성 클러스터링임

 2) 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방식

 

5. RTO / RPO

 1) RTO(Recovery Time Objective, 목표 복구 시간) : 비상사태 또는 업무 중단 시점으로부터 복구되어 가동될 때까지의 소요 시간

  ex. 장애 발생 후 6시간 내 복구 가능

 2) RPO(Recovery Point Objective, 목표 복구 시점) : 비상사태 또는 업무 중단 시점으로부터 데이터를 복구할 수 있는 기분점

  ex. 장애 발생 전인 지난 주 금요일에 백업시켜 둔 복원 시점으로 복구 가능

 

 

55강. 데이터베이스 보안

 

1. 데이터베이스 보안

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

- 보안을 위한 데이터 단위는 테이블 전체로부터 특정 테이블의 특정 행과 열에 있는 데이터 값에 이르기까지 다양함

 

2. 암호화(Encryption)

- 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것

- 암호화(Encryption) 과정 : 암호화되지 않은 평문을 암호문으로 바꾸는 과정

- 복호화(Decryption) 과정 : 암호문을 원래의 평문으로 바꾸는 과정

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

 

3. 접근통제

- 접근통제는 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것

- 접근통제 3요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델

 

접근통제 기술

1) 임의 접근통제(DAC, Discretionary Access Control)

- 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여하는 방식

- 데이터 소유자가 접근통제 권한을 지정하고 제어함

- 객체를 생성한 사용자가 생성된 객체에 대한 모든 권한을 부여받고, 부여된 권한을 다른 사용자에게 허가할 수도 있음

 

2) 강제 접근통제(MAC, Mandatory Access Control)

- 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식

- 시스템이 접근통제 권한을 지정함

- 데이터베이스 객체별로 보안 등급을 부여할 수 있음

- 사용자별로 인가 등급을 부여할 수 있음

 

3) 역할기반 접근통제(RBAC, Role Based Access Control)

- 사용자의 역할에 따라 접근 권한을 부여하는 방식

- 중앙관리자가 접근통제 권한을 지정함

- 임의 접근통제와 강제 접근통제의 단점을 보완하였음

- 다중 프로그래밍 환경에 최적화된 방식

 

접근통제 정책

: 어떤 주체(Who)가 언제(When), 어디서(Where), 어떤 객체(What)에게 어떤 행위(How)에 대한 허용 여부를 정의하는 것

 

접근통제 정책의 종류

1) 신분 기반 정책

- 주체나 그룹의 신분에 근거하여 객체의 접근을 제한하는 방법, IBP와 GBP가 있음

- IBP(Individual-Based Policy) : 최소 권한 정책으로, 단일 주체에게 하나의 객체에 대한 허가를 부여함

- GBP(Group-Based Policy) : 복수 주체에 하나의 객체에 대한 허가를 부여함

 

2) 규칙 기반 정책

- 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법, MLP와 CBP가 있음

- MLP(Multi-Level Policy) : 사용자나 객체별로 지정된 기밀 분류에 따른 정책

- CBP(Compartment-Based Policy) : 집단별로 지정된 기밀 허가에 따른 정책

 

3) 역할 기반 정책

- GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법

 

접근통제 매커니즘

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

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

 

접근통제 보안 모델

- 보안 정책을 구현하기 위한 정형화된 모델

 

접근통제 보안 모델의 종류

1) 기밀성 모델

- 군사적인 목적으로 개발된 최초의 수학적 모델

- 기밀성 보장이 최우선임

- 군대 시스템 등 특수 환경에서 주로 사용됨

 

2) 무결성 모델

- 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델

 

3) 접근통제 모델

- 접근통제 매커니즘을 보안 모델로 발전시킨 것

- 대표적으로 접근통제 행렬(Access Control Matrix)이 있음

- 접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델로, 행은 주체, 열은 객체 즉, 행과 열로 주체와 객체의 권한 유형을 나타냄

 

접근통제 조건

- 접근통제 매커니즘의 취약점을 보완하기 위해 접근통제 정책에 부가하여 적용할 수 있는 조건

- 값 종속 통제(Value-Dependent Control) : 일반적으로는 객체에 저장된 값에 상관없이 접근통제를 동일하게 허용하지만, 값 종속 통제는 객체에 저장된 값에 따라 다르게 접근통제를 허용해야 하는 경우에 사용함

- 다중 사용자 통제(Multr-User Control) : 지정된 객체에 다수의 사용자가 동시에 접근을 요구하는 경우에 사용됨

- 컨텍스트 기반 통제(Context-Based Control) : 특정 시간, 네트워크 주소, 접근 경로, 인증 수준 등에 근거하여 접근을 제어하는 방법, 다른 보안 정책과 결합하여 보안 시스템의 취약점을 보완할 때 사용함

 

감사 추적

- 사용자나 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능

- 오류가 발생한 데이터베이스를 복구하거나 부적절한 데이터 조작을 파악하기 위해 사용됨

 

 

56강. 데이터베이스 백업

- 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업

- 치명적인 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 함

 

1. 로그 파일

- 데이터베이스 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일

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

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

- 로그 파일은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점 등에서 기록됨

 

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

 1) NO-UNDO / REDO

  - 데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘

  - NO-UNDO : 트랜잭션 완료 전에는 변경 내용이 데이터베이스에 기록되지 않으므로 취소할 필요가 없음

  - REDO : 트랜잭션 완료 후 데이터베이스 버퍼에는 기록되어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 함

 

 2) UNDO / NO-REDO

  - 데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘

  - UNDO : 트랜잭션 완료 전에 시스템이 파손되었다면 변경된 내용을 취소함

  - NO-REO : 트랜잭션 완료 전에 데이터베이스 버퍼 내용을 이미 저장 매체에 기록했으므로 트랜잭션 내용을 다시 실행할 필요가 없음

 

 3) UNDO / REDO

  - 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘

  - 데이터베이스 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 함

 

 4) NO-UNDO / NO-REDO

  - 데이터베이스 버퍼의 내용을 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우의 복구 알고리즘

  - NO-UNDO : 변경 내용은 데이터베이스와 다른 영역에 기록되어 있으므로 취소할 필요가 없음

  - NO-REDO : 다른 영역에 이미 기록되어 있으므로 트랜잭션을 다시 실행할 필요가 없음

 

3. 백업 종류

- 복구 수준에 따라서 운영체제를 이용하는 물리 백업과 DBMS 유틸리티를 이용하는 논리 백업으로 나뉨

- 물리 백업 : 데이터베이스 파일을 백업하는 방법, 백업 속도가 빠르고 작업이 단순하지만 문제 발생 시 원인 파악 및 문제 해결이 어려움

- 논리 백업 : DB 내의 논리적 객체들을 백업하는 방법, 복원 시 데이터 손상을 막고 문제 발생 시 원인 파악 및 해결이 수월하지만 백업/복원 시 시간이 많이 소요됨