정규화 (무조건 나옴 !!!)
1 2 3차 정규화 정리
1차 정규화 -> 1차 정규형
2차 정규화 -> 2차 정규형
3차 정규화 -> 3차 정규형
2차 정규화 : 1차 정규형을 만족하는 테이블
- 1차 정규형 : 한 속성에 한 속성값
- 2차 정규형 : 주식별자에 의해 모든 속성이 종속
- 3차 정규형 : 일반 속성 간 함수종속이 없는 상태
함수적 종속성 종류
1차 정규화 필요
2차 정규화 필요 = 부분 함수적 종속을 가진 상태
3차 정규화 필요 = 이행 함수적 종속을 가진 상태
BCNF(보이스코드) 정규화 필요 = 결정적 함수적 종속
정규화 주의사항
- 정규화는 단계별로 ! 이전 정규화를 만족해야한다.
- 정규화를 거치고 나면 테이블 숫자 늘어나겠네. => 한 테이블씩 조회 성능 올라감 => 조인 많이 써아하네. => 성능 저하
- 일반적으로는 정규화하면 성능이 좋아진다.
- 하지만 '무조건' 좋아지지는 않는다.
- 정규화를 계속 진행하다보면 성능이 오히려 안좋아질 수 있다. => 반정규화(되돌리기)
계층형 데이터 모델
- 한 테이블(상사-부하) 계층이 모두 있는 모델
트랜잭션 TCL
- ALL OR NOTHINIG 원칙 -> 분리될 수 없는 업무단위
- 원자성 : ALL OR NOTHING
- 일관성 : 실행 전 후 잘못됨이 없어야 함
- 고립성 : 실행 도중에 다른 트랜잭션 접근 불가
- 영속성 : 실행 후 데이터는 영구 저장
NULL 속성
- 0이 아니다.
- 공백 아니다.
- IS NULL로 체크 가능
_ NULL 포함 연산하면 NULL이 나온다.
- NULL 포함 비교GKAUS FALSE, UKNOWN이 나온다.
- 집계함수 NULL 제외
- SUM ,COUNT(*). MAX, MIN
본질 / 인조식별자>
본질식별자 : 엄업무에 의해 발생
- 인조식별자 : 본질식별자가 너무 복잡해서 인위적으로 생성
중복 데이터 발생
불필요한 인덱스 생성