하려는 일이 무엇인가
하려는 일에 어떤 개념들이 내포되어 있고, 각각 어떻게 상호작용 하는가
개념적 데이터 모델링을 RDB에 맞게 전환( 각 테이블의 자료형, pk 설정 등)
실제 자신이 사용하는 DB프로그램에 맞게 표를 제작
가장 핵심이 되는 건 개념적 데이터 모델링.
이후의 것들은 개념적 데이터 모델링을 기반으로 기계적으로 작성된다.
현실의 문제는 믿을 수 없을 정도로 복잡하다.
현실을 좀 더 쉽게 파악하기 위해 ERD를 사용한다.
ERD(Entity Relationship Diagram) : 개체-관계 다이어그램
-> 현실을 정보, 그룹, 관계 이 3가지 관점으로 파악한다.
-> 현실에서 개념을 추출해내는 필터, 다른사람과 소통할 수 있는 도구의 역할을 한다.
-> 쉽게 표(논리적 데이터 모델링)로 전환이 가능하다.
구현해야 하는 기능에 속한 개념들을 분류하고, 이를 RDB 구조에 맞게 구조화한다.
RDB 구조에 맞게 설계함으로써, 중복을 제거한다.
또 수정,조회 등 기능적인 측면에서도 훨씬 효율적이게 된다.
각각의 엔티티간에 관계를 파악한다.
이것을 나중에 PK,FK,JOIN을 통해 정의한다.
이렇게 UI에서 뭔가를 쓰는 구조를 보면 엔티티를 어떻게 구분해야할지 파악하기 쉽다.
이를 통해 엔티티를 파악하고 각각의 속성을 정의한다.
각각의 엔티티에 있는 속성중에서 대표값인 식별자를 선정해야함. 원하는 대상을 정확하게 타겟팅 하기 위함.
중요한 것은 식별자값은 절대 중복돼면 안된다.
후보키 : 식별자가 될 수 있는 값들의 집합
기본키(pk) : 식별자
대체키 : 기본키를 제외한 후보키, 활용 가능성이 있음
Cardinality
- 1:N (일대다)
- 1:1 (일대일)
- N:M (다대다)
Optionality
- Optional
오른쪽 엔티티는 왼쪽 엔티티의 옵션, 있을 수도 없을 수도 있다.
- Mandatory
왼쪽은 오른쪽에게 필수
ERD에서는 Cardinality 와 Optionality를 반영하여 표현한다.
ex)