[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.2) 뷰, 파티션 설계
「1」 소프트웨어 설계
「2」 소프트웨어 개발
> 「3」 데이터베이스 구축
- 논리 데이터베이스 설계, > 물리 데이터베이스 설계, SQL 응용, SQL 활용, 데이터 전환
「4」 프로그래밍 언어 활용
「5」 정보시스템 구축 관리
1 트랜잭션 분석 / CRUD 분석
2 인덱스 설계
> 3 뷰(View) 설계
> 4 파티션 설계
5 분산 데이터베이스 설계
6 데이터베이스 보안 / 암호화
7 데이터베이스 보안 - 접근통제
8 데이터베이스 백업
9 스토리지
3. 뷰(View) 설계
뷰의 개요
사용자에게 접근이 허용된 자료만 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 가상 테이블
- 저장장치 내 물리적으로 존재하지 않고 카탈로그에 저장, 있는 것처럼 간주
- 데이터 보정 작업, 처리 과정 시험 등 임시적 작업을 위한 용도
- 조인문의 사용 최소화로 사용상 편의성을 최대화
- 생성하면 뷰 정의가 시스템 내 저장되었다가, 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 실행
테이블 1 ↘ | |||
테이블 2 → | 뷰 A | → → 검색 → → | 정보 |
테이블 3 ↗ |
뷰 A가 테이블 1, 2, 3에서 유도되어 생성되며, 뷰 A를 통해 테이블 1, 2, 3의 데이터에 접근할 수 있음
뷰의 특징
- 기본 테이블과 같은 형태의 구조, 조작도 거의 같음
- 가상 테이블이므로 물리적으로 구현되어있지 않음
- 데이터의 논리적 독립성 제공
- 필요한 데이터만 뷰로 정의하여 처리하므로 관리 용이, 명령문 간단
- 뷰에 나타나지 않는 데이터를 안전하게 보호
- 기본키를 포함한 속성 집합으로 뷰를 구성해야 삽입, 삭제, 갱신 연산 가능, 변경은 안 됨
- 정의된 뷰는 다른 뷰의 정의에 기초될 수 있음
- 뷰가 정의된 기본 테이블이나 뷰 삭제하면, 기초로 정의된 다른 뷰도 자동으로 삭제
- 정의할 때 CREATE문, 제거할 때 DROP문
뷰의 장 / 단점
장점
- 논리적 데이터 독립성 제공
- 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용, 요구 지원
- 사용자의 데이터 관리 간편
- 접근 제어를 통한 자동 보안 제공
단점
- 독립적인 인덱스 가질 수 없음
- 뷰의 정의 변경 불가
- 삽입, 삭제, 갱신 연산에 제약
뷰 설계 순서
1 대상 테이블 선정
: 외부 시스템과 인터페이스에 관여하는 테이블
: CRUD 매트릭스를 통해 여러 테이블이 동시에 자주 조인되어 접근되는 테이블
: SQL문 작성 시 모든 문장에서 인라인 뷰 방식으로 접근되는 테이블
2 대상칼럼 선정
: 보안을 유지하는 칼럼은 주의
3 정의서 작성
뷰 설계 시 고려 사항
- 테이블 구조가 단순화 되도록 반복적으로 조인 설정하여 사용, 동일한 조건절 사용하는 테이블을 뷰로 생성
- 동일한 테이블이라도 업무에 따라 달라질 수 있으므로, 사용할 데이터를 다양한 관점에서 제시
- 데이터의 보안 유지를 고려
4. 파티션 설계
파티션(Patition)의 개요
대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
- 대용량 DB인 경우, 몇 개 테이블에만 집중되어 데이터 증가되므로 작은 단위로 나눠 분산시켜 성능 저하 방지, 데이터 관리 간편
- 파티션키, 인덱스키에 따라 물리적으로 별도의 공간에 데이터 저장
- 데이터 처리는 테이블 단위, 데이터 저장은 파티션별로 수행
파티션의 장 / 단점
장점
- 데이터 접근 시 액세스 범위 줄여 쿼리 성능 향상
- 데이터가 분산되므로 디스크 성능 향상
- 파티션별로 백업 / 복구 수행하므로 속도 빠름
- 시스템 장애 시 데이터 손상 정도 최소화
- 데이터 가용성 향상
- 파티션별로 입 / 출력 분산 가능
단점
- 하나의 테이블을 세분화하여 관리하므로 세심한 관리 필요
- 테이블간 조인 비용 증가
- 용량 적은 테이블에 파티셔닝 수행하면 오히려 성능 저하
파티션의 종류
파티셔닝 방식에 따라 수평분할에 할당되는 범위 분할, 해시 분할, 조합 분할, 목록 분할, 라운드 로빈 분할 등
범위 분할(Range Partitioning)
: 지정한 열의 값을 기준으로 범위 지정하여 분할
해시 분할(Hash Partitioning)
: 해시 함수를 적용한 결과 값에 따라 데이터 분할
: 특정 파티션에 데이터 집중되는 범위 분할 단점을 보완, 데이터를 고르게 분산시킬 때 사용
: 특정 데이터가 어디 있는지 모름
: 고객번호, 주민번호 등 데이터가 고른 칼럼에 효과적
조합 분할(Composite Partitioning)
: 범위 분할로 분할한 다음, 해시 함수 적용하여 다시 분할
: 범위 분할한 파티션이 너무 커 관리가 어려울 때 사용
목록 분할(List Partioniong)
: 지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할
라운드 로빈 분할(Round Robin Partitioning)
: 레코드를 균일하게 분배
: 각 레코드가 순차적으로 분배, 기본키 필요 없음
파티션키 선정 시 고려사항
- 테이블 접근 유형에 따라 파티셔닝이 이뤄지도록 선정
- 데이터 관리의 용이성을 위해 이력성 데이터는 파티션 생성주기와 소멸주기 일치시켜야 함
- 매일 생성되는 날짜 칼럼, 백업 기준되는 날짜 칼럼, 파티션간 이동이 없는 칼럼, I/O 병목을 줄일 수 있는 데이터 분포가 양호한 칼럼 등을 파티션키로 선정
인덱스 파티션
파티션 된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것
파티션 된 테이블의 종속 여부에 따라 나뉨
- Local Partitioned Index : 테이블 파티션과 인덱스 파티션이 1 : 1 대응되도록 파티셔닝, 데이터 관리 더 쉬움
- Global Partitioned Index : 테이블 파티션과 인덱스 파티션이 독립적으로 구성되도록 파티셔닝
인덱스 파티션키 칼럼의 위치에 따라 나뉨
- Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫 번째 칼럼이 같음
- Non-Prefixed Partitioned Index : 인덱스 파티션키와 인덱스 첫 번째 칼럼이 다름
Local, Global, Prefixed, Nonprefixed 조합하여 사용, Global Non-Prefixed Patitioned는 불가능
출처 | <시나공> 정보처리기사 필기 2024 기본서 (길벗알앤디)
'💠기타 > 정보처리기사' 카테고리의 다른 글
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.4) 데이터베이스 보안 (접근통제) (1) | 2024.02.09 |
---|---|
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.3) 분산 데이터베이스 설계, 데이터베이스 보안 / 암호화 (1) | 2024.02.09 |
[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.1) 트랜잭션, CRUD 분석 (2) | 2024.02.09 |
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.4) 정규화, 반정규화, 시스템 카탈로그 (1) | 2024.02.08 |
[정처기 필기] 「3」 | 논리 데이터베이스 설계 - (1.3) 관계대수 및 관계해석 (1) | 2024.02.05 |