정보처리기사/[inflearn] 필기 (완)

정보처리기사 - 제3과목 데이터베이스 구축 / 물리 데이터베이스 설계(2)

web_seul 2022. 4. 3. 21:58

 제3과목 데이터베이스 구축 

▷ 물리 데이터베이스 설계 C

> 파티션 설계

- 파티션(Patitaion)의 개요

  대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것, 분산 저장, 성능저하방지, 데이터관리 용이, 데이터처리(테이블 단위), 데이터저장(파티션 단위)

- 파티션의 장점

  파티션별로 데이터가 분산되어 저장되므로 디스크 성능 향상

  파티션별로 백업 및 복구를 수행하므로 속도가 빠름, 데이터 가용성향상

  시스템 장애시 데이터 손상정도 최소화

- 파티션의 단점

  세심한 관리 요구, 테이블간 조인에 대한 비용 증가

- 파티션의 종류

  범위분할(Range Partitioning, 열의 값), 해시분할(Hash Partitioning, 해시함수, 일정한 데이터값), 조합분할(Composite Partitioning, 범위분할->해시함수)

- 인덱스 파티션

  파티션된 테이블의 종속 여부에 따라

  Local Partitiaoned Index(테이블파티션 1 : 인덱스파티션 1), Global Partitioned Index(파티션의 독립적 구성)

  Local Partitioned Index가 Global Partitioned Index에 비해 데이터 관리 용이

  인덱스 파티션키 컬럼의 위치에 따라

  Prefixed Partitioned Index, Non-Prefixed Partitioned Index

 

> 데이터베이스 용량 설계

- 데이터베이스 용량 설계

  데이터가 저장될 공간을 정의하는 것, 예측하여 반영

- 데이터베이스 용량 설계의 목적

  용량을 정확히 산정하여 디스크의 저장공간을 효과적으로 사용하고 확장성 및 가용성을 높임, 데이터병목현상 저하, 데이터 입출력을 최소화하여 접근성 향상, DB에 생성되는 익스턴스를 최소화하여 성능향상

- 데이터베이스 용량 분석 절차

  기초자료를 수집하여 용량 분석(예상건수, Row길이, 보존기간, 증가율 등) -> 오브젝트별 용량 산정(테이블크기, 인덱스 크기) -> 테이블, 인덱스의 테이블 스페이스 용량 산정(테이블 용량 더하기 + 40% 추가) ->DB 모든 데이터 용량, 시스템 용량

 

> 분산 데이터베이스 설계

- 분산 데이터베이스 정의

  논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러개의 컴퓨터 사이트에 분산되어 있는 데이터베이스

- 분산 데이터베이스의 구성요소

  분산처리기(시스템, 처리능력), 분산 데이터베이스, 통신 네트워크(통신망으로 연결)

- 분산 데이터베이스 설계시 고려사항

  작업부하의 노드별 분산정책, 지역의 자치성 보장정책, 데이터의 일관성 정책, 회복기능, 통신

- 분산 데이터베이스의 목표

  데이터 투명성 : 확인하거나 알 필요없이 알아서 처리해줌 (분산 DBMS)

  분할 투명성 : 분할의 상태를 인지할 필요없음

  위치 투명성(사용자가 위치를 알필요없음, Location Transparency)

  중복 투명성(복제투명성, 사용자는 하나의 데이터만 있는것처럼 사용, Replication  Transparency)

  병행투명성(여러사용자에게 사용되어도 문제없이, Concurrency  Transparency)

  장애투명성(장애가 생겨도 트랜잭션은 정확히 처리되어야함, Failure Transparency)

- 분산 데이터베이스의 장단점

  장점 : 지역 자치성이 높다(공유성이 높음, 분산제어, 장애 영향x), 시스템성능향상, 효율성과 융통성이 높음, 점진적 확장 용이, 원격 데이터 의존성↓, 대용량 처리, 신뢰도 가용성 향상

  단점 : 소프트웨어 개발비용증가, 설계난이도↑, 잠재적오류 증가, 통제 오류 취약, 응답속도 불규칙, 무결성 보장 어려움

- 분산 데이터베이스 설계

  애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는것이 목적, 잘못설계된 경우(복잡성, 비용증가, 응답속도 저하)

  중앙집중 : 중앙 컴퓨터가 모든 트랜잭션 처리, 나머지는 입출력만

  복제 : 복제된 객체를 주기적(또는 실시간)으로 갱신

  유지 : 하나의 논리적/ 각각의 독립적 DB로 유지

- 테이블 위치 분산

  데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법

- 분할(Fragment)

  테이블의 데이터를 분할시켜 분산시키는 것

  분할 규칙 : 완전성(Completeness, 전체 데이터 대상, 전체 데이터를 손실없이 분할), 재구성(Reconstruction, 관계연산활용, 본래의 데이터 재구성 가능), 상호중첩 배체(Dis-jointness, 분할된 데이터가 서로 다른 분할항목에 속하지않음(수평분할, 수직분할))

- 할당(Alloction)

  동일한 분할을 여러개의 서버에 생성하는 분산 방법, 중복할당/중복x할당

 

▷ 물리 데이터베이스 설계 D

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

- 데이터베이스 이중화(Database Replication)

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

- 데이터베이스 이중화의 분류(변경 내용의 전달방식에 따라)

  Eager 기법(변경시마다 즉시변경), Lazy 기법(트랜직션 종류후 변경)

- 데이터베이스 이중화 구성방법

  활동-대기(Active-Standby) 방법(A활동, B대기, 구성방법 및 관리 용이), 활동-활동(Active-Active) 방법(A, B동시 활동, 처리율 ↑, 구성복잡)

- 클러스트링(Clustering)

   두 대 이상의 서버를 하나의 서버처럼 운영하는 기술(고가용성: 하나의 서버에 오류발생시 다른 서버에서 처리, 병렬처리: 하나의 작업을 여러개의 서버가 분산해서 처리하는 방식)

 

> 데이터베이스 보안/암호화

- 데이터베이스 보안의 개요

  데이터베이스의 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술, 다양한 데이터단위

- 암호화(Encryption) <-> 복호화(받은 데이터에 대한 암호해제)

  개인키 암호방식(Private Key Encryption) = 비밀키 암호방식 : 동일한 키로 데이터를 암호화하고 복호화한다

  공개키 암호방식(Pubic Key Encryption) : 서로 다른키로 데이터를 암호화하고 복호화한다, 비대칭키

 

> 데이터베이스 보안-접근통제

- 접근통제

  객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것, 불법접근 예방, 비인가된 사용자, 접근요구자 식별, 접근요구 정당성확인, 보안정책 승인여부, 사용자 인증, 규칙에 대한 저으이, 규칙 검사 시스템 구현

  임의 접근통제 (DAC, Discretionary Access Control) : 사용자의 신원에 따라 접근권한 부여 -> 주체가 권한 지정, 특정객체에 대한 사용자의 행위를 허용 및 불허(GRANT(권한부여), REVOKE(회수), 위험요소: 신분도용의 경우 결함 발생)

  강제 접근통제(MAC, Mandatory Access Control) : 객체의 등급, 주체의 등급에 따라 접근권한 부여 -> 제3자가 권한 지정

  접근통제의 3요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델

- 접근통제 정책

  어떤 주체가 언제, 어디서, 어떤 객체에게 어떤 행위에 대한 허용 여부를 정의하는 것

  신분기반 정책(주체의 신분에 따라) : IBP(최소 권한 정책, 단일주체에게 하나의 객체에 대해 허가) / GBP(복수 권한 정책, 복수주체에게 하나의 객체에 대해 허가)

  규칙기반 정책(주체가 갖는 권한에 근거해 객체 접근 권한 부여) : MLP(사용자, 객체별 권한 부여) / CBP(집단별 권한 부여)

  역할기반 정책(GBP변형, 주체의 신분이 아닌 역할(ex.인사담당)에 따라)

- 접근통제 매커니즘

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

  접근통제 목록(주체의 행위에 대해), 능력리스트(허가된 권한), 보안등급, 패스워드(주체 증명), 암호화

- 접근통제 보안 모델

  보안 정책을 구현하기 위한 정형화된 모델, 기밀성모델, 무결성모델(불법적 정보변경, 일관성 유지), 접근통제 모델(접근통제 행렬)

- 접근통제 조건

  값 종속 통제(저장된 값을 근거로 접근 통제), 다중 사용자 통제, 컨텍스트 기반 통제(다른보안정책과 결합, 특정국가, 시간대, IP주소 등)

- 감사추적

  사용자나 애플리케이션이 데이터베이스에 접근하여 수행한 모든 활동(로그)을 기록하는 기능

 

▷ 물리 데이터베이스 설계 E

> 데이터베이스 백업

  로그파일 : 시간흐름에 따라 모든 정보 기록

- 데이터베이스 백업

  장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업

- 데이터베이스 장애 유형

  사용자 실수, 미디어 장애(장비), 구문 장애(프로그램오류, 사용공간), 사용자 프로세스 장애(비정상적 종료, 네트워크), 인스턴스 장애(하드웨어, 시스템파일, 정전 등)

- 데이터베이스 복구 알고리즘 (UNDO: 기록한 내용 취소, REDO: 다시 실행)

   NO-UNDO/REDO, UNDO/NO-REDO, UNDO/REDO, NO-UNDO/NO-REDO

- 백업 종류

   물리 백업(OS DB파일, 완전 복구 가능/ 로그파일(완전vs백업시점까지), 논리 백업(DBMS, 백업시점까지 복구 가능)

 

> 스토리지

- 스토리지(Storage)의 개요

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

- DAS(Direct Attached Storage) : 서버와 저장장치를 전용 케이블로 직접 연결하는 방식, 속도빠름, 설치쉬움, 비용저렴, 확장성x, 유연성x

- NAS(Network Attached Storage) : 서버와 저장장치를 네트워크를 통해 연결하는 방식, 확장성, 유연성 좋음, 접속증가 시 성능저하

- SAN(Storage Area Network) : 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식, DAS+NAS, 별도네트워크 구축, 비용증가

 

> 논리데이터 모델의 물리 데이터 모델 변환

논리데이터모델 엔티티 (한글) 속성 주식별자 외부식별자
물리데이터모델 테이블 (영문) 칼럼 기본키 외래키

- 테이블(Table)

  데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트

  로우(Row), 컬럼(Column), 기본키(Primary key), 외래키(Foreign key)

- 엔티티(Entity)를 테이블로 변환

  논리 데이터 모델에서 정의된 엔티티(한글명)를 물리 데이터 모델의 테이블(영문명)로 변환하는 것

- 슈퍼타입/서브타입을 테이블로 전환

  물리 데이터 모델을 설계할 때는 슈퍼타입/서브타입을 테이블로 변환해야함

  슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼 타입에 통합하여 테이블 변환(서브타입 양이 적은 경우), 액세스 용이, 속도 상승, 조인감소, SQL통합(가공용이), 뷰로 수정가능 / Null제한 힘듦, 칼럼 증가, 인덱스 증가, 타입 구분필요

   서브타입 기준 테이블 변환 : 슈퍼타입 속성을 각각의 서브타입에 추가(서브타입 양이 많은 경우), 단위크기 감소, 테이블 스캔시간 단축, 타입 구분 불필요 / SQL통합어려움, 뷰로 조회만 가능, 속도 감소, 액세스 불리, union 발생 가능성

  개별타입 기준 테이블 변환 : 1:1관계, 독립적인 처리가 자주 발생하는 경우, 칼럼 수가 다수인 경우, 넓은 범위를 처리하는 트랜잭션이 주로 슈퍼타입에서 발생, 단일 테이블 클러스터링(클러스테에 하나의 테이블만 생성)

- 속성을 컬럼으로 변환

  일반 속성 변환(데이터용어사전(표준), SQL예약어x, 짧은 명칭 사용 권장)

  Primary UID(관계의 UID Bar, 주식별자)를 기본키로 변환

  Secondary(Alternate, 대체식별자) UID를 유니크키(유일, 중복없음)로 변환

- 관계를 외래키로 변환

  1:1관계(특수한 경우, 자주쓰는 테이블에 외래키 포함), 1:M관계(보편적 경우, '1'의 기본키를 '다'의 외래키로 포함),1:N(순환)(계층구조 표현, '1'의 외래키를 '1'이 포함), N:M관계, 배타적 관계 변환(각각의 칼럼을  optional 형태로 분리, 하나를 제외한 외래키는 Null칼럼을 결함, 타입을 구분하기 위한 별도의 칼럼 필요)

- 관리 목적의 테이블/컬럼 추가 : 관리상 필요한 데이터 등록(등록일자, 시스템 번호 등)

- 데이터 타입 선택 : 논리데이터 타입을 기초로 물리모델 변환시 최적의 데이터타입 선택(문자타입, 숫자타입, 날짜타입)

- 데이터 표준 적용(용어, 이름, 도메인 등)

  적용대상 : DB, 스토리지 그룹(물리), 테이블 스페이스(논리), 테이블, 칼럼, 인덱스, 뷰

  적용방법 : 명명규칙활용(동일, 영문약어, 무-제(수식-주)-류(수식-주)-미사 순서), 표준용어사전 활용(모든 객체의 이름, 타입, 길이 등의 정보를 기록한 사전 참고)

 

> 물리데이터 모델 품질 검토

- 물리 데이터 모델 품질 검토

  물리 데이터 모델 품질 검토의 목적은 데이터베이스으 성능 향상과 오류 예방

  물리 데이터 모델을 검토하려면 모든 이해관계자가 동의하는 검토 기준이 필요

- 물리 데이터 모델 품질 기준

  정확성(요구사항, 규칙등 정확한 표기), 완전성(누락x), 준거성(표준 규칙 준수), 최신성(최신이슈), 일관성, 활용성(사용자의 이해, 구조변경 최소화)

  조직 혹은 업무 상황에 따라 가감하거나 변형하여 사용

- 물리 데이터 모델 품질 검토 항목

  물리 데이터 모델의 특성을 반영한 품질 기준을 작성한 후 이를 기반으로 작성

- 물리 데이터 모델의 품질 검토 순서

  품질정책 기준 확인- 품질기준 작성 - 체크리스트 작성 - 논리, 물리데이터 모델 비교 - 품질검토 수행 - 보고서 작성

 

반응형