[데이터베이스구축] 물리요소 조사 분석

thingzoo·2024년 2월 9일
0
post-thumbnail

물리 데이터베이스 설계

물리 데이터베이스 설계의 특징⭐️

  • 논리적 설계를 물리적 데이터 모델로 매핑
  • 데이터베이스 질의와 트랜잭션을 예상 빈도를 포함해 분석
  • 효율적인 데이터 접근을 위한 저장구조와 접근방법 고려
  • 응답시간, 저장공간의 효율화, 트랙잭션 처리량 등 고려
  • 특정 DBMS의 특성을 반영해 설계
  • 질의 성능 향상을 위해 인덱스 구조를 적절히 활용

물리 데이터베이스 설계 시 고려사항

  • 무결성, 일관성, 회복성, 보안, 효율성, 확장성

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

  • 개체(Entity)를 테이블(Table)로 변환
  • 속성(Attribute)을 컬럼(Column)으로 변환
  • UID를 기본키(PK)로 변환
  • 관계(Relationship)를 외래키(FK)로 변환
    • N:M 관계는 조인테이블로 변환
  • 컬럼 유형과 길이 정의
  • 반정규화 수행

스토리지

  • 대용량의 데이터를 저장하기 위한 서버와 저장장치의 연결 기술
  • 방대한 데이터를 효율적으로 관리, 유지 및 가공하는 저장장치

스토리지의 종류

DAS(Direct Attached Storage)

  • 직접 호스트에 연결된 저장방식
  • 장점: 빠른 속도, 확장 용이
  • 단점: 데이터 증가 시 운영 효율성 감소, 호스트 장애 시 접근 제한, 연결 제한

NAS(Networdk Attached Storage)

  • 네트워크를 통한 데이터 공유 저장방식
  • 장점: 네트워크 기반 고속 데이터 전송, 여러 장치 입출력 용이
  • 단점: 전송속도 제한, 데이터 캡슐화로 인한 지연, 네트워크 병목

SAN(Storage Area Network)

  • 별도의 고속 네트워크로 연결된 저장방식
  • 장점: 용량 및 성능 확장성, 가상화 환경 적합
  • 단점: 네트워크 복잡도, 비용 및 관리 복잡성 증가

RAID(Redundant Array Of Inexpensive Disks)

RAID의 개념

  • 복수의 HDD를 하나의 드라이브와 같이 인식하고 표기
  • HDD의 신뢰성을 높여줌
  • 데이터를 분산하여 쓸 수 잇어 고속화 기대 가능

RAID의 구성

  • 스트라이핑(Striping): 여러 디스크에 데이터 분산 저장
  • 미러링(Mirroring): 데이터 복제로 신뢰성 확보

분산 데이터베이스

  • 여러 곳에 분산된 데이터베이스를 하나의 논리적인 시스템처럼 사용할 수 있는 데이터베이스

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

  • 분산 처리기: 지리적으로 분산된 컴퓨터 시스템
  • 분산 데이터베이스: 지리적으로 분산된 데이터 베이스
  • 통신 네트워크: 분산 처리기들을 연결하여 하나의 시스템처럼 작동시키는 네트워크

분산 데이터베이스의 목표(투명성 조건)⭐️⭐️

(20.6,8)

  • 위치(Location) 투명성: 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근 가능
  • 중복(Replication) 투명성: 동일 데이터가 여러 곳에 중복되어있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고, 시스템은 자동으로 여러 자료에 대한 작업을 수행
  • 병행(Concurrency) 투명성: 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
  • 분할(Division) 투명성: 하나의 논리적 릴레이션이 여러 단편(Fragmentation)으로 분할되어, 각 단편의 사본이 여러 시스템에 저장되어있음을 인식할 필요가 없음
  • 장애(Failure) 투명성: 트랜잭션, DBMS, 네트워크, 컴퓨터 장애가 발생해도 트랜잭션을 정확하게 처리하고 데이터 무결성을 보장⭐️
  • 지역사상(Local Mapping) 투명성: 지역DBMS와 물리적DB 사이의 매핑 보장, 각 지역시스템 이름과 무관한 이름 사용가능

분산 데이터베이스의 장단점

  • 장점
    • 지역 자치성
    • 자료의 공유성 향상
    • 분산 제어 가능
    • 시스템 성능 향상
    • 중앙 컴퓨터의 장애가 전체시스템에 영향을 주지 않음
    • 신뢰성과 가용성 높음
    • 효용성과 융통성 높음
    • 점진적 시스템 용량 확장 용이
    • 빠른 응답속도와 통신 비용 절감
    • 시스템 규모의 적절한 조절
    • 각 지역 사용자의 요구수용 증대
  • 단점
    • 소프트웨어 개발 비용 증가
    • 잠재적 오류 증가
    • 처리 비용 증가
    • 설계, 관리의 복잡성과 비용 증가
    • 불규칙한 응답 속도
    • 통제의 어려움
    • 데이터 무결성에 대한 위협

분산 데이터베이스의 적용기법(설계방법)

  • 테이블 위치 분산: 테이블을 각기 다른 서버에 분산시켜 배치
  • 테이블 분할(Fragmentation) 분산: 테이블의 데이터를 분할하여 분산시키는 것
  • 테이블 복제(Replication) 분산: 동일한 테이블을 다른 지역이나 서버에 동시 생성해 관리
  • 테이블 요약(Summarization) 분산: 지역/서버 간 데이터가 비슷하지만 서로 다른 유형으로 존재

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

  • 장애에 대비하여 동일한 데이터베이스를 중복(복제)하여 관리하는 방식
  • 고가용성을 위한 정보시스템의 지속적인 정상 운영을 목표로 함
  • 고가용성(HA;High Availibility)
    • 정보 시스템이 지속적으로 정상 운영 가능한 성질
    • 주로 2개의 서버 연결하여 제공

데이터베이스 이중화의 유형(분류)

  • Eager 기법: 트랜잭션 발생 시, 모든 이중화 서버에 즉시 변경 사항 반영
  • Lazy 기법: 트랜잭션 완료 후, 변경사항을 새로운 트랜잭션에 작성해 각 데이터베이스에 전달

데이터베이스 이중화의 구성방법(종류)

  • 활성-대기(Active-Standby)
    • 하나는 활성 상태, 다른 하나는 대기 상태
    • 장애 발생 시, 대기중인 장비가 활성화되어 서비스 지속
    • 종류: Hot Standby, Warn Standby, Cold Standby
  • 활성-활성(Active-Actvie)
    • 모든 다중화된 장비가 활성화된 상태
    • 높은 처리율을 보이나 구성이 복잡
    • 구성 방법 및 관리가 쉬워 많은 기업에서 이용

데이터베이스 암호화

데이터베이스 암호화 알고리즘

  • 대칭키 알고리즘: 암호화와 복호화에 같은 암호키 사용
    • 예: ARIA 128/192/256, SEED
  • 비대칭키 알고리즘: 암호화와 복호화에 서로 다른 암호키 사용
    • 예: RSA, ECDSA
  • 해시 알고리즘: 해시함수 이용해 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 변경
    • 예: SHA 256/384/512, HAS-160, MD5

데이터베이스 암호화 기법⭐️

  • API 방식
    • 애플리케이션 레벨에서 암호 모듈을 적용하는 애플리케이션 수정 방식
    • 애플리케이션 서버에 암/복호화, 정책관리, 키 관리 부하 발생
  • Plug-In 방식
    • DB 레벨의 확장 프로시저 기능을 이용, DBMS에 Plug-In모듈로 동작하는 방식
    • DB 서버에 암/복호화, 정책관리, 키 관리 부하 발생
  • Hybrid 방식
    • API 방식과 Plug-In 방식을 결합한 방식
    • DB와 애플리케이션에서 부하 분산
  • TDE(Transparent Data Encryption) 방식
    • DBMS의 내장 암호화 기능을 이용하는 방식
    • 응용 프로그램에 대한 수정이 없고 인덱스의 경우 DBMS 자체 인덱스 기능과 연동 가능
    • DB 내부에서 암/복호 처리를 하는 방식
  • 파일암호화 방식
    • OS 레벨에서 제공되는 기능을 이용하는 방식
    • 데이터 및 비정형 데이터 암호화 적용
  • 하드웨어 방식
    • 외부에 별도의 하드웨어 설치

+) 데이터베이스 보안 유형
접근 제어, 허가규칙, 암호화, 흐름제어

profile
공부한 내용은 바로바로 기록하자!

0개의 댓글