Ch06-2.md


관계 λŒ€μˆ˜μ˜ κ°œλ…κ³Ό μ—°μ‚°μž

  • κ°œλ…

    • μ›ν•˜λŠ” κ²°κ³Όλ₯Ό μ–»κΈ° μœ„ν•΄ λ¦΄λ ˆμ΄μ…˜μ„ μ²˜λ¦¬ν•˜λŠ” 과정을 μˆœμ„œλŒ€λ‘œ κΈ°μˆ ν•˜λŠ” μ–Έμ–΄

  • μ—°μ‚°

    • μ—°μ‚°μžκ³Ό ν”Όμ—°μ‚°μžλ‘œ ꡬ성

  • νμ‡„νŠΉμ„±

    • κ΄€κ³„λŒ€μˆ˜μ˜ μ—°μ‚°: λ¦΄λ ˆμ΄μ…˜

    • ν”Όμ—°μ‚°μžμΈ λ¦΄λ ˆμ΄μ…˜μ— μ—°μ‚°μžλ₯Ό μ μš©ν•΄ μ—°μ‚°ν•œ κ²°κ³Ό: λ¦΄λ ˆμ΄μ…˜

  • 관계 λŒ€μˆ˜ μ—°μ‚°μž

    • 일반 μ§‘ν•© μ—°μ‚°μž(set operation)

      • ν•©μ§‘ν•© (Union)

      • ꡐ집합 (Intersection)

      • μ°¨μ§‘ν•© (Difference)

      • μΉ΄λ””μ…˜ ν”„λ‘œλ•νŠΈ (Cartesian Product)

    • 순수 관계 μ—°μ‚°μž(relational operation)

      • μ…€λ ‰νŠΈ (Select)

      • ν”„λ‘œμ νŠΈ (Project)

      • 쑰인 (Join)

      • λ””λΉ„μ „ (Division)

일반 μ§‘ν•© μ—°μ‚°μž

generalsetoperation
  • μˆ˜ν•™μ˜ μ§‘ν•© μ—°μ‚°μžμ™€ λΉ„μŠ·

일반 μ§‘ν•© μ—°μ‚°μžμ˜ μ œμ•½μ‘°κ±΄

  1. 연산을 μœ„ν•΄ ν”Όμ—°μ‚°μž(λ¦΄λ ˆμ΄μ…˜)κ°€ 2개 ν•„μš”ν•˜λ‹€.

  2. ν•©μ§‘ν•©, ꡐ집합, 차집합은 ν”Όμ—°μ‚°μžμΈ 2개의 λ¦΄λ ˆμ΄μ…˜μ΄ 합병 κ°€λŠ₯(union-compatible)ν•΄μ•Ό ν•œλ‹€.

  • λ¦΄λ ˆμ΄μ…˜μ˜ 합병 κ°€λŠ₯ 쑰건

    • 두 λ¦΄λ ˆμ΄μ…˜μ˜ 차수(속성 개수)κ°€ κ°™λ‹€.

    • 2개의 λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ„œλ‘œ λŒ€μ‘λ˜λŠ” μ†μ„±μ˜ 도메인(데이터 νƒ€μž…)이 κ°™λ‹€.

      • 단, 도메인이 κ°™μœΌλ©΄ μ†μ„±μ˜ 이름은 달라도 λœλ‹€.

  • μΉ΄λ””μ…˜ ν”„λ‘œλ•νŠΈμ˜ 경우 μ œμ•½μ‘°κ±΄ 2λ²ˆμ— ν•΄λ‹Ήν•˜λŠ” 합병가λŠ₯ 여뢀에 상관없이 연산이 κ°€λŠ₯ν•˜λ‹€.

ν•©μ§‘ν•©(Union)

  • ν‘œν˜„

    • R U S

  • λ¦΄λ ˆμ΄μ…˜ R에 μ†ν•˜κ±°λ‚˜ λ¦΄λ ˆμ΄μ…˜ S에 μ†ν•˜λŠ” λͺ¨λ‘ νŠœν”Œλ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성 union

  • μ—°μ‚° 결과의 차수 = ν”Όμ—°μ‚°μžμ˜ 차수

  • μ—°μ‚° 결과의 카디널리티 <= 각 νŠœν”Œμ˜ 카디널리티 ν•©

  • νŠΉμ§•

    • κ΅ν™˜μ  νŠΉμ§•

      • R U S == S U R

    • 결합적 νŠΉμ§•

      • (R U S) U T == R U (S U T)

ꡐ집합(Intersection)

  • ν‘œν˜„

    • R ∩ S

  • 두 ν”Όμ—°μ‚°μžμ— κ³΅ν†΅μœΌλ‘œ μ†ν•˜λŠ” νŠœν”Œλ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성 intersection

  • μ—°μ‚° 결과의 차수 = ν”Όμ—°μ‚°μžμ˜ 차수

  • μ—°μ‚° 결과의 카디널리티 <= ν”Όμ—°μ‚°μžμ˜ 카디널리티

  • νŠΉμ§•

    • κ΅ν™˜μ  νŠΉμ§•

      • R ∩ S == S ∩ R

μ°¨μ§‘ν•©(Difference)

  • ν‘œν˜„

    • R - S

  • λ¦΄λ ˆμ΄μ…˜ Rμ—λŠ” μ‘΄μž¬ν•˜μ§€λ§Œ λ¦΄λ ˆμ΄μ…˜ Sμ—λŠ” μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” νŠœν”Œλ“€λ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜ ꡬ성 difference

  • μ—°μ‚° 결과의 차수 = ν”Όμ—°μ‚°μžμ˜ 차수

  • μ—°μ‚° 결과의 카디널리티 <= ν”Όμ—°μ‚°μžμ˜ 카디널리티

  • νŠΉμ§•

    • μ—†μŒ

      • ν”Όμ—°μ‚°μžμ˜ μˆœμ„œμ— 따라 κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ΄ 달라지기 λ•Œλ¬Έμ— κ΅ν™˜μ  νŠΉμ„±κ³Ό 결합적 νŠΉμ„± λͺ¨λ‘ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€

μΉ΄λ””μ…˜ ν”„λ‘œλ•νŠΈ(Cartesian Product)

  • ν‘œν˜„

    • R X S

  • λ¦΄λ ˆμ΄μ…˜ R에 μ†ν•œ 각 νŠœν”Œκ³Ό λ¦΄λ ˆμ΄μ…˜ S에 μ†ν•œ 각 νŠœν”Œμ„ λͺ¨λ‘ μ—°κ²°ν•˜μ—¬ λ§Œλ“€μ–΄μ§„ μƒˆλ‘œμš΄ νŠœν”Œλ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜ ꡬ성 cartesian

  • μœ„μ˜ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ˜ 속성은 'λ¦΄λ ˆμ΄μ…˜.속성이름'ν˜•μ‹μœΌλ‘œ ν‘œκΈ°λ˜μ—ˆλŠ”λ°, μ΄λŠ” 각 λ¦΄λ ˆμ΄μ…˜μ—μ„œ λ™μΌν•œ μ΄λ¦„μ˜ 번호 속성이 μ‘΄μž¬ν•˜κΈ° λ•Œλ¬Έμ— μ›λž˜ μ–΄λŠ λ¦΄λ ˆμ΄μ…˜ μ†Œμ†μΈμ§€ λ‚˜νƒ€λ‚΄κΈ° μœ„ν•œ ν‘œκΈ°λ²•μ΄λ‹€.

  • μ—°μ‚° 결과의 차수 = 각 ν”Όμ—°μ‚°μžμ˜ 차수의 ν•©

  • μ—°μ‚° 결과의 카디널리티 = 각 ν”Όμ—°μ‚°μž μΉ΄λ””λ„λ¦¬ν‹°μ˜ κ³±

  • νŠΉμ§•

    • 두 λ¦΄λ ˆμ΄μ…˜μ˜ 합병이 λΆˆκ°€λŠ₯ν•œ κ²½μš°μ—λ„ μΉ΄ν‹°μ…˜ ν”„λ‘œλ•νŠΈ 연산은 κ°€λŠ₯

    • κ΅ν™˜μ  νŠΉμ§•

      • R X S == S X R

    • 결합적 νŠΉμ§•

      • (R X S) X T == R X (S X T)

순수 관계 μ—°μ‚°μž

purerelatinoaloperator

μ…€λ ‰νŠΈ (Select)

  • λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ£Όμ–΄μ§„ 쑰건을 λ§Œμ‘±ν•˜λŠ” νŠœν”Œλ§Œ μ„ νƒν•˜μ—¬ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성

  • ν‘œν˜„

    • λ¦΄λ ˆμ΄μ…˜ where 쑰건식 OR Οƒλ“±κΈ‰=β€˜gold’(고객)

    • κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ€ μˆ˜ν‰μ  λΆ€λΆ„μ§‘ν•©(horizontal subset)κ³Ό κ°™μŒ

  • 쑰건식

    • λ¦΄λ ˆμ΄μ…˜μ˜ λͺ¨λ“  νŠœν”Œ 쀑 쑰건식을 참으둜 λ§Œλ“œλŠ” μΌλΆ€λΆ„μ˜ νŠœν”Œλ“€λ§Œ μ„ νƒν•˜μ—¬ 좜λ ₯

    • 비ꡐ μ—°μ‚°μžλ₯Ό μ΄μš©ν•΄ ꡬ성

    • 비ꡐ식 / ν”„λ ˆλ””ν‚·(predicate)

    • μƒμˆ˜μ™€ 비ꡐ: μƒμˆ˜μ˜ 데이터 νƒ€μž…μ΄ μ†μ„±μ˜ 도메인과 μΌμΉ˜ν•΄μ•Ό 함

    • λ‹€λ₯Έ 속성과 비ꡐ: ν•΄λ‹Ή μ†μ„±μ˜ 도메인이 κ°™μ•„μ•Ό 비ꡐ할 수 있음

    • λΉ„κ΅μ—°μ‚°μžμ™€ ν•¨κ»˜ 논리 μ—°μ‚°μž(AND, OR, NOT)λ₯Ό μ‚¬μš©ν•˜μ—¬ 더 λ³΅μž‘ν•œ 쑰건식을 ꡬ성할 수 있음

  • κ΅ν™˜μ  νŠΉμ§• 쑴재

ν”„λ‘œμ νŠΈ (Project)

  • λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ„ νƒν•œ 속성에 ν•΄λ‹Ήν•˜λŠ” κ°’μœΌλ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성

  • ν‘œν˜„

    • πΏμ†μ„±λ¦¬μŠ€νŠΈ(λ¦΄λ ˆμ΄μ…˜) or λ¦΄λ ˆμ΄μ…˜[μ†μ„±λ¦¬μŠ€νŠΈ]

    • κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ€ μ£Όμ–΄μ§„ 일뢀 μ—΄λ‘œλ§Œ κ΅¬μ„±λ˜κΈ° λ•Œλ¬Έμ— 수직적 λΆ€λΆ„ μ§‘ν•©(vertical subset)κ³Ό κ°™μŒ

쑰인 (Join)

  • λΆ„λ₯˜

    • μžμ—° 쑰인(natural join)

    • 세타 쑰인(theta join)

    • 이쀑쑰인

      • 세미쑰인

      • 외뢀쑰인

  • 쑰인의 κ°œλ…

    • λ¦΄λ ˆμ΄μ…˜ ν•˜λ‚˜λ‘œ μ›ν•˜λŠ” 데이터λ₯Ό 얻을 수 μ—†μ–΄ 관계가 μžˆλŠ” μ—¬λŸ¬ λ¦΄λ ˆμ΄μ…˜μ„ ν•¨κ»˜ μ‚¬μš©ν•΄μ•Όν•˜λŠ” 경우

    • 쑰인 속성(join attribute)을 μ΄μš©ν•΄ 두 λ¦΄λ ˆμ΄μ…˜μ„ μ‘°ν•©ν•˜μ—¬ ν•˜λ‚˜μ˜ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성

      • 쑰인 속성: 두 λ¦΄λ ˆμ΄μ…˜μ΄ κ³΅ν†΅μœΌλ‘œ κ°€μ§€κ³  μžˆλŠ” 속성

  • μžμ—°μ‘°μΈ

    • ν‘œν˜„

      • λ¦΄λ ˆμ΄μ…˜1 β‹ˆ λ¦΄λ ˆμ΄μ…˜2

    • 두 λ¦΄λ ˆμ΄μ…˜μ„ 쑰인 ν•  λ•Œμ—λŠ” 쑰인 μ†μ„±μ˜ 값이 같은 νŠœν”Œλ§Œ μ—°κ²°ν•˜μ—¬ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ„ ꡬ성

  • 세타쑰인

    • ν‘œν˜„

      • λ¦΄λ ˆμ΄μ…˜1 β‹ˆ(속성[λΉ„κ΅μ—°μ‚°μž]속성) λ¦΄λ ˆμ΄μ…˜2

    • 비ꡐ연산이 κ°€λŠ₯ν•˜λ„λ‘ 같은 λ„λ©”μΈμ˜ 속성을 비ꡐ해야함

    • 동일 쑰인 (equi join)

      • 쑰인 쑰건의 비ꡐ μ—°μ‚°μžκ°€ =인 세타 쑰인

  • 세미쑰인(semi join)

    • κ°œλ…

      • λ¦΄λ ˆμ΄μ…˜ S의 쑰인 μ†μ„±μœΌλ‘œλ§Œ κ΅¬μ„±ν•œ(ν”„λ‘œμ νŠΈν•œ) λ¦΄λ ˆμ΄μ…˜μ„ λ¦΄λ ˆμ΄μ…˜ R에 μžμ—°μ‘°μΈν•˜λŠ” 것 semijoin

  • μ™ΈλΆ€ 쑰인(outer join) outerjoin

    • κ°œλ…

      • 두 λ¦΄λ ˆμ΄μ…˜μ— μžμ—° 쑰인 연산을 μˆ˜ν–‰ν•  λ•Œ 쑰인 속성 값이 같은 νŠœν”Œμ΄ μƒλŒ€ λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ•„ 쑰인 μ—°μ‚°μ—μ„œ μ œμ™Έλœ λͺ¨λ“  νŠœν”Œμ„ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ— 포함

      • 두 λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜μ§€ μ•Šμ•˜λ˜ 속성은 널 κ°’μœΌλ‘œ 처리

λ””λΉ„μ „ (Division)

  • κ°œλ…

    • λ¦΄λ ˆμ΄μ…˜ S의 λͺ¨λ“  νŠœν”Œκ³Ό κ΄€λ ¨ μžˆλŠ” λ¦΄λ ˆμ΄μ…˜ R의 νŠœν”Œλ‘œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜ ꡬ성

    • λ¦΄λ ˆμ΄μ…˜ S의 λͺ¨λ“  속성과 도메인이 같은 속성을 λ¦΄λ ˆμ΄μ…˜ R이 ν¬ν•¨ν•˜κ³  μžˆμ–΄μ•Όν•¨

  • ν‘œν˜„

    • R Γ· S division

Last updated