포스트

03. DB 모델링 요점 정리

1. 개념적 모델링

1) 엔티티 도출

1
2
3
4
5
6
7
8
9
🔸업무 분석 단계 이후, 분석 자료(업무 기술서, 장부 등)로부터 엔티티 도출
정해진 공식은 없으나 경험이 없으면 다음의 과정들을 거쳐서 엔티티 기술서 작성

1. 엔티티 후보 풀과 엔티티 리스트를 그린다
2. 분석 대상 문서를 보고 명사를 찾아 표시한다
3. 명사 하나하나에 대해 속성인지 엔티티인지 구분한다
4. 중복된 명사나 유사한 의미의 명사는 하나로 정리한다
5. 엔티티 후보 풀에 있는 명사들을 검토한다
6. 도출된 엔티티에 대해 구축될 시스템에서 데이터를 관리할 필요가 있는지 판단한다

2) 엔티티 관계 설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1. 부모-자식 관계도출
2. 카디널리티 지정
  - 1 : N 관계 ➡️ 일반적으로 1 부모 N 자식
  - 1 : 1 관계 ➡️ 두 엔티티를 하나의 엔티티로 합침
  - M : N 관계 ➡️ 정규화를 통해 M : N 관계 해소
3. 참여도 파악
4. 식별 / 비식별 관계 파악
  - 우선 비식별 관계를 맺어 부모의 주식별자가 자식의 외래식별자로 추가되었을 때
  1) 자식 엔티티의 주식별자가 모든 인스턴스가 구분이 되면 비식별 관계 유지
  2) 자식 엔티티의 주식별자가 모든 인스턴스를 구분하지 못하면 식별 관계로 변경

* 추가 설명
식별관계 : null이 혀용되지 않는 칼럼이 다른 테이블 칼럼을 참조할 때
비식별관계 : null이 허용되는 칼럼이 다른 테이블 칼럼을 참조할 때

2. 논리적 모델링

1) 제 1정규화

1
🔸엔티티에서 하나의 속성이 복수의 값을 갖도록 설계되었을 때 하나의 속성이 단일 값을 갖도록 하는 것

2) 제 2정규화

1
2
🔸주식별자가 아닌 속성 중에서 주식별자 전체가 아닌 일부 속성에 종속된 속성을 찾아 제거
🔸모든 속성은 반드시 모든 기본키에 종속되어야 한다(기본키 일부에만 종속되어서는 안된다)

3) 제 3정규화

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

ERD 주의사항

  1. FK 관계를 수정 가능(1:1, 1:0, 1:N)
  2. FK 관계가 1:1의 경우에는 두 개 테이블의 합치는 것을 고려해봐야 한다
  3. SQL문 작성 시 JOIN을 염두해 두고 FK를 연결하는 것은 아니다. 단지 데이터 관리 차원에서만 생각하여 ERD를 설계해야 한다.