잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록
현록의 기록저장소
RDB Modeling - 4. 논리적 데이터 모델링 본문
RDB Modeling (관계형 데이터베이스 모델링)
4. 논리적 데이터 모델링
4.1 - 논리적 데이터 모델링 소개
4.2 - TABLE과 COLUMN 생성
4.3 - 1:1 관계의 처리
4.4 - 1:N 관계의 처리
4.5 - N:M 관계의 처리
(목차를 블록 선택 후, Ctrl+F로 탐색 가능 - 브라우저에 따라 다를 수 있음)
본 포스트는
생활코딩(https://opentutorials.org/)의
Database > 관계형 데이터 모델링(https://opentutorials.org/course/3883) 수업을 바탕으로
공부한 내용의 정리입니다.
<4.1 - 논리적 데이터 모델링 소개>
논리적 데이터 모델링
데이터 모델링을 여러 사람이 분업하게 된다면,
아마 최고 실력자는 개념적 데이터 모델링에.
그만큼 전단계인 개념적 데이터 모델링이 중요함.
(단계적으로 앞인 이유가 더 쉽기 때문이 아니라,
가장 어렵고 중요하기 때문)
개념적 모델링이 잘 되어있다면,
논리적 모델링은 꽤나 기계적으로 풀이될 수 있음.
개념적 모델링이 업무에서 개념을 뽑아내는 일이라면,
논리적 모델링은
뽑아낸 개념을
관계형 데이터베이스 체계에 어울리도록
데이터 형식을 잘 정리하는 것.
(여기서는 아직 구체적인 DB 솔루션의 특성이나 성능은 크게 신경쓰지 않음. 그건 물리적 모델링 단계에서.)
관계형 데이터베이스 체계에 어울리는,
가장 이상적인 모습으로 개념을 잘 정리하는 것이 포인트.
Mapping Rule
ERD(Entity Relationship Diagram)을 통해서 표현한 내용을,
관계형 데이터베이스에 맞는 형식으로 전환할 때 사용할 수 있는 방법론.
덜 고민하고도 많은 것을 빠짐없이 처리할 수 있어서
광범위하게 사용되고 있음.
ㆍEntity(□) → TABLE
ㆍAttribute(○) → COLUMN
ㆍRelationship(◇) → PK, FK
<4.2 - TABLE과 COLUMN 생성>
ER Master
http://ermaster.sourceforge.net/
Database Schema 작성
먼저 Foreign Key를 사용하지 않는
단독 TABLE(Entity)을 구체화 시작하면 편하다.
해당 Entity의 Attribute를
TABLE의 COLUMN으로 만들어간다.
type, 제약조건(domain. e.g., unsigned, length, ...), 속성(e.g., AUTO_INCREMENT, ...) 등을 지정.
<4.3 - 1:1 관계의 처리>
Relationship의 처리
Relationship → PK, FK
가장 중요한 것은 Cardinality(?:? 관계) 파악.
(개념적 모델링 단계에서 했음)
가장 간단한 것이 1:1관계.
그 다음이 1:N 관계.
마지막으로 N:M 관계 구현.
1:1 관계의 처리
1:1 관계를 위해,
휴면자 Entity를 새로이 생성
(※ 실제로는 저자 Entity에 휴면여부, 휴면일 Attribution이 있으면 될 것 같지만,
여기서는 1:1 관계 처리의 예시를 위해서 이러한 구조를 사용.)
어느 쪽에 FK를 두어야 하는가.
※ 1:N 관계에서는 1쪽의 PK를, N쪽이 FK로 가리키는 게 바로 떠오르는데..
1:1 관계에서는
근본인 Entity의 PK를, 다른 Entity에서 FK로 가리킬 수 있도록.
누가 누구에게 의존하는가.
"저자"는 휴면저자의 id와 상관없이 값을 추가할 수 있음.
하지만, "휴면저자"는 저자의 id가 있어야 값을 추가할 수 있음.
"휴면저자"가 저자에게 의존적.
즉, "휴면저자"는 FK로 저자의 PK를 가리켜야 함.
Database에서,
독립적인 Entity가 부모테이블(parent TABLE),
의존적인 Entity가 자식테이블(child TABLE)로.
<4.4 - 1:N 관계의 처리>
1:N 관계의 처리
위의 ERD에서,
글:댓글,
저자:댓글의 처리.
<4.5 - N:M 관계의 처리>
N:M 관계의 처리
위의 ERD에서,
저자:글의 처리.
(공동저자 시스템)
양 쪽의 외래키를 모두 사용하는
추가 TABLE을 생성할 것.
N:M을 위한 테이블에서,
각 외래키는 외래키이면서 기본키(PK, Primary Key)로,
둘의 조합키(Composite Key)로서 식별자로 작동한다.
'Study > Database' 카테고리의 다른 글
RDB Modeling - 6. 물리적 데이터 모델링, 역정규화 (0) | 2020.01.03 |
---|---|
RDB Modeling - 5. 정규화 (0) | 2020.01.03 |
RDB Modeling - 3. 개념적 데이터 모델링 (0) | 2020.01.01 |
RDB Modeling - 2. 업무파악 (0) | 2020.01.01 |
RDB Modeling - 1. 데이터 모델링의 순서 (0) | 2020.01.01 |
잘못된 정보가 있다면, 꼭 댓글로 알려주세요(비로그인 익명도 가능).
여러분의 피드백이 저와 방문자 모두를 올바른 정보로 인도할 수 있습니다.
감사합니다. -현록