πŸ”₯ 관계 데이터 λͺ¨λΈ, λ¦΄λ ˆμ΄μ…˜(relation)κ³Ό μΈμŠ€ν„΄μŠ€(Instance)

Daehyeon YunΒ·2023λ…„ 8μ›” 3일

SQL

λͺ©λ‘ 보기
4/4

πŸ”₯관계 데이터 λͺ¨λΈ

관계 데이터 λͺ¨λΈμ€ μˆ˜ν•™μ  집합이둠에 κ·Όκ±°ν•˜κΈ°μ— νŠΌνŠΌν•œ 이둠적 ν† λŒ€λ₯Ό κ°–μΆ”μ—ˆλ‹€.
관계 데이터 λͺ¨λΈμ΄ 적용된 SQL μ–Έμ–΄λŠ” λΉ„μ ˆμ°¨μ μΈ μ–Έμ–΄λ‘œ μ›ν•˜λŠ” 데이터λ₯Ό μ‰½κ²Œ ν‘œν˜„ν•˜λŠ” μž₯점이 μ‘΄μž¬ν•œλ‹€.

πŸ”₯λ¦΄λ ˆμ΄μ…˜(Relation)

: ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λœ ν…Œμ΄λΈ”μ„ λ§ν•œλ‹€.
πŸ’‘μ΄λ•Œ, λ¦΄λ ˆμ΄μ…˜(Relation)κ³Ό 관계(Relationship)λŠ” 데이터 λͺ¨λΈλ§μ—μ„œ λ‹€λ₯΄λ―€λ‘œ 주의
λ¦΄λ ˆμ΄μ…˜μ€ μŠ€ν‚€λ§ˆ(Schema)와 μΈμŠ€ν„΄μŠ€(Instance)둜 이루어진닀.

  • μŠ€ν‚€λ§ˆ(Schema) : 관계 λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ¦΄λ ˆμ΄μ…˜μ΄ μ–΄λ–»κ²Œ κ΅¬μ„±λ˜κ³ , μ–΄λ– ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ”μ§€μ— λŒ€ν•œ 기본적인 ꡬ쑰λ₯Ό μ •μ˜ν•œλ‹€. λ˜ν•œ, ν…Œμ΄λΈ”(Table)μ—μ„œ μŠ€ν‚€λ§ˆλŠ” ν…Œμ΄λΈ”μ˜ 첫 행인 헀더에 λ‚˜νƒ€λ‚˜λ©° 각 λ°μ΄ν„°μ˜ νŠΉμ§•μ„ λ§ν•˜λŠ” 속성, λ“€μ–΄κ°€λŠ” 자료의 νƒ€μž… λ“± μΈμŠ€ν„΄μŠ€μ— λŒ€ν•œ 정보λ₯Ό κ°€μ§€κ³ μžˆλ‹€.
  • μΈμŠ€ν„΄μŠ€(Instance) : 상기 μ •μ˜λœ μŠ€ν‚€λ§ˆμ— 따라 ν…Œμ΄λΈ”μ— μ‹€μ§ˆμ μœΌλ‘œ μ €μž₯λ˜λŠ” λ°μ΄ν„°μ˜ 집합을 μ •μ˜ν•œλ‹€.

πŸ”₯λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆ(Relation Schema)

μŠ€ν‚€λ§ˆλŠ” λ¦΄λ ˆμ΄μ…˜μ˜ 기본적인 ꡬ쑰λ₯Ό λ§ν•œλ‹€. 즉, λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆλŠ” λ¦΄λ ˆμ΄μ…˜μ— μ–΄λ–€ 정보가 λ‹΄κΈΈμ§€(헀더)λ₯Ό μ •μ˜ν•˜λŠ” 역할이닀.

λ§Œμ•½, μ‚¬μš©μž(USER)λΌλŠ” λ¦΄λ ˆμ΄μ…˜μ΄ μ‘΄μž¬ν•œλ‹€λ©΄, ν•΄λ‹Ή λ¦΄λ ˆμ΄μ…˜μ„ κ΅¬μ„±ν•˜λŠ” μŠ€ν‚€λ§ˆλŠ” μ‚¬μš©μž 아이디(user_id), μ‚¬μš©μž 이름(user_name) λ“±μœΌλ‘œ μ •μ˜ν•  수 μžˆλ‹€.

이처럼 λ¦΄λ ˆμ΄μ…˜μ— μ •μ˜λœ 각 열을 속성(attribute)이라 ν•˜λ©° λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ μ—΄ κ·Έ 자체λ₯Ό μ˜λ―Έν•œλ‹€.
μ΄λ•Œ, λ¦΄λ ˆμ΄μ…˜μ΄ λͺ‡ 개의 속성을 κ°€μ§€κ³  μžˆλŠ”μ§€ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•΄ 차수(degree)λΌλŠ” μš©μ–΄κ°€ μ‘΄μž¬ν•œλ‹€.

λ¦΄λ ˆμ΄μ…˜μ— μ •μ˜ν•œ μ†μ„±μœΌλ‘œ λ³΄μ•˜μ„ λ•Œ 개발자(μ‚¬λžŒ)은 ν•΄λ‹Ή μ†μ„±λ“€μ˜ μ΄λ¦„μœΌλ‘œ λŒ€λž΅μ μΈ 정보λ₯Ό μœ μΆ”ν•  수 μžˆλ‹€. ν•˜μ§€λ§Œ, μ‹€μ œ μ»΄ν“¨ν„°λŠ” μ–΄λ– ν•œ νƒ€μž…μΈμ§€ μ•Œ 수 없기에 도메인(Domain)을 μ‚¬μš©ν•˜μ—¬ μ†μ„±μ˜ 정보λ₯Ό μ •μ˜ν•œλ‹€.

도메인(Domain)은 속성(attribute)이 κ°€μ§ˆ 수 μžˆλŠ” μ •λ³΄μ˜ λ²”μœ„λ₯Ό λ§ν•œλ‹€.
μ˜ˆμ‹œ : 성별(Sex)μ΄λΌλŠ” μ†μ„±μ˜ 도메인은 λ‚¨μž(Man)와 μ—¬μž(Girl)이닀.

πŸ”₯λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€(Relation Instance)

λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€λŠ” λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ— μ‹€μ œλ‘œ μ €μž₯된 λ°μ΄ν„°μ˜ 집합을 λ§ν•œλ‹€.
λ¦΄λ ˆμ΄μ…˜μ—μ„œμ˜ 행은 νŠœν”Œ(Tuple)이라 ν•˜λ©°, μ΄λŠ” λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€μ˜ 각각의 행을 λ§ν•œλ‹€.
μ΄λ•Œ, λ¦΄λ ˆμ΄μ…˜ λ‚΄μ˜ λͺ¨λ“  νŠœν”Œλ“€μ€ μ„œλ‘œ μ€‘λ³΅λ˜μ§€ μ•Šμ•„μ•Ό ν•œλ‹€.
λ¦΄λ ˆμ΄μ…˜μ— μ €μž₯된 νŠœν”Œ(Tuple)의 개수λ₯Ό 카디널리티(Cardinality)라 ν•œλ‹€.

πŸ’‘λ¦΄λ ˆμ΄μ…˜(Relation)의 νŠΉμ§•

  1. 속성(Attribute)λŠ” 단일 값을 κ°€μ Έμ•Όν•œλ‹€.
    : 각 μ†μ„±μ˜ 값은 도메인에 μ •μ˜λœ κ°’λ§Œμ„ κ°€μ Έμ•Ό ν•˜λ©° ν•΄λ‹Ή 값은 λͺ¨λ‘ 단일 값이어야 ν•œλ‹€.
  2. 속성(Attribute)λŠ” μ„œλ‘œ λ‹€λ₯Έ 이름을 κ°€μ§„λ‹€.
  3. ν•œ 속성(Attribute)의 값은 λͺ¨λ‘ 같은 도메인 값을 κ°€μ Έμ•Ό ν•œλ‹€.
  4. 속성(Attribute)의 μˆœμ„œλŠ” μƒκ΄€ν•˜μ§€ μ•ŠλŠ”λ‹€.
  5. λ¦΄λ ˆμ΄μ…˜(Relation) λ‚΄μ˜ μ€‘λ³΅λœ νŠœν”Œ(Tuple)은 ν—ˆμš©λ˜μ§€ μ•ŠλŠ”λ‹€.
  6. νŠœν”Œ(Tuple)의 μˆœμ„œλŠ” μƒκ΄€ν•˜μ§€ μ•ŠλŠ”λ‹€.

πŸ“μ •λ¦¬

λ¦΄λ ˆμ΄μ…˜(Relation) : ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λœ ν…Œμ΄λΈ”
μŠ€ν‚€λ§ˆ(Schema) : λ¦΄λ ˆμ΄μ…˜μ˜ ꡬ쑰 μ •μ˜(ν…Œμ΄λΈ”μ—μ„œλŠ” 헀더λ₯Ό 의미)
μΈμŠ€ν„΄μŠ€(Instance) λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ— μ‹€μ œλ‘œ μ €μž₯λ˜λŠ” λ°μ΄ν„°μ˜ μ§‘ν•©
속성(Attribute) : λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ μ—΄(Column)
도메인(Domain) : 속성이 κ°€μ§ˆ 수 μžˆλŠ” μ •λ³΄μ˜ λ²”μœ„
차수(Degree) : λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆκ°€ κ°€μ§€κ³  μžˆλŠ” μ†μ„±μ˜ 개수
νŠœν”Œ(Tuple) : λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€μ˜ 각각의 ν–‰(row)
카디널리티(Cardinality) : λ¦΄λ ˆμ΄μ…˜μ— μ €μž₯된 νŠœν”Œμ˜ 개수


[Reference]
1) 이기적 SQLD μ΄λ‘ μ„œ+λ¬Έμ œμ§‘
2) deftkang의 ITλΈ”λ‘œκ·Έ

profile
μ—΄μ‹¬νžˆ μ‚΄μ•„μ•Όμ§€

0개의 λŒ“κΈ€