Oracle - 논리적 설계

갓김치·2020년 8월 11일
0

참조

2020-08-10-2)논리적설계.sql

  • 개념스키마를 논리적 데이터 모델을 이용해 논리적 구조로 표현
  • 결과물: 논리적 스키마, 릴레이션 스키마, 논리ER-D
  • 데이터타입, 길이, 널값허용여부, 기본값, 제약조건(PK,FK) 등을 결정하고 문서화시키는 단계

E-R 다이어그램 -> 릴레이션 스키마 변환 규칙

  1. 모든 개체(entity) -> 릴레이션으로 변환
  2. 다대다(N:M) -> 릴레이션
  3. 일대다(1:N) -> 외래키
  4. 일대일(1:1) -> 외래키, 보통 식별자관계, 1:1이라는건 릴레이션을 통합해도 되는 관계
    --ex)보험회사 업무db: 개인, 법인 --??
    -- 서브타입1 : 1슈퍼타입 --??
  5. 다중 값 속성 -> 외래키
    ex) 연락처: 폰, 집, 회사 등 여러개있으면 1정규화 위배 -> 반복속성은 별도테이블

식별관계: 상속관계, inheritance
비식별관계: 참조, reference

Anomaly

  • 삽입,삭제,갱신 이상 (가장문제는 삭제이상) -> 데이터 중복이 가장 큰 원인

정규화

  • 할때마다 테이블 분할 -> 분산된 데이터를 합치기위해 JOIN -> 쿼리 복잡해짐

제1정규화

제2

제3: 여기까지만해도 충분

보이스코드?

제4

제5

반정규화

  • 효율성을 위해 일부러 정규화를 안시키는거
  • 정규화를 시켜서 이익 < 정규화를 시켜서 손해
profile
갈 길이 멀다

0개의 댓글