μ€ν°λ/λ°μ΄ν°λ² μ΄μ€
[λ°μ΄ν°λ² μ΄μ€ μμ€ν ] 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 ν¨μμ νκ³λ λͺ¨λ μΈμκ° λμΌν νμ μ΄μ΄μΌ νλ€
μΈλ±μ€
- λ°μ΄ν°λ² μ΄μ€μμ 릴λ μ΄μ μμ±μ νΉμ κ°μ κ°μ§κ³ μλ ννμ 릴λ μ΄μ μ λͺ¨λ ννμ μ΄ν΄λ³΄μ§ μκ³ λ ν¨κ³Όμ μΌλ‘ μ°Ύμ μ μλ μλ£κ΅¬μ‘°μ΄λ€
- μ€λ³΅ λ°μ΄ν° ꡬ쑰
- λ°μ΄ν°λ² μ΄μ€μ λ Όλ¦¬ μ€ν€λ§κ° μλ 물리 μ€ν€λ§μ μΌλΆμ΄λ€