#36.
- 매각 기일은 일자별로 매각이 시행되는 장소와 시간을 의미한다.
- 일자별매각물건 엔터티의 매각시간, 매각장소 속성은 두 개의 주식별자 속성 중 매각일자에만 종속되기 때문에 2차 정규화의 대상이 된다.
- 매각일자를 주식별자로 하고 매각시간과 매각장소 속성을 포함하는 매각기일 엔터티를 독립시킨다.
- 이 때, 매각기일 엔터티는 일자별매각물건의 주식별자 중 일부로부터 독립했기 때문에 매각기일과 일자별 매각 물건은 1:M관계로 연결된다.
- 2차 정규화를 통해 특정 장소에서 이루어진 매각내역을 조회하고자 할 때 100만건의 일자별 매각내역 데이터를 모두 읽어 원하는 장소에 해당하는 인스턴스들을 찾아 매각일자별로 그룹핑한 후 매각일자별내역과 조인할 필요가 없어 매우 적은 수의 매각기일 엔터티에서 특정 장소에 해당하는 매각일자들을 찾아 매각일자별 매각내역과 1:1로 바로 조인하면 되기 때문에 I/O를 현저하게 감소시킬 수 있다.
#38.
- 컬럼 단위에서 중복된 경우도 1차 정규화의 대상이 된다.
- 이에 대한 분리는, 1:M의 관계로 두 개의 엔터티로 구분된다.
1차 정규화의 대상
- 중복속성에 대한 분리가 1차 정규화의 대상이 된다.
- 로우단위의 중복도 1차 정규화의 대상이 된다.
- 칼럼 단위로 중복이 되는 경우도 1차 정규화의 대상이다.
반정규화를 고려할 때 판단요소
- 다량 데이터 탐색의 경우 인덱스가 아닌 파티션 및 데이터 클러스터링 등의 다양한 물리 저장 기법을 활용하여 성능 개선을 유도할 수 있다. 그러나, 하나의 결과 셋을 추출하기 위해 다량의 데이터를 탐색하는 처리가 반복적으로 빈번하게 발생한다면 이때는 반정규화를 고려하는 것이 좋다.
- 이전 또는 이후 위치의 레코드에 대한 탐색은 window function으로 접근 가능하다.
- 집계 테이블 이외에도 다양하 유형(다수 테이블의 키 연결 테이블 등)에 대하여 반정규화 테이블 적용이 필요할 수 있다.
- 반정규화 정보에 대한 재현의 적시성으로 판단한다.
- 예를 들어, 빌링의 잔액(balance)은 다수 테이블에 대한 다량의 조인이 불가피하므로 데이터 제공 적시성 확보를 위한 필수 반정규화 대상이 된다.
칼럼수가 많은 테이블에 대하여
- 문제점
- 한 테이블에 많은 칼럼들이 존재할 경우 데이터가 물리적으로 저장되는 디스크 상에 넓게 분포할 가능성이 커지게 되어 디스크I/O가 대량으로 발생할 수 있고, 이로 인해 성능이 저하될 수 있다.
- 개선방향
- 따라서, 트랜잭션이 접근하는 칼럼유형을 분석해서 자주 접근하는 칼럼들과 상대적으로 접근 빈도가 낮은 칼럼들을 구분하여 1:1로 테이블을 분리하면 디스크I/O가 줄어들어 성능을 향상 시킬 수 있다.
- 개선방법
- 테이블 내에서 칼럼의 위치를 조정하는 것은 데이터 주로 채워지는 칼럼을 앞 쪽에 위치시키고, 데이터가 채워지지 않고 주로 NULL 상태로 존재하는 칼럼들을 뒤쪽에 모아둠으로써 로우의 길이를 어느정도 감소시킬 수 있다. 그러나, NULL 상태이던 칼럼에 나중에 데이터가 채워지게 될 경우 더 많은 로우체인이 발생할 수도 있기 때문에 바람직한 방법은 아님
- 무엇보다도 데이터가 채워지지 않고 NULL 상태로 존재하게 되는 칼럼들이 많이 나타나는 경우에는, 너무 많은 엔터티들에 무리하게 동질성을 부여하여 통합을 수행하거나, 예측하기 얼운 미래 시점을 겨냥하여 과도하게 의욕적으로 속성을 확장한 경우 등에 주로 나타남
- 따라서, 자주 사용되는 칼럼들이나 현시점에서 주로 사용되는 칼럼들을 한 데 모으로, 사용빈도가 낮은 칼럼들이나 미래 시점에 사용될 것으로 예상되는 나머지 칼럼들을 한데 모아 별도의 1:1관계 엔터티로 분리하는 등의 데이터모델 설계 수정을 고려하는 것이 바람직하다.
파티셔닝
- 하나의 테이블에 많은 양의 데이터가 저장되면 인덱스를 추가하고 테이블을 몇 개로 쪼개도 성능이 저하되는 경우가 많다.
- 이때 논리적으로는 하나의 테이블이지만 물리적으로는 여러 개의 테이블로 분리하여 데이터 액세스 성능도 향상시키고, 데이터 관리방법도 개선할 수 있도록 테이블에 적용하는 기법이다.
트랜잭션의 처리
- 트랜잭션은 항상 전체를 통합하여 분석 처리하는데 슈퍼-서브타입이 하나의 테이블로 통합되어 이으면 하나의 테이블에 집적도니 데이터만 읽어 처리할 수 있기 때문에 다른 형식에 비해 더 성능이 우수하다.
- 서브타입 별로 개별 유지하는 것으로 변환하면 Union, Join 등의 연산에 의해 성능이 저하될 수 있다.
GSI, Global Single Instance
- 통합된 한 개의 인스턴스 즉, 통합 데이터베이스 구조를 의미한다.
- 분산데이터베이스와는 대치되는 개념이다.
분산데이터베이스의 장단점
- 장점
- 지역 자치성, 점증적 시스템 용량 확장
- 신뢰성과 가용성
- 효용성과 융통성
- 빠른 응답 속도와 통신비용의 절감
- 데이터의 가용성과 신뢰성 증가
- 시스템 규모의 적절한 조절
- 각 지역 사용자의 요구 수용 증대
- 단점
- 소프트웨어 개발 비용
- 오류의 잠재성 증대
- 처리 비용의 증대
- 설계, 관리의 복잡성과 비용
- 불규칙한 응답 속도
- 통제의 어려움
- 데이터 무결성에 대한 위협
#50. 분산데이터베이스 환경에서 분산 설계를 적용하여 효율성을 증대시키는 방법
- 공통코드, 기준정보 등 마스터 데이터는 분산데이터베이스에 복제분산을 적용한다.
- 거의 실시간(Near Real Time) 업무적인 특성을 가지고 있을 때 분산 데이터베이스를 사용하여 구성할 수 있다.
- 백업 사이트를 구성할 때 간단하게 분산기능을 적용하여 구성할 수 있다.
'자격증 > sqld' 카테고리의 다른 글
1장,데이터 모델링의 이해 (0) | 2022.05.11 |
---|