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

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

ํ•œ์ฝ”๋”ฉ 2020. 8. 17. 15:59
728x90
728x90

SQL ์˜ ๋ถ„๋ฅ˜ ์ค‘ DDL์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€?

 

DDL (์ •์˜) : CREATE, ALTER, DROP (์ƒ์„ฑ, ์‚ญ์ œ ๊ด€๋ จ)
DML (์กฐ์ž‘) :
SELECT, INSERT, UPDATE, DELETE (์ž์ฃผ ์“ฐ๋Š”๊ฑฐ)
DCL (์ œ์–ด) :
GRANT, REVOKE (์ž˜ ๋ชจ๋ฅด๋Š”๊ฑฐ)


๋‹ค์Œ ๋‘ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์™ธ๋ž˜ํ‚ค๋กœ ์‚ฌ์šฉ๋œ ๊ฒƒ์€? (๋‹จ ๋ฐ‘์ค„ ์นœ ์†์„ฑ์€ ๊ธฐ๋ณธํ‚ค์ด๋‹ค.)

์™ธ๋ž˜ํ‚ค

๋‘ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด ์™ธ๋ž˜ํ‚ค์ด๋‹ค.


๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์ค‘ “๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ”์กฐ๊ฑด์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ๋งž๋Š” ๊ฒƒ์€?

 

<๋ฐ์ดํ„ฐ ์ œ์•ฝ์กฐ๊ฑด>

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์–ด๋–ค ์†์„ฑ๋„ Null๊ฐ’์ด๋‚˜ ์ค‘๋ณต๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. (์ค‘๋ณต)
  • ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ์ฃผ์–ด์ง„ ์†์„ฑ ๊ฐ’์ด ์ •์˜๋œ ๋„๋ฉ”์ธ์— ์†ํ•œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. (๋„๋ฉ”์ธ)
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ์™ธ๋ž˜ํ‚ค์˜ ๊ฐ’์€ Null์ด๊ฑฐ๋‚˜ ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. (์™ธ๋ž˜ํ‚ค, ์ฐธ์กฐ)

๋ทฐ(view)์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

 

๋ทฐ

  • CREATE ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜
  • ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ์„ ์ œ๊ณต
  • ์ œ๊ฑฐ ์‹œ, DROP ๋ฌธ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์ €์žฅ ์žฅ์น˜ ๋‚ด ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์กด์žฌ X (๋…ผ๋ฆฌ์ ์œผ๋กœ ๊ตฌ์„ฑ/์กด์žฌ)

๋‹ค์Œ SQL ๋ฌธ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๋Š”?

 

# TIP : SQL๋ฌธ์€ ์˜์–ด ๋…ํ•ด์™€ ๊ฐ™์ด ๋’ค์—์„œ ๋ถ€ํ„ฐ ์ฝ๋Š” ๊ฒƒ์ด ์šฐ๋ฆฌ๋‚˜๋ผ ๋ฌธ๋ฒ•์— ์–ผ์ถ” ๋งž๋‹ค...

 

"๋„์„œ ๊ฐ€๊ฒฉ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๋„์„œ ๋ฆด๋ ˆ์ด์…˜์— '์ž๋ฃŒ๊ตฌ์กฐ'๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ์ฑ…์˜ ๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์ฑ…์˜ ๊ฐ€๊ฒฉ์„ ๋ณด์—ฌ์ค˜!"

FROM ๋„์„œ๊ฐ€๊ฒฉ           FROM ๋„์„œ     WHERE ์ฑ…๋ช…='์ž๋ฃŒ๊ตฌ์กฐ'      WHERE=์ฑ…๋ฒˆํ˜ธ     SELECT ๊ฐ€๊ฒฉ         

 

'์ž๋ฃŒ๊ตฌ์กฐ' ์ฑ…์˜ ๋ฒˆํ˜ธ๋Š” 222์ด๋ฏ€๋กœ 222์˜ ์ฑ… ๋ฒˆํ˜ธ์˜ ๊ฐ€๊ฒฉ์€ 25,000์ด๋‹ค.


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ์„ค๊ณ„(logical design) ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์ด ์•„๋‹Œ ๊ฒƒ์€?

 

<๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ์„ค๊ณ„(๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง)>

  • ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ์ €์žฅ์žฅ์น˜์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • DBMS๊ฐ€ ์ง€์›ํ•˜๋Š” ๋…ผ๋ฆฌ์  ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ๋ณ€ํ™˜์‹œํ‚ค๋Š” ๊ณผ์ •
  • ๊ฐœ๋… ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„๋“œ๋กœ ๊ธฐ์ˆ ๋œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ์ด ๋ฐ์ดํ„ฐ ํƒ€์ž…๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋กœ ํ‘œํ˜„๋˜๋Š” ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ชจ๋ธํ™”
  • ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ํ‰๊ฐ€ ๋ฐ ์ •์ œํ•˜๊ณ  DBMS์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ผ๋ฆฌ์  ์Šคํ‚ค๋งˆ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋‹จ๊ณ„(์ข…์†์ ์ธ ๋…ผ๋ฆฌ ์Šคํ‚ค๋งˆ)
  • ํŠธ๋žœ์žญ์…˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๋ฉด ํ…Œ์ด๋ธ” ์„ค๊ณ„
  • ํŠน์ •๋ชฉํ‘œ DBMS์— ๋”ฐ๋ฅธ ์Šคํ‚ค๋งˆ ์„ค๊ณ„
  • ์Šคํ‚ค๋งˆ์˜ ํ‰๊ฐ€ ๋ฐ ์ •์ œ

 

<๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๋ฌผ๋ฆฌ์  ์„ค๊ณ„(๋ฐ์ดํ„ฐ ๊ตฌ์กฐํ™”)>

  • ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜
  • ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ํŒŒ์ผ์˜ ์ €์žฅ ๊ตฌ์กฐ ๋ฐ ์—‘์„ธ์Šค ๊ฒฝ๋กœ ๊ฒฐ์ •
  • ๋ฐ์ดํ„ฐ๊ฐ€ ์ปดํ“จํ„ฐ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌ˜์‚ฌ
  • ์ €์žฅ ๋ ˆ์ฝ”๋“œ์˜ ์–‘์‹ ์„ค๊ณ„, ๋ ˆ์ฝ”๋“œ ์ง‘์ค‘์˜ ๋ถ„์„ ๋ฐ ์„ค๊ณ„, ์ ‘๊ทผ ๊ฒฝ๋กœ ์„ค๊ณ„
  • ๊ธฐ๋ณธ์  ๋ฐ์ดํ„ฐ ๋‹จ์œ„๋Š” ์ €์žฅ : ๋ ˆ์ฝ”๋“œ
  • ์„ฑ๋Šฅ์— ์ค‘๋Œ€ํ•œ ์˜ํ–ฅ์„ ๋ฏธ์นจ

์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์† ๊ด€๊ณ„๋ฅผ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€?

 

<3์ฐจ ์ •๊ทœํ™” (3NF)์˜ ์กฐ๊ฑด>

์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์† ๊ด€๊ณ„๋ฅผ ์ œ๊ฑฐํ•ด์•ผํ•œ๋‹ค.

์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์† ๊ด€๊ณ„ : A→B์ด๊ณ  BC ์ผ ๋•Œ, AC์ด๋‹ค.


ํ•˜๋‚˜์˜ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์›์ž๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€?

 

์• ํŠธ๋ฆฌ๋ทฐํŠธ

  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ๋ฐ์ดํ„ฐ์˜ ๊ฐ€์žฅ ์ž‘์€ ๋…ผ๋ฆฌ์  ๋‹จ์œ„
  • ์ด ๊ฐ’์€ ์›์ž ๊ฐ’๋งŒ์„ ํ—ˆ์šฉ

๋„๋ฉ”์ธ

  • ๊ฐ™์€ ํƒ€์ž…์˜ ๋ชจ๋“  ์›์ž ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ
  • ๊ฐ™์€ ๋„๋ฉ”์ธ์˜ ๊ฐ’๋“ค๋ผ๋ฆฌ ๋น„๊ต ํ—ˆ์šฉ
  • ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ์— ๋Œ€ํ•˜์—ฌ ๋‘˜ ์ด์ƒ์˜ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์ •์˜ ๊ฐ€๋Šฅ
  • ํ•œ ๋ฆด๋ ˆ์ด์…˜์—์„œ๋Š” ๋ชจ๋“  ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋“ค์˜ ์ด๋ฆ„์ด ๋ฐ˜๋“œ์‹œ ๋‹ฌ๋ผ์•ผํ•จ

STUDENT ํ…Œ์ด๋ธ”์— ๋…์ผ์–ด๊ณผ ํ•™์ƒ 50๋ช…, ์ค‘๊ตญ์–ด๊ณผ ํ•™์ƒ 30๋ช…, ์˜์–ด์˜๋ฌธํ•™๊ณผ ํ•™์ƒ 50๋ช…์˜ ์ •๋ณด๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ์„ ๋•Œ, ๋‹ค์Œ ๋‘ SQL๋ฌธ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ ํŠœํ”Œ ์ˆ˜๋Š”? (๋‹จ, DEPT ์ปฌ๋Ÿผ์€ ํ•™๊ณผ๋ช…)

# ๋…์ผ์–ด ํ•™์ƒ 30 + ์ค‘๊ตญ์–ด ํ•™์ƒ 30 + ์˜์–ด ํ•™์ƒ 50 = ์ด 130๋ช…

 

โ“๋Š” ํ•™์ƒ ํ…Œ์ด๋ธ”์˜ ํ•™๊ณผ๋ฅผ ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋ฏ€๋กœ ์ด 130๋ช…์˜ ํ•™๊ณผ๋ฅผ ๋‹ค ๋ณด์—ฌ์ค€๋‹ค. (130)

โ“‘๋Š” ํ•™์ƒ ํ…Œ์ด๋ธ”์˜ ํ•™๊ณผ๋ฅผ ์ค‘๋ณต ์—†์ด ๋ชจ๋‘ ๋ณด์—ฌ์ฃผ๋ฏ€๋กœ, ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋ฉด 3๊ฐœ์˜ ํ•™๊ณผ๋งŒ ์ถœ๋ ฅ๋œ๋‹ค.(3)

 

DISTINCT : ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ๋™์ผํ•œ ํŠœํ”Œ์„ ์ œ๊ฑฐ (์ค‘๋ณต ์ œ๊ฑฐ)


๊ด€๊ณ„๋Œ€์ˆ˜ ์—ฐ์‚ฐ์—์„œ ๋‘ ๋ฆด๋ ˆ์ด์…˜์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“œ๋Š” ์—ฐ์‚ฐ์€?

 

  • ์…€๋ ‰ํŠธ(Select) σ : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ ๋ฐ˜ํ™˜ (์ˆ˜ํ‰ ์ ˆ๋‹จ, ํ–‰์„ ๋‹ค ๊ฐ€์ ธ์˜ด)
  • ํ”„๋กœ์ ํŠธ(Project) π :  ๋ฆด๋ ˆ์ด์…˜์—์„œ ์ฃผ์–ด์ง„ ์†์„ฑ๋“ค์˜ ๊ฐ’์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ํŠœํ”Œ ๋ฐ˜ํ™˜ (์ˆ˜์ง ์ ˆ๋‹จ, ์—ด์„ ์„ ํƒ์  ๊ฐ€์ ธ์˜ด)
  • ์กฐ์ธ(Join) โ‹ˆ : ๊ณตํ†ต ์†์„ฑ์„ ์ด์šฉํ•ด ๋‘๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜ ํŠœํ”Œ๋“ค์„ ์—ฐ๊ฒฐํ•ด ๋งŒ๋“ค์–ด์ง„ ํŠœํ”Œ ๋ฐ˜ํ™˜
  • ๋””๋น„์ „(Division) ÷ : [R%S] ๋ฆด๋ ˆ์ด์…˜S์˜ ๋ชจ๋“  ํŠœํ”Œ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜R์˜ ํŠœํ”Œ ๋ฐ˜ํ™˜

ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ ์ค‘ ๋‹ค์Œ ์„ค๋ช…์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์€?

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

๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชฉํ‘œ ์ค‘ “๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ„์‚ฐ๋œ ๋ฌผ๋ฆฌ์  ํ™˜๊ฒฝ์—์„œ ํŠน์ • ์ง€์—ญ์˜ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด๋‚˜ ๋„คํŠธ์›Œํฌ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์ด ๋ณด์žฅ๋œ๋‹ค”๋Š” ๊ฒƒ๊ณผ ๊ด€๊ณ„์žˆ๋Š” ๊ฒƒ์€?

 

<๋ถ„์‚ฐ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ชฉํ‘œ>

  • ์œ„์น˜ ํˆฌ๋ช…์„ฑ(Location Trasparency) : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ์‹ค์ œ ์œ„์น˜๋ฅผ ์•Œ ํ•„์š” ์—†์ด ๋‹จ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ช…์นญ๋งŒ์œผ๋กœ ์—‘์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Œ
  • ์ค‘๋ณต ํˆฌ๋ช…์„ฑ(Replication Transparency) : ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๊ณณ์— ์ค‘๋ณต๋˜์–ด ์žˆ๋”๋ผ๋„ ์‚ฌ์šฉ์ž๋Š” ๋งˆ์น˜ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, ์‹œ์Šคํ…œ์€ ์ž๋™์œผ๋กœ ์—ฌ๋Ÿฌ ์ž๋ฃŒ์— ๋Œ€ํ•œ ์ž‘์—… ์ˆ˜ํ–‰
  • ๋ณ‘ํ–‰ ํˆฌ๋ช…์„ฑ(Concurrency Transparency) : ๋‹ค์ˆ˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ˜„๋˜๋”๋ผ๋„ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ
  • ์žฅ์•  ํˆฌ๋ช…์„ฑ(Failure Transparency) : ํŠธ๋žœ์žญ์…˜, DBMS, ๋„คํŠธ์›Œํฌ, ์ปดํ“จํ„ฐ ์žฅ์• ์—๋„ ํŠธ๋žœ์žญ์…˜์„ ์ •ํ™•ํžˆ ์ฒ˜๋ฆฌ(๋ฌด๊ฒฐ์„ฑ)

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์—์„œ ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ ๋“ฑ์˜ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ๋งˆ๋‹ค ๊ด€๋ จ ์ž‘์—…์ด ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์ ˆ์ฐจํ˜• SQL์€?

 

ํŠธ๋ฆฌ๊ฑฐ : ๋ฏธ๋ฆฌ ์ •ํ•ด ๋†“์€ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด DBMS์—์„œ ์ž๋™์ ์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ๊ตฌํ˜„ํ•œ ํ”„๋กœ๊ทธ๋žจ


์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•˜์—ฌ DROP๋ฌธ์—์„œ ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ํ•ญ๋ชฉ ๊ฐ’์„ ์‚ญ์ œํ•  ๊ฒฝ์šฐ ์ž๋™์ ์œผ๋กœ ์ž์‹ ํ…Œ์ด๋ธ”์˜ ํ•ด๋‹น ๋ ˆ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•œ ์˜ต์…˜์€?

 

<DDL>

  • PRIMARY KEY : ๊ธฐ๋ณธํ‚ค ์ •์˜ / FOREIGN KEY : ์™ธ๋ž˜ํ‚ค ์ •์˜
  • UNIQUE : ์ง€์ • ์†์„ฑ์€ ์ค‘๋ณต๊ฐ’ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ / NO ACTION : ๋ณ€ํ™”๊ฐ€ ์žˆ์–ด๋„ ์กฐ์ทจ๋ฅผ ์ทจํ•˜์ง€ ์•Š์Œ
  • CASCADE : ์ฐธ์กฐ ํ…Œ์ด๋ธ” ํŠœํ”Œ ์‚ญ์ œ ์‹œ ๊ด€๋ จ ํŠœํ”Œ ๋ชจ๋‘ ์‚ญ์ œ ๋ฐ ์†์„ฑ ๋ณ€๊ฒฝ ์‹œ ์†์„ฑ๊ฐ’ ๋ชจ๋‘ ๋ณ€๊ฒฝ
  • RESTRICTED : ํƒ€ ๊ฐœ์ฒด๊ฐ€ ์ œ๊ฑฐํ•  ์š”์†Œ๋ฅผ ์ฐธ์กฐ์ค‘์ด๋ฉด ์ œ๊ฑฐ๋ฅผ ์ทจ์†Œ
  • SET NULL : ์ฐธ์กฐ ํ…Œ์ด๋ธ” ๋ณ€ํ™” ์‹œ ๊ธฐ๋ณธ ํ…Œ์ดํ”Œ ๊ด€๋ จ ์†์„ฑ๊ฐ’ Null๋กœ ๋ณ€๊ฒฝ
  • SET DEFAULT : ์ฐธ์กฐ ํ…Œ์ด๋ธ” ๋ณ€ํ™” ์‹œ ๊ธฐ๋ณธํ…Œ์ด๋ธ”์˜ ๊ด€๋ จ ํŠœํ”Œ ์†์„ฑ๊ฐ’์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
  • CONSTRAINT : ์ œ์•ฝ ์กฐ๊ฑด ์ด๋ฆ„ ์ง€์ • / CHECK ์†์„ฑ๊ฐ’์— ๋Œ€ํ•œ ์ œ์•ฝ ์กฐ๊ฑด ์ •์˜

 

<DML>

  • INSERT INTO ~ VELUES : ํŠœํ”Œ ์‚ฝ์ž… / DELETE FROM~ WHERE : ํŠœํ”Œ ์‚ญ์ œ
  • UPDATE ~ SET ~ WHERE : ํŠœํ”Œ ๋‚ด์šฉ ๋ณ€๊ฒฝ / SELECT~ FROM~ WHERE : ํŠœํ”Œ ๊ฒ€์ƒ‰
  • DISTINCT : ์ค‘๋ณต ํŠœํ”Œ ๋ฐœ๊ฒฌ ์‹œ ๊ทธ ์ค‘ ์ฒซ๋ฒˆ์งธ ํ•˜๋‚˜๋งŒ ๊ฒ€์ƒ‰ / DISTINCTROW : ์ค‘๋ณต ํŠœํ”Œ ์ œ๊ฑฐ ๋ฐ ํ•˜๋‚˜๋งŒ ๊ฒ€์ƒ‰ (ํŠœํ”Œ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ฒ€์ƒ‰)
  • PREDICATE : ๊ฒ€์ƒ‰ํ•  ํŠœํ”Œ ์ˆ˜ ์ œํ•œ / AS ์†์„ฑ๋ช… ์ •์˜
  • ORDER BY : ํŠน์ • ์†์„ฑ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ํ›„ ๊ฒ€์ƒ‰ํ•  ๋•Œ
  • ASC : ์˜ค๋ฆ„์ฐจ์ˆœ / DESC : ๋‚ด๋ฆผ์ฐจ์ˆœ / ์ƒ๋žต ์‹œ ์˜ค๋ฆ„์ฐจ์ˆœ
  • GROUP BY : ํŠน์ • ์†์„ฑ ๊ธฐ์ค€ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•  ๋•Œ ์‚ฌ์šฉ having์ ˆ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์–ด์•ผํ•จ

๋ฐ์ดํ„ฐ ์ œ์–ด์–ธ์–ด(DCL)์˜ ๊ธฐ๋Šฅ์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

 

DCL (๋ฐ์ดํ„ฐ ์ œ์–ด ์–ธ์–ด)

๋ฐ์ดํ„ฐ ๋ณด์•ˆ / ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€ / ๋ณ‘ํ–‰์ˆ˜ํ–‰ ์ œ์–ด / ํšŒ๋ณต


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

 

๋กœํ‚น(Locking)

  • ๋กœํ‚น ๋‹จ์œ„ : ํ•œ๊บผ๋ฒˆ์— ๋กœํ‚น ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์˜ ํฌ๊ธฐ (DB, ํŒŒ์ผ, ๋ ˆ์ฝ”๋“œ)
  • ๋กœํ‚น ๋‹จ์œ„ ↓ : ๋กœํฌ ์ˆ˜, ๋ณ‘ํ–‰์„ฑ, ์˜ค๋ฒ„ํ—ค๋“œ, ๊ณต์œ ๋„ ↑/ ์ œ์–ด๊ธฐ๋ฒ• ๊ด€๋ฆฌ ๋ณต์žก

E-R ๋ชจ๋ธ์˜ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ณ์ง€ ์•Š์€ ๊ฒƒ์€?

 

๊ฐœ์ฒด ํƒ€์ž… (์‚ฌ๊ฐํ˜•)
๊ด€๊ณ„ ํƒ€์ž… (๋งˆ๋ฆ„๋ชจ)
์†์„ฑ ํƒ€์ž… (ํƒ€์›)
์—ฐ๊ฒฐ (์„ )


๋‹ค์Œ ์„ค๋ช…์˜ ( )์•ˆ์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ์œผ๋กœ ์ ํ•ฉํ•œ ๊ฒƒ์€?

"ํ›„๋ณดํ‚ค๋Š” ๋ฆด๋ ˆ์ด์…˜์— ์žˆ๋Š” ๋ชจ๋“  ํŠœํ”Œ์— ๋Œ€ํ•ด ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•œ๋‹ค."


์ •๊ทœํ™” ๊ณผ์ • ์ค‘ 1NF์—์„œ 2NF๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด์€?

 

1NF ์กฐ๊ฑด : ์›์ž๊ฐ’์œผ๋กœ ๊ตฌ์„ฑ
2NF ์กฐ๊ฑด : ๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ (์™„์ „ ํ•จ์ˆ˜์  ์ข…์† ๊ด€๊ณ„)
3NF ์กฐ๊ฑด : ์ดํ–‰ ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ
BCNF ์กฐ๊ฑด : ๊ฒฐ์ •์ž ํ•จ์ˆ˜ ์ข…์†
4NF ์กฐ๊ฑด : ๋‹ค์ค‘๊ฐ’(๋‹ค์น˜) ์ข…์†์„ฑ ์ œ๊ฑฐ
5NF ์กฐ๊ฑด : ์กฐ์ธ ์ข…์†์„ฑ ์ œ๊ฑฐ

# ์›๋ถ€์ด๊ฒฐ๋‹ค์กฐ

728x90
๋ฐ˜์‘ํ˜•