사전 조사 분석
물리 데이터베이스 설계
- 논리적 구조로 표현된 논리적 데이터베이스를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변화하는 과정
데이터베이스 설계 순서
- 요구 조건 분석 → 개념적 설계 → 논리적 설계 → 물리적 설계 → 구현
- 물리적 설계 단계에서 수행해야 할 것
-> 저장 레코드의 양식 설계
-> 레코드 집중의 분석 및 설계
-> 접근 경로 설계
- 물리적 데이터베이스 구조는 여러 가지 타입의 저장 레코드 집합이라는 면에서 단순한 파일과 다름
- 물리적 설계 옵션
-> 반응시간 : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을 때까지의 경과 시간
-> 공간 활용도 : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양
-> 트랜잭션 처리량 : 단위시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수
데이터 명명 규칙 파악
- 물리 데이터 모델에 적용해야하는 규칙
- 데이터 표준화 및 논리 데이터베이스 설계의 결과물들을 통해 파악
- 물리-논리 데이터베이스 설계 적용되는 명명규칙은 일관성 유지
- 명명 규칙을 파악하기 위해선 도메인과 데이터 사전에 대한 지식 필요
시스템 자원 파악
- 데이터베이스 설치에 영향을 미칠 수 있는 물리적인 요소
- 하드웨어 자원, 운영체제 및 DBMS의 버전, DMBS 파라미터 정보 등으로 구분
데이터베이스 관리 요소 파악
- 데이터베이스 운영과 관련된 관리요소
- 데이터베이스 관리 요소를 파악한 후 이를 기반으로 시스템 조사 분석서를 작성
- 시스템 조사 분석서를 기반으로 다음과 같은 요소들을 파악
-> 데이터베이스 구조 : 데이터베이스 구조에 따라 문제 발생 시 대응 방법이 다름
-> 이중화 구성 : 문제 발생에 대비하여 동일한 데이터베이스를 복제하여 관리
-> 분산 데이터베이스 : 물리적인 피해에 데이터 유실을 최소화할 수 있고 장애로 인한 데이터 유실 복구에 효과적
-> 접근 제어 / 통제 : 접근 가능한 사용자의 권한 남용으로 인한 정보 유출 및 변조가 빈번하게 발생
-> DB암호화 : 데이터 암호화, 암호 키에 대한 인증 등을 통해 데이터 유출 시 데이터의 복호화를 어렵게 함
데이터베이스 저장 공간 설계
테이블
- 데이터베이스의 가장 기본적인 객체로써 행(Row)과 열(Column)으로 구성됨
- 논리 설계 단계의 개체(Entity)에 대응하는 객체
- 종류에는 일반 테이블, 클러스터 인덱스 테이블, 파티셔닝 테이블, 외부 테이블, 임시 테이블 등이 있음
일반 테이블
- 현재 사용되는 대부분의 DBMS(DataBase Management System)에서 표준 테이블로 사용되는 테이블
클러스터드 인덱스 테이블
- 기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블
- 일반적인 인덱스를 사용하는 테이블에 비해 접근 경로가 단축
파티셔닝 테이블
- 대용량의 테이블을 작은 논리적인 단위인 파티션으로 나눈 테이블
- 대용량의 데이터를 효과적으로 관리할 수 있지만 파티션 키를 잘못 구성하면 성능 저하 등 역효과를 초래할 수 있음
- 방식에 따라 범위 분할, 해시 분할, 조합 분할 등으로 나뉨
-> 범위 분할 : 지정한 열의 값을 기준으로 분할
-> 해시 분할 : 해시 함수를 적용한 결과 값에 따라 데이터를 분할
-> 조합 분할 : 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할
외부 테이블
- 데이터베이스에서 일반 테이블처럼 이용할 수 있는 외부 파일로 데이터베이스 내에 객체로 존재
- 데이터 쉐어하우스, ETL(Extraction Transformation Loading, 추출 변환 적재) 등의 작업에 사용
임시 테이블
- 트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블
- 절차적인 처리를 위해 임시로 사용
- 저장된 데이터는 트랜잭션이 종료되면 삭제
칼럼
- 테이블의 열을 구성하는 요소로 데이터 타입과 길이 등으로 정의
- 데이터 타입은 데이터의 일관성 유지를 위해 사용되는 가장 기본적인 것
- 도메인을 정의한 경우 도메인에 따라 데이터의 타입과 길이가 정의
- 두 칼럼을 비교하는 연산에서 두 칼럼의 데이터 타입이나 길이가 다르면 DBMS 내부적으로 데이터 타입 변화 후 비교 연산 수행
- 참조 관계인 칼럼들은 데이터 타입과 길이가 일치해야 함
테이블스페이스
- 테이블이 저장되는 논리적인 영역으로 하나의 테이블스페이스에 하나 또는 그 이상의 테이블을 저장할 수 있음
- 테이블을 저장하면 논리적으론 테이블스페이스에 물리적으론 연관된 데이터 파일에 저장됨
- 테이블스페이스를 테이블, 테이블스페이스, 데이터 파일로 나눠 관리하면 논리적 구성이 물리적 구성에 종속되지 않아 투명성이 보장됨
-> 투명성 : 사실의 존재 여부를 염두에 두지 않아도 되는 성질
- 데이터베이스에 저장되는 내용에 따라 테이블, 인덱스, 임시 등의 용도로 구분하여 설계
트랜잭션 및 CRUD 분석
트랜잭션의 정의
- 데이터베이스의 상태를 변환시키는 하나의 논리적인 기능을 수행하기 위한 작업 단위 또는 한꺼번에 수행되어야 할 일련의 연산들을 의미
- 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적인 단위
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위
트랜잭션의 특성
- 원자성(Atomicity)
-> all or nothing
-> 데이터베이스에 반영되도록 완전히 완료 아니면 전혀 반영되지 않도록 복구되어야 함
-> 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 함
- 일관성(Consistency)
-> 문법을 일괄적으로 맞춰야 함
-> 트랜잭션을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
-> 시스템이 가지고 있는 고정 요소는 트랜잭션 수행 전과 후가 상태가 같아야 함
- 독립성(Isolation)
-> 하나의 트랜잭션 연산 중에는 다른 트랜잭션이 관여하면 안 됨
->수행 중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없음
- 지속성(Durability)
-> 성공적으로 완료된 트랜잭션의 결과는 영구적으로 유지, 반영되어야 함
CRUD 분석
- 데이터베이스의 테이블에 변화를 주는 트랜잭션 연산 중 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 연산에 대해 CRUD 매트릭스를 작성하여 분석하는 것
- 테이블에 발생되는 트랜잭션의 주기별 발생 횟수를 파악하고 연관된 테이블들을 분석하면 테이블에 저장되는 데이터의 양을 유추할 수 있음
CRUD 매트릭스
- 2차원 표로 행에는 프로세스 열에는 테이블을 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하는 업무 프로세스와 데이터 간 상관 분석표
- CRUD 매트릭스를 통해 프로세스의 트랜잭션이 테이블에 수행하는 작업을 검증
- CRUD 매트릭스의 각 셀에는 C, R, U, D가 들어가고 복수의 작업 시에는 우선순위는 C > D > U > R를 적용
- CRUD 매트릭스가 완성되면 C, R, U, D 중 어느 것도 적히지 않는 행이나 열, C나 R이 없는 행을 확인하여 불필요하거나 누락된 테이블 또는 프로세스를 찾음
트랜잭션 분석
- CRUD 매트릭스를 기반으로 테이블에 발생하는 트랜잭션 양을 분석하고 테이블에 저장되는 데이터의 양을 유추하고 이를 근거로 DB용량을 산정, DB 구조를 최적화하는 것
트랜잭션 분석서
- 단위 프로세스와 CRUD 매트릭스를 이용하여 작성
- 구성 요소에는 단위 프로세스, CRUD 연산, 테이블 명, 칼럼명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 등
필기 정리
'2020(개정) 이후 정보처리기사 > 3과목 : 데이터베이스 구축' 카테고리의 다른 글
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(3) (2) | 2020.02.27 |
---|---|
2020 정보처리기사 필기 - 3.2 물리 데이터베이스 설계(2) (0) | 2020.02.26 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(4) (0) | 2020.02.18 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(3) (1) | 2020.02.15 |
2020 정보처리기사 필기 - 3.1 논리 데이터베이스 설계(2) (1) | 2020.02.15 |