관리 메뉴

나구리의 개발공부기록

2장 - 물리 데이터베이스 설계 핵심 요약 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 3강 - 데이터베이스 구축

2장 - 물리 데이터베이스 설계 핵심 요약

소소한나구리 2024. 5. 5. 22:19

2024년도 시나공 필기 책 내용 정리


섹션10. 트랜잭션 분석/CRUD 분석

 

1. 트랜잭션(Transaction) 정의

 

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

2. 트랜잭션의 상태

 

  • 활동(Active): 트랜잭션이 실행 중인 상태
  • 실패(Failed): 트랜잭션 실행에 오류가 발생하여 중단된 상태
  • 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback 연산을 수행한 상태
  • 부분 완료(Partially Committed): 트랜잭션을 모두 성공적으로 실행한 후 Commit 연산이 실행되기 직전인 상태
  • 완료(Committed): 트랜잭셔을 모두 성공적으로 실행한 후Commit 연산을 실행한 후의 상태

3. 트랜잭션의 특성

 

  • Atomicity(원자성): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되든지 아니면 전혀 반영 되지 않도록 복구(Rollback)되어야 함
  • Consistency(일관성): 트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
  • Isolation(독립성): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
  • Durability(영속성): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

4. CRUD분석

 

  • 생성(Create), 읽기(Read), 갱신(Update), 삭제(Delete)의 앞글자만 모아서 만든 용어
  • 데이터베이스 테이블에 변화를 주는 트랜잭션의 CRUD연산에 대해 CRUD매트릭스를 작성하여 분석하는 것

섹션11. 인덱스 설계

 

1. 인덱스(Index)의 개요

 

  • 데이터 레코드를 빠르게 접근하기 위해<키 값, 포인터> 쌍으루 구성되는 데이터 구조
  • 인덱스를 통해서 파일의 레코드에 대한 엑세스를 빠르게 수행할 수 있음
  • 데이터 정의어(DDL)을 이용하여 사용자가 생성(CREATE), 변경(ALTER), 제거(DROP)할 수 있음

섹션12. 뷰(View) 설계

 

1.뷰(View)특징

 

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
  • 저장장치 내에 물리적으로 존재하지 않지만 사용자에게는 있는것 처럼 간주됨
  • 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능함
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용

섹션13. 파티션의 설계

 

1. 파티션의 종류

 

  • 범위 분할(Range Partitioning): 지정한 열의 값을 기준으로 범위를 지정하여 분할
  • 해시 분할(Hash Partitioning)
    • 해시 함수를 적용한 결과 값에 따라 데이터를 분할
    • 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로 데이터를 고르게 분산할 때 유용함
    • 특정 데이터가 어디에 있는지 판단할 수 없음
    • 고객번호, 주민번호 등과 같이 데이터가 고른컬럼에 효과적임
  • 조합 분할(Composite Partitioning)

    • 범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식
    • 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용
  • 목록 분할(List Partitioning): 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할
  • 라운드 로빈 분할(Round Robin Partitioning)

    • 레코드를 균일하게 분배하는 방식
    • 각 레코드가 순차적으로 분배되며 기본키가 필요 없음

섹션14. 분산 데이터베이스 설계

 

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

 

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

2. 분산 데이터베이스의 목표

 

  • 위치 투명성(Location Transparency): 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있음
  • 중복 투명성(Duplication Transparency): 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행함
  • 병행 투명성(Concurrency Transparency): 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
  • 장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션을 정확하게 처리함

3. 분산 데이터베이스의 장/단점

장점 단점
시스템 성능이 향상됨
중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음
점진적 시스템 용량 확장이 용이함
DBMS가 수행할 기능이 복잡함
데이터 베이스 설계가 어려움
소프트웨어 개발 비용이 증가됨

섹션15. 데이터베이스보안(암호화)

 

1. 암호화(Encryption)

 

  • 데이터를 보낼 때 송신자가 지정한 수신자 이외에는 그 내용을 알 수 없도록 평문을 암호문으로 변환하는 것
  • 암호화(Encryption): 암호화 되지 않은 평문을 정보보호를 위해 암호문으로 바꾸는 과정
  • 복호화(Decryption): 암호문을 원래의 평문으로 바꾸는 과정

섹션16. 데이터베이스보안(접근통제)

 

1. 접근통제 기술

 

  • 임의 접근통제(DAC; Discretionary Access Control): 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여
  • 강제 접근통제(MAC; Mandatory Access Control): 주체와 객체의 등급을 비교하여 접근 권한을 부여
  • 역할기반 접근통제(RBAC; Role Based Access Control): 사용자의 역할에 따라 접근 권한을 부여하는 방식

2. 벨 라파듈라 모델(Bell-Lapadula Model)

 

  • 군대의 보안 레벨처럼 정보의 기밀성에 따라 상하가 구분된 정보를 보호하기 위해 사용됨
  • 보안 취급자의 등급을 기준으로 읽기 권한과 쓰기 권한이 제한됨

섹션17. 데이터베이스 백업

 

1. 데이터베이스 백업

 

  • 전산 장비의 장애에 대비하여 데이터베이스에 저장된 데이터를 보호하고 복구하기 위한 작업
  • 치명적인 데이터 손실을 막기 위해서는 데이터베이스를 정기적으로 백업해야 함

섹션18. 스토리지

 

1. DAS(Direct Attached Strorage)

 

  • 서버와 저장장치를 전용 케이블로 직접 연결하는 방식
  • 초기 구축 비용 및 유지보수 비용이 저렴함
  • 확장성 및 유연성이 상대적으로 떨어짐
  • 저장 데이터가 적고 공유가 필요 없는 환경에 적합

2. SAN(Storage Area Network)

 

  • DAS의 빠른 처리와 NAS의 파일 공유 장접을 혼합한 방식
  • 서버와 저장 장치를 연결하는 전용 네트워크를 별도로 구성하는 방식
  • 광 채널(FC) 스위치를 이용하여 네트워크를 구성하며 서버나 저장장치를 광케이블로 연결하므로 처리 속도가 빠름