관리 메뉴

SW

[2020 정보처리기사 필기] 물리 데이터베이스 설계 (3) 본문

대학교/자격증

[2020 정보처리기사 필기] 물리 데이터베이스 설계 (3)

SWKo 2020. 8. 9. 03:27

95. 데이터베이스 보안 / 암호화

1. 데이터베이스 보안의 개요

- 데이터베이스 보안이란 데이터베이스에 대해서 권한이 없는 사용자가 액세스하는 것을 금지하기 위해 사용되는 기술

- 데이터베이스 사용자들은 일반적으로 서로 다른 객체에 대하여 다른 접근 권리 또는 권한을 갖게 된다.

 

2. 암호화(Encryption)

- 암호화는 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것

- 개인키 암호 방식공개키 암호 방식이 있음

 

3. 개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식

- 비밀키 암호화 기법은 동일한 키로 데이터를 암호화하고 복호화

- 비밀키 암호화 기법은 대칭 암호 방식 또는 단일키 암호화 기법이라고도 한다.

- 비밀키는 제3자에게는 노출시키지 않고 데이터베이스 사용 권한이 있는 사용자만 나누어 가진다.

- 종류 : 전위 기법, 대체 기법, 대수 기법, 합성 기법(DES, LUCIFER)

 

4. 공개키 암호 방식(Public Key Encryption)

- 공개키 암호화 기법은 서로 다른 키로 데이터를 암호화하고 복호화

- 암호화할 때의 공개키는 데이터베이스 사용자에게 공개하고, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 방법

- 비대칭 암호화 방식이라고도 하며, 대표적으로 RSA(Rivest Shamir Adleman)가 있다.

 

핵심

- 개인키(비밀키) 암호 방식 : 암호화, 복호화 키가 같음

- 공개키 암호 방식 : 암호화, 복호화 키가 다름


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

1. 접근통제

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

- 비인가된 사용자의 접근 감시, 접근 요구자의 사용자 식별, 접근 요구의 정당성 확인 및 기록, 보안 정책에 근거한 접근의 승인 및 거부

- 임의 접근통제(DAC), 강제 접근통제(MAC)가 있다.

- 임의 접근통제(DAC) : 사용자의 신원에 따라 접근 권한 부여, 통제 권한이 주체에 있어 주체가 접근통제 권한을 제어, 사용되는 SQL 명령어로는 GRANT, REVOKE 가 있다.

- 강제 접근통제(MAC) : 강제 접근통제는 주체와 객체의 등급을 비교하여 접근 권한을 부여하는 방식, 제3자가 접근통제 권한을 지정

- 접근통제의 3요소는 접근통제 정책, 접근통제 매커니즘, 접근통제 보안모델이다.

 

2. 접근통제

- 어떤 주체가 언제, 어디서, 어떤 객체에게, 어떤 행위에 대한 허용 여부를 정의하는 것으로 신분 기반 정책, 규칙 기반 정책, 역할 기반 정책이 있다.

- 신분 기반 정책 : 주체나 그룹의 신분에 근거하여 객체의 접근을 제한하는 방법으로 IBP, GBP가 있다.

- 규칙 기반 정책 : 주체가 갖는 권한에 근거하여 객체의 접근을 제한하는 방법으로 MLP, CBP가 있다.

- 역할 기반 정책 : GBP의 변형된 정책으로, 주체의 신분이 아니라 주체가 맡은 역할에 근거하여 객체의 접근을 제한하는 방법

 

3. 접근통제 매니즘

- 접근통제 매커니즘은 정의된 접근통제 정책을 구현하는 기술적인 방법으로, 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 등이 있다.

 

4. 접근통제 안 모델

- 접근통제 보안 모델은 보안 정책을 구현하기 위한 정형화된 모델로, 기밀성 모델, 무결성 모델, 접근통제 모델이 있다.

- 기밀성 모델 : 군사적인 목적으로 최초 개발, 기밀성 보장이 최우선

- 무결성 모델 : 기밀성 모델에서 발생하는 불법적인 정보 변경을 방지하기 위해 무결성을 기반으로 개발된 모델, 일관성 유지가 중요

- 접근통제 모델 : 접근통제 메커니즘을 보안 모델로 발전시킨 것으로, 대표적으로 접근통제 행렬이 있다.

 

5. 접근통제 조건

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

- 값 종속 통제, 다중 사용자 통제, 컨텍스트 기반 통제

 

6. 감사 추적

- 데이터베이스에 접근하여 수행한 모든 활동을 기록하는 기능

 

핵심

- 임의 접근 통제는 통제 권한을 가지고 있는 주체가 접근통제 권한을 지정, 강제 접근통제는 제3자가 지정

- 접근통제의 3요소 : 정(정책)보(보안모델)커(매커니즘) -> 정보커

- 접근통제 매커니즘은 접근통제 정책을 구현하는 기술적인 방법

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

- 인가된 사용자만 접근할 수 있는 것은 기밀성, 인가된 사용자만 수정할 수 있는 것은 무결성


97. 데이터베이스 백업

1. 데이터베이스 백업

- 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업으로, 치명적 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 한다.

 

2. 데이터베이스 장애 유형

- 사용자 실수, 미디어 장애, 구문 장애, 사용자 프로세스 장애, 인스턴스 장애

 

3. 로그 파일

- 로그 파일은 데이터베이스의 처리 내용이나 이용 상황 등 상태 변화를 시간의 흐름에 따라 모두 기록한 파일로, 데이터베이스의 복구를 위해 필요한 가장 기본적인 자료이다.

- 로그 파일을 기반으로 데이터베이스를 과거 상태로 복귀(UNDO)시키거나 현재 상태로 재생(REDO)시켜 데이터베이스 상태를 일관성 있게 유지할 수 있다.

- 로그 파일은 트랜잭션 시작 시점, Rollback 시점, 데이터 입력, 수정 삭제 시점등에서 기록된다.

- 로그 파일 내용 : 트랜잭션이 작업한 모든 내용, 트랜잭션 식별, 트랜잭션 레코드, 데이터 식별자, 갱신 이전 값, 갱신 이후 값 등

 

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

- 동기적/비동기적 갱신에 따라 NO-UNDO/REDO, UNDO/NO-REDO, UNDO/REDO, NO-UNDO/NO-REDO 방법으로 분류한다.

 

5. 백업 종류

- 물리 백업 : 데이터베이스 파일을 백업하는 방법으로, 백업 속도가 빠르고 작업이 단순하지만 문제 발생 시 원인 파악 및 해결이 어렵다.

- 논리 백업 : DB내의 논리적 객체들을 백업하는 방법으로, 복원 시 데이터 손상을 막고 문제 발생 시 원인 파악 및 해결이 수월하지만 백업/복원 시 시간이 많이 소요된다. 완전 복구가 아닌 백업 시점까지만 복구 가능

 

핵심

- 로그 파일은 시간의 흐름에 따라 기록

- 물리 백업 : 데이터베이스 파일을 백업, 논리 백업 : 논리적 객체들을 백업


98. 스토리지

1. 스토리지(Storage)의 개요

- 스토리지는 단일 디스크로 처리할 수 없는 대용량의 데이터를 저장하기 위해 서버와 저장장치를 연결하는 기술

- DAS, NAS, SAN이 있다.

 

2. DAS(Direct Attached Storage)

- DAS는 서버와 저장장치를 전용 케이블로 직접 연결하는 방식으로, 일반 가정에서 컴퓨터에 외장하드를 연결하는 것이 여기에 해당된다.

- 서버에서 저장장치를 관리한다.

- 속도가 빠르고 설치, 운영이 쉽다. 비용이 저렴하다.

- 직접 연결 방식이므로 다른 서버에서 접근할 수 없고 파일을 공유할 수 없다.

- 확장성 및 유연성이 상대적으로 떨어진다.

- 저장 데이터가 적고 공유가 필요 없는 환경에 적합

 

3. NAS(Network Attached Storage)

- NAS는 서버와 저장장치를 네트워크를 통해 연결하는 방식이다.

- NAS Storage가 내장된 저장장치를 직접 관리한다.

- 파일 공유가 가능하고 쉽게 접근 가능, 확장성, 유연성 우수

- 접속 증가 시 성능 저하 

 

4. SAN(Storage Area Network)

- SAN은 DAS의 빠른 처리와 NAS의 파일 공유 장점을 혼합한 방식으로, 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식이다.

- 파이버 채널(FC) 스위치를 이용하여 네트워크를 구성

- 파이버 채널 스위치는 서버나 저장장치를 광케이블로 연결하므로 속도가 빠르다.

- 파일 공유 가능, 확장성, 유연성, 가용성 뛰어남.

- 비용이 많이 듦.

 

핵심

- DAS : 처리가 빠름

- NAS : 공유가 잘됨

- SAN : 처리가 빠름, 공유가 잘됨, 비쌈, 파이버 채널(FC)스위치 이용


99. 논리데이터 모델의 물리 데이터 모델 변환

1. 테이블(Table)

- 테이블은 로우와 컬럼으로 구성되며, 컬럼에는 지정된 유형에 따라 데이터가 저장된다.

- 테이블의 구성 요소 : 로우(튜플, 인스턴스, 어커런스), 컬럼(각 속성 항목에 대한 값), 기본키(후보키 중 선택한 주키), 외래키(다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합)

 

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

- 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환하는 것

- 엔티티를 테이블로 변환한 후 테이블 목록 정의서를 작성

- 테이블 목록 정의서 : 전체 테이블을 목록으로 요약 관리하는 문서로, 테이블 목록이라고도 한다.

- 변환 규칙

논리적 설계 (데이터 모델링) 물리적 설계
엔티티(Entity) 테이블(Table)
속성(Attribute) 컬럼(Column)
주 식별자(Primary Identifier) 기본키(Primary Key)
외부 식별자(Foregin Identifier) 외래키(Foreign Key)
관계(Relationship) 관계(Relationship)

- 변환 시 고려사항 : 테이블과 엔티티 명칭은 동일하게 하는 것을 권고, 엔티티는 주로 한글명 사용하지만 테이블은 소스 코드의 가독성을 위해 영문 사용, 메타 데이터 관리 시스템에 표준화된 용어가 있을 때는 메타에 등록된 단어를 사용하여 명명

 

3. 슈퍼타입/서브타입을 테이블로 변환

- 슈퍼타입 기준 테이블 변환 서브타입 기준 테이블 변환, 개별 타입 기준 테이블 변환이 있다.

 

- 슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼타입에 통합하여 하나의 테이블 생성, 서브타입에 속성이나 관계가 적을 경우 적용, 서브타입의 모든 속성이 포함되어야 함

- 슈퍼타입 기준 테이블 변환 장점 : 액세스가 용이, 뷰를 이용하여 각각의 서브타입만 액세스하거나 수정 가능, 빠름, SQL문장 구성이 단순해짐.

- 슈퍼타입 기준 테이블 변환 단점 : 테이블 컬럼 증가로 디스크 저장 공간 증가, 처리마다 서브타입에 대한 구분(TYPE)이 필요한 경우가 많이 발생, 인덱스 크기의 증가로 인덱스 효율이 떨어짐

 

- 서브타입 기준 테이블 변환 : 슈퍼타입 속성들을 각각의 서브타입에 추가하여 서브타입들을 개별적인 테이블로 만드는 것, 서브타입에 속성이나 관계가 많이 포함된 경우 적용

- 서브타입 기준 테이블 변환 장점 : 각 서브타입 속성들의 선택 사양이 명확한 경우 유리, 처리할 때 서브타입 유형을 구분할 필요가 없음, 테이블 스캔시 유리

- 서브타입 기준 테이블 변환 단점 : 수행 속도 감소, SQL 어려워짐, 부분 범위에 대한 처리 곤란, 여터 테이블을 통합한 뷰는 조회만 가능, 식별자 관리가 어려움.

 

- 개별타입 기준 테이블 변환 : 슈퍼타입과 서브타입들을 각각의 개별적인 테이블로 변환하는 것, 슈퍼타입과 서브타입 테이블들 사이에는 각각 1:1관계가 형성

- 개별타입을 적용하는 경우 : 전체 데이터에 대한 처리가 빈번한 경우, 서브타입의 처리가 대부분 독립적으로 발생하는 경우, 통합하는 테이블 컬럼 수가 많은 경우, 서브타입의 컬럼 수가 많은 경우, 트랜잭션이 슈퍼타입에서 발생하는 경우, 단일 테이블 클러스터링이 필요한 경우

- 개별타입 기준 테이블 변환 장점 : 저장공간이 작음, 슈퍼타입 또는 서브타입 각각의 테이블에 속한 정보만 조회하는 경우 문장 작성이 용이

- 개별타입 기준 테이블 변환 단점 : 슈퍼타입 또는 서브타입의 정보를 같이 처리하면 항상 조인이 발생하여 성능 저하

 

4. 속성을 컬럼으로 변환

- 논리데이터 모델에서 정의한 속성을 물리 데이터 모델의 컬럼으로 변환

- 일반 속성 변환 : 속성과 컬럼은 표준화된 약어를 사용하여 일치시키는게 좋음, 컬럼명은 SQL의 예약어 사용을 피하고 가능한 짧게 지정, 복합 단어를 컬럼명으로 사용할 때는 미리 정의된 표준을 따름, 테이블 컬럼 정의 후 한 로우(Row)에 해당하는 샘플 데이터를 작성하여 컬럼의 정합성을 검증

- Primary UID를 기본키로 변환 : 논리 데이터 모델에서의 Primary UID는 물레 데이터 모델의 기본키로 만든다.

- Primary UID(관계의 UID Bar)를 기본키로 변환 : 다른 엔티티와의 관계로 인해 생성된 Primary UID는 물리 데이터 모델의 기본키로 만든다.

- Secondary(Alternate) UID를 유니크키로 변환 : 논리 모델링에서 정의된 Secondary UID 및 Alternate Key는 물리 모델에서 유니크미로 만든다.

 

5. 관계를 외래키로 변환

- 1:1 관계 : 개체 A의 기본키를 개체 B의 외래키로 추가하거나 개체 B의 기본키를 개체 A의 외래키로 추가하여 표현한다.

- 1:M 관계 : 개체 A의 기본키를 개체 B의 외래키로 추가하여 표현하거나 별도의 테이블로 표현한다.

- N:M 관계 : 릴레이션 A와 B의 기본키를 모두 포함한 별도의 릴레이션(=교차 릴레이션= 교차 엔티티)으로 표현. 

- 1:M 순환 관계 : 개체 A에 개체 A의 기본키를 참조하는 외래키 컬럼을 추가하여 표현한다. 데이터의 계층 구조를 표현하기 위해 주로 사용

 

6. 관리 목적의 테이블/컬럼 추가

- 논리데이터 모델에는 존재하지 않는 테이블이나 컬럼을 데이터베이스의 관리 혹은 데이터베이스를 이용하는 프로그래밍의 수행 속도를 향상시키기위해 물리 데이터 모델에 추가할 수 있다.

 

7. 데이터 타입 선택

- 주요 타입에는 문자 타입, 숫자 타입, 날짜 타입이 있다.

 

핵심

- 슈퍼타입과 서브타입을 테이블로 변환하는 방법

- 슈퍼타입 기준은 하나로 변환, 서브타입 기준은 여러개로 변환

- 슈퍼타입과 서브타입을 각각 독립적인 테이블로 변환하여 테이블 간에 1:1 관계가 유지되도록 변환할 수 있다.


100. 물리 데이터 모델 품질 검토

1. 물리 데이터 모델 품질 검토

- 물리 데이터 모델을 설계하고 데이터베이스 객체를 생성한 후 개발 단계로 넘어가기 전에 모델러와 이해관계자들이 수행

 

2. 물리 데이터 모델 품질 기준

- 정확성, 완전성, 준거성(데이터 표준, 표준화 규칙, 법적 요건 준수 여부), 최신성(최근 이슈 반영 여부), 일관성, 활용성

 

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

- 물리 데이터 모델의 품질 검토 항목은 물리 데이터 모델의 특성을 반영한 품질 기준을 작성한 후 이를 기반으로 작성

 

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

- 데이터 품질 정책 및 기준 확인 -> 물리 데이터 품질 기준 작성 -> 체크리스트 작성 -> 논리 데이터 모델과 물리 데이터 모델 비교 -> 품질 검토 수행 -> 체크리스트 내용을 종합하여 품질 검토 보고서 작성

 

핵심

- 물리 데이터 모델 품질 기준 : 정확성, 완전성, 준거성, 최신성, 일관성, 활용성

- 준거성 : 데이터 모델이 데이터 표준, 표준화 규칙, 법적 요건 등을 정확하게 준수한지 여부

Comments