물리 데이터베이스 설계
물리 데이터베이스 설계의 특징⭐️
- 논리적 설계를 물리적 데이터 모델로 매핑
- 데이터베이스 질의와 트랜잭션을 예상 빈도를 포함해 분석
- 효율적인 데이터 접근을 위한 저장구조와 접근방법 고려
- 응답시간, 저장공간의 효율화, 트랙잭션 처리량 등 고려
- 특정 DBMS의 특성을 반영해 설계
- 질의 성능 향상을 위해 인덱스 구조를 적절히 활용
물리 데이터베이스 설계 시 고려사항
- 무결성, 일관성, 회복성, 보안, 효율성, 확장성
논리 - 물리 데이터 모델 변환
- 개체(Entity)를 테이블(Table)로 변환
- 속성(Attribute)을 컬럼(Column)으로 변환
- UID를 기본키(PK)로 변환
- 관계(Relationship)를 외래키(FK)로 변환
- 컬럼 유형과 길이 정의
- 반정규화 수행
스토리지
- 대용량의 데이터를 저장하기 위한 서버와 저장장치의 연결 기술
- 방대한 데이터를 효율적으로 관리, 유지 및 가공하는 저장장치
스토리지의 종류
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
- 비대칭키 알고리즘: 암호화와 복호화에 서로 다른 암호키 사용
- 해시 알고리즘: 해시함수 이용해 임의의 길이를 가진 데이터를 고정된 길이의 데이터로 변경
- 예: 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 레벨에서 제공되는 기능을 이용하는 방식
- 데이터 및 비정형 데이터 암호화 적용
- 하드웨어 방식
+) 데이터베이스 보안 유형
접근 제어, 허가규칙, 암호화, 흐름제어