230323 DB 모델링 (Chap02. 개념적 모델링)
Chap02. 개념적 모델링
Part 1.
Entity 도출하기
〈Entity 정의〉
✔ 엔티티 도출
업무 분석 단계 이후, 분석 자료(업무 기술서, 인터뷰 자료, 장부와 전표 등)로부터 엔티티 도출
✔ 엔티티 도출 과정
1. 엔티티 후보 풀과 엔티티 리스트 그리기
2. 분석 대상 문서를 보고 명사를 찾아 표시
3. 명사 하나마다 속성 / 엔티티 구분하기
4. 중복된 명사, 유사한 의미의 명사는 하나로 정리
5. 엔티티 후보 풀에 있는 명사 검토
6. 도출된 엔티티가 구축될 시스템에서 데이터 관리 필요성이 있는지 판단
〈Entity 정의 - 업무 기술서〉
✔ 업무 기술서에서 엔티티 도출하기
▼
✔ 전표에서 엔티티 도출하기
Part 2.
ER-Diagram
〈ERD(Entity-Relationship Diagram)〉
‘개체 관계도’라고도 불리며 요구분석사항에서 얻은 엔티티와 속성들을 그림으로 그려 관계를 도출한 것
〈ERD 표기법 (식별자)〉
✔ 주식별자 (Primary Identifier)
- 엔티티에 소속된 인스턴스들을 구별하는 기준 역할을 하는 속성
- 유일한 값이어야 함. ≫ 유일성, 최소성, 불변성, 존재성 // 4가지 특징
유일성 : 중복 X
최소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
불변성 : 값이 변하면 안 됨 (변경 불가)
존재성 : 값이 무조건 존재 (null 안 됨)
- 주식별자는 하나가 아닌 여러 속성일 수 있음 (복합 키)
- 인위적 주식별자 : 속성 중에 주식별자 할 만한 게 없을 때 인위적으로 만드는 속성
✔ 외래 식별자 (Foreign Identifier)
- 관계가 있는 두 엔티티를 부모 / 자식으로 구분하고,
부모의 주식별자와 공통 속성이 자식에게도 존재하면 해당 속성을 외래 식별자로 지정
- 기존에 자식이 부모와 공통 속성을 가지고 있는 경우 연결하면 되고, 없으면 추가해 지정
〈ERD 표기법 (관계)〉
✔ 엔티티 간의 부모-자식 관계
- 상호 관계가 있는 두 엔티티 중에서 어느 쪽의 정보가 먼저 생성이 되는가에 따라 결정
- 부모 엔티티의 정보가 있어야지만 존재할 수 있는 것이 자식 엔티티
*먼저 있어야 된다는 생각이 들면 부모
ex) 부서(부모) - 사원(자식) / 학생(부모 엔티티) - 취미(자식 엔티티)
*관계를 맺어줄 때 1:N이 나오면 1이 부모, N이 자식
✔ 참여도
- 필수(mandatory) , 선택(optional)
ex) 취미 : 무조건 대응될 필요가 없음 → 선택
- 어떤 기준이 되는 엔티티가 있을 때,
반드시 대응되는 엔티티가 존재해야 한다면 필수,
존재 할 수도, 하지 않을 수도 있다면 선택
✔ 카디널리티
✔ 카디널리티와 참여도에 따른 관계의 종류
✔ 1 : 1 관계
① 굳이 엔티티(테이블)을 나눌 필요가 없다. → 검색 속도에 영향 有
② 어차피 안에 1:1로 대응되어 한 테이블에 묶기 가능
(but 설계 목적이 드러나면 나눠도 상관 없음)
✔ 1 : N 관계
① 가장 일반적인 관계 (이상적으로 만들어야 할 것)
② 하나의 인스턴스가 여러 개에 대응되는 것
ex) 한 명의 교수가 여러 개의 과목을 수업할 수 있나? O
하나의 수업 과목은 한 명의 교수한테만 수업이 되나? O
≫ 두 조건에 모두 해당하면 1 : N 관계
*카디널리티가 중요 / 원하는 조건을 상세히 적자.
✔ M : N 관계
*M : N 관계 해소 → 릴레이션 엔티티 발생
★ 〈ERD 표기법 (식별-비식별 관계)〉
✔ 식별 관계(Identifying Relationship)
- 외래 식별자가 자식 엔티티 주식별자의 일부가(포함되는) 되는 관계
- PFK로 표시 (외래 식별자가 주식별자 역할도 함) // 자식 엔티티 주식별자에 같이 묶였기 때문에!
- 실선으로 관계 표시
✔ 비식별 관계(Non-Identifying Relationship)
- 외래 식별자가 자식 엔티티의 새로운 일반 속성으로 추가되는 관계
- FK로 표시 (외래 식별자 역할만 함)
- 점선으로 관계 표시
✔ tip. 그럼 언제 식별 관계를 쓸까?
*자식 엔티티 기준으로 생각
1. 관계 맺을 때 무조건 비식별 관계부터 진행
≫ 데이터 유일성 위배 발생
2. 그때, 식별 관계로 바꾸기
★
① 사원정보 엔티티는 비식별 관계
② 학생별 취미 엔티티에서 비식별 관계로 따져봤을 때, 유일성이 위배된다. (취미명이 겹침)
다시 식별 관계로 따지면 취미명과 학번이 PK로 묶이기 때문에 유일성 위배되지 않는다.