ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020 정보처리기사 필기 : 3과목 : 2장
    Study/정보처리기사 2020. 5. 27. 16:49
    728x90

    2장 물리 데이터베이스 설계


    1.     물리 데이터베이스 설계

    • 논리적 데이터베이스를 물리적 구조의 데이터로 변환하는 과정이다. 
    • 데이터 단위 : 저장 레코드 (Stored Record)
    • 응답 시간, 저장 공간의 효율화, 트랜잭션 처리도 등 전반적인 성능에 중대한 영향을 미친다. 
    • 반드시 포함되어야 할 것
      • 저장 레코드의 양식 설계
      • 레코드 집중의 분석 및 설계
      • 접근 경로 설계
    • 설계 시 고려 사항
      • 레코드의 크기
      • 파일에 대한 트랜잭션의 갱신, 참조 성향
      • 인덱스의 구조 
      • 개념 스키마의 변경 여부 검토

    2.     클러스터드 인덱스 테이블 (Clustered Index Table)

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

    3.     파티셔닝 테이블 (Partitioning Table)

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

    4.     트랜잭션 (Transaction)

    • 데이터베이스의 상태를 변환시키는, 하나의 논리적 기능을 수행하기 위한 작업의 단위
    • 한꺼번에 모두 수행되어야 할 일련의 연산들
    • CRUD 매트릭스를 기반으로 트랜잭션을 분석한다. 

     

     

    4-1.     트랜잭션의 무결성을 보장하기 위해 가져야 할 특성

    • 원자성 (Atomicity)
    • 일관성 (Consistency)
    • 독립성, 격리성, 순차성 (Isolation)
    • 영속성, 지속성 (Durability)

    5.     CRUD 분석 ★★★

    • Create, Read, Update, Delete를 의미한다. 
    • 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD 연산에 대해 분석하는 것. 
    • 스토리지의 규모를 예측할 수 있다. 
    • 외부 프로세스의 트랜잭션이 집중되는 채널을 파악하여, 분산할 수 있다. 
    • 우선순위 : C > D > U > R
    • 주로 검토해야 할 대상
      • 테이블 또는 프로세스에 C, R, U, D 아무 것도 적히지 않은
      • 테이블에 C, R이 없는 

    6.     인덱스 (Index) ★★★

    • 데이터 레코드를 빠르게 접근하기 위해, <키 값, 포인터> 쌍으로 구성되는 데이터
    • 인덱스는 데이터의 물리적 구조와 밀접한 관계가 있다. 
    • 인덱스 갯수를 최소로 하는 것이 좋다. 
    • 인덱스는, 프로젝트를 진행하며 계속 변한다. 
    • 인덱스가 없으면, 특정 값을 찾기 위해 Table Scan이 발생한다. 
    • 자동적으로 기본 인덱스가 생성된다. 
    • 인덱스를 위한 추가 공간이 필요하다. 
    • 인덱스테이블 데이터저장 공간이 분리되도록 설계한다.  

    7.     클러스터드 인덱스 (Clustered Index) ★★★

    • 인덱스 키의 순서와 데이터 정렬 순서가 같도록 유지하는 방식
    • 때문에, 검색하지 않아도 원하는 데이터를 빠르게 찾을 수 있다. 
    • 한 개의 릴레이션에 하나의 인덱스만 생성 가능

    8.     넌-클러스터드 인덱스 (Non-Clustered Index)

    • 인덱스 키의 순서와 데이터 정렬 순서가 다른 방식
    • 한 개의 릴레이션에 여러 개의 인덱스 생성 가능 

    9.     트리 기반 인덱스

    • 인덱스를 저장하는 블록들이 트리 구조를 이루고 있다. 
    • 종류
      • B 트리 인덱스 : 일반적 방식, 오름차순으로 저장됨
      • B+ 트리 인덱스

    10. 비트맵 인덱스

    • 0 또는 1로 변환하여 인덱스 키로 사용한다. 
    • 논리 연산이 가능하다. 
    • 분포도가 낮은 경우에 유리하다.  

    11. 함수 기반 인덱스

    • 특정 함수나 수식을 적용하여 산출된 값을 사용한다. 
    • 부하가 발생할 수 있다. 
    • 사용자 정의 함수일 경우, 시스템 함수를 사용할 때보다 부하가 더 크다.  

    12. 비트맵 조인 인덱스

    • 다수의 조인된 객체로 구성된 인덱스
    • 비트맵 조인 인덱스와 비트맵 인덱스는 물리적 구조가 동일하다.  

    13. 도메인 인덱스

    • 개발자가 필요한 인덱스를 직접 만들어 사용한다. 
    • 확장형 인덱스라고도 한다.  

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

    • 랜덤 액세스가 빈번한 테이블
    • 특정 범위나 특정 순서로 데이터 조회가 필요한 테이블
    • 다른 테이블과 순차적 조인이 발생되는 테이블

    15. 인덱스 설계 고려 사항

    • 새로 추가되는 인덱스는 기존의 액세스 경로에 영향을 미칠 수 있다. 
    • 인덱스가 지나치게 많으면, 오버헤드가 발생한다. 
    • 추가적인 공간이 필요하다. 
    • 인덱스와 테이블 데이터의 저장 공간이 분리되도록 설계한다. 

    16. 뷰 (View)  ★★★

    • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주는 ‘가상 테이블’이다. 
    • 데이터베이스 관리자가 기본 테이블에서 임의로 유도하여 만든 테이블
    • 물리적으로 존재하지 않는다. 
    • 데이터의 논리적 독립성을 제공할 수 있다. 
    • 관리가 용이하고, 명령어가 간단해진다. 
    • 삽입, 삭제, 갱신 연산을 하려면, 기본키를 포함한 속성 집합으로 뷰를 구성해야 한다는 제약이 있다. 
    • 검색 연산에는 제약이 없다. 
    • 뷰는 다른 뷰의 정의의 기초가 될 수 있다. 
    • 뷰를 삭제하면, 그 뷰를 기초로 정의한 다른 뷰는 자동으로 삭제된다. 
    • 독립적인 인덱스를 가질 수 없다. 
    • 뷰의 정의를 변경할 수 없다. 

     

     

    16-1. 뷰 설계 순서

    순서 방법
    1 대상 테이블을 선정한다. 
    2 대상 컬럼을 선정한다. 
    3 정의서를 작성한다. 

    17. 클러스터 (Cluster)  ★★★

    • 클러스터의 사전적 의미 : 무리를 이루다, 모이다.
    • 동일한 성격의 데이터를 동일한 블록에 저장하는 물리적 저장 방법이다. 
    • 클러스터링키로 지정된 열 값의 순서대로 저장된다. 
    • 여러 개의 테이블이 하나의 클러스터에 저장된다. 
    • 데이터 액세스 효율이 향상된다. 
    • 조회 속도가 향상된다. 
    • 접근 성능이 향상된다. 
    • 그러나, 입력, 수정, 삭제에 대한 성능은 저하된다. 
    • 클러스터링키 열을 공유하므로, 저장공간을 절약할 수 있다. 
    • 대용량을 처리하는 트랜잭션은, 클러스터링을 하지 않는 것이 좋다. 
    • 파티셔닝 된 테이블은 클러스터링이 불가능하다. 
    • 디스크의 I/O가 줄어든다.  

    18. 클러스터 종류

    • 단일 테이블 클러스터링 : 처리 범위가 넓을 경우
    • 다중 테이블 클러스터링 : 조인이 많이 발생하는 경우 

    19. 클러스터 대상 테이블의  조건 ★★

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

    20. 파티션 (Partition)  ★★★

    • 클러스터와는 반대되는 개념이다.
    • 대용량의 테이블이나 인덱스를, 작은 논리적 단위인 파티션으로 나누는 것. 
    • 성능 저하를 방지한다. 
    • 관리가 쉬워진다. 
    • 물리적으로 별도의 세그먼트(공간)에 데이터가 저장된다. 
    • 테이블 단위로 데이터 처리가 이뤄진다. 
    • 파티션 단위로 데이터 저장이 이뤄진다. 
    • 대용량 테이블에 유리하다. 
    • 테이블 간 조인에 대한 비용이 증가한다. 

    21. 파티션의 종류

    이름 설명
    범위 분할 열의 값을 기준으로 분할한다.  일별, 월별, 분기별 등
    해시 분할 해시 함수의 결과를 기준으로 분할한다. 

    데이터를 고르게 분산할 수 있다. 

    특정 데이터가 어디 있는지는 알 수 없다. 

    데이터가 고른 컬럼에 유용하다. 
    고객번호, 주민번호 등
    조합 분할 범위 분할 후, 파티션이 너무 크면 해시 함수를 적용하는 방식이다.   

    24. 인덱스 파티션  ★★★

    • 파티션된 테이블의 데이터를 관리하기 위해, 인덱스를 나눈 것. 
    종속 여부에 따라 Local Partitioned Index 1대1 대응으로 구성, 관리 쉬움
    Global Partitioned Index 독립적으로 구성, 관리 어려움
    컬럼 위치에 따라 Prefixed Partitioned Index  파티션키와 첫 번째 컬럼이 같다. 
    Non-Prefixed Partitioned Index 파티션키와 첫 번째 컬럼이 다르다.

     


    25. 분산 데이터베이스 ★★★

    • 논리적으로는 하나의 시스템에 속하고, 물리적으로는 네트워크를 통해 여러 개의 컴퓨터에 분산되어 있는 데이터베이스
    • 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않는다. 
    • 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써, 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 하는 데이터베이스 시스템이다. 
    • 잠재적 오류가 증가한다. 

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

    • 분산 처리기 : 자체적인 처리 능력을 가진다. 
    • 분산 데이터베이스 : 데이터베이스 그 자체
    • 통신 네트워크 : 통신망으로 연결하여, 하나의 논리적 시스템으로 한다.

    27. 분산 데이터베이스의 목표  ★★★

    • 위치 투명성 : 실제 위치를 알 필요 없이, 논리적 명칭만으로 접근 가능
    • 중복 투명성 : 동일 데이터가 여러 곳에 있어도, 사용자는 하나의 데이터만 존재하는 것처럼 사용
    • 병행 투명성 : 다수의 트랜잭션이 동시에 실현되어도, 결과는 영향을 받지 않는다.
    • 장애 투명성 : 장애에도 불구하고, 트랜잭션을 정확하게 처리한다. 

    28. 분산 데이터베이스의 설계 방법 

    • 테이블 위치 분산
    • 분할 (Fragmentation)
    • 할당 (Allocation)

    29. 테이블 위치 분산  ★★★

    • 테이블을 각기 다른 서버에 분산시켜 배치한다. 
    • 테이블의 구조를 변경하지 않는다.

    30. 분할 (Fragmentation)  ★★★

    • 테이블의 데이터를 분할하여 분산시키는 것
    • 분할 규칙
      • 완전성 (Completeness)
      • 재구성 (Reconstruction)
      • 상호 중첩 배제 (Dis-Jointness)
    • 분할 방법
      • 수평 분할
      • 수직 분할

    31. 할당 (Allocation)  ★★★

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

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

    • 손상 발생 시, 복구를 위해 데이터베이스를 복제하여 관리하는 것. 
    • 구성
      • 마스터 DB : 읽고, 쓰기가 가능
      • 슬레이브 DB : 읽기만 가능
    • 기법
      • Eager 기법 : 변경 내용이 즉시 적용된다. 
      • Lazy 기법 : 종료시, 변경 내용 전달. 
    • 구성 방법
      • 활동-대기 방법
      • 활동-활동 방법

    33. 클러스터링 (Clustering)

    • 두 대 이상의 서버를 하나의 서버처럼 운영하는 기술. 
    • 서버 이중화 및 공유 스토리지를 사용하여, 서버의 고가용성을 제공한다. 
    • 종류
      • 고가용성 클러스터링 (일반적인 방식)
      • 병렬 처리 클러스터링

    34. 개인키 암호 방식 

    • = 비밀키 암호 방식 
    • = 대칭 암호 방식 
    • = 단일키 암호화 기법
    • 동일한 키로 암호화하고 복호화한다. 
    • 사용 권한이 있는 사용자만 비밀키를 나누어 가진다. 
    • 종류 : DES, 전위 기법, 대체 기법, 대수 기법

    35. 공개키 암호 방식

    • = 비대칭 암호 방식
    • = 공중키 암호화 기법
    • 서로 다른 키로 암호화하고 복호화한다. 
    • 암호화 알고리즘과 암호화키는 공개해서 누구든 평문을 암호문으로 만들 수 있다. 
    • 해독 알고리즘과 해독키는 비밀키로 유지한다. 
    • 종류 : REA

    36. 접근통제  ★★★

    • 데이터가 저장된 객체와, 이를 사용하려는 주체 사이의 정보 흐름을 제한하는 것. 
    • 방식
      • 임의 접근통제 (DAC : Discretionary Access Control) : 신원에 따라 접근 권한을 부여한다. 
      • 강제 접근통제 (MAC : Mandatory Access Control) : 주체와 객체의 등급을 비교하여, 제 3자가 접근 권한을 부여한다. 
    • 접근통제의 3요소 
      • 접근통제 정책
      • 접근통제 메커니즘
      • 접근통제 보안모델

     


    37. 접근통제 정책  ★★★

    • 육하원칙에 따라 허용 여부를 정의하는 것. 
    • 종류
      • 신분 기반 정책 : IBP, GBP
      • 규칙 기반 정책 : MLP, CBP
      • 역할 기반 정책 : 인사 담당자, DBA

    38. 접근통제 메커니즘  ★★★

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

    39. 접근통제 보안모델  ★★★

    • 보안 정책을 구현하기 위한 정형화된 모델. 
    • 종류
      • 기밀성 모델 : 기밀성이 최우선시 된다. 
      • 무결성 모델 : 데이터의 일관성 유지를 중점으로 한다. 
      • 접근통제 모델 : 임의적인 접근통제를 관리한다. 

    40. 스토리지

    • 대용량 데이터를 저장하기 위해, 서버와 저장장치를 연결하는 기술. 
    • 종류 :DAS, NAS, SAN

    41. DAS (Direct Attached Storage)

    • 케이블로 직접 연결. 
    • 속도가 빠르고, 운영이 쉽다. 
    • 비용이 저렴하다. 
    • 다른 서버의 접근이 불가하고, 파일 공유가 불가하다. 
    • 유연하지 못하다. 
    • 저장 데이터가 적고, 공유가 필요 없을 때 유리하다.

    42. NAS (Network Attached Storage)

    • 네트워크를 통해 연결. 
    • 다른 서버의 접근이 가능하고, 파일 공유가 가능하다. 
    • 접속 증가 시, 성능이 저하될 수 있다.

    43. SAN (Storage Area Network)

    • DAS의 빠른 처리와, NAS의 파일 공유 장점을 합친 방식. 
    • 파이버 채널(FC : Fiber Channel) 스위치를 이용하여 네트워크를 구성한다. 
    • 비용이 많이 든다.

     

    728x90

    댓글

kxmjhwn@gmail.com