-
230221 소프트웨어 개발 : DBOS Computer Science 2021. 2. 23. 19:24
# 중복 테이블 #
1. 정의
- 많은 정보의 테이블과 데이터를 조회해야할경우 수행속도를 개선하기 위해서 특정 통계 테이블을 두거나, 중복 데이터를 두어 구성하는 것을 말한다.
- 보통 많은 정보의 양을 집계하는 Group by, Sum등과 같은 집계함수를 이용할때 고려대상이 된다.
2. 생성시 고려할 사항
- 정규화에 충실하면 종속성, 활용성은 향상되나 수행속도가 떨어질때 고려
- 많은 범위를 자주 처리해야할 경우 고려
- 특정 범위의 데이터만 자주 처리되는 경우 고려
- 처리 범위를 줄이지 않고는 수행속도를 개선할 수 없을때 고려
- 요약자료만을 주로 요구되는 경우 고려
- 추가된 테이블의 처리를 위한 오버헤드를 고려해서 결정
- 인덱스의 조정, 부분범위 처리 유도, 클러스터링등을 통해서 해결할 수 있을 경우와 비용을 고려한다.
3. 중복 테이블의 유형
A. 집계(통계)테이블
- 단일 테이블의 Group By
- 여러 테이블의 조인 Group Byu
A1. 집계 테이블 생성시 유의사항
- 로우 수와 활용도 분석, 시뮬레이션에 의한 효용성 검토후 결정
- 집계 테이블에 단일 테이블 클러스터링을 한다면 집계 레벨을 좀더 낮춰 활용도를 높일 수 있는지 검토
- 클러스터링, 결합 인덱스, 고단위 SQL을 활용하면 집계테이블 이용없이도 속도를 낼 수 있는지 검토
- 집계 테이블을 다시 집계, 조인하면 추출 할수 있는지 검토하여 집계테이블을 지나치게 많이 만들지 않음
- 기존 집계 테이블 이용 가능 여부 조사후 수정해서 사용할 수 있는지 검토
- 데이터베이스 트리거의 오버헤드에 주의하고, 데이터의 일관성 보장에 유의 (즉, 집계 테이블과 원본 데이터의 일관성 확인)
B. 진행 테이블
- 여러 테이블의 조인이 빈번히 발생하며 처리 범위도 넓은 경우
- M:N 관계가 포함된 처리의 과정을 추적 관리하는경우
- 검색 조건이 여러 테이블에 걸쳐 다양하게 사용되며, 복잡하고 처리량이 많은 경우
B1. 진행 테이블 생서잇 유의사항
- 데이터량이 적절하고 활용도가 좋아지도록 기본키를 선정
- 필요에 따라 적절한 추출 칼럼을 추가하여 집계 테이블의 역할을 하는 다목적 테이블 구상
- 다중 테이블 클러스터링이나 조인 SQL을 적절히 이용하면 집계테이블 없이도 양호한 속도를 낼 수 있는 경우가 많다.
출처: https://neokido.tistory.com/entry/데이터-모델링-반정규화-중복-테이블 [상선약수]
파티션 설계
- 범위 분할 : 지정한 열의 값을 기준으로 분할
- 해시 분할 : 해시 함수를 적용한 결과값에 따라 데이터 분할
- 조합 분할 : 범위로 분할한 다음 해시 함수를 적용하여 결과값에 따라 데이터 분할
스키마
스키마란 - 데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한 것 입니다.
상세하게 말하면,
개체의 특성을 나타내는 속성(Attribute)과
속성들의 집합으로 이루어진 개체(Entity),
개체 사이에 존재하는 관계(Relation)에 대한 정의와
이들이 유지해야 할 제약조건들
을 기술한 것입니다.
쉽게 정리하여, DB내에 어떤 구조로 데이터가 저장되는가를 나타내는 데이터베이스 구조를 스키마라고 합니다.
(스키마의 특징)
1) 스키마는 데이터 사전(Data Dictionary)에 저장됩니다.
*데이터 사전 : 시스템 전체에서 나타나는 데이터 항목들에 대한 정보를 지정한 중앙 저장소로, 이 정보에는 항목을 참조하는데 사용되는 식별자, 항목에 대한 엔티티의 구성요소, 항목이 저장되는 곳, 항목을 참조하는 곳 등을 포함
2) 현실 세계의 특정한 한 부분의 표현으로서 특정 데이터 모델을 이용해서 만들어지게 됩니다.
3) 시간에 따라 불변인 특성을 갖습니다. (시불변성)
4) 데이터의 구조적 특성을 의미합니다.
5) 인스턴스에 의해 규정됩니다.
스키마는 사용자의 관점에 따라서 외부, 개념, 내부 스키마로 구분하게 됩니다.
1) 개념스키마 = 전체적인 뷰
: 조직체 전체를 관장하는 입장에서 DB를 정의한 것
따라서 조직의 모든 응용시스템에서 필요로 하는 개체 관계, 그리고 제약조건들을 포함하고 있게 됩니다.
DB를 효율적으로 관리하는데 필요한 접근권한, 보안정책, 무결성 규칙등에 관한 사항들도 추가적으로 포함됩니다.
따라서 개념스키마를 ‘스키마’ 라고 칭하기도 하며, DB전체를 기술한 것이기 때문에 한 개밖에 존재할 수 없습니다.
[개념스키마 특징]
- 데이터 베이스의 전체적인 논리적 구조
- 데이터 베이스에 실제로 어떤 데이터가 저장되었으며 데이터간의 관계는 어떻게 되는가
- 모든 응용프로그램이나 사용자들이 필요로하는 데이터를 종합한 조직전체의 데이터베이스
- 개체간의 관계와 제약조건 명시
- 데이터 베이스의 접근 권한 보안 및 무결성 규칙에 관한 명세를 정의
- 단순한 스키마라고 하면 개념스키마를 의미
- 기관이나 조직체의 관점에서 데이터베이스를 정의
- 데이터베이스 관리자 (DBA)에 의해 구성
* 데이터 베이스당 하나만 존재
2) 내부스키마
: 물리적인 저장장치 입장에서 DB가 저장되는 방법을 기술한 것
구체적으로 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것으로서 주된 내용은 실제로 저장될 내부레코드 형식, 내부레코드의 물리적 순서, 인덱스의 유/무 등에 관한 것입니다.
그러나 DB는 내부 스키마에 의해서 곧바로 구현되는 것이 아니라 내부 스키마에 기술한 내용에 따라 운영체제의 파일시스템에 의해 물리적 저장장치에 기록됩니다.
실무적으로 내부스키마에 의해 DB의 실행 속도가 결정적으로 영향을 받기 때문에 DB의 구축목적에 따라 내부 스키마를 결정해야할 필요가 있습니다.
[내부 스키마 특징]
- 데이터 베이스의 물리적 저장구조를 정의
- 디스크에는 어떤 구조로 저장할 것인가
- 데이터의 실제 저장방법을 기술
- 물리적인 저장장치와 밀접한 계층
- 시스템 프로그래머나 시스템 설계자가 보는 관점의 스키마
3) 외부스키마 = 서브 스키마 - 사용자 뷰
: 사용자나 응용 프로그래머가 개인의 입장에서 필요한 데이터베이스의 논리적 구조를 정의
[외부 스키마 특징]
- 실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인가
- 전체 데이터 베이스의 한 논리적 부분 -> 서브 스키마
- 하나의 데이터베이스에는 여러 개의 외부스키마가 존재가능 & 하나의 외부스키마를 여러 개의 응용프로그램이나 사용자가 공용 가능
- 같은 데이터베이스에 대해서도 서로 다른 관점을 정의할 수 있도록 허용
- 일반 사용자는 질의어를 이용 DB를 쉽게 사용
출처: https://jwprogramming.tistory.com/47 [개발자를 꿈꾸는 프로그래머]
테스트 관리
- 테스트 케이스 : 구현된 소프트웨어가 사용자의 요구사항을 정확히 준수했는지 확인하기 위해 설계된 입력값, 실행 조건, 기대 결과 등으로 구성된 테스트 명세서
- 테스트 시나리오 : 테스트 케이스들을 적용하는 구체적인 절차를 명세한 문서
- 테스트 오라클 : 결과를 판단하기 위해 테스트 케이스의 예상 결과를 계산하거나 확인하는 기법
1,2회 #40
반정규화(Denormalization) 유형 중 중복 테이블을 추가하는 방법에 해당하지 않는 것은?
1 빌드 테이블의 추가
2 집계 테이블의추가3 진행 테이블의추가
4 특정 부분만을 포함하는 테이블 추가3회 #35
물리데이터 저장소의 파티션 설계에서 파티션 유형으로 옳지 않은 것은?
1 범위분할(Range Partitioning)
2 해시분할(Hash Partitioning)
3 조합분할(Composite Partitioning)4 유닛분할(Unit Partitioning)
4회 #31
다음 설명에 해당하는 것은?
물리적 저장 장치의 입장에서 본 데이터베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
1 외부 스키마
2 내부 스키마
3 개념 스키마
4 슈퍼 스키마
4회 #34
다음이 설명하는 테스트 용어는?
- 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참값을 입력하여 비교하는 기법 및 활동 을 말한다.
- 종류에는 참, 샘플링, 휴리스틱, 일관성 검사가 존재한다.
1 테스트 케이스
2 테스트 사나리오
3 테스트 오라클
4 테스트 데이터
'OS Computer Science' 카테고리의 다른 글
240221 데이터베이스 구축 : 정규화 (0) 2021.02.24 240221 데이터베이스 구축 : SQL (0) 2021.02.24 230221 소프트웨어 개발 : 소프트웨어 공학 (0) 2021.02.23 230221 소프트웨어 개발 : 검증 검사 (0) 2021.02.23 230221 소프트웨어 개발 : 통합 (0) 2021.02.23