Search
Duplicate

데이터 모델과 성능

태그
정규화
정규화는 데이터를 분해하는 과정이다.
중복을 제거하고 데이터 모델의 독립성을 확보한다.
데이터 모델의 유연성을 높이고, 데이터 모델의 변경을 최소하한다.
실질적으로 제 3 정규화 까지만 수행한다.
절차
제 1 정규화 : 속성의 원자성 확보, 기본키 설정
제 2 정규화 : 기본키가 2 개 이상의 속성으로 이루어진 경우, 부분 함수 종속성 제거
제 3 정규화 : 기본키를 제외한 칼럼간 종속성 제거. (= 이행 함수 종속성 제거)
BCNF : 후보키가 기본키를 종속시키면 분해
제 4 정규화 : 다중값 종속성을 제거
제 5 정규화 : 조인에 의해서 종속성이 발생되는 경우 분해
반정규화
데이터 중복을 허용하고 조인을 줄이는 데이터베이스 성능 향상 방법
반정규화는 조회 속도를 향상하지만, 데이터 모델의 유연성은 낮아진다.
수행하는 경우
수행 속도가 느려지는 경우
다량의 범위를 자주 처리하는 경우
특정 범위의 데이터만 자주 처리하는 경우
요약 / 집계 정보가 자주 요구 되는 경우
기법
계산된 칼럼 추가
테이블 수직 분할 : 칼럼 분할
테이블 수평 분할 : 값을 기준으로 테이블을 분할
슈퍼타입 및 서브타입 변환 방법
OneToOne Type
슈퍼 타입과 서브 타입을 개별 테이블로 도출한다.
테이블의 수가 많아서 조인이 많이 발생하고 관리가 어렵다.
Plus Type
슈퍼 타입과 서브 타입 테이블로 도출한다.
조인이 발생하고 관리가 어렵다.
Single Type
슈퍼 타입과 서브 타입을 하나의 테이블로 도출한다.
조인 성능이 좋고 관리가 편하지만, 입출력 성능이 나쁘다.
분산 데이터베이스
분산 데이터베이스 투명성
분할 투명성 : 사본이 여러 시스템에 저장되어 있음
위치 투명성 : 저장 장소 명시할 필요 없음
지역 사상 투명성 : 각 지역 시스템 이름과 무관한 이름 사용 가능
중복 투명성 : 종복되어 존재함에도 데이터의 일관성이 유지
장애 투명성 : 통신망 이상에도 무결성 보장
병행 투명성 : 응용 프로그램이 동시에 트랜잭션 수행하는 경우에도 결과 이상 없음
분산 데이터베이스는 데이터 무결성 관리가 어렵다.