참고자료
- 생활코딩
관계형 데이터 모델링
강의- 데이터모델링 슬라이드 자료
업무 파악
-> 개념적 데이터 모델링
-> 논리적 데이터 모델링
-> 물리적 데이터 모델링
업무파악
개념적 데이터 모델링
논리적 데이터 모델링
물리적 데이터 모델링
=> 이는 소프트웨어 엔지니어가 공부를 멀리할 수 없고, 인간관계를 등한시 할 수 없는 이유이기도 함
방법1 : UI(User Interface)
를 같이 그려보는 것
: 어플리케이션이 어떤 UI를 갖기를 바라는 지, 그려보는 과정에서 원하는 것을 분명하게 하고, 서로 생각하는 것을 일치시킬 수 있음.
(말의 힘(기능)을 불신하기. 말을 불신할수록 말의 신뢰성은 높아짐)
Tool : Oven
JOIN
을 통해 DB를 연결함개체와 개체 간의 관계를 표준화된 그림으로 나타냄
강한 개체(strong entity)
: 다른 개체의 도움 없이 독자적으로 존재할 수 있는 개체
약한 개체(weak entity)
: 독자적으로는 존재할 수 없고 반드시 상위 개체 타입을 가짐
속성(attribute)
: 개체가 가진 성질
관계(relationship)
: 개체 사이의 연관성을 나타내는 개념
관계 타입
: 개체 타입과 개체 타입 간의 연결 가능한 관계를 정의, 관계 집합은 관계로 연결된 집합을 의미
직사각형
으로 표현타원
으로 표현직사각형
과 실선
으로 연결됨밑줄
그음마름모
로 표현인조키
를 만든다.(id값)Primary Key
: 각각의 표에 행을 식별하는 유일무이한 식별자Foreign Key
: 외래 테이블과 연결할 때 사용하는 키(ex.글 테이블 저자 아이디 값)Primary Key
와 Foreign Key
가 연결되는 것을 통해 실제로 구현됨ERD 표현 방법(마름모꼴 도형)
1:1 관계
1:N 관계
M:N 관계 (중간에 연결테이블을 만들어서 구현함)
기호에 엄격한 룰이 있지는 않음. 회사 컨벤션.
학습 사이트 http://erd.yah.ac/
AI
: Auto IncrementFK
: Foreign KeyPK
: Primary KeyNull
: Is Nullable (NOT NULL은 미체크)Primary Key
값을 가지지 않아도 되는 경우, 넣지 않는 게 성능 등에 좋음(ex.휴면계정dormant 테이블을 만들 경우 휴면계정에는 별도 아이디값이 필요하지 않고, 유저 아이디를 참조하면 됨.)1:1
: 누가 Primary Key를 가질 것인가 헷갈림1:N
: 가장 쉬움N:M
: 가장 어려움물리적 모델링 시 트랜잭션, 저장 공간 설계 측면에서 고려할 사항
1. 응답시간을 최소화
2. 얼마나 많은 트랜잭션을 동시에 발생시킬 수 있는지 검토
3. 데이터가 저장될 공간을 효율적으로 배치