[정처기 필기] 「3」 | 물리 데이터베이스 설계 - (2.2) 뷰, 파티션 설계

728x90

[정처기 필기] 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 기본서 (길벗알앤디)

728x90