3과목 데이터베이스 구축 물리 데이터베이스 설계 100 ~ 106
100. 데이터베이스 이중화 / 서버 클러스터링
- 데이터베이스 이중화 : 시스템 오류로 인한 서비스 중단이나 물리적 손상 발생 시 이를 복구하기 위해 동일한 데이터베이스를 복제하여 관리하는 것.
- 분류 : Eager 기법 (트랜잭션 수행 중 데이터 변경이 발생하면 이중화된 모든 데이터베이스에 즉시 전달하여 변경 내용이 즉시 적용되도록) / Lazy 기법 (트랜잭션 수행이 종료되면 변경 사실을 새로운 트랜잭션에 작성하여 각 데이터베이스에 전달되는 기법)
- 구성방법 : 활동-대기 방법 (한DB가 활성 상태로 서비스하고 있으면 다른 DB는 대기하고 있다가 활성 DB에 장애가 발생하면 대기 상태에 있던 DB가 자동으로 서비스를 대신 수행) / 활동 - 활동 방법 (두 개의 DB가 서로 다른 서비스를 제공하다가 둘 중 한쪽 DB에 문제가 발생하면 나머지 DB가 서비스를 제공한다.)
- 클러스터링 : 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술. >> 서버 이중화 및 공유 스토리지를 사용하여 서버의 고가용성을 제공.
- 고가용성 클러스터링 : 하나의 서버에 장애가 발생하면 > 다른 노드(서버)가 받아 처리하여 서비스 중단을 방지하는 방식
- 병렬 처리 클러스터링 : 전체 처리율을 높이기 위해 하나의 작업을 여러 개의 서버에서 분산하여 처리하는 방법. (로드밸런서가 분산)
101. 데이터베이스 보안/ 암호화
: 데이터베이스의 일부분 또는 전체에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용.
CF) 무결성 : 권한이 있는 사용자로부터 데이터를 보호하는 것.
보안 : 권한이 없는 사용자로부터 데이터베이스를 보호하는 것.
- 암호화 : 데이터 송신자가 지정한 수신자 이외에는 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
- 개인키(비밀키) 암호 방식 : 동일한 키로 데이터를 암호화/복호화. 비밀키는 제3자에게 노출시키지 않고 데이터베이스 사용 권한이 있는 사용자만 나누어 가짐. (기법 : 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFER)
- 공개키 암호 방식 : 서로 다른 키로 암호화/복호화. 암호화할 때 사용하는 키(공개키)는 데이터베이스 사용자에게 공개하고, 복호화할 때의 키(비밀키)는 관리자가 비밀리에 관리하는 방법. (기법 : RSA)
102. 데이터베이스 보안 - 접근통제
: 데이터가 저장된 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것.
- 비인가된 사용자의 접근 감시, 접근 요구자의 사용자 식별, 접근 요구의 정당성 확인 및 기록, 보안 정책에 근거한 접근의 승인 및 거부 등
1) 임의 접근통제 (DAC) : 데이터에 접근하는 사용자의 신원에 따라 접근권한 부여. (GRANT, REVOKE)
2) 강제 접근통제 (MAC) : 주체와 객체의 등급을 비교하여 접근 권한을 부여.
- 벨 라파듈라 모델 (군대의 보안 레벨처럼 상하관계 구분)
- 비바 무결성 모델 : 무결성을 보장하는 최초의 모델. 비인가자에 의한 데이터 변형 방지
- 클락-윌슨 무결성 모델 : 상업용 모델. 사용자가 직접 객체에 접근 불가.
- 만리장성 모델 : 서로 이해 충돌 관계가 있는 객체 간의 정보 접근을 통제하는 모델.
3) 역할기반 접근통제 (RBAC) : 사용자의 역할에 따라 접근권한 부여.
- 접근통제 정책
1) 신분 기반 : 주체나 그룹의 신분에 근거하여 객체의 접근 제한.
- IBP (individual-based policy) : 단일 주체에 하나의 허가
- GBP (group-based policy) : 복수 주체에 하나의 허가
2) 규칙 기반 : 주체가 갖는 권한에 근거하여 객체접근 제한
- MLP (multi-level policy) : 사용자 및 객체별로 지정된 기밀분류에 따른 정책
- CBP (compartment-based policy) : 집단별로 지정된 기밀 허가에 따른 정책
3) 역할 기반 : 주체의 신분이 아니라 맡은 역할에 근거하여 접근 제한.
- 인사담당자, DBA 등
- 접근통제 매커니즘
1) 접근 통제 목록
2) 능력 리스트
3) 보안 등급
4) 패스워드
5) 암호화
- 접근통제 보안 모델
1) 기밀성 모델 : 군사적 목적. 기밀성 보장이 최우선.
- 단순 보안 규칙 : 주체는 자신보다 높은 등급의 객체 읽을 수 없음
- 스타 보안 규칙 : 자신보다 낮은 등급의 객체에 정보를 쓸 수 없음
- 강한 스타 보안 규칙 : 자신과 등급이 다른 객체를 읽거나 쓸 수 없음.
2) 무결성 모델 : 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델. (데이터의 일관성!!)
- 단순 무결성 규칙 : 자신보다 낮은 등급의 객체를 읽을 수 없음.
- 스타 무결성 규칙 : 자신보다 높은 등급의 객체에 정보 쓸수 없음.
3) 접근통제 모델 : 접근통제 매커니즘을 보안 모델로 발전.
- 접근통제 행렬 : 행은 주체, 열은 객체, 행과열로 주체와 객체의 권한 유형을 나타냄.
- 접근통제 조건
1) 값 종속 통제
2) 다중 사용자 통제
3) 컨텍스트 기반 통제
- 감사 추적 : 사용자, 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능.
103. 데이터베이스 백업
: 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업.
1) 장애 유형 : 사용자 실수, 미디어 장애, 구문 장애, 사용자 프로세스 장애, 인스턴스 장애
2) 로그파일 : 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일.
- 로그 파일을 기반으로 과거 상태로 복귀시키거나 현재 상태로 재생시켜 일관성 있게 유지.
- 내용 : 트랜잭션이 작업한 모든 내용, 트랜잭션 식별, 트랜잭션 레코드, 데이터 식별자, 갱신 이전 값, 갱신 이후 값
3) 데이터베이스 복구 알고리즘
: 동기적/비동기적 갱신에 따라 나뉜다.
- NO-UNDO/REDO : 데이터베이스 버퍼의 내용을 비동기적으로 갱신한 경우의 복구 알고리즘.
- 트랜잭션 완료 전 : 변경내용이 데이터베이스에 기록되지 않으므로 취소할 필요 없음
- 트랜잭션 완료 후 : 데이터베이스 버퍼에는 기록되어 있고, 저장매체에는 기록되지 않았으므로 트랜잭션 내용을 다시 실행해야 함
- UNDO/NO-REDO : 데이터베이스 버퍼의 내용을 동기적으로 갱신한 경우의 복구 알고리즘.
- 트랜잭션 완료 전 : 시스템 파손시 변경된 내용을 취소.
- 트랜잭션 완료 후 : 완료 전에 이미 버퍼 내용을 저장 매체에 기록했으므로 다시 트랜잭션 내용을 다시 실행할 필요가 없음.
- UNDO/REDO : 데이터베이스 버퍼의 내용을 동기/비동기적으로 갱신한 경우의 복구 알고리즘.
- 데이터베이스 기록 전에 트랜잭션이 완료될 수 있으므로 완료된 트랜잭션이 데이터베이스에 기록되지 못했다면 다시 실행해야 한다.
- NO-UNDO/NO-REDO : 데이터베이스 버퍼의 내용을 동기적으로 저장 매체에 기록하지만 데이터베이스와는 다른 영역에 기록한 경우의 복구 알고리즘. (취소할 필요도, 다시 실행할 필요도 없다)
4) 백업 종류 : 물리 백업 / 논리 백업
104. 스토리지
: 단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술.
1) DAS (Direct Attached Storage) : 서버와 저장장치를 전용 케이블로 직접 연결. (외장하드 연결) - 속도는 빠르나 다른 서버에서 스토리지에 접근하여 사용할 수 없다.
2) NAS (Network Attached Storage) : 서버와 저장장치를 네트워크를 통해 연결. - 파일 관리 기능이 있는 NAS storage가 네트워크 상에 독립적으로 연결되어 있어 서버들이 자유롭게 스토리지에 접근 가능.
3) SAN (Stoarage Area Network) : 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성. - 광 채널 스위치(FCS)로 연결된 별도의 전용 스토리지 네트워크를 구성. 서버들이 저장장치 및 파일을 자유롭게 공유 가능.
105. 논리 데이터 모델의 물리 데이터 모델 변환
1) 엔티티를 테이블로 변환 : 엔티티를 물리 데이터 모델의 테이블로 변환 > 테이블 목록 정의서 작성.
엔티티 | 테이블 |
속성 | 컬럼 |
주식별자 | 기본키 |
외부 식별자 | 외래키 |
관계 | 관계 |
- 고려사항 : 명칭은 동일하게. 메타 데이터 관리 시스템에 표준화된 용어가 있을시 메타에 등록된 단어 사용.
2) 슈퍼타입/서브타입을 테이블로 변환.
- 슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼타입에 통합하여 하나의 테이블로 만듦.
- 서브타입 기준 테이블 변환 : 슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만듦.
- 개별타입 기준 테이블 변환 : 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환하는 것.
3) 속성을 컬럼으로 변환
- 일반 속성 변환
- Primary UID를 기본키를 변환
- Primary UID(관계의 UID Bar)를 기본키로 변환
- Secondary(Alternate) UID를 유니크키로 변환
4) 관계를 외래키로 변환 : 기본키와 이를 참조하는 외래키로 변환.
5) 관리 목적의 테이블/컬럼 추가 : 논리 데이터 모델에는 존재하지 않는 테이블이나 컬럼을 데이터베이스의 관리 혹은 데이터베이스 이용 수행 속도를 향상시키기 위해 물리 데이터 모델에 추가 가능.
6) 데이터 타입 선택 : 물리적인 DBMS의 물리적 특성과 성능을 고려하여 최적의 데이터 타입과 데이터의 최대 길이를 선택.
106. 물리 데이터 모델 품질 검토
: 물리 데이터 모델을 설계하고 데이터베이스 객체를 생성한 후 개발 단계로 넘어가기 전에 모델러와 이해관계자들이 모여 수행한다.
1) 품질 기준
- 정확성 : 데이터 모델이 요구사항이나 업무 규칙, 표기법에 따라 정확하게 표현
- 완전성 : 데이터 모델의 구성 요소를 누락 없이 정의하고, 반영하였음
- 준거성 : 데이터 표준, 표준화 규칙, 법적 요건 등 정확하게 준수
- 최신성 : 최근 이슈나 현행 시스템 반영
- 일관성 : 표현상의 일관성
- 활용성 : 설명을 사용자가 충분히 이해, 데이터 구조의 변경이 최소화 되도록 설계
2) 품질 검토 순서
- 데이터 품질 정책 및 기준 확인
- 물리 데이터 품질의 특성에 따라 품질 기준 작성
- 데이터 품질 기준에 따라 체크리스트 작성
- 논리 데이터 모델과 물리 데이터 모델을 비교
- 각 모델링 단계의 모델러와 이해관계자가 품질 검토를 수행
- 체크리스트 내용을 종합하여 물리 데이터베이스 모델의 품질 검토 보고서를 작성.