λ°˜μ‘ν˜•

 


κ΅­λ―ΌλŒ€ν•™κ΅μ—μ„œ "였라클둜 λ°°μš°λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 개둠과 μ‹€μŠ΅(2판)" 을 μ΄μš©ν•œ
μ‹ μΈμˆ˜ κ΅μˆ˜λ‹˜μ˜ κ°•μ˜ κ΅μ•ˆμ„ μ΄μš©ν•˜μ—¬ μˆ˜μ—… λ‚΄μš©μ„ μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€

 

 

1. 관계 데이터 λͺ¨λΈμ˜ κ°œλ…

 

λ¦΄λ ˆμ΄μ…˜

 

λ¦΄λ ˆμ΄μ…˜(relation) : ν–‰κ³Ό μ—΄λ‘œ κ΅¬μ„±λœ ν…Œμ΄λΈ”

 

관계(relationship) 

 

=> 1. λ¦΄λ ˆμ΄μ…˜ λ‚΄μ—μ„œ μƒμ„±λ˜λŠ” 관계 : λ¦΄λ ˆμ΄μ…˜ λ‚΄ λ°μ΄ν„°λ“€μ˜ 관계
(각각의 μ—΄(=집합) μ—μ„œ μ›μ†Œ ν•œ κ°œμ”©μ„ μ„ νƒν•˜μ—¬ ν•˜λ‚˜μ˜ 행이 λ§Œλ“€μ–΄μ§„ κ²ƒμœΌλ‘œ 이 μ›μ†Œλ“€μ΄ 관계λ₯Ό λ§Ίκ³  있음)

 

=> 2. λ¦΄λ ˆμ΄μ…˜ 간에 μƒμ„±λ˜λŠ” 관계 : λ¦΄λ ˆμ΄μ…˜ κ°„μ˜ 관계

 

λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ™€ μΈμŠ€ν„΄μŠ€

 

 

  • μŠ€ν‚€λ§ˆμ˜ μš”μ†Œ

    • 속성(attribute) : λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ μ—΄

    • 도메인(domain) : 속성이 κ°€μ§ˆ 수 μžˆλŠ” κ°’μ˜ 집합 (κ°€μ§ˆ 수 μžˆλŠ” κ°’μ˜ λ²”μœ„ λ“±)

    • 차수(degree) : μ†μ„±μ˜ 개수

  • μŠ€ν‚€λ§ˆμ˜ ν‘œν˜„

    • λ¦΄λ ˆμ΄μ…˜ 이름(속성1 : 도메인1, 속성2 : 도메인2, 속성3 : 도메인3 ...)

      EX. λ„μ„œ (λ„μ„œλ²ˆν˜Έ : integer, λ„μ„œμ΄λ¦„ : char(40), μΆœνŒμ‚¬ : char(40)) => 도메인 포함 

  • μΈμŠ€ν„΄μŠ€ μš”μ†Œ

    • νˆ¬ν”Œ(tuple) : λ¦΄λ ˆμ΄μ…˜μ˜ ν–‰

    • 카디날리티(cardinality) : νˆ¬ν”Œμ˜ 수
νˆ¬ν”Œμ΄ κ°€μ§€λŠ” μ†μ„±μ˜ κ°œμˆ˜λŠ” λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ μ°¨μˆ˜μ™€ λ™μΌν•˜κ³ , λ¦΄λ ˆμ΄μ…˜ λ‚΄μ˜ λͺ¨λ“  νˆ¬ν”Œλ“€μ€ μ„œλ‘œ 쀑볡 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. 고객(고객번호, 이름, 주민번호, μ£Όμ†Œ, ν•Έλ“œν°)

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의 νˆ¬ν”Œμ„ λ°˜ν™˜

 

κ΄€κ³„λŒ€μˆ˜ 예제

 

μ…€λ ‰μ…˜, ν”„λ‘œμ μ…˜, μ§‘ν•©μ—°μ‚°μ˜ 볡합 μ‚¬μš©

 

 

 

μΉ΄ν‹°μ „ ν”„λ‘œλ•νŠΈλ₯Ό μ‚¬μš©ν•œ μ—°μ‚°κ³Ό 쑰인을 μ‚¬μš©ν•œ μ—°μ‚°

 

 

 

λ°˜μ‘ν˜•