속성의 특징 -
속성도 일종의 집합
릴레이션도 일종의 속성
속성들 간은 서로 독립적
속성들은 반드시 식별자에 종속 : 제2정규형
속성들간에 종속은 없어야함 : 제3 정규형
속성은 발견과 창조로 도출
주변 속성들로부터 연관되는 속성들을 유추하여 도출
속성의 정의
속성의 검증기준
최소 단위로 분할
유일 값 존재 검증
가공값 유무판정 : 추출속성 (단가 * 수량 = 금액) , 단가와 수량은 기초속성 , 금액은 추출속성
설계속성( 코드등 전산을 위해서 만든 속성)
- 논리 데이터 모델에서는 추출속성은 작성하지 않는게 원칙임.
정규화
이상 현상을 야기하는 속성간의 종속관계를 제거하기 위해 엔티티를 작은 여러 엔티티로 무손실 분해하는 과정 , DB 설계 최적화 과정.
정규화 단계별 규칙을 사용하여 속성의 위치를 적절히 하는것
정규화의 목적 : 반복 배제, 질의에 대한 응답시간을 향상
비정규릴레이션 -> 1차정규형 -> 2차정규형 -> 3차정규형 -> Boyce-Codd 정규형( BCNF) -> 4차정규형 -> 5차정규형
이력관리
점이력, 선분이력
점이력
- 로그성 데이터로 이력을 쌓아두고자 할 경우[ 임의 시점에 대한 조회 요구사항이 있음]
- 이력데이터를 저장하고 이해하기에는 용이하지만 활용상에서 비효율이 많이 나타남
- 과거 임의의 시점에서의 이력을 재현하기에 비효율이 많이 발생
선분이력
- 이력관리 대상 속성들이 의미하는 정보가 일정 시점의 정보만을 나타내는 것이 아니라 일정 기간 동안 해당 정보가 유효하다는 의미
- 임의의 시점의 데이터를 찾고자 하는 요구가 있는 경우에 유용
- 과거 임의의 시점에서의 이력을 재현하고 활용하는데 매우 효율적임
이력관리유형
ROW_LEVEL 이력관리 ( 변경일자별 수수료율 등)
COLUMN_LEVEL 이력관리 (계좌비밀번호 이력 등)
SUBJECT_LEVEL 이력관리 ( 엔티티구분, 속성 구분 을 나누어 별도로 관리, 이력엔티티, 이력속성)