[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.3) 분산 데이터베이스 설계, 데이터베이스 보안 / 암호화
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.3) 분산 데이터베이스 설계, 데이터베이스 보안 / 암호화
「1」 소프트웨어 설계
「2」 소프트웨어 개발
> 「3」 데이터베이스 구축
- 논리 데이터베이스 설계, > 물리 데이터베이스 설계, SQL 응용, SQL 활용, 데이터 전환
「4」 프로그래밍 언어 활용
「5」 정보시스템 구축 관리
1 트랜잭션 분석 / CRUD 분석
2 인덱스 설계
3 뷰(View) 설계
4 파티션 설계
> 5 분산 데이터베이스 설계
> 6 데이터베이스 보안 / 암호화
7 데이터베이스 보안 - 접근통제
8 데이터베이스 백업
9 스토리지
5. 분산 데이터베이스 설계
분산 데이터베이스 정의
논리적으로는 하나의 시스템에 속하지만 물리적으로 여러 개 컴퓨터 사이트에 분산되어 있는 데이터베이스
- 데이터의 처리, 이용이 많은 지역에 데이터베이스를 위치시켜, 데이터 처리가 해당 지역에서 해결되도록 함
분산 데이터베이스의 구성 요소
분산 처리기
: 자체적으로 처리 능력 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템
분산 데이터베이스
: 지리적으로 분산되어 있는 데이터베이스, 해당 지역의 특성에 맞게 데이터베이스 구성
통신 네트워크
: 분산 처리기들을 통신망으로 연결하여 하나의 시스템처럼 작동하도록 하는 통신 네트워크, 데이터 통신에 영향을 끼침
분산 데이터베이스 설계 시 고려 사항
- 작업부하(Work Load)의 노드별 분산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로부터 회복 가능
- 통신 네트워크를 통한 원격 접근 기능
분산 데이터베이스의 목표
위치 투명성(Location Transparency)
: 데이터베이스의 실제 위치를 알 필요 없이 데이터베이스의 논리적 명칭만으로 액세스 가능
중복 투명성(Replication Transparency)
: 여러 곳에 중복되어 있어도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용, 시스템은 자동으로 여러 작업 수행
병행 투명성(Concurrency Transparency)
: 다수의 트랜잭션들이 동시에 실현되더라도 트랜잭션의 결과는 영향받지 않음
장애 투명성(Failure Transparency)
: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 트랜잭션 정확히 처리
분산 데이터베이스의 장 / 단점
장점
- 지역 자치성이 높음
- 자료의 공유성, 시스템 성능 향상
- 분산 제어 가능
- 중앙 컴퓨터 장애가 전체 시스템에 영향을 끼치지 않음
- 효용성, 융통성, 신뢰성, 가용성 높음
- 점진적 시스템 용량 확장 용이
단점
- DBMS가 수행할 기능이 복잡
- 데이터베이스 설계 어려움
- 소프트웨어 개발 비용 증가
- 처리 비용 증가
- 잠재적 오류 증가
분산 데이터베이스 설계
애플리케이션, 사용자가 분산되어 접근하게 하는 것이 목적
- 잘못 설계된 분산 데이터베이스는 복잡성 증가, 응답 속도 저하, 비용 증가 등 문제
- 전역 관계망을 논리적 측면에서 소규모 단위로 분할 후, 분할된 결과를 복수의 노드에 할당하는 과정, 노드에 할당된 소규모 단위를 분할이라 함
- 테이블 위치 분산, 분할, 할당
테이블 위치 분산
데이터베이스의 테이블을 다른 서버에 분산시켜 배치
- 테이블의 구조를 변경하지 않으며, 다른 데이터베이스의 테이블과 중복되지 않게 배치
- 다른 위치에 배치하려면 해당 테이블들이 놓일 서버를 미리 설정해야 함
분할
테이블 데이터를 분할하여 분산
분할 규칙
- 완전성(Completeness) : 전체 데이터를 대상으로 분할
- 재구성(Reconstruction) : 분할된 데이터는 관계 연산을 활용하여 본래 데이터로 재구성할 수 있도록 해야 함
- 상호 중첩 배제(Dis-jointness) : 분할된 데이터는 서로 다른 분할 항목에 속하지 않아야 함
분할 방법
- 수평 분할 : 특정 속성 값을 기준으로 행 단위로 분할
- 수직 분할 : 데이터 칼럼 단위로 분할
할당
동일한 분할을 여러 개의 서버에 생성하여 분산
비중복 할당 방식
: 최적의 노드 선택하여 분산 데이터베이스의 단일 노드에서만 분할이 존재하도록 하는 방식
: 릴레이션을 배타적 분할로 분리하기 힘든 요구가 포함, 분할된 테이블 간 의존성은 무시되고 비용 증가, 성능 저하 야기
중복 할당 방식
: 동일한 테이블을 다른 서버에 복제, 부분복제와 완전 복제 있음
6. 데이터베이스 보안 / 암호화
데이터베이스 보안의 개요
데이터베이스의 일부분 또는 전체에서 권한이 없는 사용자가 접근하는 것을 금지하는 기술
- 보안을 위한 데이터 단위는 테이블 전체부터 데이터 값까지 다양함
- 데이터베이스 사용자들은 일반적으로 서로 다른 객체에 대하여 다른 접근 권한을 가짐
- 사람인 관리자에 의해 정책이 결정됨
무결성 : 권한이 있는 사용자로부터 데이터베이스 보호, 사용자가 정확하게 사용할 수 있도록 보장
보안 : 권한이 없는 사용자로부터 데이터베이스 보호, 사용자가 언제든지 사용할 수 있도록 보장
암호화(Encryption)
지정한 수신자 외 내용을 알 수 없도록 평문을 암호문으로 변환
암호화(Encryption) 과정 : 평문을 암호문으로 바꾸는 과정, 개인키 암호 방식, 공개키 암호 방식 있음
복호화(Decryption) 과정 : 암호문을 평문으로 바꾸는 과정
개인키 암호 방식(Private Key Encryption)
동일한 키로 데이터 암호화, 복호화, == 비밀키 암호 방식, 대칭 암호 방식, 단일키 암호화 기법
- 데이터베이스 사용 권한이 있는 사용자만 나눠 가짐
- 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFFER)
공개키 암호 방식(Public Key Encryption)
서로 다른 키로 암호화, 복호화, == 비대칭 암호 방식
- 암호화 할 때 사용하는 키(공개키)는 데이터베이스 사용자에게 공개, 복호화할 때 사용하는 키(비밀키)는 관리자가 관리
- RSA(Revest Shamir Adleman)
출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)