물리 데이터베이스 설계 - 물리요소조사 분석, DB 물리 속성 설계

2022. 6. 5. 16:45정처기(필기)/데이터베이스 구축

더보기

(1) 스토리지

1. 스토리지란

- 스토리지는 데이터를 보존하고 가능한 한 간편하게 액세스할 수 있도록 개발된 기술을 사용항 정보를 보존하는 저장장치

 

2. 스토리지 구성

[1] DAS(Direct Attached Storage)

- 데이터 서버와 외장형 저장장치를 전용 케이블로 직접 접속하는 방법

- 성능이 보장되며 안정성도 뛰어나다.

- 하지만, 저장장치에 따른 접속방법이 서로 달라 저장장치 공유에 문제가 있다.

 

[2] NAS(Network Attached Storage)

- NAS는 LAN을 통해 스토리지와 서버를 접속하는 방식

- 파일서버를 통한 파일 시스템을 공유한다.

- 데이터 저장 장치와 서버 간의 독립성을 유지할 수 있다.

- 하지만 데이터 접근 요청에 의한 파일 서버의 병목현상이 발생할 수 있고, 파일 서버 종료 시 스토리지 접근이 불가능하다.

 

[3] SAN(Storage Area Network)

- SAN은 서버가 광섬유 채널을 통하여 스토리지를 연결하는 기법

- DAS의 접속 한계성을 극복하여, n개의 서버가 m개의 저장장치 접속이 가능하다. 

- 이기종 서버 환경을 지원하지 않는다.

- 공유 가능한 파일 시스템과 데이터형식이 제한된다. 

 

 

더보기

(2) 분산 데이터베이스

1. 분산 데이터베이스의 개념

- 네트워크상에서 여러 컴퓨터에 물리적으로 분산되어 있지만, 하나의 데이터베이스처럼 논리적으로 통합된 데이터베이스

 

2. 분산 데이터베이스 특징

  • 분산 제어가 용이
  • 지역 자치성이 높음
  • 효용성과 융통성이 높음
  • 데이터베이스 복제 및 분산을 통해 사용자 측면에서는 향상된 성능을 제공
  • 장애로 인한 데이터 유실 복구에도 효과적
  • 시스템 확장이 용이
  • 복잡성이 증가
  • 성능 저하
  • 개발 비용의 증가

3. 분산 데이터베이스 구성

구성 설명
전역 스키마 데이터베이스가 마치 분산되어 있지 않은 것처럼 분산 데이터베이스에 포함된 모든 데이터를 정의
분할 스키마 분산을 위해 단편화된 구성에 대한 정의(일대다 관계)
할당 스키마 단편들의 위치 정보를 정의
유형에 따라 중복 또는 비중복인지가 결정됨
지역 스키마 물리적 이미지를 해당 지역 DBMS가 관리할 수 있도록 저장하기 위해 변환

 

 

4. 분산 데이터베이스의 투명성

  1. 위치 투명성 : 사용자나 응용 프로그램이 접근할 데이터의 물리적 위치를 알아야 할 필요가 없는 성질
  2. 복제 투명성 : 사용자나 응용 프로그램이 접근할 데이터가 물리적으로 여러 곳에 복제되어 있는지의 여부를 알 필요가 없는 성질
  3. 병행 투명성 : 여러 사용자나 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 발생하지 않는 성질(로킹, 타임 스탬프 순서 기법 이용)
  4. 장애 투명성 : 데이터베이스가 분산되어 있는 각 지역의 시스템이나 통신망에 이상이 생기더라도, 데이터의 무결성을 보존할 수 있는 성질(2PC)

 

더보기

(3) 데이터베이스 이중화 구성

1. 데이터베이스 이중화란

- 데이터베이스 이중화는 물리적으로 떨어져 있는 여러 개의 데이터베이스에 대하여 로컬 데이터베이스의 변경된 내용을 원격데이터베이스에 복제하고 관리하는 기술

- 사용자는 하나의 데이터베이스에 대해서만 작업을 수행한다.

- 여러 개의 데이터베이스를 동시에 관리할 수 있다. 

 

 

2. 데이터베이스 이중화 형태

  • 액티브-액티브 : 여러 노드가 동시에 가동되는 형태, 두 노드가 동시에 동작하므로 성능이 좋음
  • 액티브-스탠바이 : 하나의 노드만 가동하고, 나머지 노드들은 대기하는 형태

 

더보기

(4)데이터베이스 암호화

1. 데이터베이스 암호화란

- 데이터베이스에 저장된 데이터를 읽기 어려운 값으로 변환하여 권한이 없는 제3자가 볼 수 없도록 저장하는 기술

 

2. 데이터베이스 암호화 유형

  • 응용 프로그램 자체 암호화 : 암, 복호화 모듈이 API 라이브러리 형태로  각 애플리케이션 서버에 설치되어 해당 모듈을 호출하는 방식
  • DB 서버 암호화 : 암, 복호화 모듈이 DB서버에 설치되어 호출하는 방식
  • DBMS 자체 암호화 : DBMS 커널이 자체적으로 암, 복호화 기능을 수행하는 방식
  • DBMS 암호화 기능 호출 : 응용 프로그램에서 DB 서버의 DBMS 커널이 제공하는 암, 복호화 API를 호출하는 방식
  • 운영체제 암호화 : OS에서 발생하는 물리적인 입출력을 이용한 암, 복호화 방식

 

3. 데이터베이스 암호화 적용 방식

  1. 컬럼 암호화 : 테이블에서 특정 컬럼을 암호화하여 데이터를 보관하는 방식 
    1. API : 암호화 모듈을 애플리케이션 서버 내에 설치하고 이곳에서 암, 복호화를 수행하는 구조
    2. 플러그인 : 암복호화 모듈은 DB 서버 내에 설치하고 이곳에서 암복호화를 수행하는 구조
    3. 하이브리드 : 플러그인 방식의 단점인 배치 업무의 성능 저하를 보완하기 위해 API방식을 이용하는 구조
  2. 블록 암호화 : DB, OS 자체적으로 블록 단위로 암호화를 제공하는 방식
    1. TDE방식 : DBMS에 추가 기능으로 제공되는 암호화 기능을 이용하여 DB 내부에서 데이터 파일 저장 시 암호화
    2. 파일 암호화 : OS 상에서 확인이 가능한 개체의 파일을 암호화하는 방식

 

더보기

(5) 접근제어

1. 접근제어란

- 불법적인 데이터의 접근으로부터 데이터베이스를 보호하는 기법

 

2. 접근제어 구성요소

  • 접근제어 정책 : 사용자의 접근 모드 및 제한 조건 정의
  • 접근제어 메커니즘 : 시도된 접근 요청을 정의된 규칙에 대응시켜 검사함으로써 불법적 접근 방어
  • 접근제어 보안 모델 : 시스템의 보안 요구 명세로부터 출발하여 정확하여 간결한 기능적 모델 표현

 

3. 접근제어 정책

[1] 신원기반 접근제어 정책

- 주체나 또는 그들이 속해있는 그룹들의 신분에 근거하여 객체에 대한 접근을 제한하는 방법

- DAC라고도 부른다. 

- IBP : 단일 사용자가 하나의 객체에 대해 허가를 부여받아 사용하는 정책

- GBP : 복수의 사용자가 하나의 객체에 대해 허가를 부여받아 사용하는 정책

 

[2] 규칙기반 접근제어 정책

- 객체에 포함된 정보의 비밀성과 이의 접근정보에 대하여 주체가 갖는 권한에 근거하여 객체에 대한 접근 제한

- MAC라고도 한다.

- MLP : 사용자 및 객체가 각각 부여된 기밀 분류에 따른 정책

- CBP : 조직 내 특정 집단별로 구분된 기밀 허가에 따른 정책

 

[3] 역할기반 접근제어 정책

- 중앙관리자가 주체와 객체의 상호관계를 제어하며 조직 내에서 맡은 역할에 기초하여 자원에 대한 접근 허용 여부를 결정

- RBAC라고도 한다. 

 

4. 접근제어 메커니즘

  • ACL(Acess Control List) : 주체가 디렉토리나 파일과 같은 특정 시스템 객체에 접근할 수 있는 허가 받은 접근 종류들이 기록된 목록
  • CL(Capability List) : 주체에게 허가된 자원 및 권한의 목록
  • SL(Security Label) : 객체에 부여된 보안 속성 정보의 집합
더보기

 (6) 파티셔닝

1. 파티셔닝 개념

- 대용량의 테이블을 파티션이라는 보다 작은 논리적인 단위로 나눔으로써 성능 저하 방지 및 관리를 상대적으로 보다 용이하게 하고자 하는 기법

- 데이터 가용성이 향상된다.

- 데이터베이스를 작은 단위로 관리하여 편리하다.

- 수평분할에서 활용되는 분할 기법

 

2. 파티셔닝 유형

유형 설명
레인지 파티셔닝 분할 키 값이 범위 내에 있는지 여부로 구분
해시 파티셔닝 해시 함수의 값에 따라 파티션에 포함할지 여부를 결정
리스트 파티셔닝 값 목록에 파티션을 할당하고 분할 키 값을 그 목록에 비추어 파티션을 선택
컴포지트 파티셔닝 레인지 파티셔닝, 해시 파티셔닝, 리스트 파티셔닝 중 2개 이상의 파티셔닝을 결합하는 기법
라운드로빈 파티셔닝 라운드로빈 분할로 회전하면서 새로운 행이 파티션에 할당하는 방식

 

더보기

(6) 클러스터링

1. 클러스터링이란

- 지정된 컬럼 값의 순서대로 데이터 행을 저장하는 방법

- 분포도가 넓을수록 오히려 유리하고, 분포도가 넓은 테이블의 클러스터링은 저장 공간 절약 가능

 

2. 클러스터링 유형

  • 단일 클러스터링 : 클러스터에 하나의 테이블만 생성
  • 다중 클러스터링 : 단일 클러스터에 두 개 이상의 테이블을 함께 저장, 테이블 조인 속도를 향상

 

더보기

(7) 데이터베이스 백업

1. 데이터베이스 백업이란

- 데이터가 손상되거나 손실될 경우 피해를 최소화하기 위해 현재의 데이터를 저장하는 기법

 

2. 데이터베이스 백업 종류

  • 전체 백업 : 백업받고자 하는 데이터 전체에 대해 백업하는 방식
  • 차등 백업 : 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식
  • 증분 백업 : 정해진 시간을 기준으로 그 이후에 변경된 파일만을 백업
  • 트랜잭션 로그 백업 : 실제 데이터 파일의 내용을 백업하는 것이 아니라 로그 파일에 기록된 로그를 백업하는 방식

 

더보기

(8) 테이벌 저장 사이징

1. 테이블 저장 사이징의 필요성

- 정확한 데이터 용량을 예측하여 저장 공간을 효과적으로 사용하고 확장성, 가용성을 높이기 위해

 

더보기

(9) 데이터 지역화

1. 데이터 지역화의 개념

- 데이터베이스의 저장 데이터를 효율적으로 이용할 수 있도록 저장하는 방법

- 필요한 위치에 가까이 데이터를 배치하는 것

 

2. 데이터 지역화의 종류

  • 시간적 지역화 : 최근에 참조된 기억장소가 가까운 장래에 계속 참조될 가능성이 높은 특성(for나 while같은 반복문)
  • 공간적 지역화 : 최근에 참조된 기억장소와 가까운 기억정보가 계속 참조될 가능성이 높은 특성(A[0], A[1])
  • 순차적 지역화 : 별도의 분기가 없는 한 데이터가 기억장치에 저장된 순서대로 순차적으로 인출되고 실행될 가능성이 높은 특성(1:1, 1:N, N:M)