[DB] 관계형 데이터베이스 설계 (1)

PM077·2024년 3월 25일
0

CS Study

목록 보기
26/27

생활코딩:
https://www.youtube.com/watch?v=iu8W0zCiGb8&list=PLuHgQVnccGMDF6rHsY9qMuJMd295Yk4sa&index=22

Intro

  • Model -> 목적을 가지고 진짜를 모방한것
  • 무한한 정보를 표에 넣는거는 무척 어렵다. 허나 이 어려운걸 표로 넣을 수 있게끔 복잡성을 없애고 개발이 되었다

전체흐름

데이터베이스 설계는 크게 4가지 순서로 나눠져 있다.
1. 업무 파악
2. 개념적 모델링
3. 논리적 데이터 모델링
4. 물리적 데이터 모델링
으로 나눠져 있다.

업무파악

기획자와 실무자들이 커뮤니케이션을 통해 어떠한 것을 설계할지 의논하는 단계이다. 제일 좋은 방법은 UI를 그려서 설명하는 것이며 어떠한 툴을 사용하더라도 시각화해서 이해를 쉽게 하는 것이 주 핵심이다.

개념적 데이터 모델링

ERD를 작성하는 것이라고 보면 된다. 복잡한 세상에서 3가지인 정보, 그룹, 관계 3가지로 세상을 바라볼 수 있게 만들어주며 표로 쉽게 전환할 수 있게끔 그릴 수 있다. 관계형DB는 하나의 Entity로 필요할 때마다 합성해서 표를 만들 수 있기에 편리하다고 볼 수 있다.

ERD는 Entity, Attribute, Relationship으로 나눠져 있다.
여기서 위의 그림과 같이 엔티티는 사각형, 어트리뷰트는 원, 릴레이션은 마름모로 표기한다.

식별자 지정

고유함을 알려주기 위해 식별자를 지정해줘야 한다. 이때 기본키, 대체키, 후보키로 나뉜다.

위에 사진과 같이 마땅한 식별자가 없으면 user_id와 같이 Auto increment같은걸 사용해서 만들어 주면 된다.

외래키를 활용한 엔티티간의 연결

외래키는 Foreign Key라 불리며 이를 통해 엔티티를 연결시킨다. 이 때 부모테이블에서 기본키를 가져와 사용한다는 개념으로 이해하면 된다.

카디널리티 (Cardinality)

객체간의 관계를 나타내는데 이는 주로 1:1, 1:N, N:M으로 구성된다.

여기서 Optional로 반드시 연결이 안되어도 되는 부분들이 있다. 아래와 같이 저자는 댓글을 작성 안해도 되지만 댓글이 있다면 저자는 무조건 있어야하는 원리와 동일하다.

2탄에서는 논리적데이터모델링을 알아보겠다.

profile
PM/PO

0개의 댓글