PracticeEveryday
논리적 데이터 모델링 본문
논리적 데이터 모델링
- 데이터 모델링을 여러 사람이 분업하게 된다면, 최고 실력자는 개념적 데이터 모델링에 투입해야 된다.
- 그만큼 전단계인 개념적 데이터 모델링이 중요하기 때문이다.
=> 단계적으로 앞인 이유가 더 쉽기 때문이 아니라 가장 어렵고 중요하기 때문이다.
- 개념적 모델링이 잘 되어있다면, 논리적 모델링은 꽤나 기계적으로 풀이될 수 있다.
- 개념적 모델링이 업무에서 개념을 뽑아내는 것이라면 논리적 모델링은 뽑아낸 개념을 관계형 데이터베이스 체계에
어울리도록 데이터 형식을 잘 정리하는 것이다.
- 관계형 데이터베이스 체계에 어울리는, 가장 이상적인 모습으로 개념을 잘 정리하는 것이 포인트이다.
Mapping Rule
- ERD ( Entity Relationship Diagram )을 통해서 표현한 내용을 관계형 데이터베이스에 맞는 형식으로 전환할 때
사용할 수 있는 방법론
Entity ( □ ) => TABLE
Attribute ( ○ ) => COLUMN
Relationship ( ◇ ) => PK, FK
DB Schema 작성
- 먼저 Foreign Key를 사용하지 않는 단독 TABLE ( Entity )를 구체화 시작하면 편하다.
- 해당 Entity의 Attribute를 TABLE의 COLUMN으로 만들어 간다.
- type, 제약조건 ( Domain. ,, unsigned, length, ... ) 속성 ( AUTO_INCREMENT, ... )등을 지정한다.
1:1 관계 처리
- Relationship => PK, FK의 가장 중요한 점은 Cardinality ( ? : ? 관계 )를 파악하는 것이다.
- 가장 간단한 것이 1 : 1 => 1 : N => N : M 순으로 복잡하다.
- 1:1 관계의 예시를 위해 휴먼저 Entity를 새로이 생성한다.
=> ※ 실제로는 저자 Entity에 휴면여부, 휴면일 Attribution이 있으면 될 것 같지만, 여기서는 1:1 관계 처리의 예시를 위해서 이러한 구조를 사용.
- 어느 쪽에 FK를 둘 것인가
- 1 : N 관계에서는 1쪽에 PK를 N쪽에 FK로 가리키는 게 바로 떠오르지만 1 : 1 관계에서는 근본인 Entity에 PK를, 다른
Entity에서 FK를 가리킬 수 있도록한다.
- 누가 누구에게 의존하는가
- " 저자 "는 휴먼저자의 ID에 상관 없이 값을 추가할 수 있다. 하지만 " 휴먼 저자 "는 저자의 id가 있어야 값을 추가할 수
있다. 즉, " 휴먼 저자 "는 FK로 저자의 PK를 가리켜야 한다.
- DB에서 독립적인 Entity가 부모테이블 ( Parent TABLE ), 의존적인 Entity가 자식테이블 ( Child TALBE )로!
1 : N 관계의 처리
- 위의 ERD에서 글 : 댓글, 저자 : 댓글을 처리!
N : M 관계의 처리
- 위의 ERD에서 저자 : 글의 처리 => 공동저자 시스템
- 양 쪽의 외래키를 모두 사용하는 추가 TABLE을 생성한다.
- N : M을 위한 테이블에서, 각 외래키는 외래키이면서 기본 키 ( PK, Primary Key )로,
둘의 조합키 ( Composite Key )로서 식별자로 작동한다.
RDB Modeling - 4. 논리적 데이터 모델링
RDB Modeling (관계형 데이터베이스 모델링) 4. 논리적 데이터 모델링 4.1 - 논리적 데이터 모델링 소개 4.2 - TABLE과 COLUMN 생성 4.3 - 1:1 관계의 처리 4.4 - 1:N 관계의 처리 4.5 - N:M 관계의 처리 (목차를..
ydeer.tistory.com
'DB' 카테고리의 다른 글
TypeORM (0) | 2022.08.20 |
---|---|
TypeORM (0) | 2022.08.13 |
개념적 데이터 모델링 (0) | 2022.08.09 |
RDB Modeling (0) | 2022.08.08 |
Key (0) | 2022.05.13 |