데이터베이스 구축 2. 물리 데이터베이스 설계

박유현·2020년 5월 22일
0

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

  • 논리적 구조로 표현된 데이터베이스를 디스크 등의 물리적 저장장치에 저장 가능한 구조로 변환하는 과정
    - 기본적 데이터 단위: 저장 레코드(Stored Record)
    - 꼭 포함되는 설계: 저장 레코드의 양식, 레코드 집중(Record Clustering)의 분석, 접근 경로 등
    - 파일과의 차이: 어려 타입의 저장 레코드 집합
    - 데이터베이스 시스템 성능에 큰 영향 미침
    - 설계 전 파악 사항: 기존 시스템 분석해서 데이터 명명 규칙, 시스템 자원, 데이터베이스 관리 요소
    - 설계 시 고려 사항
    • 인덱스 구조
    • 레코드 크기
    • 파일에 있는 레코드 개수
    • 파일에 대한 트랜잭션(Transaction) 갱신 및 참조 성향
    • 성능 향상 위한 개념 스키마(Conceptual Schema) 변경 여부
    • 잦은 질의와 트랜잭션의 수행속도 높이는 방안
    • 시스템 운용 시 파일 크기 변화 가능성
  • 물리적 설계 옵션
    - 반응 시간(Response Time)
    - 공간 활용도(Space Utilization)
    - 트랜잭션 처리량(Transaction Throughput)

2. 트랜잭션

  • Transaction
    - 데이터베이스 상태 변화를 위한 하나의 논리적 기능을 수행하는 작업 단위 혹은 한번에 수행되는 일련의 연산
    • 데이터베이스 시스템의 병행 제어와 회복 작업 시 처리되는 작업의 논리적 단위로 사용
  • 특성: 데이터 무결성(Integrity) 보장 위해 DBMS의 트랜잭션이 가져야 함
    - Atomicity(원자성): 연산이 데이터베이스에 모두 반영되도록 완료(Commit)되거나 전혀 반영 안 되도록 복구(Rollback)되어야
    - Consistency(일관성)
    - Isolation(독립성, 격리성, 순차성)
    - Durability(영속성, 지속성)

3. 인덱스

  • Index
    - <키 값, 포인터> 쌍으로 구성되어 데이터 레코드에 빠르게 접근하는 데이터 구조
    • 데이터가 저장된 물리적 구조와 밀접 관련(레코드가 저장된 물리적 구조에 접근 방법 제공)
    • 인덱스 없으면 TABLE SCAN(특정 값 찾기 위해 모든 데이터 페이지 확인) 발생
    • 기본 인덱스: 기본키 / 보조 인덱스: 기본 인덱스 아님
    • 클러스터드(Clustered) 인덱스: 레코드의 물리적 순서가 인덱스의 엔트리 순서와 일치
    • 분류
      • 트리 기반 인덱스
      • 비트맵 인덱스
      • 함수 기반 인덱스
      • 비트맵 조인 인덱스
      • 도메인 인덱스

4. 뷰

  • View
    - 접근 허용된 자료만 사용자에게 제한적으로 보이기 위해 하나 이상의 테이블로부터 유도한 가상 테이블
    • 물리적으로 존재 안 하나 사용자에게는 있는 것으로 간주
    • 임시 작업(데이터 보정, 처리 과정 시험 등) 위함
    • 조인문 사용 최소화하여 사용상 편의 최대화
  • 특징
    - 뷰로 데이터 접근하면 나타나지 않은 데이터 안전 보호 가능
    - 기본 테이블의 기본키 포함한 열(속성) 집합으로 구성해야 삽입/삭제/갱신 가능
    - 다른 뷰의 정의에 기초 될 수 있음
    • 장점
      • 논리적 데이터 독립성 제공
      • 동시에 다수 사용자의 다른 응용/요구 지원
      • 데이터 관리 간단화
    • 단점
      • 독립적 인덱스 못가짐
      • 뷰의 정의 변경 불가
      • 연산에 제약 있음

5. 클러스터

  • Cluster
    - 데이터 저장 시 액세스 효율 높이기 위해 동일 성격의 데이터를 같은 블록에 (물리적) 저장
    • 클리스터링키(테이블의 행에 접근 시 기준이 되는 열)로 지정된 컬럼 값 순서대로 저장
    • 여러 테이블이 하나의 클러스터에 저장
  • 특징
    - 데이터 조회 속도 높이나 입력/수정/삭제 성능 저하
    - 데이터 분포도 넓을수록 유리(인덱스는 분포도 좁을 때 유리)
    - 저장 공간 절약(클러스터링키 열을 공유)
    - 대용량 처리 트랜잭션은 전체 테이블 스캔 자주 하므로 클러스터링에 부적합
    - 파티셔닝 되면 클러스터링 못함
    - 클러스터링된 테이블에 클러스터드 인덱스 생성해여 접근 성능 향상
    • 단일 테이블 클러스터링: 처리 범위 넓을 시
    • 다중 테이블 클러스터링: 조인 자주 발생할 때

6. 파티션

  • Partition
    - 대용량 테이블을 관리 쉽도록 작은 논리적 단위로 나눔
    • 중요 몇 테이블에만 집중 데이터 증가
    • 테이블 혹은 인덱스 파티션 시 파티션키 혹은 인덱스키에 따른 물리적 별도 데이터 저장
    • 애플리케이션이 테이블 단위로 데이터 처리해서 파티션 인식 못함)데이터는 파티션별 저장)
    • 장점
      • 데이터 액세스 범위 줄어 쿼리 성능 향상
      • 파티션별로 데이터 분산 저장되어 디스크 성능 향상
      • 파티션별 백업/복구 수행하여 빠름
      • 데이터 가용성 향상
      • 파티션 단위로 입/출력 분산
    • 단점
      • 하나의 테이블을 세분하므로 세심한 관리 요구
      • 테이블간 조인 비용 증가
      • 용량 작은 테이블 파티셔닝하면 성능 저하
  • 종류
    - 범위 분할(Range Partitioning)
    - 해시 분할(Hash Partitioning)
    - 조합 분할(Composite Partitioning)

7. 분산 데이터베이스

  • 논리적으로 하나의 시스템이지만 물리적으로 네트워크로 연결된 여러 컴퓨터 사이트(Site)에 분산된 데이터베이스
    - 데이터 처리/이용 많은 지역에 데이터베이스 두어 처리가 가능한 해당 지역에서 해결
    • 장점
      • 지역 자치성, 자료 공유성, 효용성, 융통성, 신뢰성, 가용성
      • 분산 제어
      • 시스템 성능 향상
      • 중앙 컴퓨터의 장애가 전체 시스템에 영향 무
      • 점진적 시스템 용량 확장 쉬움
    • 단점
      • DBMS가 수행할 기능 복잡
      • 설계 어려움
      • 소프트웨어 개발 비용 증가
      • 처리 비용 증가
      • 잠재적 오류 증가
  • 구성 요소
    - 분산 처리기
    - 분산 데이터베이스
    - 통신 네트워크
  • 설계 시 고려 사항
    - 작업부하(Work Load)의 노드별 분산
    - 지역의 자치성 보장
    - 데이터 일관성 정책
    - 사이트/회선 고장으로부터의 회복
    - 통신 네트워크로 원격 접근
  • 분산 데이터베이스 목표
    - 위치 투명성(Location Transparency)
    - 중복 투명성(Replication Transparency)
    - 병행 투명성(Concurrency Transparency)
    - 장애 투명성(Failure Transparency)

8. 접근통제

  • 데이터가 저장된 객체(테이블, 컬럼 등 데이터베이스 개체)와 주체 사이의 정보 흐름을 통제하여 데이터 보호
    - 기술
    • 임의 접근통제(DAC, Discretionary Access Control)
      • 사용자 신원에 따른 권한 부여
      • 통제 권한(지정/제어)이 주체에게 있음
      • SQL 명령어: GRANT, REVOKE
    • 강제 접근통제(MAC, Mandatory Access Control)
      • 주체와 객체의 등급 비교하여 권한 부여
      • 제3자가 권한 지정
      • 객체별 보안 / 사용자별 인가 등급 부여 가능
      • 보안 등급 높으면? 읽기/수정/등록 불가
        보안 등급 같으면? 읽기/수정/등록 가능
        보안 등급 낮으면? 읽기 가능

9. 스토리지

  • Storage
    - 단일 디스크로 처리 불가능한 대용량 데이터 저장을 위해 서버와 저장장치 연결 기술
    - 종류
    • DAS(Direct Attached Stroage)
      • 서버에 스토리지 직접 연결
      • 속도 빠름
      • 다른 서버에서 스토리지 접근 사용 불가
    • NAS(Network Attached Storage)
      • NAS Storage(파일 관리 기능 있음)가 네트워크 상에 독립적으로 연결
      • 서버가 자유롭게 스토리지에 접근하여 파일 공유
    • SAN(Storage Area Network)
      • 별도의 전용 스토리지 네트워크(파이버 채널 스위치로 서버와 스토리지가 연결) 구성
      • 서버가 저장장치와 파일을 자유롭게 공유

10. 이중화

  • Database Replication
    - 예기치 못한 시스템 오류로 인한 데이터베이스 서비스 중단을 막고 물리적 손상 발생 시 복구를 위해 동일 데이터베이스를 복제/관리
    • 데이터베이스의 부하 줄임
    • 손쉬운 백업 서버 운영

0개의 댓글