κ΅λ―Όλνκ΅μμ "μ€λΌν΄λ‘ λ°°μ°λ λ°μ΄ν°λ² μ΄μ€ κ°λ‘ κ³Ό μ€μ΅(2ν)" μ μ΄μ©ν
μ μΈμ κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€
1. κ΄κ³ λ°μ΄ν° λͺ¨λΈμ κ°λ
릴λ μ΄μ
릴λ μ΄μ (relation) : νκ³Ό μ΄λ‘ ꡬμ±λ ν μ΄λΈ
κ΄κ³(relationship)
=> 1. 릴λ μ΄μ
λ΄μμ μμ±λλ κ΄κ³ : 릴λ μ΄μ
λ΄ λ°μ΄ν°λ€μ κ΄κ³
(κ°κ°μ μ΄(=μ§ν©) μμ μμ ν κ°μ©μ μ ννμ¬ νλμ νμ΄ λ§λ€μ΄μ§ κ²μΌλ‘ μ΄ μμλ€μ΄ κ΄κ³λ₯Ό λ§Ίκ³ μμ)
=> 2. 릴λ μ΄μ κ°μ μμ±λλ κ΄κ³ : 릴λ μ΄μ κ°μ κ΄κ³
릴λ μ΄μ μ€ν€λ§μ μΈμ€ν΄μ€

- μ€ν€λ§μ μμ
- μμ±(attribute) : 릴λ μ΄μ
μ€ν€λ§μ μ΄
- λλ©μΈ(domain) : μμ±μ΄ κ°μ§ μ μλ κ°μ μ§ν© (κ°μ§ μ μλ κ°μ λ²μ λ±)
- μ°¨μ(degree) : μμ±μ κ°μ
- μμ±(attribute) : 릴λ μ΄μ
μ€ν€λ§μ μ΄
- μ€ν€λ§μ νν
- 릴λ μ΄μ
μ΄λ¦(μμ±1 : λλ©μΈ1, μμ±2 : λλ©μΈ2, μμ±3 : λλ©μΈ3 ...)
EX. λμ (λμλ²νΈ : integer, λμμ΄λ¦ : char(40), μΆνμ¬ : char(40)) => λλ©μΈ ν¬ν¨
- 릴λ μ΄μ
μ΄λ¦(μμ±1 : λλ©μΈ1, μμ±2 : λλ©μΈ2, μμ±3 : λλ©μΈ3 ...)
- μΈμ€ν΄μ€ μμ
- ν¬ν(tuple) : 릴λ μ΄μ
μ ν
- μΉ΄λλ 리ν°(cardinality) : ν¬νμ μ
- ν¬ν(tuple) : 릴λ μ΄μ
μ ν
ν¬νμ΄ κ°μ§λ μμ±μ κ°μλ 릴λ μ΄μ μ€ν€λ§μ μ°¨μμ λμΌνκ³ , 릴λ μ΄μ λ΄μ λͺ¨λ ν¬νλ€μ μλ‘ μ€λ³΅ X

릴λ μ΄μ μ νΉμ§

1. μμ±μ λ¨μΌ κ°μ κ°μ§λ€
=> κ° μμ±μ κ°μ λλ©μΈμ μ μλ κ°λ§μ κ°μ§λ©°, κ·Έ κ°μ λͺ¨λ λ¨μΌ κ°μ΄μ¬μΌ ν¨
2. μμ±μ μλ‘ λ€λ₯Έ μ΄λ¦μ κ°μ§λ€
=> μμ±μ ν 릴λ μ΄μ μμ μλ‘ λ€λ₯Έ μ΄λ¦μ κ°μ ΈμΌλ§ ν¨
3. ν μμ±μ κ°μ λͺ¨λ κ°μ λλ©μΈ κ°μ κ°μ§λ€
=> ν μμ±μ μν μ΄μ λͺ¨λ κ·Έ μμ±μμ μ μν λλ©μΈ κ°λ§ κ°μ§ μ μμ
4. μμ±μ μμλ μκ΄μλ€
=> μμ±μ μμκ° λ¬λΌλ 릴λ μ΄μ μ€ν€λ§λ κ°μ
(릴λ μ΄μ μ€ν€λ§μμ (μ΄λ¦, μ£Όμ) μμΌλ‘ μμ±μ νμνκ±°λ (μ£Όμ, μ΄λ¦) μμΌλ‘ νμνμ¬λ μκ΄ X)
5. 릴λ μ΄μ λ΄μ μ€λ³΅λ ν¬νμ νμ©νμ§ μλλ€
=> νλμ 릴λ μ΄μ μΈμ€ν΄μ€ λ΄μμλ μλ‘ μ€λ³΅λ κ°μ κ°μ§ μ μμ (λͺ¨λ ν¬νμ μλ‘ κ°μ΄ λ¬λΌμΌ ν¨)
6. ν¬νμ μμλ μκ΄μλ€
=> ν¬νμ μμκ° λ¬λΌλ κ°μ 릴λ μ΄μ μ
(κ΄κ³ λ°μ΄ν° λͺ¨λΈμ ν¬νμ μ€μ μ μΈ κ°μ κ°μ§κ³ μμΌλ©° μ΄ κ°μ μκ°μ΄ μ§λλ©΄μ λ°μ΄ν°μ μ½μ , μμ , μμ μ λ°λΌ μμκ° λ°λ μ μμ)
κ΄κ³ λ°μ΄ν° λͺ¨λΈ
κ΄κ³ λ°μ΄ν° λͺ¨λΈμ λ°μ΄ν°λ₯Ό 2μ°¨μ ν
μ΄λΈ ννμΈ λ¦΄λ μ΄μ
μΌλ‘ ννν¨
=> 릴λ μ΄μ μ λν μ μ½μ‘°κ±΄(constraints)κ³Ό κ΄κ³ μ°μ°μ μν κ΄κ³λμ(relational algebra)λ₯Ό μ μν¨

2. λ¬΄κ²°μ± μ μ½μ‘°κ±΄
ν€
keyλ νΉμ ν¬νμ μλ³ν λ μ¬μ©νλ μμ± νΉμ μμ±μ μ§ν©μ΄λ€
=> 릴λ μ΄μ μ μ€λ³΅λ ν¬νμ νμ©νμ§ μκΈ° λλ¬Έμ κ°κ°μ ν¬νμ ν¬ν¨λ μμ±λ€ μ€ μ΄λ νλ(νΉμ νλ μ΄μ)λ κ°μ΄ λ¬λΌμΌν¨ μ¦, ν€κ° λλ μμ±(νΉμ μμ±μ μ§ν©)μ λ°λμ κ°μ΄ λ¬λΌμ ν¬νλ€μ μλ‘ κ΅¬λ³ν μ μμ΄μΌ ν¨
=> ν€λ 릴λ μ΄μ κ°μ κ΄κ³λ₯Ό λ§Ίλ λ°λ μ¬μ©!

1. μνΌν€ (super key) : ν¬νμ μ μΌνκ² μλ³ν μ μλ νλμ μμ± νΉμ μμ±μ μ§ν© (μ μΌμ±)
ν¬νμ μ μΌνκ² μλ³ν μ μλ κ°μ΄λ©΄ λͺ¨λ μνΌν€κ° λ μ μλ€
EX. (μ£Όλ―Όλ²νΈ), (μ£Όλ―Όλ²νΈ, μ΄λ¦), (μ£Όλ―Όλ²νΈ, μ΄λ¦, μ£Όμ), (μ£Όλ―Όλ²νΈ, μ΄λ¦, νΈλν°),
(κ³ κ°λ²νΈ), (κ³ κ°λ²νΈ, μ΄λ¦, μ£Όμ), (κ³ κ°λ²νΈ, μ΄λ¦, μ£Όλ―Όλ²νΈ, μ£Όμ, νΈλν°) λ±
2. νλ³΄ν€ (candidate key) : ν¬νμ μ μΌνκ² μλ³ν μ μλ μμ±μ μ΅μ μ§ν© (μ μΌμ±, μ΅μμ±)
κ³ κ°λ²νΈμ λμλ²νΈ λͺ¨λ λ¨λ μΌλ‘λ ν보ν€κ° λ μ μμ
=> μ£Όλ¬Έ 릴λ μ΄μ μ ν보ν€λ 2κ°μ μμ±μ ν©ν (κ³ κ°λ²νΈ, λμλ²νΈ)κ° λ¨
(μ΄λ κ² 2κ° μ΄μμ μμ±μΌλ‘ μ΄λ£¨μ΄μ§ ν€λ₯Ό 볡ν©ν€(composite key)λΌκ³ ν¨)
3. κΈ°λ³Έν€ (primary key) : μ¬λ¬ νλ³΄ν€ μ€ νλλ₯Ό μ μ νμ¬ λνλ‘ μΌλ ν€
ν보ν€κ° νλλΏμ΄λΌλ©΄ κ·Έ ν보ν€λ₯Ό κΈ°λ³Έν€λ‘ μ¬μ©νλ©΄ λκ³ μ¬λ¬ κ°λΌλ©΄ 릴λ μ΄μ μ νΉμ±μ λ°μνμ¬ νλλ₯Ό μ ν!
- κΈ°λ³Έν€ μ μ μ κ³ λ €μ¬ν
- 릴λ μ΄μ
λ΄ ν¬νμ μλ³ν μ μλ κ³ μ ν κ°μ κ°μ ΈμΌ ν¨
- NULL κ°μ νμ©νμ§ μμ
- ν€ κ°μ λ³λμ΄ μΌμ΄λμ§ μμμΌ ν¨
- μ΅λν μ μ μμ μμ±μ κ°μ§ κ²μ΄μ¬μΌ ν¨
- ν₯ν ν€λ₯Ό μ¬μ©νλ λ° μμ΄μ λ¬Έμ λ°μ μμ§κ° μμ΄μΌ ν¨
- 릴λ μ΄μ
λ΄ ν¬νμ μλ³ν μ μλ κ³ μ ν κ°μ κ°μ ΈμΌ ν¨
- 릴λ μ΄μ
μ€ν€λ§λ₯Ό ννν λ κΈ°λ³Έν€λ λ°μ€(μ€μ )μ κ·Έμ΄ νμν¨
- 릴λ μ΄μ
μ΄λ¦(μμ±1, μμ±2, ... μμ±N)
EX. κ³ κ°(κ³ κ°λ²νΈ, μ΄λ¦, μ£Όλ―Όλ²νΈ, μ£Όμ, νΈλν°)
- 릴λ μ΄μ
μ΄λ¦(μμ±1, μμ±2, ... μμ±N)
4. λλ¦¬ν€ (surrogate key)
κΈ°λ³Έν€κ° 보μμ μνκ±°λ, μ¬λ¬ κ°μ μμ±μΌλ‘ ꡬμ±λμ΄ λ³΅μ‘νκ±°λ, λ§λ ν κΈ°λ³Έ ν€κ° μμ λλ
μΌλ ¨λ²νΈ κ°μ κ°μμ μμ±μ λ§λ€μ΄ κΈ°λ³Έν€λ‘ μΌλ κ²½μ°κ° μμ
=> μ΄λ¬ν ν€λ₯Ό λλ¦¬ν€ νΉμ μΈμ‘°ν€(artificial key)λΌκ³ ν¨
λ리ν€λ DBMSλ κ΄λ ¨ μννΈμ¨μ΄μμ μμλ‘ μμ±νλ κ°μΌλ‘ μ¬μ©μκ° μ§κ΄μ μΌλ‘ κ·Έ κ°μ μλ―Έλ₯Ό μ μ μμ
5. λμ²΄ν€ (alternate key) : λ체ν€λ κΈ°λ³Έν€λ‘ μ μ λμ§ μμ ν보ν€λ₯Ό λ§ν¨
EX. κ³ κ° λ¦΄λ μ΄μ
μ κ²½μ° κ³ κ°λ²νΈμ μ£Όλ―Όλ²νΈ μ€ κ³ κ°λ²νΈλ₯Ό κΈ°λ³Έν€λ‘ μ νλ©΄ μ£Όλ―Όλ²νΈκ° λ체ν€κ° λ¨
6. μΈλν€ (foreign key) :λ€λ₯Έ 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μμ±μ λ§ν¨
λ€λ₯Έ 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νμ¬ κ΄κ³ λ°μ΄ν° λͺ¨λΈμ νΉμ§μΈ 릴λ μ΄μ κ°μ κ΄κ³(relationship)λ₯Ό ννν¨
릴λ μ΄μ
μ€ν€λ§λ₯Ό ννν λ μΈλν€λ λ°μ€(μ μ )μ κ·Έμ΄ νμν¨!

- μΈλν€μ νΉμ§
- κ΄κ³ λ°μ΄ν° λͺ¨λΈμ 릴λ μ΄μ
κ°μ κ΄κ³λ₯Ό ννν¨
- λ€λ₯Έ 릴λ μ΄μ
μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μμ±μ
- μ°Έμ‘°νκ³ (μΈλν€) μ°Έμ‘°λλ(κΈ°λ³Έν€) μμͺ½ 릴λ μ΄μ
μ λλ©μΈμ μλ‘ κ°μμΌ ν¨
- μ°Έμ‘°λλ(κΈ°λ³Έν€) κ°μ΄ λ³κ²½λλ©΄ μ°Έμ‘°νλ(μΈλν€) κ°λ λ³κ²½λ¨
- NULL κ°κ³Ό μ€λ³΅ κ° λ±μ΄ νμ©λ¨
- μκΈ° μμ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μΈλν€λ κ°λ₯ν¨
- μΈλν€κ° κΈ°λ³Έν€μ μΌλΆκ° λ μ μμ
- κ΄κ³ λ°μ΄ν° λͺ¨λΈμ 릴λ μ΄μ
κ°μ κ΄κ³λ₯Ό ννν¨

λ¬΄κ²°μ± μ μ½μ‘°κ±΄
1. λ°μ΄ν° 무결μ±
=> λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ λ°μ΄ν°μ μΌκ΄μ±κ³Ό μ νμ±μ μ§ν€λ κ²μ λ§ν¨
2. λλ©μΈ λ¬΄κ²°μ± μ μ½μ‘°κ±΄
=> λλ©μΈ μ μ½(domain constraint)μ΄λΌκ³ λ νλ©°, 릴λ μ΄μ λ΄μ ν¬νλ€μ΄ κ° μμ±μ λλ©μΈμ μ§μ λ κ°λ§μ κ°μ ΈμΌ νλ€λ 쑰건
3. κ°μ²΄ λ¬΄κ²°μ± μ μ½μ‘°κ±΄
=> κΈ°λ³Έν€ μ μ½(primary key constraint)μ΄λΌκ³ λ ν¨
=> 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ§μ νκ³ κ·Έμ λ°λ₯Έ λ¬΄κ²°μ± μμΉ μ¦, κΈ°λ³Έν€λ NULL κ°μ κ°μ Έμλ μ λλ©° 릴λ μ΄μ λ΄μ μ€μ§ νλμ κ°λ§ μ‘΄μ¬ν΄μΌ νλ€λ 쑰건μ
4. μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄
μΈλν€ μ μ½(foreign key constraint)μ΄λΌκ³ λ νλ©°, 릴λ μ΄μ κ°μ μ°Έμ‘° κ΄κ³λ₯Ό μ μΈνλ μ μ½μ‘°κ±΄
=> μμ 릴λ μ΄μ μ μΈλν€λ λΆλͺ¨ 릴λ μ΄μ μ κΈ°λ³Έν€μ λλ©μΈμ΄ λμΌν΄μΌ νλ©°, μμ 릴λ μ΄μ μ κ°μ΄ λ³κ²½λ λ λΆλͺ¨ 릴λ μ΄μ μ μ μ½μ λ°λλ€λ κ²μ

λ¬΄κ²°μ± μ μ½μ‘°κ±΄μ μν
1. κ°μ²΄ λ¬΄κ²°μ± μ μ½μ‘°κ±΄

μ½μ : κΈ°λ³Έν€ κ°μ΄ κ°μΌλ©΄ μ½μ μ΄ κΈμ§λ¨ (μ€λ³΅ X)
μμ : κΈ°λ³Έν€ κ°μ΄ κ°κ±°λ NULLλ‘λ μμ μ΄ κΈμ§λ¨
μμ : νΉλ³ν νμΈμ΄ νμνμ§ μμΌλ©° μ¦μ μνν¨
2. μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄

- μ½μ
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : ν¬ν μ½μ
ν ν μννλ©΄ μ μμ μΌλ‘ μ§ν
- νμ (μμ 릴λ μ΄μ ) : μ°Έμ‘°λ°λ ν μ΄λΈμ μΈλν€ κ°μ΄ μμΌλ―λ‘ μ½μ μ΄ κΈμ§λ¨
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : ν¬ν μ½μ
ν ν μννλ©΄ μ μμ μΌλ‘ μ§ν
- μμ
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : μ°Έμ‘°νλ ν
μ΄λΈμ κ°μ΄ μμ ν μ μμ΄μ κΈμ§νκ±°λ λ€λ₯Έ μΆκ° μμ
μ΄ νμν¨
- νμ (μμ 릴λ μ΄μ ) : λ°λ‘ μμ κ°λ₯ν¨
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : μ°Έμ‘°νλ ν
μ΄λΈμ κ°μ΄ μμ ν μ μμ΄μ κΈμ§νκ±°λ λ€λ₯Έ μΆκ° μμ
μ΄ νμν¨
λΆλͺ¨ 릴λ μ΄μ μμ ν¬νμ μμ ν κ²½μ° μ°Έμ‘° λ¬΄κ²°μ± μ‘°κ±΄μ μννκΈ° μν κ³ λ €μ¬ν
1. μ¦μ μμ μ μ€μ§
2. μμ 릴λ μ΄μ μ κ΄λ ¨ ν¬νμ μμ
3. μ΄κΈ°μ μ€μ λ λ€λ₯Έ μ΄λ€ κ°μΌλ‘ λ³κ²½
4. NULL κ°μΌλ‘ μ€μ


- μμ
- μμ μ μ½μ λͺ λ Ήμ΄ μ°μν΄μ μνλ¨
- λΆλͺ¨ 릴λ μ΄μ μ μμ μ΄ μΌμ΄λ κ²½μ° μμ μ΅μ μ λ°λΌ μ²λ¦¬λ ν λ¬Έμ κ° μμΌλ©΄ λ€μ μ½μ μ μ½μ‘°κ±΄μ λ°λΌ μ²λ¦¬
3. κ΄κ³λμ
κ΄κ³λμ
κ΄κ³λμ (relational algebra) : 릴λ μ΄μ μμ μνλ κ²°κ³Όλ₯Ό μ»κΈ° μν΄ μνμ λμμ κ°μ μ°μ°μ μ΄μ©νμ¬ μ§μνλ λ°©λ²μ κΈ°μ νλ μΈμ΄
κ΄κ³λμμ κ΄κ³ν΄μ(relational calculus)
=> κ΄κ³λμ : μ΄λ€ λ°μ΄ν°λ₯Ό μ΄λ»κ² μ°Ύλμ§μ λν μ²λ¦¬ μ μ°¨λ₯Ό λͺ μνλ μ μ°¨μ μΈ μΈμ΄μ΄λ©°, DBMS λ΄λΆμ μ²λ¦¬ μΈμ΄λ‘ μ¬μ©λ¨
=> κ΄κ³ν΄μ : μ΄λ€ λ°μ΄ν°λ₯Ό μ°Ύλμ§λ§ λͺ
μνλ μ μΈμ μΈ μΈμ΄λ‘ κ΄κ³λμμ ν¨κ» κ΄κ³ DBMSμ νμ€ μΈμ΄μΈ SQLμ
μ΄λ‘ μ μΈ κΈ°λ°μ μ 곡ν¨
κ΄κ³λμμ κ΄κ³ν΄μμ λͺ¨λ κ΄κ³ λ°μ΄ν° λͺ¨λΈμ μ€μν μΈμ΄μ΄λ©° μ€μ λμΌν νν λ₯λ ₯μ κ°μ§κ³ μμ
릴λ μ΄μ μ μνμ κ°λ


κ΄κ³λμμ
κ΄κ³λμλ 릴λ μ΄μ
κ° μ°μ°μ ν΅ν΄ κ²°κ³Ό 릴λ μ΄μ
μ μ°Ύλ μ μ°¨λ₯Ό κΈ°μ ν μΈμ΄λ‘, μ΄ μ°μ°μ μννκΈ° μν μμ
κ΄κ³λμμ(relational algebra expression)μ΄λΌκ³ ν¨
=> κ΄κ³λμμμ λμμ΄ λλ 릴λ μ΄μ κ³Ό μ°μ°μλ‘ κ΅¬μ±λλ©°, κ²°κ³Όλ 릴λ μ΄μ μΌλ‘ λ°νλ¨
(λ°νλ 릴λ μ΄μ μ 릴λ μ΄μ μ λͺ¨λ νΉμ§μ λ°λ¦)
λ¨ν μ°μ°μ : μ°μ°μ <쑰건> 릴λ μ΄μ
μ΄ν μ°μ°μ : 릴λ μ΄μ 1 μ°μ°μ <쑰건> 릴λ μ΄μ 2

μ λ μ κ³Ό νλ‘μ μ
μ λ μ (selection)
릴λ μ΄μ μ ν¬νμ μΆμΆνκΈ° μν μ°μ°μ
=> νλμ 릴λ μ΄μ μ λμμΌλ‘ νλ λ¨ν μ°μ°μμ΄λ©°, μ°Ύκ³ μ νλ ν¬νμ 쑰건μ λͺ μνκ³ κ·Έ 쑰건μ λ§μ‘±νλ ν¬νμ λ°νν¨
νμ : Ο<쑰건> (R)

μ λ μ μ νμ₯
νμ : Ο<볡ν©μ‘°κ±΄> (R)
(λ³΅ν© μ‘°κ±΄μ λνλ΄λ κΈ°νΈμλ ^(and), v(or), Β¬(not) μ΄ μλ€)

νλ‘μ μ (projection)
릴λ μ΄μ μ μμ±μ μΆμΆνκΈ° μν μ°μ°μΌλ‘ λ¨ν μ°μ°μμ
νμ : Ο <μμ±λ¦¬μ€νΈ>(R)

μ§ν©μ°μ°
1. ν©μ§ν©
λ κ°μ 릴λ μ΄μ μ ν©νμ¬ νλμ 릴λ μ΄μ μ λ°νν¨
(μ΄ λ λ κ°μ 릴λ μ΄μ μ μλ‘ κ°μ μμ± μμμ λλ©μΈμ κ°μ ΈμΌ ν¨)

2. κ΅μ§ν©
ν©λ³κ°λ₯ν λ 릴λ μ΄μ μ λμμΌλ‘ νλ©°, λ 릴λ μ΄μ μ΄ κ³΅ν΅μΌλ‘ κ°μ§κ³ μλ ν¬νμ λ°νν¨

3. μ°¨μ§ν©
첫 λ²μ§Έ 릴λ μ΄μ μλ μνκ³ λ λ²μ§Έ 릴λ μ΄μ μλ μνμ§ μλ ν¬νμ λ°ν

4. μΉ΄ν°μ νλ‘λνΈ(cartesian product)
- λ 릴λ μ΄μ
μ μ°κ²°μμΌ νλλ‘ ν©μΉ λ μ¬μ©ν¨
- κ²°κ³Ό 릴λ μ΄μ
μ 첫 λ²μ§Έ 릴λ μ΄μ
μ μ€λ₯Έμͺ½μ λ λ²μ§Έ 릴λ μ΄μ
μ λͺ¨λ ν¬νμ μμλλ‘ λ°°μ΄νμ¬ λ°νν¨
- κ²°κ³Ό 릴λ μ΄μ μ μ°¨μλ λ 릴λ μ΄μ μ μ°¨μμ ν©μ΄λ©°, μΉ΄λλ 리ν°λ λ 릴λ μ΄μ μ μΉ΄λλ 리ν°μ κ³±μ

μ‘°μΈ
- λ 릴λ μ΄μ
μ κ³΅ν΅ μμ±μ κΈ°μ€μΌλ‘ μμ± κ°μ΄ κ°μ ν¬νμ μνμΌλ‘ κ²°ν©νλ μ°μ°μ
- μ‘°μΈμ μννκΈ° μν΄μλ λ 릴λ μ΄μ
μ μ‘°μΈμ μ°Έμ¬νλ μμ±μ΄ μλ‘ λμΌν λλ©μΈμΌλ‘ ꡬμ±λμ΄μΌ ν¨
- μ‘°μΈ μ°μ°μ κ²°κ³Όλ κ³΅ν΅ μμ±μ μμ± κ°μ΄ λμΌν ν¬νλ§μ λ°νν¨

μΈνμ‘°μΈ(theta join, ΞΈ)
μ‘°μΈμ μ°Έμ¬νλ λ 릴λ μ΄μ μ μμ± κ°μ λΉκ΅νμ¬ μ‘°κ±΄μ λ§μ‘±νλ ν¬νλ§ λ°νν¨
=> μΈνμ‘°μΈμ 쑰건μ {=, β ,>=, <=, <, >} μ€ νλκ° λ¨
νμ : Rβ(r 쑰건 s)S
(Rκ³Ό Sλ 릴λ μ΄μ μ΄λ©° rμ Rμ μμ±, sλ Sμ μμ±)
λλ±μ‘°μΈ(equi join)
μΈνμ‘°μΈμμ = μ°μ°μλ₯Ό μ¬μ©ν μ‘°μΈμ λ§ν¨ (λ³΄ν΅ μ‘°μΈ μ°μ°μ΄λΌκ³ νλ©΄ λλ±μ‘°μΈμ μ§μΉν¨)
νμ : Rβ(r=s)S

μμ°μ‘°μΈ (natural join)
λλ±μ‘°μΈμμ μ‘°μΈμ μ°Έμ¬ν μμ±μ΄ λ λ² λμ€μ§ μλλ‘ λ λ²μ§Έ μμ±μ μ κ±°ν κ²°κ³Όλ₯Ό λ°νν¨ (μμ± μ€λ³΅ μ κ±°)
νμ : RβN(r,s)S

μΈλΆμ‘°μΈ (outer join)
μμ°μ‘°μΈ μ μ‘°μΈμ μ€ν¨ν ν¬νμ λͺ¨λ 보μ¬μ£Όλ κ°μ΄ μλ λμ μμ±μλ NULL κ°μ μ±μμ λ°ν
λͺ¨λ μμ±μ 보μ¬μ£Όλ κΈ°μ‘΄ 릴λ μ΄μ μμΉμ λ°λΌ
=> μΌμͺ½(left) μΈλΆμ‘°μΈ, μ€λ₯Έμͺ½(right) μΈλΆμ‘°μΈ, μμ (full) μΈλΆμ‘°μΈμΌλ‘ λλ¨
νμ : Rβ(r,s)S

μΈλ―Έμ‘°μΈ (semi join)
μμ°μ‘°μΈμ ν ν λ 릴λ μ΄μ μ€ νμͺ½ 릴λ μ΄μ μ κ²°κ³Όλ§ λ°ννλ©°, κΈ°νΈμμ λ«ν μͺ½ 릴λ μ΄μ μ ν¬νλ§ λ°νν¨
νμ : Rβ(r,s)S

λλΉμ
릴λ μ΄μ μ μμ± κ°μ μ§ν©μΌλ‘ μ°μ°μ μνν¨
νμ : R Γ· S

=> 릴λ μ΄μ Rμ μμ± Bκ°κ³Ό 릴λ μ΄μ Sμ μμ± Bκ°μ΄ μλ‘ λμΌνκ² λμνλ 릴λ μ΄μ Rμ μμ± Aμ ν¬νμ λ°ν
κ΄κ³λμ μμ
μ λ μ , νλ‘μ μ , μ§ν©μ°μ°μ λ³΅ν© μ¬μ©


μΉ΄ν°μ νλ‘λνΈλ₯Ό μ¬μ©ν μ°μ°κ³Ό μ‘°μΈμ μ¬μ©ν μ°μ°




'𫧠Database > λ°μ΄ν°λ² μ΄μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Chapter 06. λ°μ΄ν° λͺ¨λΈλ§ (0) | 2024.05.15 |
---|---|
Chapter 05. λ°μ΄ν°λ² μ΄μ€ νλ‘κ·Έλλ° (1) | 2024.04.16 |
Chapter 04. SQL κ³ κΈ (1) | 2024.04.15 |
Chapter 03. SQL κΈ°μ΄ (1) | 2024.04.14 |
Chapter 01. λ°μ΄ν°λ² μ΄μ€ μμ€ν (2) | 2024.04.10 |
κ΅λ―Όλνκ΅μμ "μ€λΌν΄λ‘ λ°°μ°λ λ°μ΄ν°λ² μ΄μ€ κ°λ‘ κ³Ό μ€μ΅(2ν)" μ μ΄μ©ν
μ μΈμ κ΅μλμ κ°μ κ΅μμ μ΄μ©νμ¬ μμ
λ΄μ©μ μ 리νμμ΅λλ€
1. κ΄κ³ λ°μ΄ν° λͺ¨λΈμ κ°λ
릴λ μ΄μ
릴λ μ΄μ (relation) : νκ³Ό μ΄λ‘ ꡬμ±λ ν μ΄λΈ
κ΄κ³(relationship)
=> 1. 릴λ μ΄μ
λ΄μμ μμ±λλ κ΄κ³ : 릴λ μ΄μ
λ΄ λ°μ΄ν°λ€μ κ΄κ³
(κ°κ°μ μ΄(=μ§ν©) μμ μμ ν κ°μ©μ μ ννμ¬ νλμ νμ΄ λ§λ€μ΄μ§ κ²μΌλ‘ μ΄ μμλ€μ΄ κ΄κ³λ₯Ό λ§Ίκ³ μμ)
=> 2. 릴λ μ΄μ κ°μ μμ±λλ κ΄κ³ : 릴λ μ΄μ κ°μ κ΄κ³
릴λ μ΄μ μ€ν€λ§μ μΈμ€ν΄μ€

- μ€ν€λ§μ μμ
- μμ±(attribute) : 릴λ μ΄μ
μ€ν€λ§μ μ΄
- λλ©μΈ(domain) : μμ±μ΄ κ°μ§ μ μλ κ°μ μ§ν© (κ°μ§ μ μλ κ°μ λ²μ λ±)
- μ°¨μ(degree) : μμ±μ κ°μ
- μμ±(attribute) : 릴λ μ΄μ
μ€ν€λ§μ μ΄
- μ€ν€λ§μ νν
- 릴λ μ΄μ
μ΄λ¦(μμ±1 : λλ©μΈ1, μμ±2 : λλ©μΈ2, μμ±3 : λλ©μΈ3 ...)
EX. λμ (λμλ²νΈ : integer, λμμ΄λ¦ : char(40), μΆνμ¬ : char(40)) => λλ©μΈ ν¬ν¨
- 릴λ μ΄μ
μ΄λ¦(μμ±1 : λλ©μΈ1, μμ±2 : λλ©μΈ2, μμ±3 : λλ©μΈ3 ...)
- μΈμ€ν΄μ€ μμ
- ν¬ν(tuple) : 릴λ μ΄μ
μ ν
- μΉ΄λλ 리ν°(cardinality) : ν¬νμ μ
- ν¬ν(tuple) : 릴λ μ΄μ
μ ν
ν¬νμ΄ κ°μ§λ μμ±μ κ°μλ 릴λ μ΄μ μ€ν€λ§μ μ°¨μμ λμΌνκ³ , 릴λ μ΄μ λ΄μ λͺ¨λ ν¬νλ€μ μλ‘ μ€λ³΅ X

릴λ μ΄μ μ νΉμ§

1. μμ±μ λ¨μΌ κ°μ κ°μ§λ€
=> κ° μμ±μ κ°μ λλ©μΈμ μ μλ κ°λ§μ κ°μ§λ©°, κ·Έ κ°μ λͺ¨λ λ¨μΌ κ°μ΄μ¬μΌ ν¨
2. μμ±μ μλ‘ λ€λ₯Έ μ΄λ¦μ κ°μ§λ€
=> μμ±μ ν 릴λ μ΄μ μμ μλ‘ λ€λ₯Έ μ΄λ¦μ κ°μ ΈμΌλ§ ν¨
3. ν μμ±μ κ°μ λͺ¨λ κ°μ λλ©μΈ κ°μ κ°μ§λ€
=> ν μμ±μ μν μ΄μ λͺ¨λ κ·Έ μμ±μμ μ μν λλ©μΈ κ°λ§ κ°μ§ μ μμ
4. μμ±μ μμλ μκ΄μλ€
=> μμ±μ μμκ° λ¬λΌλ 릴λ μ΄μ μ€ν€λ§λ κ°μ
(릴λ μ΄μ μ€ν€λ§μμ (μ΄λ¦, μ£Όμ) μμΌλ‘ μμ±μ νμνκ±°λ (μ£Όμ, μ΄λ¦) μμΌλ‘ νμνμ¬λ μκ΄ X)
5. 릴λ μ΄μ λ΄μ μ€λ³΅λ ν¬νμ νμ©νμ§ μλλ€
=> νλμ 릴λ μ΄μ μΈμ€ν΄μ€ λ΄μμλ μλ‘ μ€λ³΅λ κ°μ κ°μ§ μ μμ (λͺ¨λ ν¬νμ μλ‘ κ°μ΄ λ¬λΌμΌ ν¨)
6. ν¬νμ μμλ μκ΄μλ€
=> ν¬νμ μμκ° λ¬λΌλ κ°μ 릴λ μ΄μ μ
(κ΄κ³ λ°μ΄ν° λͺ¨λΈμ ν¬νμ μ€μ μ μΈ κ°μ κ°μ§κ³ μμΌλ©° μ΄ κ°μ μκ°μ΄ μ§λλ©΄μ λ°μ΄ν°μ μ½μ , μμ , μμ μ λ°λΌ μμκ° λ°λ μ μμ)
κ΄κ³ λ°μ΄ν° λͺ¨λΈ
κ΄κ³ λ°μ΄ν° λͺ¨λΈμ λ°μ΄ν°λ₯Ό 2μ°¨μ ν
μ΄λΈ ννμΈ λ¦΄λ μ΄μ
μΌλ‘ ννν¨
=> 릴λ μ΄μ μ λν μ μ½μ‘°κ±΄(constraints)κ³Ό κ΄κ³ μ°μ°μ μν κ΄κ³λμ(relational algebra)λ₯Ό μ μν¨

2. λ¬΄κ²°μ± μ μ½μ‘°κ±΄
ν€
keyλ νΉμ ν¬νμ μλ³ν λ μ¬μ©νλ μμ± νΉμ μμ±μ μ§ν©μ΄λ€
=> 릴λ μ΄μ μ μ€λ³΅λ ν¬νμ νμ©νμ§ μκΈ° λλ¬Έμ κ°κ°μ ν¬νμ ν¬ν¨λ μμ±λ€ μ€ μ΄λ νλ(νΉμ νλ μ΄μ)λ κ°μ΄ λ¬λΌμΌν¨ μ¦, ν€κ° λλ μμ±(νΉμ μμ±μ μ§ν©)μ λ°λμ κ°μ΄ λ¬λΌμ ν¬νλ€μ μλ‘ κ΅¬λ³ν μ μμ΄μΌ ν¨
=> ν€λ 릴λ μ΄μ κ°μ κ΄κ³λ₯Ό λ§Ίλ λ°λ μ¬μ©!

1. μνΌν€ (super key) : ν¬νμ μ μΌνκ² μλ³ν μ μλ νλμ μμ± νΉμ μμ±μ μ§ν© (μ μΌμ±)
ν¬νμ μ μΌνκ² μλ³ν μ μλ κ°μ΄λ©΄ λͺ¨λ μνΌν€κ° λ μ μλ€
EX. (μ£Όλ―Όλ²νΈ), (μ£Όλ―Όλ²νΈ, μ΄λ¦), (μ£Όλ―Όλ²νΈ, μ΄λ¦, μ£Όμ), (μ£Όλ―Όλ²νΈ, μ΄λ¦, νΈλν°),
(κ³ κ°λ²νΈ), (κ³ κ°λ²νΈ, μ΄λ¦, μ£Όμ), (κ³ κ°λ²νΈ, μ΄λ¦, μ£Όλ―Όλ²νΈ, μ£Όμ, νΈλν°) λ±
2. νλ³΄ν€ (candidate key) : ν¬νμ μ μΌνκ² μλ³ν μ μλ μμ±μ μ΅μ μ§ν© (μ μΌμ±, μ΅μμ±)
κ³ κ°λ²νΈμ λμλ²νΈ λͺ¨λ λ¨λ μΌλ‘λ ν보ν€κ° λ μ μμ
=> μ£Όλ¬Έ 릴λ μ΄μ μ ν보ν€λ 2κ°μ μμ±μ ν©ν (κ³ κ°λ²νΈ, λμλ²νΈ)κ° λ¨
(μ΄λ κ² 2κ° μ΄μμ μμ±μΌλ‘ μ΄λ£¨μ΄μ§ ν€λ₯Ό 볡ν©ν€(composite key)λΌκ³ ν¨)
3. κΈ°λ³Έν€ (primary key) : μ¬λ¬ νλ³΄ν€ μ€ νλλ₯Ό μ μ νμ¬ λνλ‘ μΌλ ν€
ν보ν€κ° νλλΏμ΄λΌλ©΄ κ·Έ ν보ν€λ₯Ό κΈ°λ³Έν€λ‘ μ¬μ©νλ©΄ λκ³ μ¬λ¬ κ°λΌλ©΄ 릴λ μ΄μ μ νΉμ±μ λ°μνμ¬ νλλ₯Ό μ ν!
- κΈ°λ³Έν€ μ μ μ κ³ λ €μ¬ν
- 릴λ μ΄μ
λ΄ ν¬νμ μλ³ν μ μλ κ³ μ ν κ°μ κ°μ ΈμΌ ν¨
- NULL κ°μ νμ©νμ§ μμ
- ν€ κ°μ λ³λμ΄ μΌμ΄λμ§ μμμΌ ν¨
- μ΅λν μ μ μμ μμ±μ κ°μ§ κ²μ΄μ¬μΌ ν¨
- ν₯ν ν€λ₯Ό μ¬μ©νλ λ° μμ΄μ λ¬Έμ λ°μ μμ§κ° μμ΄μΌ ν¨
- 릴λ μ΄μ
λ΄ ν¬νμ μλ³ν μ μλ κ³ μ ν κ°μ κ°μ ΈμΌ ν¨
- 릴λ μ΄μ
μ€ν€λ§λ₯Ό ννν λ κΈ°λ³Έν€λ λ°μ€(μ€μ )μ κ·Έμ΄ νμν¨
- 릴λ μ΄μ
μ΄λ¦(μμ±1, μμ±2, ... μμ±N)
EX. κ³ κ°(κ³ κ°λ²νΈ, μ΄λ¦, μ£Όλ―Όλ²νΈ, μ£Όμ, νΈλν°)
- 릴λ μ΄μ
μ΄λ¦(μμ±1, μμ±2, ... μμ±N)
4. λλ¦¬ν€ (surrogate key)
κΈ°λ³Έν€κ° 보μμ μνκ±°λ, μ¬λ¬ κ°μ μμ±μΌλ‘ ꡬμ±λμ΄ λ³΅μ‘νκ±°λ, λ§λ ν κΈ°λ³Έ ν€κ° μμ λλ
μΌλ ¨λ²νΈ κ°μ κ°μμ μμ±μ λ§λ€μ΄ κΈ°λ³Έν€λ‘ μΌλ κ²½μ°κ° μμ
=> μ΄λ¬ν ν€λ₯Ό λλ¦¬ν€ νΉμ μΈμ‘°ν€(artificial key)λΌκ³ ν¨
λ리ν€λ DBMSλ κ΄λ ¨ μννΈμ¨μ΄μμ μμλ‘ μμ±νλ κ°μΌλ‘ μ¬μ©μκ° μ§κ΄μ μΌλ‘ κ·Έ κ°μ μλ―Έλ₯Ό μ μ μμ
5. λμ²΄ν€ (alternate key) : λ체ν€λ κΈ°λ³Έν€λ‘ μ μ λμ§ μμ ν보ν€λ₯Ό λ§ν¨
EX. κ³ κ° λ¦΄λ μ΄μ
μ κ²½μ° κ³ κ°λ²νΈμ μ£Όλ―Όλ²νΈ μ€ κ³ κ°λ²νΈλ₯Ό κΈ°λ³Έν€λ‘ μ νλ©΄ μ£Όλ―Όλ²νΈκ° λ체ν€κ° λ¨
6. μΈλν€ (foreign key) :λ€λ₯Έ 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μμ±μ λ§ν¨
λ€λ₯Έ 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νμ¬ κ΄κ³ λ°μ΄ν° λͺ¨λΈμ νΉμ§μΈ 릴λ μ΄μ κ°μ κ΄κ³(relationship)λ₯Ό ννν¨
릴λ μ΄μ
μ€ν€λ§λ₯Ό ννν λ μΈλν€λ λ°μ€(μ μ )μ κ·Έμ΄ νμν¨!

- μΈλν€μ νΉμ§
- κ΄κ³ λ°μ΄ν° λͺ¨λΈμ 릴λ μ΄μ
κ°μ κ΄κ³λ₯Ό ννν¨
- λ€λ₯Έ 릴λ μ΄μ
μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μμ±μ
- μ°Έμ‘°νκ³ (μΈλν€) μ°Έμ‘°λλ(κΈ°λ³Έν€) μμͺ½ 릴λ μ΄μ
μ λλ©μΈμ μλ‘ κ°μμΌ ν¨
- μ°Έμ‘°λλ(κΈ°λ³Έν€) κ°μ΄ λ³κ²½λλ©΄ μ°Έμ‘°νλ(μΈλν€) κ°λ λ³κ²½λ¨
- NULL κ°κ³Ό μ€λ³΅ κ° λ±μ΄ νμ©λ¨
- μκΈ° μμ μ κΈ°λ³Έν€λ₯Ό μ°Έμ‘°νλ μΈλν€λ κ°λ₯ν¨
- μΈλν€κ° κΈ°λ³Έν€μ μΌλΆκ° λ μ μμ
- κ΄κ³ λ°μ΄ν° λͺ¨λΈμ 릴λ μ΄μ
κ°μ κ΄κ³λ₯Ό ννν¨

λ¬΄κ²°μ± μ μ½μ‘°κ±΄
1. λ°μ΄ν° 무결μ±
=> λ°μ΄ν°λ² μ΄μ€μ μ μ₯λ λ°μ΄ν°μ μΌκ΄μ±κ³Ό μ νμ±μ μ§ν€λ κ²μ λ§ν¨
2. λλ©μΈ λ¬΄κ²°μ± μ μ½μ‘°κ±΄
=> λλ©μΈ μ μ½(domain constraint)μ΄λΌκ³ λ νλ©°, 릴λ μ΄μ λ΄μ ν¬νλ€μ΄ κ° μμ±μ λλ©μΈμ μ§μ λ κ°λ§μ κ°μ ΈμΌ νλ€λ 쑰건
3. κ°μ²΄ λ¬΄κ²°μ± μ μ½μ‘°κ±΄
=> κΈ°λ³Έν€ μ μ½(primary key constraint)μ΄λΌκ³ λ ν¨
=> 릴λ μ΄μ μ κΈ°λ³Έν€λ₯Ό μ§μ νκ³ κ·Έμ λ°λ₯Έ λ¬΄κ²°μ± μμΉ μ¦, κΈ°λ³Έν€λ NULL κ°μ κ°μ Έμλ μ λλ©° 릴λ μ΄μ λ΄μ μ€μ§ νλμ κ°λ§ μ‘΄μ¬ν΄μΌ νλ€λ 쑰건μ
4. μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄
μΈλν€ μ μ½(foreign key constraint)μ΄λΌκ³ λ νλ©°, 릴λ μ΄μ κ°μ μ°Έμ‘° κ΄κ³λ₯Ό μ μΈνλ μ μ½μ‘°κ±΄
=> μμ 릴λ μ΄μ μ μΈλν€λ λΆλͺ¨ 릴λ μ΄μ μ κΈ°λ³Έν€μ λλ©μΈμ΄ λμΌν΄μΌ νλ©°, μμ 릴λ μ΄μ μ κ°μ΄ λ³κ²½λ λ λΆλͺ¨ 릴λ μ΄μ μ μ μ½μ λ°λλ€λ κ²μ

λ¬΄κ²°μ± μ μ½μ‘°κ±΄μ μν
1. κ°μ²΄ λ¬΄κ²°μ± μ μ½μ‘°κ±΄

μ½μ : κΈ°λ³Έν€ κ°μ΄ κ°μΌλ©΄ μ½μ μ΄ κΈμ§λ¨ (μ€λ³΅ X)
μμ : κΈ°λ³Έν€ κ°μ΄ κ°κ±°λ NULLλ‘λ μμ μ΄ κΈμ§λ¨
μμ : νΉλ³ν νμΈμ΄ νμνμ§ μμΌλ©° μ¦μ μνν¨
2. μ°Έμ‘° λ¬΄κ²°μ± μ μ½μ‘°κ±΄

- μ½μ
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : ν¬ν μ½μ
ν ν μννλ©΄ μ μμ μΌλ‘ μ§ν
- νμ (μμ 릴λ μ΄μ ) : μ°Έμ‘°λ°λ ν μ΄λΈμ μΈλν€ κ°μ΄ μμΌλ―λ‘ μ½μ μ΄ κΈμ§λ¨
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : ν¬ν μ½μ
ν ν μννλ©΄ μ μμ μΌλ‘ μ§ν
- μμ
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : μ°Έμ‘°νλ ν
μ΄λΈμ κ°μ΄ μμ ν μ μμ΄μ κΈμ§νκ±°λ λ€λ₯Έ μΆκ° μμ
μ΄ νμν¨
- νμ (μμ 릴λ μ΄μ ) : λ°λ‘ μμ κ°λ₯ν¨
- νκ³Ό (λΆλͺ¨ 릴λ μ΄μ
) : μ°Έμ‘°νλ ν
μ΄λΈμ κ°μ΄ μμ ν μ μμ΄μ κΈμ§νκ±°λ λ€λ₯Έ μΆκ° μμ
μ΄ νμν¨
λΆλͺ¨ 릴λ μ΄μ μμ ν¬νμ μμ ν κ²½μ° μ°Έμ‘° λ¬΄κ²°μ± μ‘°κ±΄μ μννκΈ° μν κ³ λ €μ¬ν
1. μ¦μ μμ μ μ€μ§
2. μμ 릴λ μ΄μ μ κ΄λ ¨ ν¬νμ μμ
3. μ΄κΈ°μ μ€μ λ λ€λ₯Έ μ΄λ€ κ°μΌλ‘ λ³κ²½
4. NULL κ°μΌλ‘ μ€μ


- μμ
- μμ μ μ½μ λͺ λ Ήμ΄ μ°μν΄μ μνλ¨
- λΆλͺ¨ 릴λ μ΄μ μ μμ μ΄ μΌμ΄λ κ²½μ° μμ μ΅μ μ λ°λΌ μ²λ¦¬λ ν λ¬Έμ κ° μμΌλ©΄ λ€μ μ½μ μ μ½μ‘°κ±΄μ λ°λΌ μ²λ¦¬
3. κ΄κ³λμ
κ΄κ³λμ
κ΄κ³λμ (relational algebra) : 릴λ μ΄μ μμ μνλ κ²°κ³Όλ₯Ό μ»κΈ° μν΄ μνμ λμμ κ°μ μ°μ°μ μ΄μ©νμ¬ μ§μνλ λ°©λ²μ κΈ°μ νλ μΈμ΄
κ΄κ³λμμ κ΄κ³ν΄μ(relational calculus)
=> κ΄κ³λμ : μ΄λ€ λ°μ΄ν°λ₯Ό μ΄λ»κ² μ°Ύλμ§μ λν μ²λ¦¬ μ μ°¨λ₯Ό λͺ μνλ μ μ°¨μ μΈ μΈμ΄μ΄λ©°, DBMS λ΄λΆμ μ²λ¦¬ μΈμ΄λ‘ μ¬μ©λ¨
=> κ΄κ³ν΄μ : μ΄λ€ λ°μ΄ν°λ₯Ό μ°Ύλμ§λ§ λͺ
μνλ μ μΈμ μΈ μΈμ΄λ‘ κ΄κ³λμμ ν¨κ» κ΄κ³ DBMSμ νμ€ μΈμ΄μΈ SQLμ
μ΄λ‘ μ μΈ κΈ°λ°μ μ 곡ν¨
κ΄κ³λμμ κ΄κ³ν΄μμ λͺ¨λ κ΄κ³ λ°μ΄ν° λͺ¨λΈμ μ€μν μΈμ΄μ΄λ©° μ€μ λμΌν νν λ₯λ ₯μ κ°μ§κ³ μμ
릴λ μ΄μ μ μνμ κ°λ


κ΄κ³λμμ
κ΄κ³λμλ 릴λ μ΄μ
κ° μ°μ°μ ν΅ν΄ κ²°κ³Ό 릴λ μ΄μ
μ μ°Ύλ μ μ°¨λ₯Ό κΈ°μ ν μΈμ΄λ‘, μ΄ μ°μ°μ μννκΈ° μν μμ
κ΄κ³λμμ(relational algebra expression)μ΄λΌκ³ ν¨
=> κ΄κ³λμμμ λμμ΄ λλ 릴λ μ΄μ κ³Ό μ°μ°μλ‘ κ΅¬μ±λλ©°, κ²°κ³Όλ 릴λ μ΄μ μΌλ‘ λ°νλ¨
(λ°νλ 릴λ μ΄μ μ 릴λ μ΄μ μ λͺ¨λ νΉμ§μ λ°λ¦)
λ¨ν μ°μ°μ : μ°μ°μ <쑰건> 릴λ μ΄μ
μ΄ν μ°μ°μ : 릴λ μ΄μ 1 μ°μ°μ <쑰건> 릴λ μ΄μ 2

μ λ μ κ³Ό νλ‘μ μ
μ λ μ (selection)
릴λ μ΄μ μ ν¬νμ μΆμΆνκΈ° μν μ°μ°μ
=> νλμ 릴λ μ΄μ μ λμμΌλ‘ νλ λ¨ν μ°μ°μμ΄λ©°, μ°Ύκ³ μ νλ ν¬νμ 쑰건μ λͺ μνκ³ κ·Έ 쑰건μ λ§μ‘±νλ ν¬νμ λ°νν¨
νμ : Ο<쑰건> (R)

μ λ μ μ νμ₯
νμ : Ο<볡ν©μ‘°κ±΄> (R)
(λ³΅ν© μ‘°κ±΄μ λνλ΄λ κΈ°νΈμλ ^(and), v(or), Β¬(not) μ΄ μλ€)

νλ‘μ μ (projection)
릴λ μ΄μ μ μμ±μ μΆμΆνκΈ° μν μ°μ°μΌλ‘ λ¨ν μ°μ°μμ
νμ : Ο <μμ±λ¦¬μ€νΈ>(R)

μ§ν©μ°μ°
1. ν©μ§ν©
λ κ°μ 릴λ μ΄μ μ ν©νμ¬ νλμ 릴λ μ΄μ μ λ°νν¨
(μ΄ λ λ κ°μ 릴λ μ΄μ μ μλ‘ κ°μ μμ± μμμ λλ©μΈμ κ°μ ΈμΌ ν¨)

2. κ΅μ§ν©
ν©λ³κ°λ₯ν λ 릴λ μ΄μ μ λμμΌλ‘ νλ©°, λ 릴λ μ΄μ μ΄ κ³΅ν΅μΌλ‘ κ°μ§κ³ μλ ν¬νμ λ°νν¨

3. μ°¨μ§ν©
첫 λ²μ§Έ 릴λ μ΄μ μλ μνκ³ λ λ²μ§Έ 릴λ μ΄μ μλ μνμ§ μλ ν¬νμ λ°ν

4. μΉ΄ν°μ νλ‘λνΈ(cartesian product)
- λ 릴λ μ΄μ
μ μ°κ²°μμΌ νλλ‘ ν©μΉ λ μ¬μ©ν¨
- κ²°κ³Ό 릴λ μ΄μ
μ 첫 λ²μ§Έ 릴λ μ΄μ
μ μ€λ₯Έμͺ½μ λ λ²μ§Έ 릴λ μ΄μ
μ λͺ¨λ ν¬νμ μμλλ‘ λ°°μ΄νμ¬ λ°νν¨
- κ²°κ³Ό 릴λ μ΄μ μ μ°¨μλ λ 릴λ μ΄μ μ μ°¨μμ ν©μ΄λ©°, μΉ΄λλ 리ν°λ λ 릴λ μ΄μ μ μΉ΄λλ 리ν°μ κ³±μ

μ‘°μΈ
- λ 릴λ μ΄μ
μ κ³΅ν΅ μμ±μ κΈ°μ€μΌλ‘ μμ± κ°μ΄ κ°μ ν¬νμ μνμΌλ‘ κ²°ν©νλ μ°μ°μ
- μ‘°μΈμ μννκΈ° μν΄μλ λ 릴λ μ΄μ
μ μ‘°μΈμ μ°Έμ¬νλ μμ±μ΄ μλ‘ λμΌν λλ©μΈμΌλ‘ ꡬμ±λμ΄μΌ ν¨
- μ‘°μΈ μ°μ°μ κ²°κ³Όλ κ³΅ν΅ μμ±μ μμ± κ°μ΄ λμΌν ν¬νλ§μ λ°νν¨

μΈνμ‘°μΈ(theta join, ΞΈ)
μ‘°μΈμ μ°Έμ¬νλ λ 릴λ μ΄μ μ μμ± κ°μ λΉκ΅νμ¬ μ‘°κ±΄μ λ§μ‘±νλ ν¬νλ§ λ°νν¨
=> μΈνμ‘°μΈμ 쑰건μ {=, β ,>=, <=, <, >} μ€ νλκ° λ¨
νμ : Rβ(r 쑰건 s)S
(Rκ³Ό Sλ 릴λ μ΄μ μ΄λ©° rμ Rμ μμ±, sλ Sμ μμ±)
λλ±μ‘°μΈ(equi join)
μΈνμ‘°μΈμμ = μ°μ°μλ₯Ό μ¬μ©ν μ‘°μΈμ λ§ν¨ (λ³΄ν΅ μ‘°μΈ μ°μ°μ΄λΌκ³ νλ©΄ λλ±μ‘°μΈμ μ§μΉν¨)
νμ : Rβ(r=s)S

μμ°μ‘°μΈ (natural join)
λλ±μ‘°μΈμμ μ‘°μΈμ μ°Έμ¬ν μμ±μ΄ λ λ² λμ€μ§ μλλ‘ λ λ²μ§Έ μμ±μ μ κ±°ν κ²°κ³Όλ₯Ό λ°νν¨ (μμ± μ€λ³΅ μ κ±°)
νμ : RβN(r,s)S

μΈλΆμ‘°μΈ (outer join)
μμ°μ‘°μΈ μ μ‘°μΈμ μ€ν¨ν ν¬νμ λͺ¨λ 보μ¬μ£Όλ κ°μ΄ μλ λμ μμ±μλ NULL κ°μ μ±μμ λ°ν
λͺ¨λ μμ±μ 보μ¬μ£Όλ κΈ°μ‘΄ 릴λ μ΄μ μμΉμ λ°λΌ
=> μΌμͺ½(left) μΈλΆμ‘°μΈ, μ€λ₯Έμͺ½(right) μΈλΆμ‘°μΈ, μμ (full) μΈλΆμ‘°μΈμΌλ‘ λλ¨
νμ : Rβ(r,s)S

μΈλ―Έμ‘°μΈ (semi join)
μμ°μ‘°μΈμ ν ν λ 릴λ μ΄μ μ€ νμͺ½ 릴λ μ΄μ μ κ²°κ³Όλ§ λ°ννλ©°, κΈ°νΈμμ λ«ν μͺ½ 릴λ μ΄μ μ ν¬νλ§ λ°νν¨
νμ : Rβ(r,s)S

λλΉμ
릴λ μ΄μ μ μμ± κ°μ μ§ν©μΌλ‘ μ°μ°μ μνν¨
νμ : R Γ· S

=> 릴λ μ΄μ Rμ μμ± Bκ°κ³Ό 릴λ μ΄μ Sμ μμ± Bκ°μ΄ μλ‘ λμΌνκ² λμνλ 릴λ μ΄μ Rμ μμ± Aμ ν¬νμ λ°ν
κ΄κ³λμ μμ
μ λ μ , νλ‘μ μ , μ§ν©μ°μ°μ λ³΅ν© μ¬μ©


μΉ΄ν°μ νλ‘λνΈλ₯Ό μ¬μ©ν μ°μ°κ³Ό μ‘°μΈμ μ¬μ©ν μ°μ°




'𫧠Database > λ°μ΄ν°λ² μ΄μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
Chapter 06. λ°μ΄ν° λͺ¨λΈλ§ (0) | 2024.05.15 |
---|---|
Chapter 05. λ°μ΄ν°λ² μ΄μ€ νλ‘κ·Έλλ° (1) | 2024.04.16 |
Chapter 04. SQL κ³ κΈ (1) | 2024.04.15 |
Chapter 03. SQL κΈ°μ΄ (1) | 2024.04.14 |
Chapter 01. λ°μ΄ν°λ² μ΄μ€ μμ€ν (2) | 2024.04.10 |