[정보처리기사][데이터 입출력 구현] 데이터베이스 시스템의 설계

컴퓨터/정보처리기사

728x90
반응형

데이터 베이스 시스템의 설계

실제로 대용량의 데이터 베이스를 시스템을 구축하기 위해서는 통신방법, 물리적 위치, 보안, 이상작동 시 해결방법 등 다양한 요소들을 고려해야 됩니다.

 

스토리지 - Storage

대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

 

  • 종류
    • DAS
    • NAS
    • SAN

1.DAS - Direct Attached Storage

  • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
  • 직접 연결하므로 속도가 빠르고 설치 및 운영이 쉽다.
  • 초기 구축 비용 및 유지보수 비용이 저렴하다.
  • 다른 서버에서 접근하거나 공유할 수 없다.
  • 확장성 및 유연성이 떨어진다.

2.NAS - Neatwork Attached Storage

  • 서버와 저장장치를 네트워크를 통해 연결하는 방식
  • NAS 스토리지가 내장된 저장장치를 이용한다.
  • 다른 서버에서도 스토리지에 접근 및 공유를 할 수 있다.
  • 장소에 구애받지 않고 쉽게 저장장치에 접근할 수 있다.
  • DAS에 비해 확장성 및 유연성이 우수하다.

3. SAN - Storage Area Network

  • DAS와 NAS 장점을 혼합한 방식
  • 서버와 저장장치를 연결하나 별도의 전용 네트워크를 통해 구성하는 방식
  • 광케이블로 서버와 저장장치를 연결하여 속도가 빠르다.
  • 저장장치를 공유함으로 여러 개의 저장장치나 백업 장비를 단일화시킬 수 있다.
  • 확장성, 유연성, 가용성이 뛰어나다.

데이터베이스 백업

데이터베이스에 저장된 데이터를 보호하고, 복구하기 위한 일련의 행위

 

1. 로그파일

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

  • 데이터베이스 복구를 위한 가장 기본적인 자료
  • 로그 파일을 기반으로 UNDO/REDO 시켜 데이터베이스 상태를 일관성 있게 유지할 수 있다.
  • 트랜잭션 시작 시럼, 롤백시점, 데이터 입력, 수정, 삭제 시점등에서 기록된다.

2. 백업의 종류

복구 수준에 따라 운영체제를 이용하는 물리적 백업과 DBMS 유틸리티를 사용하는 논리적 백업이 존재

  • 물리적 백업
    • 데이터베이스 파일을 백업하는 방법
    • 속도가 빠르고 작업이 쉽다.
    • 문제 발생 시 원인 파악 및 문제 해결이 어렵다.
  • 논리적 백업
    • DB내의 논리적 객체들을 백업하는 방법
    • 문제발생 시 원인 파악 및 해결이 수월하며, 데이터 손상을 막을 수 있다.
    • 백업/복원 시간이 많이 소요된다.

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

데이터베이스에 장애가 발생 시 복구하는 알고리즘

 

  • 용어 설명
    • Undo(복귀) - 작업을 취소하여 데이터베이스를 복구하는 작업
    • Redo(재생) - 작업에 문제가 생기면 재실행하여 데이터베이스를 복구하는 작업
    • 비동기적 갱신 - 버퍼(임시저장소)에서 실행한 내용을 일정 주기를 두고 저장매체에 기록
    • 동기적 갱신 - 버퍼(임시저장소)와 저장매체에 내용을 동시에 기록
  • 종류
NO-UNDO / REDO 버퍼의 내용을 비동기적으로 갱신한 경우
트랜잭션 완료 전에는 버퍼의 내용이 저장매체에 기록되지 않음으로 작업취소 를 할 필요 없다. (NO-UNDO)
트랜잭션 완료 후에도 버퍼의 내용이 저장매체에 기록되지 않았기 때문에 재실행해야 된다 (REDO)
UNDO / NO-REDO 버퍼의 내용을 동기적으로 갱신한 경우
트랜잭션 완료 전에 시스템이 파손되었다도 버퍼의 내용이 저장매체에 기록되므로 작업취소를 해야된다 (UNDO)
트랙잭션 완료 전에 이미 저장매체에서 취소가 이루어 졌으므로 트랜잭션의 재 실행이 필요하지 않다. (NO-REDO)
UNDO / REDO 두 경우가 동시에 발생된 경우 REDO 및 UNDO가 필요하다.
NO-UNDO / NO-REDO 버퍼의 내용을 동기적으로 저장하지만 데이터베이스와는 다른 영역에 기록한 경우
다른영역에 기록되어 있기 때문에 REDO 및 UNDO를 할 필요가 없다.

 

 

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

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

서버 클러스터링 - 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술

 

1. 데이터베이스 이중화

  • 분류
    • Eager기법 - 트랜잭션이 수행하면 이중화된 모든 데이터베이스에 즉시 적용하는 기법
    • Lazy기법 - 트랜잭션 수행이 완료되면 다시 새로운 트랜잭션을 실행하여 각 데이터베이스에 적용하는 기법
  • 구성방법
    • 활동 - 대기 (Active-Standby)
      • 하나의 데이터베이스가 실행되고 다른 데이터베이스는 대기하고 있는 방법
      • 운영 중인 데이터베이스가 장애발생 시 대기하고 있던 데이터베이스가 활동하는 방법
      • 구성 및 관리가 쉬움
    • 활동 - 활동 (Active - Active )
      • 데이터베이스의 서비스를 구성하고 있는 이중화 데이터베이스들이 분산하여 서비스를 제공하는 기법
      • 장애 발생 시 문제가 있는 데이터베이스가 하고 있던 서비스를 분배받아 서비스를 제공함
      • 처리율은 높으나 구성 및 관리가 어려움

2. 서버 클러스터링

  • 종류
    • 고가용성 클러스터링
      • 일반적으로 언급되는 클러스터링방식
      • 하나의 서버에 장애가 발생하면 다른 서버가 받아 처리하여 서비스 중단을 방지하는 방식
    • 병렬처리 클러스터링
      • 여러 개의 서버에서 분산 처리하는 방식

3. RTO / RPO

장애 발생을 회복하고 복구하는 것을 알 수 있기 위한 기술적 설명의 약어

  • RTO - Recovery Time Objective (목표 복구 시간)
    • 중단 시점으로부터 다시 복구되어 가동될 때까지의 시간
  • RPO - Recovery Point Objective (목표 복구 시점)
    • 중단 시점으로부터 데이터를 복구할 수 있는 지점

분산 데이터베이스

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

  • 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로 데이터의 처리가 해당 지역에서 해결될 수 있도록 한다.
  • 사용자나 애플리케이션이 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 한다.

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

  • 위치 투명성 - Location Transparency
    • 데이터베이스의 논리적인 명칭으로만 접근이 가능하다.
    • 물리적 위치를 알 필요가 없다.
  • 중복 투명성 - Replication Transparency
    • 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있다.
  • 병행 투명성 - Concurrency Transparency
    • 다수의 트랜잭션들이 동시에 실행돼도 결과는 영향을 받지 않아야 한다.
  • 장애 투명성 - Failure Transparency
    • 정확하게 트랜잭션을 처리해야 된다.

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

  • 테이블 위치 분산
    • 테이블을 각기 다른 서버에 분산시켜 배치하는 방법
  • 분할
    • 테이블의 데이터를 분할하여 분산시키는 방법
    • 완전성, 재구성, 상호 중첩 배제의 규칙을 준수해야 된다.
    • 수평 분할(값기준) 방법과 수직 분할(속성기준) 방법이 있다.
  • 할당
    • 분할방법의 결과를 여러 개의 서버에 생성하여 분산시키는 방법
    • 중복할당과 / 무중복 할당으로 구분한다.

데이터베이스 보안

데이터베이스 일부 또는 전체에 대해서 권한이 없는 사용자가 접근하는 것을 금지하기 위해 사용되는 기술

 

1. 암호화 - Encryption

지정한 수신자 외에는 그 내용을 알 수 없도록 평문을 암호로 변환하는 것

  • 암호화 - Encryption
    • 평문을 암호문으로 바꾸는 과정
  • 복호화 - Decryption
    • 함호문을 평문으로 바꾸는 과정
  • 암호화 - 복호화 기법
    • 개인키 암호 방식 - Private key Encryption
    • 공개키 암호 방식 - Public key Encryption

2. 접근 통제

데이터가 저장된 객체와 이를 사용하는 주체 사이의 정보 흐름을 제한하는 것이다.

  • 접근통제 기술
    • 임의 접근 통제 - DAC
    • 강제 접근 통제 - MAC
    • 역할기반 접근 통제 - RBAC
  • 접근통제의 3요소
    • 접근 통제 정책
    • 접근 통제 메커니즘
    • 접근 통제 보안모델

2.1 접근통제 기술

정책 특징
임의 접근통제 - DAC
Discretionary Access Control
접근하는 사용자의 신원에 따라 접근 권한을 부여
소유자가 접근통제 권한을 지정 및 제어
강제 접근통제 - MAC
Mandatory Access Control
주체와 객체의 등급을 비교하여 접근 권한을 부여
시스템이 권한을 지정
데이터베이스 객체별로 보안 등급 지정
사용자별로 인가 등급을 부여
역할기반 접근통제 - RBAC
Role Based Access Contorl
사용자의 역할에 따라 접근 권한을 부여
중앙관리자가 접근통제 권한을 지정
DAC와 MAC의 단점을 보완
다중 프로그래밍 환경에서 최적화 됨

 

2.2 접근통제의 3요소

2.2.1 접근통제 정책

어떤 주체가 언제, 어디서, 무엇을, 어떻게에 대한 내용을 정의하는 것이다.

종류 특징
신분 기반 정책 주체나 그룹의 신분에 근거하여 객체의 접근을 제한하는 방법

 IBP - Individual-Based Policy : 단일 주체에 하나의 객체에 대한 허가
GBP - Group-Based Policy : 복수 주체에 하나의 객체에 대한 허가
규칙 기반 정책 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법

MLP - Multi-Level Policy : 사용자나 객체별로 지정된 기밀 분류에 따른 정책
CBP - Compartment-Based Plicy : 집단별로 지정된 기밀 허가에 따른 정책
역할 기반 정책 GBP의 변형된 정책으로 주체의 신분이 아닌 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법

2.2.2 접근통제 메커니즘

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

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

2.2.3 접근통제 보안모델

접근통제 정책을 구현하기 위한 정형화된 모델

종류 특징
기밀성 모델 군사적 목적으로 개발된 최초의 수학적 모델
기밀성 보장이 최우선
군대 시스템 등 특수 환경에서 주로 사용
무결성 모델 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델
접근 통제 모델 대표적으로 접근통제 행렬이 있다.
접근통제 행렬 : 임의적인 접근통제를 관리하기 위한 보안 모델
행은 주체, 열은 객체로 구성
즉, 행과 열로 주체와 객체의 권한 유형을 나타낸다.

접근통제 조건

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

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

Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :