DB모델링 - 논리적 모델링

CHOISUJIN·2023년 3월 16일
0
post-thumbnail

📍 논리적 모델링

정규화(DB normalization)

관계형 데이터베이스에서 데이터를 구조화하는 작업

  • 데이터의 중복을 방지하고 보다 효율적으로 데이터를 저장하기 위해
  • 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이기 위해
비정규화 테이블
   ㅣ 반복 속성 제거, 모든 속성이 **원자값**을 가짐
제1정규형
   ㅣ **부분 함수적 종속 제거**, 키가 아닌 모든 속성이 기본키 그룹에 완전하게 함수적 종속
제2정규형
   ㅣ **이행적 함수적 종속 제거**, 키가 아닌 모든 속성이 기본키에 직접 종속(비이행적)
제3정규형
   ㅣ 후보키가 아닌 결정자 제거, 모든 결정자가 후보키
BDNF
   ㅣ 다치종속 제거
제4정규형
   ㅣ 조인 종속성 이용
제5정규형

☑️ 제1정규화

엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것 (모든 속성은 원자값(단일값)을 가짐)

  1. 엔티티에 인스턴스를 삽입했을 때, 중복, NULL을 갖는 속성들을 별도의 엔티티로 추출
  2. 기존 엔티티의 주식별자가 모두 추출된 경우 새로운 주식별자를 지정
    -> 남아있는 기본속성 중 주식별자가 될 수 있는 속성이 있는지 판단, 없는 경우 인위적 주식별자를 추가
  3. 추출된 엔티티를 부모, 기존 엔티티를 자식 엔티티로 지정
  4. 참여도 파악
  5. 식별/비식별 관계 파악

☑️ 제2정규화

주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거하는 것 (부분 함수적 종속 제거)
-> 모든 속성은 반드시 모든 기본키에 종속되어야 한다.

  1. 복합키를 가진 엔티티의 기본 속성 중 주식별자 전체에 종속되지 않는 기본속성과 부분 종속시키는 주식별자를 별도의 엔티티로 추출
  2. 추출된 엔티티를 부모, 기존 엔티티를 자식 엔티티로 지정
  3. 참여도 파악
  4. 식별 관계로 지정

☑️제3정규화

주 식별자가 아닌 속성들 중에서 종속 관계에 있는 속성을 찾아 제거하는 것 (이행적 함수적 종속제거)
-> 이행 종속 : 기본키(주식별자)가 아닌 모든 속성 간에는 서로 종속될 수 없다

  1. 기본 속성 중 주식별자가 아닌 기본 속성에 종속되는 속성들을 별도의 엔티티로 추출
    -> 종속하고 있는 기본 속성을 별도 엔티티의 주식별자로 지정,
  2. 추출된 엔티티를 부모, 기존 엔티티를 자식 엔티티로 지정
  3. 참여도 파악
  4. 비식별 관계로 지정
profile
매일매일 머리 터지는 중 ᕙ(•̀‸•́‶)ᕗ

0개의 댓글