관계형 데이터 모델링: 구성요소

최건우·2023년 2월 28일
0

개념적 데이터 모델링은 기획 내용에 드러난 개념을 분석, 도출하고 빠짐없이 옮기는 단계이다. 따라서, 개념적 데이터 모델링의 결과에 따라 논리적, 물리적 데이터 모델링이 좌우될 것이다. 또한, 개념적 데이터 모델링이 기획 내용과 일치하지 않는다면 기획 의도를 올바르게 구현하지 못한 결과물이 나올 것이므로 여기에 많은 공을 들여야 한다.

엔티티(Entity)

  • 기획 내용으로부터 찾아냈거나, 데이터베이스로 표현하고자 하는 현실세계의 "개념"
  • 테이블에 해당하는 단위.
  • "읽기" 화면보다는, "쓰기" 화면 쪽에 대체로 엔티티가 잘 드러난다.

속성(Attribute)

  • 속성은 각각의 엔티티에 귀속된다.
    - ex: 게시물 엔티티에는 제목, 본문 등이 포함된다.
  • 만약 한 엔티티에 속할 다른 속성이 너무 커서 독립된 엔티티로 다룰 수 있을 정도라면, 이는 속성으로 두지 않고 엔티티와 엔티티 간의 '관계'로 표현하는 것이 바람직하다.
  • 컬럼에 해당하는 단위.

식별자(Identifier)

  • 속성들 중 엔티티를 대표할 수 있는 속성을 의미한다.
  • 식별자의 역할: 원하는 대상을 정확하게 타겟팅하는 것(구별, 식별)
  • 식별자는 절대 중복되어서는 안된다(ex. 주민등록번호가 겹칠 수 없다). 식별자는 해당 대상만을 가리키는 것이기 때문이다.
  • 이 식별자는 기본키(Primary Key)가 된다.
    - Primary Key는 테이블에서 각 행을 식별하는 유일한 식별자이다.
<참고>
- 후보키(Candidate Key): 속성(=컬럼) 중 식별자가 될 수 있는 후보군.
- 기본키(Primary Key): 후보키 중 식별자로 선택된 것.
- 대체키(Alternate Key): 후보키 중 식별자로 선택되지 않은 나머지 속성들. 이들은 성능 향상을 위해 거는 Secondary Index의 대상이 될 수 있다.
- 중복키(Composite Key): 하나의 식별자만으로는 식별이 불가능하여, 이를 위해 사용되는 둘 이상의 식별자
  - (ex) emp_no(직원 번호), dept_no(부서 번호)가 있을 때, 각 키 단독으로는 식별자 역할을 할 수 없다.
  • 만약 어떠한 속성도 식별자 역할을 할 수 없다면, auto_incrementsequence등을 이용해 다른 것과 중복되지 않는 일련번호를 만들어 식별해야 한다.

관계(Relation)

  • 엔티티와 엔티티의 관계. Primary Key, Foreign Key로 표현됨.
    - (ex) 두 엔티티 A, B를 연결할 때, 만약 B가 A의 Primary Key를 참조한다면, B의 컬럼 중 A의 PK를 가리키는 컬럼Foreign Key 이다.
  • Relation은 Primary Key와 Foreign Key가 실제로 연결됨으로써 맺어진다.




* 이 내용은 생활코딩의 "관계형 데이터 모델링" 수업을 듣고 개인적인 공부를 위해 정리한 것입니다. 문제가 있다면, 지적해 주시면 감사하겠습니다!

profile
부족한 경험을 채우기 위한 나만의 기록 공간

0개의 댓글