Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch5
- jpa 활용2 - api 개발 고급
- 2024 정보처리기사 시나공 필기
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch6
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch4
- 스프링 mvc2 - 타임리프
- 자바의 정석 기초편 ch14
- 스프링 입문(무료)
- 자바의 정석 기초편 ch12
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch13
- 게시글 목록 api
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch11
- 스프링 db2 - 데이터 접근 기술
- 스프링 mvc1 - 스프링 mvc
- @Aspect
- 스프링 mvc2 - 검증
- 2024 정보처리기사 수제비 실기
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch8
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch3
- 스프링 db1 - 스프링과 문제 해결
- jpa - 객체지향 쿼리 언어
- 스프링 mvc2 - 로그인 처리
- 자바의 정석 기초편 ch9
- 타임리프 - 기본기능
Archives
- Today
- Total
나구리의 개발공부기록
2장 - 물리 데이터베이스 설계 | 섹션12. 뷰(View) 설계, 섹션13. 파티션 설계, 섹션14. 분산 데이터베이스 설계 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 3강 - 데이터베이스 구축
2장 - 물리 데이터베이스 설계 | 섹션12. 뷰(View) 설계, 섹션13. 파티션 설계, 섹션14. 분산 데이터베이스 설계
소소한나구리 2024. 5. 5. 18:442024년도 시나공 필기 책 내용 정리
섹션12. 뷰(View)설계
1. 뷰(View)의 개요
- 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
- 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주됨
- 데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용됨
- 조인문의 사용 최소화로 사용상의 편의성을 최대화함
- 뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가 생성된 뷰 이름을 질의어에서 사용할 경우 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행됨
2. 뷰(View)의 특징
- 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며 조작도 기본 테이블과 거의 같음
- 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음
- 데이터의 논리적 독립성을 제공할 수 있음
- 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐
- 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 호율적인 기법으로 사용할 수 있음
- 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능함
- 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨
- 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용
3. 뷰(View)의 장/단점
장점 | 단점 |
논리적 데이터 독립성을 제공함 동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줌 사용자의 데이터 관리를 간단하게 해줌 접근 제어를 통한 자동 보안이 제공됨 |
독립적인 인덱스를 가질 수 없음 뷰의 정의를 변경할 수 없음 뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름 |
4. 뷰 설계 순서
- 대상 테이블을 선정
- 외부 시스템과 인터페이스에 관여하는 테이블
- CRUD 매트릭스를 통해 여러 테이블이 동시에 자주 조인되어 접근되는 테이블
- SQL문 작성 시 거의 모든 문장에서 인라인 뷰 방식(FROM 절 안에 사용되는 서브 쿼리)으로 접근되는 테이블
- 대상 컬럼을 선정 : 보안을 유지해야 하는 컬럼은 주의하여 선별
- 정의서 작성
5. 뷰 설계 시 고려 사항
- 테이블 구조가 단순화 될 수 있도록 반복적으로 조인을 설정하여 사용하거나 동일한 조건절을 사용하는 테이블을 뷰로 생성
- 동일한 테이블이라도 업무에 따라 테이블을 이용하는 부분이 달라질 수 있으므로 사용할 데이터를 다양한 관점에서 제시해야 함
- 데이터의 보안 유지를 고려하여 설계함
섹션13. 파티션 설계
1. 파티션(Partition)의 개요
- 대용량의 테이블이나 인덱스를 작은 논리적 단위인 파티션으로 나누는 것
- 대용량 DB의 경우 중요한 몇 개의 테이블에만 집중되어 데이터가 증가되므로 이런 테이블들을 작은 단위로 나눠 분산시키면 성능 저하를 방지할 뿐만 아니라 데이터 관리도 쉬워짐
- 테이블이나 인덱스를 파티셔닝하면 파티션키 (파티션을 나누는 기준이 되는 열)또는 인덱스키에 따라 물리적으로 별도의 공간에 데이터가 저장됨
- 데이터 처리는 테이블단위로 이뤄지고 데이터 저장은 파티션별로 수행됨
* 하나의 테이블이 여러개의 파티션으로 나뉘어져 있어도 DB에 접근하는 애플리케이션은 테이블 단위로 데이터를 처리하기 때문에 파티션을 인식하지 못함
2. 파티션의 장/단점
장점 | 데이터 접근 시 액세스 범위를 줄여 쿼리 성능이 향상됨 파티션별로 데이터가 분산되어 저장되므로 디스크의 성능이 향상됨 파티션별로 백업 및 복구를 수행하므로 속도가 빠름 시스템 장애 시 데이터 손상 정도를 최소화할 수 있음 데이터 가용성이 향상됨 파티션 단위로 입/출력을 분산시킬 수 있음 |
단점 | 하나의 테이블을 세분화하여 관리하므로 세심한 관리가 요구됨 테이블간 조인에 대한 비용이 증가함 용량이 작은 테이블에 파티셔닝을 수행하면 오히려 성능이 저하 |
3. 파티션의 종류
범위 분할 (Range Partitioning) |
지정한 열의 값을 기준으로 범위를 지정하여 분할 |
해시 분할 (Hash Partitioning) |
해시 함수를 적용한 결과 값에 따라 데이터를 분할 특정 파티션에 데이터가 집중되는 범위 분할의 단점을 보완한 것으로 데이터를 고르가 분산할 때 유용함 특정 데이터가 어디에 있는지 판단할 수 없음 고객번호, 주민번호 등과 같이 데이터가 고른 컬럼에 효과적 |
조합 분할 (Composite Partitioning) |
범위 분할로 분할한 다음 해시 함수를 적용하여 다시 분할하는 방식 범위 분할한 파티션이 너무 커서 관리가 어려울 때 유용함 |
목록 분할 (List Partitioning) |
지정한 열 값에 대한 목록을 만들어 이를 기준으로 분할 |
라운드 로빈 분할 (Round Robin Partitioning) |
레코드를 균일하게 분배하는 방식 각 레코드가 순차적으로 분배되며 기본키가 필요 없음 |
4. 파티션키 선정 시 고려사항
- 테이블 접근 유형에 따라 파티셔닝이 이뤄지도록 선정
- 데이터 관리의 용이성을 위해 이력성 데이터는 파티션 생성주기와 소멸주기를 일치 시켜야 함
5. 인덱스 파티션
- 파티션된 테이블의 데이터를 관리하기 위해 인덱스를 나눈 것
- 파티션된 테이블의 종속여부에 따라 Local Partitioned Index와 Global Partitioned Index로 나뉘며 Local Partitioned Index가 데이터 관리가 더 쉬움
- Local Partitioned Index: 테이블 파티션과 인덱스 파티션이 1:1 대응되도록 파티셔닝
- Global Partitioned Index: 테이블 파티션과 인덱스 파티션이 독립적으로 구성되도록 파티셔닝함
- 인덱스 파티션 키 컬럼 위치에 따라 Prefixed Partitioned Index와 Non-prefixed Partitioned Index로 나뉨
- Prefixed Partitoned Index: 인덱스 파티션키와 인덱스 첫 번째 컬럼이 같음
- Non-Prefixed Partitioned Index: 인덱스 파티션키와 인덱스 첫 번째 컬럼이 다름
- Local 과 Global, Prefixed와 Nonprefixed를 조합하여 Local Prefixed Partitioning Index 등으루 구성하여 사용
섹션14. 분산 데이터베이스 설계
1. 분산 데이터베이스 정의
- 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스를 말함
- 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 함
2. 분산 데이터베이스의 구성 요소
분산 처리기 | 자체적으로 처리 능력을 가지며 지리적으로 분산되어 있는 컴퓨터 시스템을 말함 |
분산 데이터베이스 | 지리적으로 분산되어있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성됨 |
통신 네트워크 | 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크 |
3. 분산 데이터베이스 설계 시 고려 사항
- 작업 부하(Work Load)의 노드별 분산 정책
- 지역의 자치성 보장 정책
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로부터의 회복기능
- 통신 네트워크를 통한 원격 접근 기능
4. 분산 데이터베이스의 목표
- 위치 투명성(Location Transparency): 액세스하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 액세스 할 수 있음
- 중복 투명성(Replication Transparency): 동일 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용하고 시스템은 자동으로 여러 자료에 대한 작업을 수행함
- 병행 투명성(Concurrency Trasparency): 분산 데이터베이스와 관련된 다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않음
- 장애 투명성(Failure Transparency): 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭셩을 정확하게 처리함
5. 분산 데이터베이스의 장/단점
장점 | 단점 |
지역 자치성이 높음 자료의 공유성이 향상됨 분산 제어가 가능함 시스템 성능이 향상됨 중앙 컴퓨터의 장애가 전체 시스템에 영향을 끼치지 않음 효용성과 융통성이 높음 신뢰성 및 가용성이 높음 점진적 시스템 용량 확장이 용이함 |
DBMS가 수행할 기능이 복잡함 데이터베이스 설계가 어려움 소프트웨어 개발 비용이 증가함 처리 비용이 증가함 잠재적 오류가 증가함 |
6. 분산 데이터베이스 설계
- 애플리케이션이나 사용자가 분산되어 저장된 데이터에 접근하게 하는 것을 목적으로 함
- 잘못 설계된 분산데이터베이스는 복잡성 증가, 응답 속도 저하, 비용 증가 등의 문제가 발생됨
- 전역 관계망을 논리적 측면에서 소규모 단위로 분할 한 후, 분할된 결과를 복수의 노드에 할당하는 과정으로 진행 되며 노드에 할당된 소규모 단위를 분할(Fragment)라 부름
- 테이블 위치분산, 분할(Fragmentation), 할당(Allocation)이 있음
7. 테이블 위치 분산
- 데이터베이스의 테이블을 각기 다른 서버에 분산시켜 배치하는 방법
- 테이블 위치를 분산할 때는 테이블의 구조를 변경하지 않으면 다른 데이터베이스의 테이블과 중복되지 않게 배치
- 데이터베이스의 테이블을 각각 다른 위치에 배치하려면 해당 테이블들이 놓일 서버들을 미리 설정해야 함
8. 분할(Fragment)
- 테이블 데이터를 분할하여 분산
- 분할 규칙
- 완전성(Completeness): 전체 데이터를 대상으로 분할해야 함
- 재구성(Reconstruction): 분할된 데이터는 관계 연산을 활용하여 본래의 데이터로 재구성할 수 있어야 함
- 상호 중첩 배제(Dis-Jointness): 분할된 데이터는 서로 다른 분할의 항목에 속하지 않아야 함
- 주요 분할 방법
- 수평 분할: 특정 속성의 값을 기준으로 행(Row)단위로 분할
- 수직 분할: 데이터 컬럼(속성) 단위로 분할
9. 할당(Allocation)
- 동일한 분할을 여러 개의 서버에 생성하는 분산 방법으로 중복이 없는 할당과 중복이 있는 할당으로 나뉨
- 비중복 방식
- 최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재하도록 하는 방식
- 일반적으로 애플리케이션에는 릴레이션을 배타적 분할로 분리하기 힘든 요구가 포함되므로 분할된 테이블 간의 의존성은 무시되고 비용증가, 성능 저하등의 문제가 발생할 수 있음
- 중복 할당 방식: 동일한 테이블을 다른 서버에 복제하는 방식으로 일부만 복제하는 부분 복제와 전체를 복제하는 완전 복제가 있음
'2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비) > 필기 3강 - 데이터베이스 구축' 카테고리의 다른 글
2장 - 물리 데이터베이스 설계 핵심 요약 (0) | 2024.05.05 |
---|---|
2장 - 물리 데이터베이스 설계 | 섹션15. 데이터베이스 보안(암호화), 섹션16. 데이터베이스 보안(접근통제), 섹션17. 데이터베이스 백업, 섹션18. 스토리지 (0) | 2024.05.05 |
2장 - 물리 데이터베이스 설계 | 섹션10. 트랜잭션 분석/CRUD 분석, 섹션11. 인덱스 설계 (0) | 2024.05.05 |
1장 - 논리 데이터베이스 설계 핵심 요약 (0) | 2024.05.05 |
1장 - 논리 데이터베이스 설계 | 섹션7. 정규화(Normalization), 섹션8. 반정규화(Denormalization), 섹션9. 시스템 카탈로그 (0) | 2024.05.04 |