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 내의 논리적 객체들을 백업하는 방법 | |
| 장점 | 복원 시 데이터 손상을 막고, 문제 발생 시 원인 파악 및 해결이 수월 | |
| 단점 | 백업/복원 시 시간이 많이 소요 | |
'Study > 정보처리기사' 카테고리의 다른 글
| 정보처리기사 실기 2장. 데이터 입출력 구현_9 (0) | 2023.09.22 |
|---|---|
| 정보처리기사 실기 2장. 데이터 입출력 구현_8 (0) | 2023.09.22 |
| 정보처리기사 실기 2장. 데이터 입출력 구현_6 (0) | 2023.09.22 |
| 정보처리기사 실기 2장. 데이터 입출력 구현_5 (0) | 2023.09.21 |
| 정보처리기사 실기 2장. 데이터 입출력 구현_4 (0) | 2023.09.21 |