μŠ€ν„°λ””/λ°μ΄ν„°λ² μ΄μŠ€

[λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œ] Relational Languages

moon101 2023. 4. 15. 10:53

 

 

β›… Chapter 2 κ΄€κ³„ν˜• λͺ¨λΈ μ†Œκ°œ 

Relational Terminology 정리

  • Database: κ³ μœ ν•œ 이름을 κ°€μ§„ ν…Œμ΄λΈ”/λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨μž„
  • Relation = table
    • schema: 논리적 섀계 (메타 데이타, λ°μ΄ν„°μ˜ 데이터), λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€
    • instance: λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜μ–΄ μžˆλŠ” λ°μ΄ν„°μ˜ μŠ€λƒ…μƒ·, 자주 λ³€ν•œλ‹€.
  • Attribute = Column = Field
  • Tuple = Record = Row

 

μ±…μ—μ„œ μ‚¬μš©ν•˜λŠ” terminoloy 정리 - Relational Algebra (관계 λŒ€μˆ˜)

관계 λŒ€μˆ˜ μ—°μ‚°

선택 μ—°μ‚°(selection) = 그리슀 μ†Œλ¬Έμž μ‹œκ·Έλ§ˆ(σ)  // 참고둜 μ‹œκ·Έλ§ˆμ˜ 그리슀 λŒ€λ¬ΈμžλŠ” ∑ 이닀

μΆ”μΆœ μ—°μ‚°(project) = 그리슀 λŒ€λ¬Έμž 파이(Π) 

  • unary operation that returns its argument relation, with certain attributes left out

쑰인 μ—°μ‚°(join)β‹ˆθ        // Natural join = β‹ˆ  Theta join = β‹ˆθ

  • 선택과 μΉ΄ν‹°μ…˜ 곱을 ν•˜λ‚˜μ˜ μ—°μ‚°μœΌλ‘œ ν•©μΉœ 것
  • r β‹ˆθ s = σθ(r × s) 
  • σinstructor.ID=teaches.ID(instructor × teaches) 이건 instructor β‹ˆinstructor.ID=teaches.ID teaches 이것과 λ™μΌν•˜λ‹€

μ§‘ν•© μ—°μ‚°(set)

  • ν•©μ§‘ν•©(union)  = ∪
    • ∧ : conjunction 기호이고 and 둜 읽을 수 μžˆλ‹€
    • ν•©μ§‘ν•© 연산이 κ°€λŠ₯ν•˜λ €λ©΄, 1. λ¦΄λ ˆμ΄μ…˜ rκ³Ό sλŠ” 같은 수의 속성을 κ°€μ Έμ•Ό ν•˜λ©°, 2. λ¦΄λ ˆμ΄μ…˜ r의 i번째 μ†μ„±μ˜ 도메인과 λ¦΄λ ˆμ΄μ…˜ s의 i번째 μ†μ„±μ˜ 도메인은 μ„œλ‘œ κ°™μ•„μ•Ό ν•œλ‹€. 그리고 μ΄λŸ¬ν•œ λ¦΄λ ˆμ΄μ…˜μ„ ν˜Έν™˜ κ°€λŠ₯ν•œ λ¦΄λ ˆμ΄μ…˜(compatible relation)이라고 ν•œλ‹€
    • 인수(arity) : λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ†μ„±μ˜ 개수
  • ꡐ집합(intersection) = ∩
  • μ°¨μ§‘ν•©(set-difference) = −

λ°°μ • μ—°μ‚°(assignment) = ←

재λͺ…λͺ… μ—°μ‚°(rename) = 그리슀 μ†Œλ¬Έμž rho(ρ)

 


 

β›… Chapter 3, 4, 5 SQL 

check 절

  • check(p) μ ˆμ€ λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨λ“  νŠœν”Œμ΄ μΆ©μ‘±ν•΄μ•Ό ν•˜λŠ” μˆ μ–΄ Pλ₯Ό λͺ…μ‹œν•œλ‹€  
  • 예λ₯Ό λ“€μ–΄, check (semester in ('Fall', 'Winter', 'Spring', 'Summer')) μ΄λ ‡κ²Œ semesterκ°€ μ œμ‹œλœ μ—΄κ±°ν˜• νƒ€μž…(enumerated type)을 μ •μ˜ν•˜λŠ” 데 μ‚¬μš© 될 μˆ˜λ„ μžˆλ‹€ 

coalesce ν•¨μˆ˜

  • 질의 κ²°κ³Όμ—μ„œ μ–΄λ–»κ²Œ null 값을 좜λ ₯ν• μ§€ 선택할 수 μžˆλ‹€
  • 예) select ID, coalesce(salary, 0) as salary λŠ” κΈ‰μ—¬κ°€ null일 경우 0으둜 ν‘œμ‹œν•œλ‹€
  • coalesce ν•¨μˆ˜μ˜ ν•œκ³„λŠ” λͺ¨λ“  μΈμžκ°€ λ™μΌν•œ νƒ€μž…μ΄μ–΄μ•Ό ν•œλ‹€

인덱슀

  • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ¦΄λ ˆμ΄μ…˜ μ†μ„±μ˜ νŠΉμ • 값을 κ°€μ§€κ³  μžˆλŠ” νŠœν”Œμ„ λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨λ“  νŠœν”Œμ„ μ‚΄νŽ΄λ³΄μ§€ μ•Šκ³ λ„ 효과적으둜 찾을 수 μžˆλŠ” μžλ£Œκ΅¬μ‘°μ΄λ‹€
  • 쀑볡 데이터 ꡬ쑰
  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 논리 μŠ€ν‚€λ§ˆκ°€ μ•„λ‹Œ 물리 μŠ€ν‚€λ§ˆμ˜ 일뢀이닀

 

SQL λ¬Έ μˆœμ„œ