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. 분산 데이터베이스의 투명성
- 위치 투명성 : 사용자나 응용 프로그램이 접근할 데이터의 물리적 위치를 알아야 할 필요가 없는 성질
- 복제 투명성 : 사용자나 응용 프로그램이 접근할 데이터가 물리적으로 여러 곳에 복제되어 있는지의 여부를 알 필요가 없는 성질
- 병행 투명성 : 여러 사용자나 응용 프로그램이 동시에 분산 데이터베이스에 대한 트랜잭션을 수행하는 경우에도 결과에 이상이 발생하지 않는 성질(로킹, 타임 스탬프 순서 기법 이용)
- 장애 투명성 : 데이터베이스가 분산되어 있는 각 지역의 시스템이나 통신망에 이상이 생기더라도, 데이터의 무결성을 보존할 수 있는 성질(2PC)
(3) 데이터베이스 이중화 구성
1. 데이터베이스 이중화란
- 데이터베이스 이중화는 물리적으로 떨어져 있는 여러 개의 데이터베이스에 대하여 로컬 데이터베이스의 변경된 내용을 원격데이터베이스에 복제하고 관리하는 기술
- 사용자는 하나의 데이터베이스에 대해서만 작업을 수행한다.
- 여러 개의 데이터베이스를 동시에 관리할 수 있다.
2. 데이터베이스 이중화 형태
- 액티브-액티브 : 여러 노드가 동시에 가동되는 형태, 두 노드가 동시에 동작하므로 성능이 좋음
- 액티브-스탠바이 : 하나의 노드만 가동하고, 나머지 노드들은 대기하는 형태
(4)데이터베이스 암호화
1. 데이터베이스 암호화란
- 데이터베이스에 저장된 데이터를 읽기 어려운 값으로 변환하여 권한이 없는 제3자가 볼 수 없도록 저장하는 기술
2. 데이터베이스 암호화 유형
- 응용 프로그램 자체 암호화 : 암, 복호화 모듈이 API 라이브러리 형태로 각 애플리케이션 서버에 설치되어 해당 모듈을 호출하는 방식
- DB 서버 암호화 : 암, 복호화 모듈이 DB서버에 설치되어 호출하는 방식
- DBMS 자체 암호화 : DBMS 커널이 자체적으로 암, 복호화 기능을 수행하는 방식
- DBMS 암호화 기능 호출 : 응용 프로그램에서 DB 서버의 DBMS 커널이 제공하는 암, 복호화 API를 호출하는 방식
- 운영체제 암호화 : OS에서 발생하는 물리적인 입출력을 이용한 암, 복호화 방식
3. 데이터베이스 암호화 적용 방식
- 컬럼 암호화 : 테이블에서 특정 컬럼을 암호화하여 데이터를 보관하는 방식
- API : 암호화 모듈을 애플리케이션 서버 내에 설치하고 이곳에서 암, 복호화를 수행하는 구조
- 플러그인 : 암복호화 모듈은 DB 서버 내에 설치하고 이곳에서 암복호화를 수행하는 구조
- 하이브리드 : 플러그인 방식의 단점인 배치 업무의 성능 저하를 보완하기 위해 API방식을 이용하는 구조
- 블록 암호화 : DB, OS 자체적으로 블록 단위로 암호화를 제공하는 방식
- TDE방식 : DBMS에 추가 기능으로 제공되는 암호화 기능을 이용하여 DB 내부에서 데이터 파일 저장 시 암호화
- 파일 암호화 : 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)
'정처기(필기) > 데이터베이스 구축' 카테고리의 다른 글
데이터 전환 - 데이터 전환 기술, 데이터 전환 수행, 데이터 정제 (0) | 2022.06.06 |
---|---|
물리 데이터베이스 모델링, DB반 정규화, 물리 데이터 모델 품질 검토 (0) | 2022.06.06 |
데이터 모델링 및 설계 (0) | 2022.06.04 |
관계 데이터베이스 모델 (0) | 2022.06.04 |
고급 SQL 작성 (0) | 2022.06.03 |