⭐️ Implementation of Data Input and Output 3️⃣

m_ngyeongΒ·2024λ…„ 4μ›” 15일
1
post-thumbnail

πŸ“€ Implementation of Data Input and Output


Relational Algebra(관계 λŒ€μˆ˜)

관계 λŒ€μˆ˜λŠ” κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ›ν•˜λŠ” 정보와 κ·Έ 정보λ₯Ό κ²€μƒ‰ν•˜κΈ° μœ„ν•΄μ„œ μ–΄λ–»κ²Œ μœ λ„ν•˜λŠ”κ°€λ₯Ό κΈ°μˆ ν•˜λŠ” 절차적인 언어이닀.

  • λ¦΄λ ˆμ΄μ…˜μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ μ—°μ‚°μžμ™€ μ—°μ‚°κ·œμΉ™μ„ μ œκ³΅ν•˜λ©°, ν”Όμ—°μ‚°μžμ™€ μ—°μ‚° κ²°κ³Όκ°€ λͺ¨λ‘ λ¦΄λ ˆμ΄μ…˜μž„
  • μ§ˆμ˜μ— λŒ€ν•œ ν•΄λ₯Ό κ΅¬ν•˜κΈ° μœ„ν•΄ μˆ˜ν–‰ν•΄μ•Ό ν•  μ—°μ‚°μ˜ μˆœμ„œλ₯Ό λͺ…μ‹œν•¨
  • λ¦΄λ ˆμ΄μ…˜μ„ μ‘°μž‘ν•˜κΈ° μœ„ν•œ μ—°μ‚°μ˜ 집합

Pure Relational operators

  • SELECT : 𝜎
    • λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜λŠ” νŠœν”Œ(Tuple) μ€‘μ—μ„œ 선택 쑰건을 λ§Œμ‘±ν•˜λŠ” νŠœν”Œμ˜ 뢀뢄집합을 κ΅¬ν•˜μ—¬ μƒˆλ‘œμš΄ λ¦΄λ ˆμ΄μ…˜μ„ λ§Œλ“œλŠ” μ—°μ‚°
    • λ¦΄λ ˆμ΄μ…˜μ˜ 행에 ν•΄λ‹Ήν•˜λŠ” νŠœν”Œμ„ κ΅¬ν•˜λŠ” κ²ƒμ΄λ―€λ‘œ μˆ˜ν˜• 연산이라고도 함
  • PROJECT : πœ‹
    • 주어진 λ¦΄λ ˆμ΄μ…˜μ—μ„œ 속성 리슀트(Attribute List)에 μ œμ‹œλœ 속성 κ°’λ§Œμ„ μΆ”μΆœν•˜μ—¬ μƒˆλ‘œμš΄ λ¦΄λ ˆμ΄μ…˜μ„ λ§Œλ“œλŠ” μ—°μ‚°
    • λ¦΄λ ˆμ΄μ…˜μ˜ 열에 ν•΄λ‹Ήν•˜λŠ” 속성을 μΆ”μΆœν•˜λŠ” κ²ƒμ΄λ―€λ‘œ 수직 μ—°μ‚°μžλΌκ³ λ„ 함
  • JOIN : β‹ˆ
    • 곡톡 속성을 μ€‘μ‹¬μœΌλ‘œ 두 개의 λ¦΄λ ˆμ΄μ…˜μ„ ν•˜λ‚˜λ‘œ ν•©μ³μ„œ μƒˆλ‘œμš΄ λ¦΄λ ˆμ΄μ…˜μ„ λ§Œλ“œλŠ” μ—°μ‚°
    • JOIN의 κ²°κ³ΌλŠ” Cartesian Product(ꡐ차곱)λ₯Ό μˆ˜ν–‰ν•œ SELECTλ₯Ό μˆ˜ν–‰ν•œ 것과 κ°™μŒ
  • DIVISION : Γ·
    • XβŠƒY인 두 개의 λ¦΄λ ˆμ΄μ…˜R(X)와 S(Y)κ°€ μžˆμ„ λ•Œ, R의 속성이 S의 속성값을 λͺ¨λ‘ 가진 νŠœν”Œμ—μ„œ Sκ°€ 가진 속성을 μ œμ™Έν•œ μ†μ„±λ§Œμ„ κ΅¬ν•˜λŠ” μ—°μ‚°

Generic Set operators

  • UNION(합집합) : βˆͺ
    • 두 λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜λŠ” νŠœν”Œμ˜ 합집합을 κ΅¬ν•˜λ˜, 결과둜 μƒμ„±λœ λ¦΄λ ˆμ΄μ…˜μ—μ„œ μ€‘λ³΅λ˜λŠ” νŠœν”Œμ€ μ œκ±°λ˜λŠ” μ—°μ‚°
    • ν•©μ§‘ν•©μ˜ Cardinality(νŠœν”Œμ˜ 수)λŠ” 두 λ¦΄λ ˆμ΄μ…˜μ˜ μΉ΄Cardinality의 합보닀 크지 μ•Šλ‹€.
  • INTERSECTION(ꡐ집합) : ∩
    • 두 λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜λŠ” νŠœν”Œμ˜ ꡐ집합을 κ΅¬ν•˜λŠ” μ—°μ‚°
    • κ΅μ§‘ν•©μ˜ Cardinality(νŠœν”Œμ˜ 수)λŠ” 두 λ¦΄λ ˆμ΄μ…˜ 쀑 Cardinalityκ°€ 적은 λ¦΄λ ˆμ΄μ…˜μ˜ Cardinality보닀 크지 μ•Šλ‹€.
  • DIFFERENCE(차집합) : βˆ’
    • 두 λ¦΄λ ˆμ΄μ…˜μ— μ‘΄μž¬ν•˜λŠ” νŠœν”Œμ˜ 차집합을 κ΅¬ν•˜λŠ” μ—°μ‚°
    • μ°¨μ§‘ν•©μ˜ Cardinality(νŠœν”Œμ˜ 수)λŠ” λ¦΄λ ˆμ΄μ…˜ R의 Cardinality보닀 크지 μ•Šλ‹€.
  • CARTESIAN PRODUCT(ꡐ집합) : Γ—
    • 두 λ¦΄λ ˆμ΄μ…˜μ— μžˆλŠ” νŠœν”Œλ“€μ˜ μˆœμ„œμŒμ„ κ΅¬ν•˜λŠ” μ—°μ‚°
    • ꡐ찹곱의 Degree(μ†μ„±μ˜ 수)λŠ” 두 λ¦΄λ ˆμ…˜μ˜ Degreeλ₯Ό λ”ν•œ 것과 κ°™κ³ , Cardinality(νŠœν”Œμ˜ 수)λŠ” 두 λ¦΄λ ˆμ΄μ…˜μ˜ 카디널리티λ₯Ό κ³±ν•© 것과 κ°™μŒ
    • 예) λ¦΄λ ˆμ΄μ…˜ R의 차수(Degree) 3, 카디널리티(Cardinality) 3, λ¦΄λ ˆμ΄μ…˜ S의 차수(Degree) 4, 카디널리티(Cardinality) 4일 λ•Œ, 두 λ¦΄λ ˆμ΄μ…˜μ„ μΉ΄ν‹°μ…˜ ν”„λ‘œν„±νŠΈ(CARTESIAN PRODUCT)ν•œ κ²°κ³Ό λ¦΄λ ˆμ΄μ…˜μ˜ μ°¨μˆ˜μ™€ 카디널리티λ₯Ό κ΅¬ν•˜μ‹œμ˜€.
      차수 : 3 + 4 = 7, 카디널리티 : 3 x 4 = 12

Relational Calculus(관계 해석)

관계 해석은 관계 λ°μ΄ν„°μ˜ 연산을 ν‘œν˜„ν•˜λŠ” 방법이닀.

  • 관계 데이터 λͺ¨λΈμ˜ μ œμ•ˆμž μ½”λ“œ(E. F. Codd)κ°€ μˆ˜ν•™μ˜ μˆ μ–΄ 해석(Predicate Calculus)에 κΈ°λ°˜μ„ 두고 관계 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μœ„ν•΄ μ œμ•ˆν•¨
  • μ›ν•˜λŠ” 정보가 λ¬΄μ—‡μ΄λΌλŠ” κ²ƒλ§Œ μ •μ˜ν•˜λŠ” λΉ„μ ˆμ°¨μ  νŠΉμ„±μ„ μ§€λ‹˜
  • μ›ν•˜λŠ” μ •λ³Όλ₯΄ μ •μ˜ν•  λ•ŒλŠ” 계산 μˆ˜μ‹μ„ μ‚¬μš©
  • νŠœν”Œ 해석식을 μ‚¬μš©ν•˜λŠ” νŠœν”Œ 관계 해석과 도메인 해석식을 μ‚¬μš©ν•˜λŠ” 도메인 관계 ν•΄μ„μœΌλ‘œ ꡬ뢄됨

Anomaly(이상)

μ΄μƒμ΄λž€ λ°μ΄ν„°λ² μ΄μŠ€ 내에 데이터듀이 λΆˆν•„μš”ν•˜κ²Œ μ€‘λ³΅λ˜μ–΄ λ¦΄λ ˆμ΄μ…˜ μ‘°μž‘ μ‹œ 예기치 μ•Šκ²Œ λ°œμƒν•˜λŠ” κ³€λž€ν•œ ν˜„μƒμ„ μ˜λ―Έν•œλ‹€.

  • μ‚½μž… 이상(Insertion Anomaly) : 데이블에 데이터λ₯Ό μ‚½μž…ν•  λ•Œ μ˜λ„μ™€λŠ” 상관없이 μ›ν•˜μ§€ μ•ŠλŠ” κ°’λ“€λ‘œ 인해 μ‚½μž…ν•  수 μ—†κ²Œ λ˜λŠ” 상황
  • μ‚­μ œ 이상(Deletion Anomaly) : λ°μ΄λΈ”μ—μ„œ νŠœν”Œμ„ μ‚­μ œν•  λ•Œ μ˜λ„μ™€λŠ” μƒκ΄€μ—†λŠ” 값듀도 ν•¨κ»˜ μ‚­μ œλ˜λŠ”, 즉 연쇄 μ‚­μ œκ°€ λ°œμƒν•˜λŠ” ν˜„μƒ
  • κ°±μ‹  이상(Update Anomaly) : ν…Œμ΄λΈ”μ—μ„œ νŠœν”Œμ— μžˆλŠ” 속성 값을 κ°±μ‹ ν•  λ•Œ 일뢀 νŠœν”Œμ˜ μ •λ³΄λ§Œ κ°±μ‹ λ˜μ–΄ 정보에 λΆˆμΌμΉ˜μ„±(Incosistency)이 μƒκΈ°λŠ” ν˜„μƒ

Functional Dependency(ν•¨μˆ˜μ  쒅속)

  • Functional Dependency(ν•¨μˆ˜μ  쒅속) : μ–΄λ–€ ν…Œμ΄λΈ” Rμ—μ„œ X와 Yλ₯Ό 각각 R의 속성 μ§‘ν•©μ˜ 뢀뢄집합이라 ν•˜λ©΄, 속성 X의 κ°’ 각각에 λŒ€ν•΄ μ‹œκ°„μ— κ΄€μ˜ˆμ—†μ΄ 항상 속성 Y의 값이 였직 ν•˜λ‚˜λ§Œ μ—°κ΄€λ˜μ–΄ μžˆμ„ λ•Œ YλŠ” X에 ν•¨μˆ˜μ  쒅속 λ˜λŠ” Xκ°€ Yλ₯Ό ν•¨μˆ˜μ μœΌλ‘œ κ²°μ •ν•œλ‹€κ³  ν•˜λ©°, X β†’ Y 둜 ν‘œκΈ°
  • Full Functional Dependency(μ™„μ „ ν•¨μˆ˜μ  쒅속) : μ–΄λ–€ ν…Œμ΄λΈ” Rμ—μ„œ 속성 Yκ°€ λ‹€λ₯Έ 속성 집합 X 전체에 λŒ€ν•΄ ν•¨μˆ˜μ  μ’…μ†μ΄λ©΄μ„œ 속성 집합 X의 μ–΄λ– ν•œ 진뢀뢄 집합 Z(Z βŠ‚ X)에도 ν•¨μˆ˜μ  쒅속이 아닐 λ•Œ, 속성 YλŠ” 속성 집합 X에 μ™„μ „ ν•¨μˆ˜μ  쒅속이라고 함
    • 예λ₯Ό λ“€μ–΄, 주민번호λ₯Ό 가지고 λ‚˜λ₯Ό νŠΉμ •ν•  수 μžˆλŠ” κ²ƒμ²˜λŸΌ νŠΉμ •ν•œ ν‚€λ₯Ό 가지고 λ‚˜λ₯Ό νŠΉμ •ν•  수 μžˆλŠ” 것을 말함.
  • Partial Functional Dependency(λΆ€λΆ„ ν•¨μˆ˜μ  쒅속) : μ–΄λ–€ ν…Œμ΄λΈ” Rμ—μ„œ 속성 Yκ°€ λ‹€λ₯Έ 속성 집합 X 전체에 λŒ€ν•΄ ν•¨μˆ˜μ  μ’…μ†μ΄λ©΄μ„œ 속성 집합 X의 μž„μ˜μ˜ 진뢀뢄 집합에 λŒ€ν•΄ ν•¨μˆ˜μ  쒅속일 λ•Œ, 속성 YλŠ” 속성 집합 X에 λΆ€λΆ„ ν•¨μˆ˜μ  쒅속이라고 함
  • Transitive Functional Dependency(이행적 ν•¨μˆ˜μ  쒅속) :
    X β†’ Y이고 Y β†’ Z일 λ•Œ X β†’ Zλ₯Ό λ§Œμ‘±ν•˜λŠ” 관계λ₯Ό 의미


(ν…Œμ΄λΈ” <R>의 속성 '학생'κ³Ό 'ν•™κ³Ό'의 밑쀄은 ν‚€λ₯Ό 의미.)

  • ν…Œμ΄λΈ” <R>은 '성적' 기본킀인 {학생, ν•™κ³Ό}에 λŒ€ν•΄ Full Functional Dependency.
  • ν…Œμ΄λΈ” <R>μ—μ„œ 'ν•™λ…„'은 기본킀인 {학생, ν•™κ³Ό} 쀑 '학생'만으둜 식별이 κ°€λŠ₯ν•˜λ―€λ‘œ 기본킀에 λŒ€ν•΄ Partial Functional Dependency.


μ°Έκ³ ,
κΈΈλ²—μ•Œμ•€λ””. γ€Žμ •λ³΄μ²˜λ¦¬κΈ°μ‚¬ μ‹€κΈ° 단기완성』. κΈΈλ²—. 2023.

profile
μ‚¬μš©μž κ²½ν—˜ ν–₯상과 지속적인 μ„±μž₯을 μΆ”κ΅¬ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ 개발자 ΚšΘ‰Ιž

0개의 λŒ“κΈ€