๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
WORK/SQL 101

[SQL 101] ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒจ๋จน์—ˆ๋Š”๊ฐ€: ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์•Œ์•„๋ณด๊ธฐ

by ๋ธŒ๋กœํŽ˜ 2023. 3. 7.

 

 

๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์–ธ์–ด์ธ SQL์„ ๋ณธ๊ฒฉ์ ์œผ๋กœ ๋ฐฐ์šฐ๊ธฐ ์ „์—, “๋ฐ์ดํ„ฐ”๋ผ๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋„๋ก ํ•˜์ž. ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€, ๊ทธ ๊ตฌ์กฐ๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด, ์ „๋ฌธ๊ฐ€ ์ˆ˜์ค€์ด ์•„๋‹Œ SQL์„ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ๊ธฐ์ดˆ์ ์ธ ์ˆ˜์ค€์œผ๋กœ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž.

 

 

  • ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ: ๊ด€๊ณ„ํ˜• vs. ๋น„๊ด€๊ณ„ํ˜•
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ง• 5๊ฐ€์ง€

 

 

์š”์•ฝ

  • ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
  • SQL์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์— ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์ด๋‹ค.
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋Š” ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ๊ตฌ์กฐ๋ฅผ ๋ค๋‹ค.
  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๊ณ ์œ ํ•ด์•ผ ํ•˜๋ฉฐ, ์ค‘๋ณต์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ ํ‚ค, ์™ธ๋ž˜ ํ‚ค, ์ •๊ทœํ™” ๋“ฑ์˜ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ: ๊ด€๊ณ„ํ˜• vs. ๋น„๊ด€๊ณ„ํ˜•

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

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฑฐ๋Œ€ํ•œ ๋ฌผ๋ฅ˜์ฐฝ๊ณ ๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ ์•ˆ์— ์ €์žฅ๋œ ๊ฐœ๋ณ„ ์žฌ๊ณ ๋กœ ์ƒ๊ฐํ•ด ๋ณด๋ฉด ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ์ˆ˜์‹ญ ์ˆ˜๋ฐฑ๋งŒ ๊ฐœ์˜ ์žฌ๊ณ ๊ฐ€ ์ ์žฌ๋˜์–ด ์žˆ๋Š” ๋ฌผ๋ฅ˜์ฐฝ๊ณ ์—์„œ ํŠน์ • ์ œํ’ˆ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š”, ๋จผ์ € ๋ฌผ๋ฅ˜์ฐฝ๊ณ ๊ฐ€ ์–ด๋– ํ•œ ๊ตฌ์กฐ๋กœ ์ œํ’ˆ์„ ์ˆ˜๋‚ฉํ•˜๋Š”์ง€ ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.

๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ, ์ด๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์œ ํ˜• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด ๊ตฌ์กฐ์—์„œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ํ˜•ํƒœ๋กœ ์ €์žฅ๋˜๋ฉฐ, ๊ฐ ํ…Œ์ด๋ธ”์€ ์—ด(column)๊ณผ ํ–‰(row)์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ๊ฐ ์—ด์€ ๋ฐ์ดํ„ฐ์˜ ํŠน์ • ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ ํ–‰์€ ๋ฐ์ดํ„ฐ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. 

๋‘ ๋ฒˆ์งธ ์œ ํ˜•์€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ์ด ๊ตฌ์กฐ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ์ปฌ๋ ‰์…˜(collection)์ด๋‚˜ ๋ฌธ์„œ(document)๋กœ ์ €์žฅํ•œ๋‹ค. ์ด ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ, ์ฆ‰ ํ…์ŠคํŠธ๋‚˜ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋†’๋‹ค.

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

SQL์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ ์ž‘๋™ํ•œ๋‹ค. ํ–‰๊ณผ ์—ด์ด ์ •์˜๋œ ๊ตฌ์กฐ์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์—์„œ๋Š” SQL๋ณด๋‹ค ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ๋˜๋Š” NoSQL์ด๋ผ๋Š” ์–ธ์–ด๋„ ์žˆ์ง€๋งŒ, ์šฐ์„  ์šฐ๋ฆฌ๊ฐ€ ์ฃผ๋กœ ์‚ฌ์šฉํ•  SQL๊ณผ๋Š” ๋ณ„๊ฐœ์˜ ์–ธ์–ด๋กœ ๋ณด์•„๋„ ์ข‹๋‹ค. ๋”ฐ๋ผ์„œ SQL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์ž ์‹œ ์žŠ์–ด๋„ ์ข‹๋‹ค.

 

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ง• 5๊ฐ€์ง€

์•„๋ž˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ๋˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์˜ ํŠน์ง•์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ์ •๋ฆฌํ•ด ๋‘” ๋‚ด์šฉ์ด๋‹ค. ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฒœ์ฒœํžˆ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋‚˜์”ฉ ํ™•์ธํ•ด ๋ณด๋„๋ก ํ•˜์ž.

 

  • ๋ฐ์ดํ„ฐ๋Š” ํ…Œ์ด๋ธ”์ด๋ผ๋Š” ๊ตฌ์กฐ์— ํ–‰(row)๊ณผ ์—ด(column)์˜ ํ˜•ํƒœ๋กœ ์ €์žฅ๋จ
  • ๊ฐ ์—ด์€ ํŠน์ • ์†์„ฑ(attribute)์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ๊ฐ ํ–‰์€ ๋ฐ์ดํ„ฐ์˜ ์ธ์Šคํ„ด์Šค(instance)๋ฅผ ๋‚˜ํƒ€๋ƒ„
  • ํ…Œ์ด๋ธ” ๋‚ด ๋ฐ์ดํ„ฐ๋Š” ๊ณ ์œ ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ณ ์œ ์„ฑ์€ ๊ธฐ๋ณธ ํ‚ค(primary key)์— ์˜ํ•ด ์ •์˜๋จ
  • ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ์™ธ๋ž˜ ํ‚ค(foreign key)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋จ
  • ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ์ •๊ทœํ™”(normalization)๊ฐ€ ์‚ฌ์šฉ๋จ

 

1. ํ…Œ์ด๋ธ”, ๊ทธ๋ฆฌ๊ณ  ํ–‰(row)๊ณผ ์—ด(column)

๋” ๋งํ•  ๊ฒƒ๋„ ์—†์ด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ์˜ ์ƒ˜ํ”Œ์„ ํ™•์ธํ•˜๋ฉด ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋กœ ์—‘์…€์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์—‘์…€์—์„œ ์ž‘๋™์‹œํ‚ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. A B C D ๋“ฑ ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋Œ€ํ‘œ๋˜๋Š” ์—ด(column)์ด ์žˆ๊ณ , 1 2 3 4 ์ฆ‰ ์ˆซ์ž๋กœ ๋ณด์ด๋Š” ํ–‰(row)์ด ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ–‰๊ณผ ์—ด์˜ ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

2. ์—ด์€ ์†์„ฑ(attribute), ํ–‰์€ ์ธ์Šคํ„ด์Šค(instance)

ํŠน์ • ์†์„ฑ, ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์•„๋ฆฌ์†กํ•  ๊ฒƒ์ด๋‹ค. ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธํ•ด ๋ณด์ž. ์—ด์—๋Š” Name, Type, HP ๋“ฑ ํŠน์ • ํฌ์ผ“๋ชฌ์˜ ํŠน์ง•์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์ด ๋‚˜์—ด๋˜์–ด ์žˆ๊ณ , ํ–‰์—๋Š” Bulbasaur, Charmander, Squirtle(์ˆœ์„œ๋Œ€๋กœ ์ด์ƒํ•ด์”จ, ํŒŒ์ด๋ฆฌ, ๊ผฌ๋ถ€๊ธฐ) ๋“ฑ ๊ฐœ๋ณ„ ํฌ์ผ“๋ชฌ์„ ๋‚˜์—ดํ•˜๊ณ  ์žˆ๋‹ค. ์†์„ฑ์€ ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•, ์ธ์Šคํ„ด์Šค๋Š” ์ˆ˜๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์œ ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ํŠน์ • ํ–‰์ด๋ผ๊ณ  ๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด์ƒํ•ด์”จ(Bulbasaur)์˜ ๊ณต๊ฒฉ๋ ฅ(Attack)์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„  ์–ด๋””๋ฅผ ํ™•์ธํ•ด์•ผ ํ• ๊นŒ? ์ด์ƒํ•ด์”จ์˜ ์ •๋ณด๋Š” 2ํ–‰์— ๋‚˜์—ด๋˜์–ด ์žˆ๊ณ , ์ด ์ค‘ ๊ณต๊ฒฉ๋ ฅ์€ F์—ด์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ F2๋ฅผ ํ™•์ธํ•˜๋ฉด ์ด์ƒํ•ด์”จ์˜ ๊ณต๊ฒฉ๋ ฅ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์…ˆ์ด๋‹ค. ์ด๋ ‡๋“ฏ ํ–‰๊ณผ ์—ด์„ ์กฐํ•ฉํ•˜์—ฌ ๊ทธ ๊ด€๊ณ„ ์†์—์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค.

 

3-4. ๋ฐ์ดํ„ฐ์˜ ๊ณ ์œ ์„ฑ๊ณผ ๊ธฐ๋ณธ ํ‚ค(primary key) / ์™ธ๋ž˜ ํ‚ค (foreign key)

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

ํ…Œ์ด๋ธ”์—์„œ ๊ฐ๊ฐ์˜ ํ–‰์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์—ด์„ ๊ธฐ๋ณธ ํ‚ค(primary key)๋ผ๊ณ  ํ•œ๋‹ค. ์ด ๊ธฐ๋ณธ ํ‚ค๋Š” ๊ฐ๊ฐ์˜ ํ–‰์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค๋Š” ์ฃผ๋กœ ํ…Œ์ด๋ธ” ๋‚ด๋ถ€์—์„œ๋งŒ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฐ๊ฐ์˜ ํ–‰์— ๋Œ€ํ•œ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค๋Š” ๋ณดํ†ต ์ˆซ์ž๋‚˜ ๋ฌธ์ž์—ด๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ฐ๊ฐ์˜ ํ–‰์—์„œ ์œ ์ผํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์˜ ๊ฒฝ์šฐ ํ–‰๊ณผ ์—ด์˜ ๊ด€๊ณ„๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ…Œ์ด๋ธ”๊ณผ ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„ ์—ญ์‹œ ์ค‘์š”ํ•˜๋‹ค. ์ด ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ์™ธ๋ž˜ ํ‚ค(foreign key)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ •์˜๋˜๋Š”๋ฐ, ์ด๋Š” ๊ธฐ๋ณธ ํ‚ค์™€ ๋น„์Šทํ•˜๊ฒŒ ํ…Œ์ด๋ธ”๊ณผ ํ…Œ์ด๋ธ”์„ ๊ณ ์œ ํ•˜๊ฒŒ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ๋Š” ์žฅ์น˜๋กœ ์ดํ•ดํ•˜๋ฉด ์‰ฝ๋‹ค. ๊ธฐ๋ณธ ํ‚ค์™€ ์™ธ๋ž˜ ํ‚ค์— ๋Œ€ํ•œ ์„ค๋ช…์€ ๊ฝค ์ค‘์š”ํ•˜๋ฏ€๋กœ, ๋ณ„๋„์˜ ํฌ์ŠคํŒ…์œผ๋กœ ์ž์„ธํžˆ ์„ค๋ช…๋“œ๋ฆฌ๋ ค ํ•œ๋‹ค.

 

5. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ”ผํ•˜๋Š” ๋ฐฉ๋ฒ•: ์ •๊ทœํ™”(normalization)

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

 

๋ฐ˜๋“œ์‹œ ์ดํ•ดํ•ด์•ผ ํ•˜๋Š” ํ•ต์‹ฌ ๋‚ด์šฉ

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ SQL
  • ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ: ํ–‰๊ณผ ์—ด, ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์˜๋ฏธ
  • "์ ˆ๋Œ€" ์ค‘๋ณต๋˜๋ฉด ์•ˆ ๋˜๋Š” ๋ฐ์ดํ„ฐ, ๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค 

 

 

 

์žฌ๋ฏธ์žˆ๊ฒŒ ๋ณด์…จ๋‹ค๋ฉด ๊ณต๊ฐ ๋ฒ„ํŠผ / ๋Œ“๊ธ€ ๋‚จ๊ฒจ์ฃผ์„ธ์š”!
์ปจํ…์ธ  ์ž‘์„ฑ์— ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค :)