2020 기출 ' '
2021 기출 ' '
수제비 데일리 ' '
물리 요소 조사 분석
(1) 스토리지(Storage)
데이터를 보존하고 가능한 한 간편하게 액세스할 수 있도록 개발된 기술을 사용하여 정보를 보전하는 저장장치를 의미한다.
스토리지 구성
접속방식 | 설명 | 장점 | 단점 |
DAS (Direct Attached Storage) |
데이터 서버와 외장형 저장장치를 전용 케이블로 직접 접속하는 방식 | 전용라인의 사용으로 주어진 성능이 보장되며 안정성도 뛰어남 | 저장장치에 따른 접속방법이 서로 상이하여 저장장치 공유에 문제가 있음 |
NAS (Network Attached Storage) |
LAN을 통해 스토리지와 서버를 접속하는 방식, 파일서버를 통한 파일 시스템을 공유 | 데이터 저장 장치와 서버 간의 독립성을 유지 | 데이터 접근 요청에 의한 파일 서버의 병목현상 발생 가능, 셧다운 시 스토리지 접근이 불가 |
SAN (Storage Area Network) |
서버가 광섬유 채널(Fiber Channel)을 통하여 스토리지를 연결하는 기법 | DAS의 접속 한계성을 극복하여, n개의 서버가 m개의 저장장치 접속 가능 | 이기종 서버 환경을 지원하지 않음, 공유 가능한 파일 시스템과 데이터형식이 제한 |
(2) 분산 데이터베이스(Distributed Database)
분산 데이터베이스는 네트워크상에서 여러 컴퓨터에 물리적으로 분산되어 있지만, 하나의 데이터베이스처럼 인식하도록 논리적으로 통합된 데이터베이스이다.
분산 데이터베이스 장점
- 분산 제어가 용이
- 지역 자치성이 높음
- 효용성과 융통성이 높음
- 데이터베이스 복제 및 분산을 통해 사용자 측면에서는 향상된 성능을 제공
- 장애로 인한 데이터 유실 복구에 효과적
- 시스템 확장이 용이
분산 데이터베이스 단점
- 복잡성이 증가
- 성능 저하
- 개발 비용의 증가
분산 데이터베이스 구성
전역 스키마 / 분할 스키마 / 할당 스키마 / 지역 스키마
분산 데이터베이스의 투명성
구분 | 설명 |
위치 투명성 (Location Transparency) |
사용자나 응용 프로그램이 접근할 데이터의 물리적 위치를 알아야 할 필요가 없는 성질 |
복제 투명성 (Replication Transparency) |
사용자나 응용 프로그램이 접근할 데이터가 물리적으로 여러 곳에 복제되어 있는지의 여부를 알 필요가 없는 성질 |
병행 투명성 (Concurrency Transparency) |
여러 사용자나 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 발생하지 않는 성질 로킹(Locking), 타임 스탬프(Time Stamp) 순서 기법 이용 |
분할 투명성 (Fragmentation Transparency) |
사용자가 하나의 논리적인 릴레이션이 여러 단편으로 분할되어 각 단편의 사본이 여러 장소에 저장되어 있음을 알 필요가 없는 성질 |
장애 투명성 (Failure Transparency) |
데이터베이스가 분산되어 있는 각 지역의 시스템이나 통신망에 이상이 생기더라도, 데이터의 무결성을 보존할 수 있는 성질 2PC(Phase Commit) 활용 |
(3) 데이터베이스 이중화(Database Replication)
데이터베이스 이중화는 물리적으로 떨어져 있는 여러 개의 데이터베이스에 대하여 데이터베이스의 변경된 내용을 원격데이터베이스에 복제하고 관리하는 기술이다.
(4) 데이터베이스 암호화
데이터베이스 암호화는 데이터베이스에 저장된 데이터를 읽기 어려운 값으로 변환하여 권한이 없는 제3자가 볼 수 없도록 저장하는 기술이다.
데이터베이스 암호화 유형
유형 | 설명 |
응용 프로그램 자체 암호화 | 암·복호화 모듈이 API 라이브러리 형태로 각 애플리케이션 서버에 설치되고, 응용프로그램에서 해당 암·복호화 모듈을 호출하는 방식 |
DB 서버 암호화 | DB 서버의 DBMS 커널이 자체적으로 암·복호화 기능을 수행하는 방식 |
DBMS 자체 암호화 | DB 서버의 DBMS 커널이 자체적으로 암·복호화 기능을 수행하는 방식 |
DBMS 암호화 기능 호출 | 응용 프로그램에서 DB 서버의 DBMS 커널이 제공하는 암·복호화 API를 호출하는 방식 |
운영체제 암호화 | OS에서 발생하는 물리적인 입출력을 이용한 암·복호화 방식으로 DBMS의 데이터 파일을 암호화하는 방식 |
데이터베이스 암호화 적용 방식
컬럼 암호화
API / Plug-in / Hybrid
블록 암호화
TDE 방식 / 파일 암호화 방식
(5) 접근제어(Access Control)
접근제어 구성요소
접근제어 정책 / 접근제어 메커니즘 / 접근제어 보안 모델
DB 물리 속성 설계
(1) 파티셔닝(Partitioning)
파티셔닝은 대용량의 테이블을 파티션(Partition)이라는 보다 작은 논리적인 단위로 나눔으로써 성능 저하 방지 및 관리를 상대적으로 보다 용이하게 하고자 하는 기법이다.
파티셔닝 특징
- 물리적 파티셔닝으로 인해 전체 데이터 훼손 가능성이 줄어들고 데이터 가용성 향산된다.
- 데이터베이스를 작은 단위로 관리하여 편리하다.
- 부하를 각각 파티션들로 분산시켜 성능을 향상시킨다.
파티셔닝 유형
- 레인지 파티셔닝(=범위분할, Range Partitioning)
- 해시 파티셔닝(=해시분할, Hash Partitioning)
- 리스트 파티셔닝(List Partitioning)
- 컴포지트 파티셔닝(Composite Partitioning)
(2) 클러스터링(Clustering)
클러스터링은 지정된 컬럼 값의 순서대로 데이터 행을 저장하는 방법이다.
클러스터링 유형
단일 클러스터링 / 다중 클러스터링
클러스터링 설계 시 고려사항
- 대량의 범위를 자주 액세스하는 경우
- 인덱스를 사용한 처리 부담이 되는 넓은 분포도
- 여러 개의 테이블이 자주 조인을 일으킬 때
- 반복 컬럼이 정규화에 의해 어쩔 수 없이 분할된 경우
- UNION, DISTINCT, ORDER BY, GROUP BY가 빈번한 컬럼이면 고려
- 수정이 자주 발생하지 않는 컬럼
(3) 데이터베이스 백업(Database Backup)
데이터베이스 백업 종류
구분 | 설명 |
전체 백업(Full Backup) | 백업하고자 하는 데이터 전체에 대해 백업하는 방식 |
차등 백업(Differential Backup) | 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식 |
증분 백업(Incremental Backup) | 정해진 시간을 기준으로 그 이후에 변경된 파일만을 백업하는 방식 |
트랜잭션 로그백업(Transaction LogBackup) | 실제 데이터 파일의 내용을 백업하는 것이 아니라 로그 파일에 기록된 로그를 백업하는 방식 |
(4) 데이터 저장 사이징(Sizing)
정확한 데이터 용량을 예측하여 저장 공간을 효과적으로 사용하고 확장성을 보장하여 가용성을 높이기 위해 사용한다.
(5) 데이터 지역화(Data Locality)
- 데이터 지역화는 데이터베이스의 저장 데이터를 효율적으로 이용할 수 있도록 저장하는 방법이다.
- 필요한 위치에 가까이 데이터를 배치하는 것을 의미한다.
데이터 지역화의 종류
시간적(Temporal) 지역화 / 공간적(Spacial) 지역화 / 순차적(Sequential) 지역화
데이터 지역화를 활용한 관리 기법
기억장치 계층구조(Hierarchy) / 캐시 접근시간(Cache Access Time) 단축 / 작업세트(Working Set)
물리 데이터베이스 모델링
(1) 데이터베이스 무결성(Database Integrity)
데이터를 인가되지 않은 방법으로 변경할 수 없도록 보호하는 특성이다.
데이터베이스 무결성 종류
종류 | 설명 | 요소 |
개체 무결성 | 한 엔터티에서 같은 기본 키(PK)를 가질 수 없거나, 기본 키(PK)의 속성이 NULL을 허용할 수 없음 | 기본 키(Primary Key) 유니크 인덱스(Unique Index) |
참조 무결성 | 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키 값이나 NULL이어야 함 | 외래 키(Foreign Key) |
속성 무결성 | 속성의 값은 기본값, NULL 여부, 도메인(데이터 타입, 길이)이 지정된 규칙을 준수해야 함 | 체크(CHECK) NULL / NOT NULL 기본값(DEFAULT) |
사용자 무결성 | 사용자의 의미적 요구사항을 준수해야 함 | 트리거(Trigger) 사용자 정의 데이터 타입 (User Defined Data Type) |
키 무결성 | 한 릴레이션에 같은 키 값을 가진 튜플들을 허용할 수 없음 | 유니크(Unique) |
(2) 컬럼(Column)
컬럼은 데이블을 구성하는 요소로, 데이터 타입(Data Type) 및 길이(Length) 등으로 정의된다.
(3) 키(Key)
키는 데이터베이스에서 조건을 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성이다.
키 특성
유일성 / 최소성
키 종류
종류 | 설명 |
기본 키 (Primary Key) |
테이블의 각 튜플들을 고유하게 식별하는 컬럼 |
대체 키 (Alternate Key) |
후보 키 중에서 기본 키로 선택되지 않은 키 |
후보 키 (Candidate Key) |
테이블에서 각 튜플들을 구변하는데 기준이 되는 걸럼 기본 키와 대체 키를 합친 키(기본 키⊆후보키, 대체 키⊆후보 키) |
슈퍼 키 (Super Key) |
릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성을 만족하지 못하는 키 |
외래 키 (Foreign Key) |
테이블 간의 참조 데이터 무결성을 위한 제약 조건 한 릴레이션의 컬럼이 다른 릴레이션의 기본 키로 이용되는 키 |
DB 반 정규화
(1) 반 정규화(De-Normalization)
- 반 정규화는 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링의 기법이다.
- 비정규화, 역정규화라고도 불린다.
반 정규화의 장단점
장점 | 단점 |
성능 향상과 관리의 효율성이 증가 | 데이터의 일관성 및 정합성 저하 |
유지를 위한 비용이 별도로 발생하여 성능에 나쁜 영향을 미칠 수 있음 |
반 정규화 기법
(테이블) 병합 / 분할 / 중복, (컬럼) 중복, (관계) 중복
물리 데이터 모델 품질 검토
(1) 물리 데이터 모델 품질 기준
물리적 데이터 모델은 시스템 선응에 대해 직접적인 영향을 미치기 때문에 성능 문제를 사전에 검토하여 최소화하는 노력이 절대적으로 필요하다.
물리 데이터 모델 품질 요소
정확성 / 완전성 / 준거성 / 최신성 / 일관성 / 활용성
(2) 물리 E-R 다이어그램
논리 데이터 모델의 물리 데이터 모델로 변환
논리적 설계 | 물리적 설계 | 데이터베이스 |
엔터티(Entity) | 테이블(Table) | 테이블 |
속성(Attribute) | 컬럼(Column) | 컬럼 |
주 식별자(Primary Identifier) | 기본 키(Primary Key) | 기본 키 |
외래 식별자(Foreign Identifier) | 외래 키(Foreign Key) | 외래 키 |
관계(Relationship) | 관계(Relationship) | - |
(3) CRUD 분석
프로세스와 데이터 사이에 관계 의존성을 CRUD(Create, Read, Update, Delete)로 표현한 매트릭스이다.
CRUD 매트릭스 구성요소
엔터티 타입 / 단위 프로세스 / CRUD
CRUD 매트릭스 필요성
- 모델링 작업 검증
- 중요 산출물
- 테스트 시 사용 산출물
- 인터페이스 현황 파악
(4) SQL 성능 튜닝
SQL 성능 튜닝은 최소의 자원을 이용하여 데이터베이스로부터 최적의 성능을 제공하도록 하는 개선활동이다.
SQL 성능 튜닝 기법
옵티마이저 조정 / 힌트 사용 / 부분 범위 처리 사용 / 인덱스 활용
'정보처리기사 필기 > 데이터베이스 구축' 카테고리의 다른 글
3-5. 데이터 전환 (0) | 2021.08.07 |
---|---|
3-3. 논리 데이터베이스 설계 (0) | 2021.08.04 |
3-2. SQL 활용 (0) | 2021.08.04 |
3-1. SQL 응용 (0) | 2021.08.01 |
댓글