데이터베이스 용량 설계
데이터베이스 용량 설계
- 데이터가 테이블에 저장될 공간을 정의
- 테이블에 저장할 데이터양, 인덱스, 클러스터 등이 차지하는 공간 등을 예측하여 반영
데이터베이스 용량 설계의 목적
- 디스크의 저장공간을 효과적으로 사용하고 확장성 및 가용성을 높임
- 디스크의 입출력 부하를 분산시키고 채널의 병목현상 최소화
- 디스크에 대한 입출력 경합이 최소화되도록 설계함으로써 데이터 접근성이 향상
- 데이터베이스에 생성되는 오브젝트의 익스텐트 발생을 최소화하여 성능을 향상
- 테이블과 인덱스에 적합한 저장 옵션을 지정
- 데이터 접근성을 향상시키는 설계 방법
-> 테이블의 테이블스페이스와 인덱스의 테이블스페이스를 분리하여 구성
-> 테이블스페이스와 임시 테이블스페이스를 분리하여 구성
-> 테이블을 마스터 테이블과 트랜잭션 테이블로 분류
데이터베이스 용량 분석 절차
- 데이터 예상 건수, 로우 길이, 보존 기간, 증가율 등 기초 자료를 수집하여 용량 분석
- 분석된 자료를 바탕으로 DBMS에 이용될 테이블, 인덱스 등 오브젝트별 용량을 산정
- 테이블과 인덱스의 테이블스페이스 용량을 산정
- 데이터베이스에 저장될 모든 데이터 용량과 데이터베이스 설치 및 관리를 위한 시스템 용량을 합해 디스크 용량 산정
분산 데이터베이스 설계
분산 데이터베이스 정의
- 논리적인 하나의 시스템이지만 물리적으로는 네트워크로 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스
- 데이터베이스를 네트워크를 이용해 나눠놓음
분산 데이터베이스의 구성 요소
- 분산 처리기 : 지리적으로 분산되어 있는 컴퓨터 시스템
- 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스
- 통신 네트워크 : 분산 처리기들을 네트워크로 연결하여 하나의 시스템처럼 동작할 수 있도록 하는 통신 네트워크
분산 데이터베이스 설계 시 고려사항
- 작업 부하의 노드별 분산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로부터의 회복 기능
- 통신 네트워크를 통한 원격 접속 기능
분산 데이터베이스의 목표
- 위치 투명성 : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 논리적인 명칭만으로 접근 가능
- 중복 투명성 : 동일 데이터가 여러 곳에 중복되어 있어도 사용자는 하나의 데이터만 존재하는 것처럼 사용 가능
- 병행 투명성 : 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 장애 투명성 : 트랜잭션, DBMS, 네트워크, 컴퓨터 등 장애에도 트랜잭션을 정확하게 처리
- 투명성 : 사실 존재 여부를 염두에 두지 않아도 되는 성질
분산 데이터베이스의 장점
- 장점
-> 지역 자치성이 높음
-> 자료의 공유성 향상
-> 분산 제어 가능
-> 시스템 성능 향상
-> 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
-> 효용성과 융통성이 높음
-> 신뢰성 및 가용성이 좋음
-> 점진적 시스템 용량 확장 용이
- 단점
-> DBMS가 수행할 기능이 복잡
-> DB 설계가 어려움
-> 소프트웨어 개발 비용 증가
-> 처리 비용 증가
-> 잠재적 오류 증가
분산 데이터베이스 설계
- 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하는 것이 목적
- 전역 관계망을 논리적 측면에서 소규모 단위로 분할, 분할된 결과를 복수의 노드에 할당
- 분산 설계 방법에는 테이블 위치 분산, 분할, 할당이 있음
테이블 위치 분산
- 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치
- 테이블의 구조를 변경시키지 않고 다른 데이터베이스의 테이블과 중복되지 않게 배치
분할
- 테이블의 데이터를 분할하여 분산
- 분할 규칙
-> 완전성 : 전체 데이터를 대상으로 분할해야 함
-> 재구성 : 분할된 데이터는 관계 연산을 활용하여 본래의 데이터로 재구성이 가능해야 함
-> 상호 중첩 배제 : 분할된 데이터는 서로 다른 분할의 항목에 속하지 않아야 함
- 분할 방법
-> 수평 분할 : 행 단위로 분할
-> 수직 분할 : 속성 단위로 분할
할당
- 동일한 분할을 여러 개의 서버에 생성하는 분산 방법
- 비중복 할당 방식
-> 최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재
- 중복 할당 방식
-> 동일한 테이블을 다른 서버에 복제하는 방식
데이터베이스 이중화 / 서버 클러스터링
데이터베이스 이중화
- 시스템 오류로 인한 데이터베이스 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것
- 하나 이상의 데이터베이스가 항상 같은 상태를 유지
- 데이터베이스가 문제가 생기면 즉시 해결 가능
- 사용자가 작업을 수행하면 이중화 시스템에 연결된 다른 데이터베이스도 동일하게 적용
- 애플리케이션을 여러 개의 데이터베이스로 분산시켜 처리해 데이터베이스의 부하를 감소
데이터베이스 이중화의 분류
- 내용 전달 방식에 따른 분류
- Eager 기법 : 트랜잭션 수행 중 데이터 변경 발생 시 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용
- Lazy 기법 : 트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달하여 데이터베이스마다 새로운 트랜잭션이 수행되는 것으로 간주
데이터베이스 이중화 구성 방법
- 활동-대기 방법
-> 한 DB가 서비스 시 다른 DB는 대기
-> 활성 DB에 장애 발생 시 대기 중이었던 DB가 모든 서비스를 대신 수행
-> 구성 방법 및 관리가 쉬워 많은 기업에서 사용
- 활동-활동 방법
-> 두 개의 DB가 서로 다른 서비스를 제공
-> 한쪽 DB에 장애 발생 시 다른 DB가 서비스를 제공
-> 두 DB가 모두 처리를 해 처리율이 높지만 구성 방법 및 설정이 복잡
클러스터링
- 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술
- 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공
-> 고가용성 : 시스템을 오랜 시간 동안 계속해서 정상적으로 운영이 가능한 성질
- 병렬 처리 클러스터링 : 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리
- 고가용성 클러스터링 : 하나의 서버에 장애가 발생 시 다른 서버가 받아서 처리하여 서비스 중단을 방지하는 방식
데이터베이스 보안 / 암호화
데이터베이스 보안의 개요
- 데이터베이스의 일부분 또는 전체에 권한이 없는 사용자가 액세스 하는 것을 금지하기 위해 사용되는 기술
암호화 / 복호화
- 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 외는 그 내용을 알 수 없도록 평문을 암호문으로 변환
- 암호화 과정 : 암호화되지 않은 평문을 정보 보호를 위해 암호문으로 바꿈
- 복호화 과정 : 암호문을 원래의 평문으로 바꿈
개인키 / 공개키 암호 방식
- 암호화 방식의 키와 복호화 방식의 키가 같을 때
-> 개인키 / 비밀키 / 대칭키 암호 방식
-> 종류 : 전위 기법, 대수 기법, 합성 기법(DES)
- 암호화 방식의 키와 복호화 방식의 키가 다를 때
-> 공개키 / 비대칭키
-> RSA 기법
필기 정리
'2020(개정) 이후 정보처리기사 > 3과목 : 데이터베이스 구축' 카테고리의 다른 글
2020 정보처리기사 필기 - 3.3 SQL 응용(1) (2) | 2020.03.02 |
---|---|
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(4) (6) | 2020.03.02 |
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(2) (0) | 2020.02.26 |
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(1) (2) | 2020.02.25 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(4) (0) | 2020.02.18 |