▶ 085 사전 조사 분석
물리 데이터베이스 설계
논리적 DB를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정
- 저장 레코드 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계 등
- 물리적 DB 구조의 기본적인 데이터 단위는 저장 레코드
- 물리적 DB 구조는 여러 가지 타입의 저장 레코드 집합이라는 면에서 단순한 파일과 다름
☞ 물리적 설계 옵션
- 반응시간 : 트랜잭션 수행을 요구한 시점부터 처리 결과를 얻을때까지의 경과 시간
- 공간 활용도 : 데이터베이스 파일과 액세스 경로 구조에 의해 사용되는 저장공간의 양
- 트랜잭션 처리량 : 단위시간 동안 데이터베이스 시스템에 의해 처리될 수 있는 트랜잭션의 평균 개수
데이터 명명 규칙 파악
데이터 명명은 조직마다 다를 수 있어 물리 DB 모델의 설계 전 파악해야 한다.
- 물리 DB 설계와 논리 DB 설계에 적용되는 명명 규칙은 서로 일관성을 유지해야 한다
- 도메인과 데이터 사전에 대한 지식이 필요하다.
- 중복 구축 등 방지 가능
시스템 자원 파악
시스템 자원은 DB 설치에 영향을 미칠 수 있는 물리적인 요소들로, 사전에 미리 파악해야한다.
데이터베이스 관리 요소 파악
DB 시스템의 환경에 따라 관리요소가 달라질 수 있음으로 파악해야 한다.
- DB관리 요소 파악 후 이를 기반으로 DB 시스템 조사 분석서 작성
- 시스템 조사 분석서를 기반으로 아래 표와 같은 특성을 파악
데이터 베이스 구조 | DB 구조에 따라 문제 발생 시 대응 방법이 다르므로 서버와 DB의 구조 등 파악 |
이중화 구성 | 문제 발생에 대비해 동일한 DB 복제해 관리하는 이중화 구성 파악 |
분산 데이터베이스 | 분산 DB는 물리적 재해 및 파손 등 데이터 유실 최소화 가능. 장애로 인한 데이터 유실 복구에 효과적 이므로 DB의 분산 구조 파악 |
접근 제어/ 접근 통제 | DB는 접근 가능한 사용자의 권한 남용으로 인한 정보 유출 및 변조가 빈번하게 발생하므로 DB 의 접근 제어 방법 등을 파악 |
DB 암호화 | 데이터 암호화, 암호화 키에 대한 인증 등을 통해 데이터 유출 시 데이터의 복호화를 어렵게 하므로 DB 암호화의 특성 파악 |
▶ 086 데이터베이스 저장 공간 설계
테이블
DB의 가장 기본적인 객체, 로우(Row, 행)와 컬럼(Column, 열)으로 구성되어 있다.
- 테이블은 논리 설계 단계의 개체에 대응하는 객체
- 테이블의 종류 : 일반 테이블, 클러스터드 인덱스 테이블, 파티셔닝 테이블, 외부 테이블, 임시테이블 등
1. 일반 테이블
대부분의 DBMS에서 사용되는 표준 테이블
2. 클러스터드 인덱스 테이블(Clustered Index Table)
기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블
- 접근 경로 단축
3. 파티셔닝 테이블(Partitioning Table)
대용량의 테이블을 작은 논리적 단위인 파티션으로 나눈 테이블
- 대용량의 데이터 효과적으로 관리, 파티션 키를 잘못 구성하면 성능 저하 등 역효과를 초래
- 범위 분할, 해시 분할, 조합분할 등으로 나뉨
범위 분할 | 지정한 열의 값을 기준으로 분할 |
해시 분할 | 해시 함수를 적용한 결과 값에 따라 분할 |
조합분할 | 범위 분할로 분할 한 후 해시 함수를 적용하여 다시 분할 |
5. 외부 테이블(External Table)
일반 테이블처럼 이용할 수 있는 외부파일, 객체로 존재
- 데이터웨어하우스에서 ETL 등의 작업에 유용
*데이터 웨어하우스(Data Warehouse) : 조직이나 기업체의 중심이 되는 주요 업무 시스템에서 추출되어 새로 생성된 DB
*ETL(Extraction, Transformation, Loading) : 데이터 웨어하우스를 사용하여 추출, 변환, 적재하는 일련의 모든 과정
6. 임시 테이블(Temporary Table)
트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블
- 트랜잭션이 종료되면 삭제 됨
*트랜잭션 : DB의 상태를 변환시키는 논리적 기능을 수행하기 위한 작업의 단위
- 임시로 사용하는 테이블
컬럼(Column) √
테이블의 열을 구성. 데이터 타입, 길이 등으로 정의
테이블스페이스(Tablespace)
테이블이 저장되는 논리적인 영역
- 테이블 저장 시. 논리적으로는 테이블스페이스에 저장, 물리적으로는 테이블스페이스와 연관된 데이터 파일에 저장
- 투명성 보장
*투명성 : 사실의 존재 여부를 염두에 두지 않아도 되는 성질
▶ 087 트랜잭션 분석 / CRUD 분석
트랜잭션(Transaction)
DB의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위, 일련의 연산
- DB 시스템에서 병형 제어 및 회복 작업 시 처리되는 작업의 논리적 단위
트랜잭션의 특성 / 종류, 의미 알기
무결성을 보장하기 위해 DBMS의 트랜잭션이 가져야 할 특성
Atomicity(원자성) | 모든 명령은 반드시 완벽히 수행되어야 하며, 오류가 하나라도 발생하면 트랜잭션 전부가 취소 |
Consistency(일관성) | 실행을 성공적으로 완료하면 언제나 일관성 있는 DB 상태로 변환 |
Isolation(독립성, 고립성) | 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없음 |
Durability(영속성, 지속성) | 성공적으로 완료된 트랜잭션의 결과는 영구정으로 반영 |
트랜잭션 분석
CRUD 매트릭스를 이용해 트랜잭션 분석
- 업무 개발 담당자가 수행
- 프로세스가 과도하게 접근하는 테이블을 확인해 분산을 통한 성능 향상 가능
트랜잭션 분석서
단위 프로세스와 CURD 매트릭스 이용해 작성
- 구성요소에는 단위 프로세스, CRUD연산, 테이블명, 컬럼명, 테이블 참조 회수, 트랜잭션 수, 발생 주기 등이 있다.
CRUD(Create Read Update Delete) 분석
데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD연산에 대해 CRUD 매트릭스를 작성하여 분석
- 테이블에 저장되는 데이터 양 유추 가능
- 트랜잭션의 부하가 집중되는 DB 채널을 파악하고 분산, 오류 방지 가능
CRUD 매트릭스
행(ROW)에는 프로세스를, 열(Column)에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하는 업무 프로세스와 데이터 간 상관 분석표
- 우선순위 : C > D > U > R