참조
2020-08-10-2)논리적설계.sql
- 개념스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현
- 결과물: 논리적 스키마, 릴레이션 스키마, 논리ER-D
- 데이터타입, 길이, 널값허용여부, 기본값, 제약조건(PK,FK) 등을 결정하고 문서화시키는 단계
E-R 다이어그램 -> 릴레이션 스키마 변환 규칙
- 모든 개체(entity) -> 릴레이션으로 변환
- 다대다(N:M) -> 릴레이션
- 일대다(1:N) -> 외래키
- 일대일(1:1) -> 외래키, 보통 식별자관계, 1:1이라는건 릴레이션을 통합해도 되는 관계
--ex)보험회사 업무db: 개인, 법인 --??
-- 서브타입1 : 1슈퍼타입 --??
- 다중 값 속성 -> 외래키
ex) 연락처: 폰, 집, 회사 등 여러개있으면 1정규화 위배 -> 반복속성은 별도테이블
식별관계: 상속관계, inheritance
비식별관계: 참조, reference
Anomaly
- 삽입,삭제,갱신 이상 (가장문제는 삭제이상) -> 데이터 중복이 가장 큰 원인
정규화
- 할때마다 테이블 분할 -> 분산된 데이터를 합치기위해 JOIN -> 쿼리 복잡해짐
제1정규화
제2
제3: 여기까지만해도 충분
보이스코드?
제4
제5
반정규화
- 효율성을 위해 일부러 정규화를 안시키는거
- 정규화를 시켜서 이익 < 정규화를 시켜서 손해