관계형 데이터 모델링 - 개념적 데이터 모델링
- 개념적 데이터 모델링 : 파악한 업무에서 개념을 뽑아내는 과정.
- 현실에서 개념을 추출하는 필터를 제공한다.
- 개념에 대해 다른사람과의 언어로 통한다. (Entity Relationship Diagram 을 사용)
- ERD는 정보, 그룹, 관계로 현실의 관점을 바라보게 해준다.
- 관계형 데이터 베이스 다운 개념의 구조
- RDB에서는 내포관계를 허용하지 않는다.
- 거대 단일 테이블로 표현하면 어마어마한 중복이 발생할 수 있다.
- 평면적인 관계로 데이터들을 추출해 내는것이다.
- ERD의 구성요소
- 찾아낸 큰틀의 개념들을 개념적 모델링이나 ERD 에서 Entity 라고한다. (Table)
- 앤티티의 속성들을 Attribute 라고 한다. ( Column )
- 앤티티들과의 연관성을 표현해준것이 Relation 이라고 한다. ( PK,FK )
- 식별자 지정
- 앤티티들을 대표하는 식별자 (Identifier) 지정이 필요하다.
- 중복되지 않아야한다.
- 나중에 Primary_Key 가 된다.
- PK가 될수 있는 속성이 없다면 인조키나 대리키를 만들어야한다.
- 행마다 1이 추가되는 방식으로 인조키를 만들 수 있다.
- 앤티티간의 연결
- 관계형 데이터 베이스는 PK FK들이 연결되며 구현이 된다.
- Cardinality
- 예를 들어 1대1 관계라면 담임과 반의 관계로 O--O 관계로 표현한다.
- 1대 N 의 관계라면, O---=O 로 표현한다.
- N대 N 의 관계라면 O=--=O로 표현한다.
- Optionality
- 저자에게 댓글은 Option이다 쓰지않을 수도있고 쓸수도 있기때문이다.
- ERD에서 O--o-O 로 표현한다.
- 반대로 댓글에게 저자는 Mandatory 이다. 존재하기 위해선 필수이기 때문이다.
- O-I--o-O로 표현한다.
- O-I--o-=O 1대 N의 표현을 할수있다.