์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•

2020๋…„ ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์ œ3ํšŒ ํ•„๊ธฐ ์˜ค๋‹ต๋…ธํŠธ - 3๊ณผ๋ชฉ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•

ํ•œ์ฝ”๋”ฉ 2020. 9. 25. 17:24
728x90
728x90
๋ฆด๋ ˆ์ด์…˜ R์˜ ๋ชจ๋“  ๊ฒฐ์ •์ž(determinant)๊ฐ€ ํ›„๋ณดํ‚ค์ด๋ฉด ๊ทธ ๋ฆด๋ ˆ์ด์…˜ R์€ ์–ด๋–ค ์ •๊ทœํ˜•์— ์†ํ•˜๋Š”๊ฐ€?

 

1NF : ๋„๋ฉ”์ธ์ด ์›์ž๊ฐ’๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ •๊ทœํ˜•
2NF : ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธ ํ‚ค์— ๋Œ€ํ•ด ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†์„ ๋งŒ์กฑํ•˜๋Š” ์ •๊ทœํ˜•
3NF : ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธ ํ‚ค์— ๋Œ€ํ•ด ์ดํ–‰์  ์ข…์†์„ ๋งŒ์กฑ ์•ˆํ•˜๋Š” ์ •๊ทœํ˜•
BCNF : ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณด ํ‚ค์ธ ์ •๊ทœํ˜• *
4NF : ๋‹ค์น˜ ์ข…์† A->B๊ฐ€ ์„ฑ๋ฆฝํ•˜๋Š” ๊ฒฝ์šฐ A์— ํ•จ์ˆ˜์  ์ข…์† ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ •๊ทœํ˜•
5NF : ๋ชจ๋“  ์กฐ์ธ ์ข…์†์ด ํ›„๋ณด ํ‚ค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์„ฑ๋ฆฝ๋˜๋Š” ์ •๊ทœํ˜•

๋„๋ถ€์ด๊ฒฐ๋‹ค์กฐ?


๋‹ค์Œ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์€ ๊ฒƒ์€?

 

๋ฆด๋ ˆ์ด์…˜ : ํ‘œ ์ˆ˜

์†์„ฑ(Attribute) : ์—ด ์ˆ˜

ํŠœํ”Œ(Tuple) : ํ–‰ ์ˆ˜


Commit๊ณผ Rollback ๋ช…๋ น์–ด์— ์˜ํ•ด ๋ณด์žฅ ๋ฐ›๋Š” ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ์€?

 

์›์ž์„ฑ : ํŠธ๋žœ์žญ์…˜ ์—ฐ์‚ฐ์€ DB์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜์–ด Commit(์™„๋ฃŒ)๋˜๋“ ์ง€ ์•„๋‹ˆ๋ฉด ๋ฐ˜์˜์•ˆ๋˜์–ด Rollback(๋ณต๊ตฌ)๋˜์–ด์•ผ ํ•œ๋‹ค.
์ผ๊ด€์„ฑ : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒํ•˜๋ฉด ์–ธ์ œ๋‚˜ ์ผ๊ด€์„ฑ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.
๋…๋ฆฝ์„ฑ : ๋‘˜ ์ด์ƒ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ ๋ณ‘ํ–‰ ์‹คํ–‰๋  ๊ฒฝ์šฐ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘ ํƒ€ ํŠธ๋žœ์žญ์…˜์— ์˜ํ–ฅ X
์ง€์†์„ฑ : ์„ฑ๊ณต์  ์™„๋ฃŒ๋œ ํŠธ๋žœ์žญ์…˜ ๊ฒฐ๊ณผ๋Š” ์‹œ์Šคํ…œ์ด ๊ณ ์žฅ๋‚˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•œ๋‹ค.

Commit๊ณผ Rollback์ด ๋‚˜์˜ค๋ฉด ์›์ž์„ฑ(Atomicity) ๊ตญ๋ฃฐ


๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ ํ…Œ์ด๋ธ” R1์— ๋Œ€ํ•œ ์•„๋ž˜ SQL ๋ฌธ์˜ ์‹คํ–‰๊ฒฐ๊ณผ๋กœ ์˜ณ์€ ๊ฒƒ์€?

 

 

SELECT : ์กฐํšŒ

DISTINCT : ์ค‘๋ณต ํŠœํ”Œ์ด ์žˆ์œผ๋ฉด ํ•˜๋‚˜๋งŒ ์กฐํšŒ

 

"R1ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ํ•™๋…„์„ ์ค‘๋ณต์—†์ด ์กฐํšŒํ•ด์ฃผ์„ธ์š”"

 


DCL(Data Control Language) ๋ช…๋ น์–ด๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€?

 

DDL(๋ฐ์ดํ„ฐ ์ •์˜์–ด) ํฌ์•Œ๋“œ

CREATE / ALTER / DROP

 

DML(๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด) ์…€์ธ๋””์—…

SELECT / INSERT / DELETE / UPDATE

 

DCL (๋ฐ์ดํ„ฐ ์ œ์–ด์–ด) ์ปค๋กค๊ทธ๋ฆฌ

COMMIT / ROLLBACK / GRANT / REVOKE

 


๋ณ‘ํ–‰์ œ์–ด ๊ธฐ๋ฒ• ์ค‘ ๋กœํ‚น์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

 

๋กœํ‚น ๊ธฐ๋ฒ•

ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ทธ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜๋Š” ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•

๋ฐ์ดํ„ฐ ๊ฐ์ฒด์— ๋กœํ‚น(Locking)ํ•œ๋‹ค. 

 

๋ฐ์ดํ„ฐ ๊ฐ์ฒด : ํŒŒ์ผ, ๋ ˆ์ฝ”๋“œ, ํ•„๋“œ ๋“ฑ

 

๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ๋กœํ‚น ์˜ค๋ฒ„ํ—ค๋“œ, ๋ฐ์ดํ…Œ์ด๋ฒ„์Šค ๊ณต์œ ๋„๊ฐ€ ์ž‘์•„์ง„๋‹ค.

๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ž‘์„์ˆ˜๋ก ๋กœํ‚น ์˜ค๋ฒ„ํ—ค๋“œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณต์œ ๋„๊ฐ€ ์ปค์ง„๋‹ค.

(๋กœํ‚น ๋‹จ์œ„์™€ ๋ฐ˜๋น„๋ก€)


๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ชจ๋ธ์˜ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์ค‘ ๊ธฐ๋ณธํ‚ค ๊ฐ’์˜ ์†์„ฑ ๊ฐ’์ด ๋„(Null)๊ฐ’์ด ์•„๋‹Œ ์›์ž ๊ฐ’์„ ๊ฐ–๋Š” ์„ฑ์งˆ์€?

 

<๋ฌด๊ฒฐ์„ฑ์˜ ์ข…๋ฅ˜>

1. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ : ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์–ด๋–ค ์†์„ฑ๋„ NULL ๊ฐ’์ด๋‚˜ ์ค‘๋ณต ๊ฐ’ X

2. ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ(์˜์—ญ ๋ฌด๊ฒฐ์„ฑ) : ์ฃผ์–ด์ง„ ์†์„ฑ ๊ฐ’์ด ์ •์˜๋œ ๋„๋ฉ”์ธ์— ์†ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์ •

3. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ(Referential Integrity) : ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ NULL์ด๊ฑฐ๋‚˜ ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•จ. ์ฆ‰ ๋ฆด๋ ˆ์ด์…˜์€ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ์™ธ๋ž˜ํ‚ค ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค๋Š” ๊ทœ์ •

4. ์‚ฌ์šฉ์ž ์ •์˜ ๋ฌด๊ฒฐ์„ฑ : ์†์„ฑ ๊ฐ’๋“ค์ด ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์ œ์•ฝ ์กฐ๊ฑด์— ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ทœ์ •

 

๊ธฐ๋ณธํ‚ค + NULL --> ๊ฐœ์ฒด

๊ฐ’์ด ์†ํ•ด์•ผํ•จ --> ๋„๋ฉ”์ธ

์™ธ๋ž˜ํ‚ค --> ์ฐธ์กฐ

์‚ฌ์šฉ์ž ์ •์˜ --> ์‚ฌ์šฉ์ž ์ •์˜


๋ทฐ(View)์˜ ์žฅ์ ์ด ์•„๋‹Œ ๊ฒƒ์€?

 

 

๋ทฐ(View)

์ ‘๊ทผ์ด ํ—ˆ์šฉ๋œ ์ž๋ฃŒ๋งŒ์„ ์ œํ•œ์ ์œผ๋กœ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์œ ๋„๋œ ๊ฐ€์ƒ ํ…Œ์ด๋ธ”

 

 ๋ทฐ (View)์˜ ํŠน์ง•

- ์œ ๋„๋œ ํ…Œ์ด๋ธ”์ด๋ผ์„œ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ๊ตฌ์กฐ

- ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜์ง€ ์•Š์Œ

- ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ ์ œ๊ณต

- ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ๋ทฐ๋กœ ์ •์˜ํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ด, ๋ช…๋ น๋ฌธ ๊ฐ„๋‹จ

- ๋ทฐ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ฒŒ ํ•˜๋ฉด ๋ทฐ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋ณดํ˜ธ

- ๋ทฐ๊ฐ€ ์ •์˜๋œ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ๋ฅผ ์‚ญ์ œํ•˜๋ฉด ๊ทธ ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ๋ฅผ ๊ธฐ์ดˆ๋กœ ์ •์˜๋œ ๋‹ค๋ฅธ ๋ทฐ๋„ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋จ(์—ฐ์‡„)

- ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ํฌํ•จํ•œ ์†์„ฑ(์—ด) ์ง‘ํ•ฉ์œผ๋กœ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ๋งŒ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅ

 

 

 ๋ทฐ(View)์˜ ์žฅ๋‹จ์ 

์žฅ์ 

๋‹จ์ 

- ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณต

- ๋™์ผ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์˜ ์ƒ์ดํ•œ ์‘์šฉ์ด๋‚˜ ์š”๊ตฌ๋ฅผ ์ง€์›ํ•ด ์คŒ

์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด ์คŒ

์ ‘๊ทผ ์ œ์–ด๋ฅผ ํ†ตํ•œ ์ž๋™ ๋ณด์•ˆ์ด ์ œ๊ณต๋จ

- ๋…๋ฆฝ์ ์ธ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

- ๋ทฐ์˜ ์ •์˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Œ

- ๋ทฐ๋กœ ๊ตฌ์„ฑ๋œ ๋‚ด์šฉ์— ๋Œ€ํ•œ ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์—ฐ์‚ฐ์— ์ œ์•ฝ์ด ๋”ฐ๋ฆ„ 

 

 ๋ทฐ ์„ค๊ณ„ ์ˆœ์„œ

โ‘  ๋Œ€์ƒ ํ…Œ์ด๋ธ” ์„ ์ •

โ‘ก ๋Œ€์ƒ ์นผ๋Ÿผ ์„ ์ •

โ‘ข ์ •์˜์„œ ์ž‘์„ฑ


๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํˆฌ๋ช…์„ฑ(Transparency)์— ํ•ด๋‹น ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ณณ์— ๋ถ„์‚ฐ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉ

 

์œ„์น˜(Location) : ์‹ค์ œ ์œ„์น˜ ๋ชฐ๋ผ

์ค‘๋ณต(Replication) : ๋™์ผ ๋ฐ์ดํ„ฐ ์—ฌ๋Ÿฌ ๊ณณ์— ์žˆ์ง€๋งŒ, ํ•˜๋‚˜๋กœ ๋ณด์ž„

์žฅ์• (Failure) : ํ•˜๋‚˜๊ฐ€ ์žฅ์•  ๋ฐœ์ƒํ•ด๋„ ๋ฌธ์ œ ์—†์Œ

๋ณ‘ํ–‰(Concurrency) : ๋‹ค์ˆ˜ ํŠธ๋žœ์žญ์…˜ ๋™์‹œ ์‹คํ–‰ ๋ฌธ์ œ ์—†์Œ


์ •๊ทœํ™”์˜ ๋ชฉ์ ์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

 

๋ชฉ์  : ์ค‘๋ณต ๋ฐฐ์ œ → ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์ด์ƒ ์ œ๊ฑฐ

๋„๋ถ€์ด๊ฒฐ๋‹ค์กฐ

1NF : ๋„๋ฉ”์ธ ์›์ž๊ฐ’๋งŒ์œผ๋กœ ๊ตฌ์„ฑ (์„œ์šธ, ๋ถ€์‚ฐ ์„œ์šธ ๋”ฐ๋กœ ๋ถ€์‚ฐ)

2NF : ์™„์ „ ํ•จ์ˆ˜์  ์ข…์† (๋ถ€๋ถ„ ํ•จ์ˆ˜์  ์ข…์† ์ œ๊ฑฐ)

3NF : ์ดํ–‰์  ์ข…์† ์ œ๊ฑฐ 

BCNF : ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณด ํ‚ค

4NF : ๋‹ค์น˜ ์ œ๊ฑฐ

5NF : ์กฐ์ธ ์ข…์† ์ œ๊ฑฐ


๊ด€๊ณ„๋Œ€์ˆ˜์˜ ์ˆœ์ˆ˜๊ด€๊ณ„ ์—ฐ์‚ฐ์ž๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€?

 

์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž : select / project / join / division (์…€ํ”„์กฐ๋””)


๋‹ค์Œ ์ค‘ SQL์˜ ์ง‘๊ณ„ ํ•จ์ˆ˜(aggregation function)๊ฐ€ ์•„๋‹Œ ๊ฒƒ์€?

 

AVG:  ํ‰๊ท 
SUM:  ํ•ฉ
COUNT: ์ง‘๊ณ„ํ–‰์˜ ์ˆ˜

728x90
๋ฐ˜์‘ํ˜•