관리 메뉴

나구리의 개발공부기록

2장 - 물리 데이터베이스 설계 | 섹션12. 뷰(View) 설계, 섹션13. 파티션 설계, 섹션14. 분산 데이터베이스 설계 본문

2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 3강 - 데이터베이스 구축

2장 - 물리 데이터베이스 설계 | 섹션12. 뷰(View) 설계, 섹션13. 파티션 설계, 섹션14. 분산 데이터베이스 설계

소소한나구리 2024. 5. 5. 18:44

2024년도 시나공 필기 책 내용 정리


섹션12. 뷰(View)설계

 

1. 뷰(View)의 개요

 

  • 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블
  • 저장장치 내에 물리적으로 존재하지 않지만, 사용자에게는 있는 것처럼 간주됨
  • 데이터 보정 작업, 처리 과정 시험 등 임시적인 작업을 위한 용도로 활용됨
  • 조인문의 사용 최소화로 사용상의 편의성을 최대화함
  • 뷰를 생성하면 뷰 정의가 시스템 내에 저장되었다가 생성된 뷰 이름을 질의어에서 사용할 경우 질의어가 실행될 때 뷰에 정의된 기본 테이블로 대체되어 기본 테이블에 대해 실행됨

2. 뷰(View)의 특징

 

  • 기본 테이블로부터 유도된 테이블이기 때문에 기본 테이블과 같은 형태의 구조를 사용하며 조작도 기본 테이블과 거의 같음
  • 가상 테이블이기 때문에 물리적으로 구현되어 있지 않음
  • 데이터의 논리적 독립성을 제공할 수 있음
  • 필요한 데이터만 뷰로 정의해서 처리할 수 있기 때문에 관리가 용이하고 명령문이 간단해짐
  • 뷰를 통해서만 데이터에 접근하게 하면 뷰에 나타나지 않는 데이터를 안전하게 보호하는 호율적인 기법으로 사용할 수 있음
  • 기본 테이블의 기본키를 포함한 속성(열) 집합으로 뷰를 구성해야만 삽입, 삭제, 갱신 연산이 가능함
  • 뷰가 정의된 기본 테이블이나 뷰를 삭제하면 그 테이블이나 뷰를 기초로 정의된 다른 뷰도 자동으로 삭제됨
  • 뷰를 정의할 때는 CREATE문, 제거할 때는 DROP문을 사용

3. 뷰(View)의 장/단점

장점 단점
논리적 데이터 독립성을 제공함
동일 데이터에 대해 동시에 여러 사용자의 상이한 응용이나 요구를 지원해줌
사용자의 데이터 관리를 간단하게 해줌
접근 제어를 통한 자동 보안이 제공됨
독립적인 인덱스를 가질 수 없음
뷰의 정의를 변경할 수 없음
뷰로 구성된 내용에 대한 삽입, 삭제, 갱신 연산에 제약이 따름

4. 뷰 설계 순서

 

  1. 대상 테이블을 선정

    • 외부 시스템과 인터페이스에 관여하는 테이블
    • CRUD 매트릭스를 통해 여러 테이블이 동시에 자주 조인되어 접근되는 테이블
    • SQL문 작성 시 거의 모든 문장에서 인라인 뷰 방식(FROM 절 안에 사용되는 서브 쿼리)으로 접근되는 테이블
  2. 대상 컬럼을 선정 : 보안을 유지해야 하는 컬럼은 주의하여 선별
  3. 정의서 작성

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)

 

  • 동일한 분할을 여러 개의 서버에 생성하는 분산 방법으로 중복이 없는 할당과 중복이 있는 할당으로 나뉨
  • 비중복 방식

    • 최적의 노드를 선택해서 분산 데이터베이스의 단일 노드에서만 분할이 존재하도록 하는 방식
    • 일반적으로 애플리케이션에는 릴레이션을 배타적 분할로 분리하기 힘든 요구가 포함되므로 분할된 테이블 간의 의존성은 무시되고 비용증가, 성능 저하등의 문제가 발생할 수 있음
  • 중복 할당 방식: 동일한 테이블을 다른 서버에 복제하는 방식으로 일부만 복제하는 부분 복제와 전체를 복제하는 완전 복제가 있음