[TIL 관련] - 3주차 - 관계형 데이터 모델링

dong-il·2022년 5월 31일
0

SFS-프로젝트

목록 보기
3/5
post-thumbnail

Intro

SFS 프로젝트를 진행하기 앞서 데이터베이스 설계에 대한 막막함을 느꼈다. 지금까지 클론코딩으로 이미 데이터베이스 설계가 되어있는 상태였거나 2년전에 팀프로젝트를 진행하면서 팀원들과 같이 데이터베이스 설계를 한 것이 다였다. 그래서 유튜브에 데이터베이스 설계관련 무료 강좌를 찾던 중에 생활코딩 채널의 [관계형 데이터 모델링] 강의가 눈에 들어왔다. 총 32개의 영상 중에서 22개의 영상까지 봤고 거기에 대한 내용을 정리를 포스팅하고자 한다. 22개까지의 내용에서는 개념적 설계부터 논리적 설계까지 나온다. 그 후의 영상에서는 정규화, 반정규화 내용을 다루는 듯 하다.

[생활코딩] - 관계형 데이터 모델링

데이터 모델링 : 현실 세계의 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정

Process

  • 요구사항분석(업무파악) 👉🏻 개념적 설계(개념적 데이터 모델링) 👉🏻 논리적 설계(데이터 모델링) 👉🏻 물리적 설계(데이터 모델링) 👉🏻 구현

2단계 개념적 설계(개념적 데이터 모델링)

  • 결과물은 E-R 다이어그램(ERD).
  • draw.io(사이트) 라는 툴 사용.

논리적 데이터 모델링

  • 결과물은 논리적 스키마.
  • 이클립스 ERMaster 라는 툴 사용.

물리적 데이터 모델링

  • 결과물은 물리적 스키마.
  • SQL로 설계.

E-R Diagram

  • 네모 박스는 Entity을 나타냄
  • 타원은 Attribute을 나타냄
  • 마름모는 Relation을 나타냄

Mapping Rule

  • Entity 👉🏻 Table(테이블)
  • Attribute 👉🏻 Column(열)
  • Relation 👉🏻 PK(Primary Key), FK(Foreign Key)
  • Tuple 👉🏻 Row(행)

Key

키(Key)는 데이터베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 Attribute(속성)

Candidate Key(후보키)

  • 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용하는 속성들의 부분집합.
  • 기본키로 사용할 수 있는 속성들을 말함.
  • 모든 릴레이션은 반드시 하나 이상의 후보키를 가져야함.
  • <학생>테이블에서 학번이나 주민번호는 다른 레코드에서 유일하게 구별할 수 있는 기본키로 사용할 수 있음으로 후보키.

Primary Key(기본키)

  • 후보키 중에서 선택한 주키(Main Key) 👉🏻 후보키보다는 작은 개념.
  • 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성.
  • Null 값을 가질 수 없음.
  • 기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없음.

Alternate Key(대체키)

  • 후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 말함.
  • 보조키라고도 함.
  • <학생>테이블에서 학번을 기본키로 정의하면, 주민번호는 대체키가 됨.

Foreign Key(외래키)

  • 관계(Relation)를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1 릴레이션의 속성.
  • 외래키로 지정되면 참조 테이블의 기본키에는 없는 값을 입력할 수 없음.
  • <수강>테이블이 <학생>테이블을 참조하고 있으므로 <학생>테이블의 학번은 기본키이고, <수강>테이블의 학번은 외래키.
  • <수강>테이블의 학번에는 <학생>테이블의 학번에 없는 값을 입력할 수 없음.

Super Key(슈퍼키)

  • 슈퍼키는 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로서 릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성과 집합은 동일한 값을 나타내지 않음.
  • 테이블을 구성하는 모든 튜플에 대해 유일성은 만족시키지만, 최소성은 만족시키지 못함
  • <학생>테이블에서 학번, 주민번호, 학번+주민번호, 주민번호+성명, 학번+주민번호+성명 등으로 슈퍼키를 구성할 수 있음.

Composite Key(중복키)

Cardinality와 Optionality

Cardinality

  • 1:1(일 대 일)

  • 1:N(일 대 다)

  • N:M(다 대 다)

Optionality

출처 및 참고자료

profile
어떠한 가치를 창출할 수 있을까를 고민하는 개발자. 주로 Spring으로 개발해요.

0개의 댓글