Skip to content

Latest commit

ย 

History

History
279 lines (175 loc) ยท 12 KB

database.md

File metadata and controls

279 lines (175 loc) ยท 12 KB

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



๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”.

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • ๋ฐ์ดํ„ฐ๊ฐ€ ํ…Œ์ด๋ธ”์— ์ €์žฅ.
  • ๊ตฌ์„ฑ์š”์†Œ: ํ–‰(ํŠœํ”Œ), ์—ด(์†์„ฑ)
    • ํ–‰์€ ์ˆœ์„œ๊ฐ€ ์—†์ง€๋งŒ, ์—ด์€ ์ˆœ์„œ๊ฐ€ ์žˆ๋‹ค.
  • ์Šคํ‚ค๋งˆ: ์ด๋ฆ„๊ณผ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ •์˜
  • ํ‚ค: ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํŠน์ง•, ์—ด ํ˜น์€ ๋ณต์ˆ˜์˜ ์—ด ๋ชจ์Œ
    • ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์—๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ํ‚ค ๊ฐ’์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์™ธ๋ถ€ํ‚ค
    • ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ๋งํฌํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๊ทธ ๊ฐ’์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ํ‚ค ์—ด์˜ ๊ฐ’๊ณผ ๊ฐ™์€ ์—ด
    • ์ฐธ์กฐ๋ฌด๊ฒฐ์„ฑ: ๋ชจ๋“  ์™ธ๋ถ€ ํ‚ค ๊ฐ’์ด ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ๊ฐ’์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ



Key๋ž€? Key์˜ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”.

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • ๋ฆด๋ ˆ์ด์…˜์— ํฌํ•จ๋œ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ‚ค๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์˜ ์ข…๋ฅ˜๋กœ๋Š” (1)์Šˆํผํ‚ค (2)ํ›„๋ณดํ‚ค (3)๊ธฐ๋ณธํ‚ค (4)๋Œ€์ฒดํ‚ค (5)์™ธ๋ž˜ํ‚ค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

<< ํ‚ค์˜ ์ข…๋ฅ˜ >>

๊ณ ๊ฐ ์•„์ด๋”” ๊ณ ๊ฐ๋ช… ๋‚˜์ด ์ง์—… ์ „ํ™”๋ฒˆํ˜ธ
11st ์‹ญ์ผ๋ฆฌ์–ธ 22 ์ง์žฅ์ธ 010-2222-1111
coupang ๊น€ํŒก๋งจ 27 ํ•™๋ถ€์ƒ 010-2222-3333
ebay ๊น€๋ฒ ์ด 15 ํ•™๋ถ€์ƒ 010-3333-44444
tmon ํ‹ฐ๋ชจ๋‹ˆ์–ธ 18 ๋Œ€ํ•™์›์ƒ 010-5555-66666

#1. ์Šˆํผํ‚ค(Super Key)

  • ์œ ์ผ์„ฑ์˜ ํŠน์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค.
  • ์ง์—…์€ ๊ฐ’์ด ๊ฐ™์€ ๊ณ ๊ฐ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ˆ˜ํผํ‚ค๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ณ ๊ฐ๋ช… ๋˜ํ•œ ๋™๋ช…์ด์ธ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์Šˆํผํ‚ค๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ค‘๋ณต ์•„์ด๋”” ์ƒ์„ฑ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ํ™ˆํŽ˜์ด์ง€๋ผ๋ฉด ๊ณ ๊ฐ ์•„์ด๋”” ์†์„ฑ์€ ์ˆ˜ํผํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • (๊ณ ๊ฐ ์•„์ด๋””, ๊ณ ๊ฐ๋ช…) ์†์„ฑ ์ง‘ํ•ฉ์€ ์ˆ˜ํผํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • (๊ณ ๊ฐ ์•„์ด๋””, ๊ณ ๊ฐ๋ช…)๊ณผ ๊ฐ™์ด ํ•˜๋‚˜์˜ ํŠœํ”Œ์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ถˆํ•„์š”ํ•œ ์†์„ฑ์˜ ๊ฐ’๊นŒ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋น„ํšจ์œจ์ ์ธ ์ž‘์—…์ด๋ฏ€๋กœ ๊ผญ ํ•„์š”ํ•œ ์†์„ฑ์˜ ์ง‘ํ•ฉ๋งŒ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ›„๋ณดํ‚ค ๊ฐœ๋…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

#1. ํ›„๋ณดํ‚ค(Candidate Key)

  • ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ๋‹ค. ์ตœ์†Œ์„ฑ์€ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์—ฌ๋Ÿฌ ์†์„ฑ ์ค‘์— ํ•˜๋‚˜๋ผ๋„ ์—†์œผ๋ฉด ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋“ค๋กœ๋งŒ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํŠน์„ฑ์ž…๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ ์•„์ด๋””๋Š” ํ›„๋ณดํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • (๊ณ ๊ฐ ์•„์ด๋””, ๊ณ ๊ฐ์ด๋ฆ„)์€ ํ›„๋ณดํ‚ค๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๊ณ ๊ฐ ์•„์ด๋””๋งŒ์œผ๋กœ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

#2. ๊ธฐ๋ณธํ‚ค(Primary Key)

  • ๋ฆด๋ ˆ์ด์…˜์—์„œ ํŠœํ”Œ์„ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ›„๋ณดํ‚ค๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์ž๋Š” ์—ฌ๋Ÿฌ ํ›„๋ณดํ‚ค ์ค‘์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํ‚ค๋ฅผ ์„ ํƒํ•˜๋Š”๋ฐ ์ด๊ฒƒ์ด ๊ธฐ๋ณธํ‚ค์ž…๋‹ˆ๋‹ค.
  • ํ›„๋ณดํ‚ค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•ด์„œ ์ ํ•ฉํ•œ ๊ฒƒ์„ ํ›„๋ณดํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธํ‚ค๋ฅผ ์ •ํ•  ๋•Œ ๋‹ค์Œ ๋‘ ๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
    • ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋„ ๊ฐ’์ธ ํŠœํ”Œ์€ ๋‹ค๋ฅธ ํŠœํ”Œ๊ณผ ๊ตฌ๋ณ„ํ•˜์—ฌ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์šฐ๋ฏ€๋กœ ๋„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์€ ๊ธฐ๋ณธํ‚ค๋กœ ๋ถ€์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ’์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ›„๋ณดํ‚ค๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒํ•˜๋ฉด ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ๊ธฐ๋ณธํ‚ค๋กœ ์ ํ•ฉํ•œ์ง€ ๊ฒ€์‚ฌํ•ด์•ผํ•˜๋ฏ€๋กœ ๊ฐ’์ด ์ž์ฃผ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด ํฌํ•จ๋œ ํ›„๋ณดํ‚ค๋Š” ๊ธฐ๋ณธํ‚ค๋กœ ๋ถ€์ ์ ˆํ•ฉ๋‹ˆ๋‹ค.
    • ๋‹จ์ˆœํ•œ ํ›„๋ณดํ‚ค๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒํ•˜์„ธ์š”

#3. ๋Œ€์ฒดํ‚ค(Alternative Key)

  • ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ๋˜์ง€ ๋ชปํ•œ ํ›„๋ณดํ‚ค๋“ค์ž…๋‹ˆ๋‹ค.
  • ๋Œ€์ฒดํ‚ค๋Š” ๊ธฐ๋ณธํ‚ค๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋˜์ง€ ๋ชปํ•˜๊ณ  ํƒˆ๋ฝํ•˜์˜€์Šต๋‹ˆ๋‹ค.

#4. ์™ธ๋ž˜ํ‚ค(Foreign Key)

  • ์–ด๋–ค ๋ฆด๋ ˆ์ด์…˜์— ์†Œ์†๋œ ์†์„ฑ ๋˜๋Š” ์†์„ฑ ์ง‘ํ•ฉ์ด ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋˜๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์ด ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ทธ๋Œ€๋กœ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ์˜ ์ง‘ํ•ฉ์ด ์™ธ๋ž˜ํ‚ค์ž…๋‹ˆ๋‹ค.



ACID๋ž€?

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)

ACID(์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ๊ณ ๋ฆฝ์„ฑ, ์ง€์†์„ฑ)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜์ด ์•ˆ์ „ํ•˜๊ฒŒ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์„ฑ์งˆ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์•ฝ์–ด์ด๋‹ค.(Wiki ACID)

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

์›์ž์„ฑ(Atomicity)

ํŠธ๋žœ์ ์…˜์€ ๋ถ„ํ•ด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ์˜ ๋‹จ์œ„์ธ ํ•˜๋‚˜์˜ ์›์ž์ฒ˜๋Ÿผ ๋™์ž‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ. ํŠธ๋žœ์ ์…˜ ๋‚ด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ๋“ค์€ ๋ฐ˜๋“œ์‹œ ํ•œ๊บผ๋ฒˆ์— ์™„์ „ํ•˜๊ฒŒ ์ „์ฒด๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰์ด ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜ ์•„๋‹ˆ๋ฉด ์–ด๋– ํ•œ ์—ฐ์‚ฐ๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ all or noting.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ํ‹ฐ์Šคํ† ๋ฆฌ ๊ฒŒ์‹œํŒ์— ๊ธ€์„ Postํ•œ๋‹ค. ํŠธ๋žœ์žญ์…˜์˜ Atomicity๊ฐ€ ๋ณด์žฅ ๋œ๋‹ค๋Š” ๊ฒƒ์€ ํ‹ฐ์Šคํ† ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋˜๊ฑฐ๋‚˜, ์‹คํŒจํ•˜๊ฑฐ๋‚˜ 2๊ฐ€์ง€ ๊ฒฝ์šฐ๋ฐ–์— ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ธ€ ๋‚ด์šฉ์˜ ์ ˆ๋ฐ˜๋งŒ ์ €์žฅ๋˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ์ €์žฅ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์—†๊ฒŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ผ๊ด€์„ฑ(Consistency) ํŠธ๋žœ์žญ์…˜ ์ž‘์—…์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๊ฐ€ ์ผ๊ด€๋œ ์ƒํƒœ์˜€๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜ ์ž‘์—…์ด ์ข…๋ฃŒ๋œ ํ›„์—๋„ ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•„ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ‹ฐ์Šคํ† ๋ฆฌ ๊ฒŒ์‹œํŒ์— ๊ธ€์„ ์“ฐ๋Š”๋ฐ ์ œ๋ชฉ์˜ ๊ธ€์ž ์ œํ•œ์ด 255์ž๋ผ๊ณ  ํ•˜์ž. ํŠธ๋žœ์žญ์…˜์ด ์ผ์–ด๋‚˜๋ฉด ์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋งŒ์•ฝ ์ด๋ฅผ ์œ„๋ฐ˜ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์ด ์žˆ๋‹ค๋ฉด ๊ฑฐ๋ถ€ํ•ด์•ผํ•œ๋‹ค.

๊ณ ๋ฆฝ์„ฑ(Isolation) ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ˆ˜ํ–‰ ์ค‘์—๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ–ฅ์„ ์ฃผ์–ด์„œ๋„ ์•ˆ๋˜๊ณ , ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜๋“ค์— ์˜ํ•ด ๊ฐ„์„ญ์„ ๋ฐ›์•„์„œ๋„ ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ. ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋˜๋ฉด ์˜ํ–ฅ์„ ์ฃผ๋Š” ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ์ž์‹ ์˜ ๋™์ž‘์ด ๋‹ฌ๋ผ ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ํŠธ๋žœ์ ์…˜ ์ž์‹ ์€ ๊ณ ๋ฆฝ๋œ ์ƒํƒœ์—์„œ ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธ. ์ฆ‰ ๋‹ค์ˆ˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ˆ˜ํ–‰์ค‘์ธ ์ƒํ™ฉ์—์„œ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€๋Š” ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํŠธ๋žœ์žญ์…˜์˜ ์ค‘๊ฐ„ ์ˆ˜ํ–‰๊ฒฐ๊ณผ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณด๊ฑฐ๋‚˜ ์ฐธ์กฐ ํ•  ์ˆ˜ ์—†๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ชจ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ์ž์œ ๊ฒŒ์‹œํŒ์— ๋‘ ์‚ฌ๋žŒ์ด ๊ธ€์„ ๊ฑฐ์˜ ๋™์‹œ์— ์˜ฌ๋ฆฐ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ๋‘ ํŠธ๋žœ์ ์…˜์— ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜์„œ User A์˜ ์ œ๋ชฉ์ด ์ €์žฅ๋˜๊ณ  ๋‚ด์šฉ์€ User B๊ฐ€ ์ €์žฅ๋˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ User A์˜ ํŠธ๋žœ์žญ์…˜์ด ์ข…๋ฃŒ ๋˜๊ธฐ ์ „๊นŒ์ง€ User B์˜ ํŠธ๋žœ์ ์…˜์€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

์ง€์†์„ฑ(Durablility) ์ผ๋ จ์˜ ๋ฐ์ดํ„ฐ ์กฐ์ž‘(ํŠธ๋ Œ์ ์…˜ ์กฐ์ž‘)์„ ์™„๋ฃŒ ํ•˜๊ณ  ์™„๋ฃŒ ํ†ต์ง€๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ›๋Š” ์‹œ์ ์—์„œ ๊ทธ ์กฐ์ž‘์ด ์˜๊ตฌ์ ์ด ๋˜์–ด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์žƒ์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์‹œ์Šคํ…œ์ด ์ •์ƒ์ผ ๋•Œ ๋ฟ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ OS์˜ ์ด์ƒ ์ข…๋ฃŒ, ์ฆ‰ ์‹œ์Šคํ…œ ์žฅ์• ๋„ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. MySQL์„ ํฌํ•จํ•ด ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌํ˜„์—์„œ๋Š” ํŠธ๋žœ์ ์…˜ ์กฐ์ž‘์„ ํ•˜๋“œ ๋””์Šคํฌ์— ๋กœ๊ทธ๋กœ ๊ธฐ๋กํ•˜๊ณ  ์‹œ์Šคํ…œ์— ์ด์ƒ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ทธ ๋กœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•ด ์ด์ƒ ๋ฐœ์ƒ ์ „๊นŒ์ง€ ๋ณต์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ง€์†์„ฑ์„ ์‹คํ˜„ํ•˜๊ณ  ์žˆ๋‹ค.




Key์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”. ํ›„๋ณดํ‚ค, ๊ธฐ๋ณธํ‚ค(Primary Key), ๋Œ€์ฒดํ‚ค(Alternate Key), ์™ธ๋ž˜ํ‚ค(Foreign Key), ์Šˆํผํ‚ค(Super Key) ๋ž€?

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)
  • ์œ ์ผ์„ฑ: ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ์ž…๋ ฅ๋˜๋Š” ๋ชจ๋“  ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ
  • ์ตœ์†Œ์„ฑ: ๊ฐ€์žฅ ์ ์€ ๊ฐœ์ˆ˜์˜ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ๋กœ ๊ตฌ์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ์„ฑ์งˆ ์ด๋Ÿฌํ•œ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ(Attribute)์˜ ์ง‘ํ•ฉ์„ ํ›„๋ณดํ‚ค๋ผ ํ•œ๋‹ค. PK๋Š” ํ›„๋ณดํ‚ค ์ค‘ ์„ค๊ณ„์ž์— ์˜ํ•ด ์„ ํƒ๋œ ํ•œ๊ฐœ์˜ ํ‚ค๋ฅผ ์˜๋ฏธ, ์ค‘๋ณต๋˜์ง€ ์•Š์œผ๋ฉฐ NULL๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.

[์ข…๋ฅ˜]

  • ํ›„๋ณดํ‚ค ์ค‘ PK๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ›„๋ณดํ‚ค๋Š” ๋Œ€์ฒดํ‚ค(Alternate Key)์ด๋‹ค.
  • ์™ธ๋ž˜ํ‚ค(Foreign Key)๋Š” ๊ฐ ํ…Œ์ด๋ธ”๋ผ๋ฆฌ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ค„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • ์Šˆํผํ‚ค(Super Key)๋Š” ์ตœ์†Œ์„ฑ ์—†์ด ๋‹จ์ง€ ํŠœํ”Œ์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๋‘๊ฐœ ์ด์ƒ์˜ ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํ‚ค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.



NoSQL์ด๋ž€?

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)

NO-SQL์ด๋ž€ Not Only SQL์˜ ์•ฝ์ž๋กœ์จ ๊ธฐ์กด SQL์— ๋น„ํ•ด์„œ ํŠน์ • ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด์„œ ๋” ๋‚˜์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต jsonํ˜•ํƒœ์˜ ๋„ํ๋จผํŠธ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ์ข‹๊ธฐ ๋–„๋ฌธ์— ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”๋ฐ ์ข‹์Šต๋‹ˆ๋‹ค. DB๋กœ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ Mongo DB๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.




DDL, DML, DCL์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.




ํŠธ๋žœ์žญ์…˜์ด๋ž€?

์˜ˆ๋น„ ๋‹ต์•ˆ ๋ณด๊ธฐ (๐Ÿ‘ˆ Click)

ํŠธ๋žœ์žญ์…˜์˜ ์ •์˜๋Š”

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๋Š” ์ผ์˜ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.

์ถ”๊ฐ€์ ์œผ๋กœ

  • ์œ„์˜ ์ •์˜์™€ ๊ฐ™์ด, selectํ•˜๊ณ  updateํ•˜๋Š” ๋ชจ๋“  ์ฟผ๋ฆฌ๋ฌธ์€ ๊ฐ๊ฐ์ด ํŠธ๋žœ์žญ์…˜์ž…๋‹ˆ๋‹ค.

  • (์ด๋ฏธ ์„ค๋ช…๋˜์—ˆ์ง€๋งŒ) ํŠธ๋žœ์žญ์…˜์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ACID์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ํŠธ๋žœ์žญ์…˜์€ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

    1. commit : DB์— ๊ฐ’์ด ๋ฐ˜์˜๋œ๋‹ค.
    2. rollback : DB์— ๊ฐ’์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค.

์‚ฌ์šฉ๋ฒ•์€

START TRANSACTION;

-- ๊ฐ์ข… ์ฟผ๋ฆฌ๋ฌธ --

COMMIT;

cf) START TRANSACTION ์€ BEGIN ๋ช…๋ น์–ด๋กœ ๋Œ€์ฒด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

cf) COMMIT ์ž๋ฆฌ์— ROLLBACK ๋ช…๋ น์–ด๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด, '๊ฐ์ข… ์ฟผ๋ฆฌ๋ฌธ' ์€ DB์— ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

cf) ์ฃผ์˜ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ/์‚ญ์ œ, ํ…Œ์ด๋ธ” ์ƒ์„ฑ/์‚ญ์ œ/์ˆ˜์ • ๊ณผ ๊ฐ™์€ DDL๋ฌธ์€ rollback๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : https://dev.mysql.com/doc/refman/8.0/en/cannot-roll-back.html

cf) MySQL์€ ์ฟผ๋ฆฌ๋ฌธ์„ ์‹คํ–‰ํ•˜๋ฉด ์ž๋™ ์ปค๋ฐ‹์ด๋˜๋Š” Auto Commit ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

(๋”ฐ๋ผ์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ฟผ๋ฆฌ๋ฌธ์ด ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์‹คํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ํŠธ๋žœ์žญ์…˜์„ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)

-- ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•
set autocommit = 0; -- Auto Commit ๋น„ํ™œ์„ฑํ™”
set autocommit = 1; -- Auto Commit ํ™œ์„ฑํ™”

๋์œผ๋กœ

ํŠธ๋žœ์žญ์…˜ ์ค‘์ผ ๋•Œ๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐœ์ž…๋  ์ˆ˜ ์žˆ์„๊นŒ์š”?

๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐœ์ž…๋  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š”๊ฑด write ๋•Œ๋ฌธ์ด๋‹ˆ read๋Š” ์ƒ๊ด€์ด ์—†๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋ฐ”๋กœ ๋“ญ๋‹ˆ๋‹ค.


์ด๋ ‡๊ฒŒ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐœ์ž…ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์„

Isolation level of transaction ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ž์„ธํ•œ ์„ค๋ช…์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋กœ ๋งŒ๋‚˜์š”~~!




ORM์ด๋ž€?

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.




์ œ 1, 2, 3 ์ •๊ทœํ™”์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•˜์„ธ์š”

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.




Index ์ถ”๊ฐ€์˜ ์žฅ,๋‹จ์ ์€?

๋‹ต์•ˆ ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.





์šฉ๊ฐํ•œ ์นœ๊ตฌ๋“ค with ๋‚จ์†ก๋ฆฌ ์‚ผ๋ฒˆ์ง€