반응형

     정보

    • 업무명     : 정보처리기사 필기 : 제3과목 데이터베이스 (물리 데이터베이스 설계)

    • 작성자     : 박진만

    • 작성일     : 2021-03-03

    • 설   명      :

    • 수정이력 :

     

     

     내용

    [사전 조사 분석]

    • 물리 데이터베이스 설계

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

     

    • 데이터 명명 규칙 파악

      • 물리 데이터 모델에 적용해야 하는 규칙으로 물리데이터 모델의 설계 전에 파악

      • 데이터 표준화 및 논리 데이터베이스 설계의 결과물 등을 통해 파악

      • 데이터 명명 규칙을 통해 중복 구축 등을 방지

      • 명명 규칙을 파악하려면 도메인과 데이터 사전에 대한 지식이 필요

     

    • 시스템 자원 파악

      • 데이터베이스 설치에 영향을 미칠 수 있는 물리적인 요소들로, 사전에 미리 파악해야 한다.

      • 시스템 자원 : 하드웨어 자원, 운영체제 및 DBMS 버전, DBMS 파라미터(Parameter)정보

     

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

      • 데이터베이스 운영과 관리 요소로, 데이터베이스 시스템의 환경에 따라 달라질 수 있으 므로 미리 파악해야 한다.

      • 데이터베이스 시스템 조사 분석서 작성

      • 데이터베이스 구조, 이중화 구성, 분산 데이터베이스, 접근 제어/접근 통제, DB암호화 의 범위와 특성 파악

     

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

    • 테이블(Table)

      • 데이터베이스의 가장 기본적인 객체로 행과 열로 구성되어 있다.

      • 데이터베이스의 모든 데이터는 테이블에 저장된다.

     

    • 일반 테이블

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

     

    • 클러스터드 인덱스 테이블

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

     

    • 파티셔닝 테이블

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

     

    • 외부 테이블

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

     

    • 임시 테이블

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

     

    • 컬럼

      • 테이블의 열을 구성하는 요소로데이터 타입, 길이 등으로 정의된다.

      • 참조 관계인 컬럼들은 데이터 타입과 길이가 일치해야 한다.

     

    • 테이블스페이스

      • 테이블이 저장되는 논리적인 영역으로, 하나의 테이블스페이스에 하나 또는 그 이상의 테이블을 저장할 수 있다.

     

    [트랜잭션 분석/CRUD 분석]

    • 트랜잭션의 정의

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

     

    • 트랜잭션의 특성

      • Atomicity(원자성) : 모두 반영되도록 완료 또는 전현 반영되지 않도록 복구

      • Consistency(일관성) : 트랜잭션의 수행 전과 수행 완료 후의 상태가 같아야 한다.

      • Isolation(독립성, 격리성, 순차성) : 하나의 트랜잭션 실행 중에 다른 트랜잭션의 연산이 끼어들 수 없다.

      • Durability(영속성, 지속성) : 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.

     

    • CRUD 분석

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

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

     

    • CRUD 매트릭스

      • 2차원 형태의 표로서, 행에는 프로세스를, 열에는 테이블을, 행과 열이 만나는 위치에는 프로세스가 테이블에 발생시키는 변화를 표시하는 업무 프로세스와 데이터 간 상관 분석표이다.

     

    • 트랜잭션 분석

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

     

    • 트랜잭션 분석서

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

      • 구성 요소

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

     

    [인덱스 설계]

    • 인덱스(Index)의 개념

      • 데이터 레코드를 빠르게 접근하기 위해 <키 값, 포인터> 쌍으로 구성되는 데이터 구조

        • 데이터가 저장된 물리적 구조와 밀접한 관계가 있다.

        • 인덱스를 통해서 파일의 레코드에 대한 액세스를 빠르게 수행할 수 있다.

        • 레코드의 삽입과 삭제가 수시로 일어나는 경우에는 인덱스의 개수를 최소로 하는 것이 효율적이다.

        • 레코드의 물리적 순서가 인덱스의 엔트리 순서와 일치하게 유지되도록 구성되는 인덱스  클러스터드(Clustered) 인덱스라고 한다.

     

    • 트리 기반 인덱스

      • 인덱스를 저장하는 블록들이 트리 구조를 이루고 있는

        • B 트리 인덱스 : 일반적으로 사용되는 인덱스 방식

        • B+ 트리 인덱스 : B 트리의 변형, 인덱스 세트(Index Set), 순차 세트

     

    • 비트맵 인덱스

      • 인덱스 컬럼의 데이터를 Bit 값인 0 또는 1로 변환하여 인덱스 키로 사용하는 방법

     

    • 함수 기반 인덱스

      • 컬럼의 대신 컬럼에 특정 함수나 수식을 적용하여 산출된 값을 사용하는

     

    • 비트맵 조인 인덱스

      • 다수의 조인된 객체로 구성된 인덱스

     

    • 도메인 인덱스

      • 개발자가 필요한 인덱스를 직접 만들어 사용하는

     

    • 인덱스 설계

      • 분명하게 드러난 컬럼에 대해 기본적인 인덱스를 먼저 저장한 후 개발 단계에서 필요한  인덱스의 설계를 반복적으로 진행

     

    • 인덱스 대상 테이블 선정 기준

      • MULTI BLOCK READ 수에 따라 판단

     

    • 인덱스 대상 컬럼 선정 기준

      • 인덱스 컬럼의 분포도가 10~15% 이내인 컬럼

     

    • 인덱스 설계 고려사항

      • 새로 추가되는 인덱스는 기존 인덱스 경로에 영향을 미칠 수 있다.

     

    [뷰(View)의 설계]

    • 뷰(View)의 개요

      • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블  로부터 유도된 가상 테이블이다.

     

    • 뷰(View)의 특징

      • 물리적으로 구형되어 있지 않다. 데이터의 논리적 독립성을 제공할 수 있다.

     

    • 뷰(View)의 장점

      • 사용자의 데이터 관리를 간단하게 해준다. 접근 제어를 통한 자동 보안이 제공된다.

     

    • 뷰(View)의 단점

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

     

    • 뷰(View) 설계 순서

      • 대상 테이블을 선정한다. - 대상 컬럼을 선정한다. - 정의서를 작성한다.

     

    • 설계 고려 사항

      • 반복적으로 조인을 설정하여 사용하거나 동일한 조건절을 사용하는 테이블을 뷰로 생성한다.

     

    [클러스터 설계]

    • 클러스터(Cluster)의 개요

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

     

    • 클러스터(Cluster)의 특징

      • 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제에 대한 성능은 저하시킨다.

      • 파티셔닝된 테이블에는 클러스터링을 할 수 없다.

     

    • 클러스터 대상 테이블

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

     

    [파티션 설계]

    • 파티션(Patition)의 개요

      • 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것이다.

     

    • 파티션의 장점

      • 파티션별로 데이터가 분산되어 저장되므로 디스크의 성능이 향상된다.

      • 파티션별로 백업 및 복구를 수행하므로 속도가 빠르다.

      • 시스템 장애 데이터 손상 정도를 최소화할 있다.

     

    • 파티션의 단점

      • 세심한 관리가 요구된다, 테이블간 조인에 대한 비용이 증가한다.

     

    • 파티션(Patition)의 종류

      • 범위 분할(Range Partitioning), 해시분할(Hash Partitioning)

      • 조합 분할(Composite Partitioning)

     

    • 인덱스 파티션

      • 파티션된 테이블의 종속 여부에 따라

        • Local Partitioned Index. Global Partitioned Index.

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

      • 인덱스 파티션키 컬럼의 위치에 따라

        • Prefixed Partitioned Index. Non-Prefixed Partitioned Index.

     

    [데이터베이스 용량 설계]

    • 데이터베이스 용량 설계

      • 데이터가 저장될 공간을 정의하는 것이다

     

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

      • 용량을 정확히 산정하여 디스크의 저장 공간을 효과적으로 사용하고 확장성 및 가용성을  높인다.

     

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

      • 기초 자료를 수집하여 용량을 분석한다. - 오브젝트별 용량을 산정한다.

     

    [분산 데이터베이스 설계]

    • 분산 데이터베이스 정의

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

     

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

      • 분산 처리기, 분산 데이터베이스, 통신 네트워크

     

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

      • 작업부하의 노드별 분산 정책, 지역의 자치성 보장 정책, 데이터의 일관성 정책

     

    • 분산 데이터베이스의 목표

      • 위치 투명성(Location Transparency),  중복 투명성(Rrplication Transparency)

      • 병행 투명성(Concurrency Transparency), 장애 투명성(Failure Transparency)

     

    • 분산 데이터베이스 장·단점

      • 장점 : 지역 자치성이 높다, 시스템 성능이 향상된다, 효율성과 융통성이 높다.

      • 단점 : 소프트웨어 개발 비용이 증가한다, 잠재적 오류가 증가한다.

     

    • 분산 데이터베이스 설계

      • 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것이 목적

     

    • 테이블 위치 분산

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

     

    • 분할(Fragment)

      • 테이블의 데이터를 분할하여 분산시키는

      • 분할 규칙 : 완전성(Completeness), 재구성(Reconstruction), 상호 중첩 배제(Dis-  jointness)

     

    • 할당(Allocation)

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

     

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

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

      • 동일한 데이터베이스를 복제하여 관리하는 것이다.

     

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

      • Eager 기법 , Lazy 기법

     

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

      • 활동-대기(Active-Standby) 방법, 활동-활동(Active-Active) 방법

     

    • 클러스터링(Clustering)

      • 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술

     

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

    • 데이터베이스 보안의 개요

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

     

    • 암호화(Encryption)

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

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

      • 공개키 암호 방식(Pubic Key Encryption)

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

     

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

    • 접근통제

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

      • 임의 접근통제(DAC)

      • 강제 접근통제(MAC)

      • 접근통제의 3요소 : 접근통제 정책, 접근통제 메커니즘, 접근통제 보안모델

     

    • 접근통제 정책

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

      • 신분기반 정책, 규칙기반 정책, 역할기반 정책

     

    • 접근통제 매커니즘

      • 정의된 접근통제 정책을 구현하는 기술적인 방법.

      • 접근통제 목록 , 능력 리스트 , 보안 등급,  패스워드 , 암호화

     

    • 접근통제 보안 모델

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

     

    • 접근통제 조건

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

     

    • 감사 추적

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

     

    [데이터베이스 백업]

    • 데이터베이스 백업

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

     

    • 데이터베이스 장애 유형

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

     

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

      • NO-UNDO/REDO, UNDO/NO-REDO, UNDO/REDO, NO-UNDO/NO-REDO

     

    • 백업 종류

      • 물리 백업, 논리 백업

     

    [스토리지]

    • 스토리지(Storage)의 개요

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

     

    • DAS(Direct Attached Storage)

      • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식

     

    • NAS(Network Attached Storage)

      • 서버와 저장장치를 네트워크를 통해 연결하는 방식

     

    • SAN(Storage  Area Network)

      • 서버와 저장장치를 연결하는 전용 네트워크를 별도로 구성하는 방식

     

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

    • 테이블(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. 다음 중 접근통제의 3요소가 아닌것은 ?

      • 접근통제 정책

      • 접근통제 보안 모델

      • 접근통제 조건

      • 접근통제 메커니즘

     

    • 5. 다음 중 논리 데이터베이스에서 설계한 객체들을 물리 데이터베이스로 변환  하는 과정에 대한 설명으로 틀린것은?

      • 앤티티는 테이블로 변환한다.

      • 속성은 칼럼으로 변환한다.

      • 시별자는 외래키로 변환한다.

      • 테이블명은 영문으로 지정한다.

     

     참고 문헌

    [논문]

    • 없음

    [보고서]

    • 없음

    [URL]

    • 없음

     

     문의사항

    [기상학/프로그래밍 언어]

    • sangho.lee.1990@gmail.com

    [해양학/천문학/빅데이터]

    • saimang0804@gmail.com
     
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기