Notice
Recent Posts
Recent Comments
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

Chimy's Program

정보처리기사 필기 - 데이터베이스 구축 : 물리 데이터베이스 설계 본문

BASE

정보처리기사 필기 - 데이터베이스 구축 : 물리 데이터베이스 설계

chimy 2020. 5. 31. 23:36

정보처리기사 필기 - 데이터베이스 구축 : 물리 데이터베이스 설계

 

사전 조사 분석

 

ⓞ 물리 데이터베이스 설계


논리적 데이터베이스를 디스크 등 물리적 저장장치에 저장할 수 있는 물리적 구조의 데이터로 변환하는 과정


 데이터 명명 규칙 파악

 

  • 물리 데이터 모델에 적용해야 하는 규칙으로 물리데이터 모델의 설계 전에 파악
  • 데이터 표준화 및 논리 데이터베이스 설계의 결과물 등을 통해 파악
  • 데이터 명명 규칙을 통해 중복 구축 등을 방지
  • 명명 규칙을 파악하려면 도메인과 데이터 사전에 대한 지식이 필요

 
 시스템 자원 파악


데이터베이스 설치에 영향을 미칠 수 있는 물리적인 요소, 사전에 미리 파악
시스템 자원 : 하드웨어 자원, 운영체제 및 DBMS 버전, DBMS 파라미터(Parameter)정보


 데이터베이스 관리 요소 파악


데이터베이스 운영과 관리 요소

데이터베이스 시스템의 환경에 따라 달라질 수 있으므로 미리 파악
데이터베이스 시스템 조사 분석서 작성
데이터베이스 구조, 이중화 구성, 분산 데이터베이스, 접근 제어/접근 통제, DB암호화 등의 범위와 특성 파악

 

 

데이터베이스 저장 공간 설계 

 

 테이블(Table) 

 

  • 데이터베이스의 가장 기본적인 객체
  • 행과 열로 구성
  • 데이터베이스의 모든 데이터는 테이블에 저장


 일반 테이블 

 

  • 현재 사용되는 대부분의 DBMS에서 표준 테이블로 사용되는 테이블 형태 


 클러스터드 인덱스 테이블 

 

  • 기본키나 인덱스키의 순서에 따라 데이터가 저장되는 테이블 


 파티셔닝 테이블 

 

  • 대용량의 테이블을 작은 논리적 단위인 파티션으로 나눈 테이블 

 

 외부 테이블 

 

  • 데이터베이스에서 일반 테이블처럼 이용할 수 있는 외부 파일
  • 데이터베이스 내에 객체로 존재 


 임시 테이블 

 

  • 트랜잭션이나 세션별로 데이터를 저장하고 처리할 수 있는 테이블 


 컬럼 

 

  • 테이블의 열을 구성하는 요소
  • 데이터 타입, 길이 등으로 정의
  • 참조 관계인 컬럼들은 데이터 타입과 길이가 일치해야 한다
  • 데이터 타입이나 길이가 같지 않은 경우 DBMS 내부적으로 변환 후 비교

 

 테이블스페이스 

 

  • 테이블이 저장되는 논리적인 영역
  • 하나의 테이블스페이스에 하나 또는 그 이상의 테이블을 저장 가능

 

 

트랜잭션 분석/CRUD 분석

 

  • 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
  • 한꺼번에 모두 수행되어야 할 일련의 연산

 

 트랜잭션의 특성(ACID)

 

Atomicity(원자성) : 모두 반영되도록 완료/전혀 반영되지 않도록 복구 
Consistency(일관성) : 트랜잭션의 수행 전과 수행 완료 후의 상태가 같아야 함
Isolation(독립성, 격리성, 순차성) : 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없음
Durability(영속성, 지속성) : 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영

 

 CRUD 분석 

 

CRUD : 생성(Create), 읽기(Read), 갱신(Udate), 삭제(Delete)의 앞 글자만 모아 만든 용어 

CRUD 분석 : 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 CRUD 매트릭스를 작성하여 분석

 

 CRUD 매트릭스 

 

  • 2차원 형태의 표
  • 행에는 프로세스, 열에는 테이블
  • 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시
  • 업무 프로세스와 데이터 간 상관 분석
  • 우선순위 : C>D>U>R

 

 트랜잭션 분석

 

  • 테이블에 발생하는 트랜잭션 양을 분석하여 테이블에 저장되는 데이터의 양을 유추
  • DB 용량을 산정하고 DB 구조를 최적화

 

 트랜잭션 분석서 

 

  • 단위 프로세서와 CRUD 매트릭스를 이용하여 작성 

 

트랜잭션 분석서 구성 요소 

 

  • 단위 프로세스, CRUD 연산
  • 테이블 명, 컬럼 명, 테이블 참조 횟수, 트랜잭션 수, 발생 주기 

 

 

인덱스 설계 

 

데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조 
데이터가 저장된 물리적 구조와 밀접한 관계
인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행 가능
레코드의 삽입과 삭제가 수시로 일어나는 경우 인덱스의 개수를 최소로 하는 것이 효율적
클러스터드(Clustered) 인덱스 : 레코드의 물리적 순서가 인덱스의 엔트리 순서와 일치하게 유지되도록 구성

 인덱스의 종류 

 

① 트리 기반 인덱스 : 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는 것 

  1. B 트리 인덱스 : 일반적으로 사용되는 인덱스 방식 
  2. B+ 트리 인덱스 : B 트리의 변형, 인덱스 세트(Index Set), 순차 세트 

② 비트맵 인덱스 : 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용

③ 함수 기반 인덱스 : 컬럼의 값 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용

④ 비트맵 조인 인덱스 : 다수의 조인된 객체로 구성된 인덱스 

⑤ 도메인 인덱스 : 개발자가 필요한 인덱스를 직접 만들어 사용하는 것 

 

 인덱스 설계 

 

  • 분명하게 드러난 컬럼에 대해 기본적인 인덱스를 먼저 저장한 후 
  • 개발 단계에서 필요한 인덱스의 설계를 반복적으로 진행
  • 인덱스 대상 테이블 선정 기준 : MULTI BLOCK READ 수에 따라 판단 
  • 인덱스 대상 컬럼 선정 기준 : 인덱스 컬럼의 분포도가 10~15% 이내인 컬럼

 

 인덱스 설계 시 고려사항

 

  • 새로 추가되는 인덱스는 기존 인덱스 경로에 영향을 미칠 수 있다. 
  • 인덱스와 테이블데이터 공간이 서로 분리되도록 설계

 

 

뷰(View)의 개요 

 

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여줌
  • 하나 이상의 기본 테이블로부터 유도된 가상 테이블
  • 물리적으로 존재x, 사용자에게 있는 것처럼 보여줌
  • 임시적 작업에 사용

 

 뷰(View)의 특징 

 

  • 원본에서 유도된 테이블
  • 기본 테이블과 같은 구조, 조작어
  • 물리적으로 구현x
  • 데이터의 논리적 독립성을 제공
  • 관리 용이
  • 명령문 간단
  • 뷰에서 또 다른 뷰 생성 가능
  • 기본 테이블, 뷰 삭제 시 참조된 뷰도 삭제됨

 

 뷰(View)의 장점 

 

  • 사용자의 데이터 관리 간단
  • 접근 제어를 통한 자동 보안이 제공
  • 논리적 데이터 독립성 제공

 

 뷰(View)의 단점 

 

  • 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약

 

 뷰(View) 설계 순서 

 

  1. 대상 테이블을 선정
  2. 대상 컬럼을 선정
  3. 정의서를 작성

 

 뷰 설계 시 고려 사항 

 

  • 반복적으로 조인을 설정하여 사용하는 테이블을 뷰로 생성
  • 동일한 조건절을 사용하는 테이블을 뷰로 생성 
  • 업무에 따라 사용하고자 하는 데이터를 다양한 관점에서 제시
  • 보안유지

 

 

클러스터 설계 

 

 클러스터(Cluster)의 개요 

 

  • 데이터 저장 시 데이터 액세스 효율을 향상
  • 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법

 

 클러스터(Cluster)의 특징 

 

  • 데이터 조회 속도는 향상
  • 데이터 입력, 수정, 삭제에 대한 성능은 저하
  • 파티셔닝된 테이블에는 클러스터링 불가능
  • 데이터 분포도가 넓은 테이블을 클러스터링 시 저장공간 절약

 

 클러스터 대상 테이블 

 

  • 분포도가 넓은 테이블
  • 대량의 범위를 자주 조회하는 테이블
  • 입력/수정/삭제가 자주 발생하지 않는 테이블
  • 자주 조인되어 사용되는 테이블 

 

 

파티션(Patition) 설계 

 

 파티션의 개요

 

  • 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
  • 별도 공간에 저장
  • 데이터 처리는 테이블 단위/데이터 저장은 파티션 단위

 

 파티션의 장점 

 

  • 파티션별로 데이터가 분산되어 저장되므로 디스크의 성능이 향상
  • 파티션별로 백업 및 복구를 수행하므로 속도가 빠름
  • 시스템 장애 시 데이터 손상 정도를 최소화
  • 데이터 가용성 향상

 

 파티션의 단점 

 

  • 세심한 관리가 요구
  • 테이블간 조인에 대한 비용이 증가
  • 용량이 작은 테이블에 파티션 시 성능 저하

 

 파티션(Patition)의 종류 

 

  1. 범위 분할(Range Partitioning) : 지정된 열의 값에 따라 분할
  2. 해시 분할(Hash Partitioning) : hash함수의 결과값에 따라 분할 ex.고객번호, 주민번호
  3. 조합 분할(Composite Partitioning) : 범위분할 후 해시분할 적용

 

 인덱스 파티션 

 

⑴ 파티션된 테이블의 종속 여부

 

Local Partitioned Index : 테이블 파티션과 인덱스 파티션이 1:1 대응

Global Partitioned Index : 테이블 파티션과 인덱스 파티션이 서로 독립적

Local Partitioned Index 가 Global Partitioned Index 에 비해 데이터 관리가 쉽다. 

 

⑵ 인덱스 파티션키 컬럼의 위치

 

Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫번째 컬럼이 같다

Non-Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫번째 컬럼이 다르다

 

 

데이터베이스 용량 설계 

 

- 데이터가 저장될 공간을 정의

 

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

 

  • 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용
  • 확장성 및 가용성을 높임
  • 디스크 입출력 부하 분산
  • 채널의 병목현상 감소
  • 입출력을 최소화함으로 접근성을 높임
  • DB에 생성되는 익스턴트 최소화

 

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

 

  1. 기초 자료를 수집하여 용량을 분석 ex. 예상건수, row길이, 보존기간, 증가율
  2. 오브젝트별 용량을 산정 ex. 테이블, 인덱스
  3. 테이블, 인덱스의 테이블 스페이스 용량 산정
  4. DB의 모든 데이터 용량, 시스템 용량 산정

 

 

분산 데이터베이스 설계 

 

 분산 데이터베이스 정의 

 

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

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

 

  1. 분산 처리기
  2. 분산 데이터베이스
  3. 통신 네트워크 

 

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

 

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

 

 분산 데이터베이스의 목표 

 

위치 투명성(Location Transparency) : 사용자가 위치를 알 필요x

중복 투명성(Rrplication Transparency) : 중복되어 있더라도 1개의 존재로 인식

병행 투명성(Concurrency Transparency) : 동시에 사용돼도 문제x

장애 투명성(Failure Transparency) : 장애 발생 시에도 정확하게 처리

 

 분산 데이터베이스 장점 

 

  • 지역 자치성
  • 시스템 성능이 향상
  • 효율성과 융통성
  • 자료에 대한 공유성 향상
  • 분산제어 가능
  • 장애가 전체 시스템에 영향을 끼치지 않음
  • 점진적 확장 용이

 

 분산 데이터베이스 단점 

 

  • 소프트웨어 개발 비용 증가
  • 소프트웨어 설계의 어려움
  • 처리비용 증가
  • 잠재적 오류가 증가


 분산 데이터베이스 설계 

 

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


 테이블 위치 분산 

 

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

 
 분할(Fragment) 

 

  • 테이블의 데이터를 분할하여 분산시키는 것 
  • 분할 규칙 : 완전성(Completeness), 재구성(Reconstruction), 상호 중첩 배제(Disjointness) 


 할당(Allocation) 

 

  • 동일한 분할을 여러 개의 서버에 생성하는 분산 방법 

 

 

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

 

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

 

  • 동일한 데이터베이스를 복제하여 관리
  • 여러 데이터 베이스를 동시에 관리하므로 연결된 다른 데이터베이스에도 동일 적용
  • 원본에 문제 발생 시 복제본으로 빠른 회복 가능
  • 데이터베이스 부하 감소

 

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

 

  1. Eager 기법 : 데이터의 변경 발생 즉시 동기화
  2. Lazy 기법 : 트랜잭션 종료 시 동기화

 

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

 

  1. 활동-대기(Active-Standby) 방법
  2. 활동-활동(Active-Active) 방법

 

 클러스터링(Clustering) 

 

  • 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술 
  • 고가용성 클러스터링 : 하나의 서버에 장애 발생 시 다른 서버에서 서비스 제공
  • 병렬처리 클러스터링 : 하나의 작업을 여러 개의 서버가 분산 처리

 

 

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

 

데이터베이스 보안

 

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

 

 암호화(Encryption) 

 

⑴ 개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식, 대칭키 암호화 방식

 

  • 동일한 키로 데이터를 암호화하고 복호화

 

⑵ 공개키 암호 방식(Pubic Key Encryption) = 비대칭키 암호화 방식

 

  • 서로 다른 키로 데이터를 암호화하고 복호화한다. 

 

 

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

 

- 객체와 이를 사용하려는 주체 사이의 정보 흐름을 제한

 

접근통제 특징

 

  • 불법적인 접근,파괴 예방
  • 비인가된 사용자 접근통제, 접근요구자 식별
  • 접근 요구의 정당성 확인
  • 보안정책 승인/거부
  • 접근통제의 3요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델 

 

접근통제 종류

 

  1. 임의 접근통제(DAC) : 사용자의 신원에 따라 접근권한 부여, 주체가 권한 지정
  2. 강제 접근통제(MAC) : 객체/주체의 등급에 따라 접근권한 부여, 제3자가 권한 지정

 

 접근통제 정책 

 

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

⑴ 신분기반 정책 : 주체의 신분에 따라 통제

 

ex. IBP(최소권한정책) : 단일주체 1객체 권한부여, GBP(복수권한정책) : 복수주체 1객체

 

⑵ 규칙기반 정책 : 주체가 갖는 권한에 따라 객체 접근 통제

 

ex. MLP : 사용자/객체별 분류, CBP : 집단별 분류

 

⑶ 역할기반 정책 :  GBP의 변형, 주체의 역할에 따라 통제

 

ex. 인사담당자

 

 접근통제 매커니즘 

 

  • 정의된 접근통제 정책을 구현하는 기술적인 방법
  • 접근통제 목록, 능력 리스트, 보안 등급, 패스워드, 암호화 

 

 접근통제 보안 모델 

 

  • 보안 정책을 구현하기 위한 정형화된 모델
  • 기밀성 모델 : 군사적 목적, 기밀성 보장, 특수환경에서 사용
  • 무결성 모델 : 불법적인 변경 방지, 일관성 유지
  • 접근통제 모델 : 접근 통제 행렬

 

 접근통제 조건 

 

  • 값 종속 통제 : 객체에 저장된 값에 따라 접근제어
  • 다중 사용자 통제 : 동시에 접근 요구 시 사용
  • 컨텍스트 기반 통제 : 시간, 네트워크 주소, 접근경로, 인증수준에 따라 접근제어

 

 감사 추적 

 

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

 

 

데이터베이스 백업 

 

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

 

 데이터베이스 장애 유형 

 

  • 사용자 실수
  • 미디어 장애
  • 구문 장애 : 프로그램 상 오류, 사용공간 부족
  • 사용자 프로세스 장애 : 비정상적 종료, 네트워크 문제
  • 인스턴스 장애 : HW장애, 정전, 시스템 파일 파손

 

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

 

  1. NO-UNDO/REDO : 기록한 내용 취소x, 다시 실행
  2. UNDO/NO-REDO : 기록한 내용 취소, 다시 실행x
  3. UNDO/REDO : 기록한 내용 취소, 다시 실행
  4. NO-UNDO/NO-REDO : 기록한 내용 취소x, 다시 실행x

 

 백업 종류 

 

  • 물리 백업 : OS 이용, DB파일 백업, 빠름, 완전 복구가능, 로그파일 백업x 시 백업시점까지 복구
  • 논리 백업 : DBMS유틸리티 처리, 논리적 객체 백업, 느림, 백업시점까지 복구

 

 

스토리지(Storage)

 

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

 

 DAS(Direct Attached Storage) 

 

  • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식 
  • 빠른 속도, 쉬운 설치, 저렴한 비용
  • 다른 서버에서 접근/공유x
  • 확장성/유연성↓

 

 NAS(Network Attached Storage) 

 

  • 서버와 저장장치를 네트워크를 통해 연결하는 방식 
  • 다른 서버에서 접근 가능
  • 확장성/유연성
  • 접속증가 시 성능 저하

 

 SAN(Storage Area Network) 

 

  • 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식 
  • DAS+NAS 혼합방식
  • 처음 설치 시 별도 네트워크 구축, 비용 증가
  • 기존 시스템인 경우 장비 업그레이드 필요

 

 

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

 

논리 데이터 모델 엔티티 속성 주식별자 외부식별자
물리 데이터 모델 테이블 컬럼 기본키 외래키

 

 테이블(Table) 

 

  • 데이터를 저장하는 데이터베이스의 가장 기본적인 오브젝트
  • 로우(Row), 컬럼(Column), 기본키(Primary key), 외래키(Foreign key)

 

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

 

  • 논리 데이터 모델에서 정의된 엔티티를 물리 데이터 모델의 테이블로 변환
  • 엔티티는 주로 한글명 사용 테이블은 영문명 사용

 

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

 

  • 물리 데이터 모델을 설계할 때는 슈퍼타입/서브타입을 테이블로 변환
  • 슈퍼타입 기준 테이블 변환 : 서브타입을 슈퍼타입에 통합
  • 서브타입 기준 테이블 변환 : 슈퍼타입을 각 서브타입에 추가
  • 개별타입 기준 테이블 변환 : 각각을 개별 테이블로 변환

 

 속성을 컬럼으로 변환 

 

  • 일반 속성 변환, Primary UID를 기본키로 변환 
  • Primary UID(관계의 UID Bar)를 기본키로 변환 
  • Secondary(Alternate) UID를 유니크키로 변환 

 

 관계를 외래키로 변환 

 

  • 1:1 관계
  • 1:M 관계
  • N:M 관계 

 

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

 

 데이터 타입 선택 

 

  • 문자 타입
  • 숫자 타입
  • 날짜 타입 

 

 

물리 데이터 모델 품질 검토 

 

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

 

 물리 데이터 모델 품질 검토의 목적

 

  • 데이터베이스의 성능 향상
  • 오류 예방

 

 물리 데이터 모델 품질 기준 

 

  • 정확성, 완전성, 준거성, 최신성, 일관성, 활용성
  • 조직 혹은 업무 상황에 따라 가감하거나 변형하여 사용

 

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

 

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

 

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

 

  1. 데이터 품질 정책과 기준 확인
  2. 품질 특성에 따라 품질 기준 작성
  3. 품질 기준에 따라 체크리스트 작성
  4. 논리 데이터 모델과 물리 데이터 모델 비교
  5. 이해관계자가 품질 검토 수행
  6. 보고서 작성
Comments