๊ด€๋ฆฌ ๋ฉ”๋‰ด

Welcome! Everything is fine.

[STUDY] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ : ์ •๊ทœํ™” · ์ธ๋ฑ์Šค · ํŠธ๋žœ์žญ์…˜ ๋ณธ๋ฌธ

์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[STUDY] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋ฆฌ : ์ •๊ทœํ™” · ์ธ๋ฑ์Šค · ํŠธ๋žœ์žญ์…˜

๊ฐœ๋ฐœ๊ณฐ๋ฐœ 2025. 6. 26.
728x90

๐Ÿ—ƒ๏ธ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(database) : ์‚ฌ์šฉ์ž๋‚˜ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ
    • ๊ฐœ์ฒด(entity) : ๋ฐ์ดํ„ฐ๋กœ ํ‘œํ˜„ํ•˜๋ ค๋Š” ๋Œ€์ƒ
    • ์†์„ฑ(attribute) : ๊ฐœ์ฒด์˜ ํŠน์„ฑ๊ณผ ์ƒํƒœ
    • ๊ด€๊ณ„(relationship) : ๊ฐœ์ฒด ๊ฐ„์— ์–ด๋–ค ๊ด€๋ จ์ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋ƒ„

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

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB, Relational Database) :  ๋ฐ์ดํ„ฐ๊ฐ€ 2์ฐจ์› ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ๋ฐ์ดํ„ฐ ๊ฐ„ ์ข…์†์„ฑ ๋“ฑ์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • ๋ฆด๋ ˆ์ด์…˜ : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์  ๋ชจ๋ธ
    • ํ…Œ์ด๋ธ” : ๋ฆด๋ ˆ์ด์…˜์„ ์‹ค์ œ๋กœ ๊ตฌํ˜„ํ•œ ๊ฐœ์ฒด๋กœ, ํ‚ค-๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 2์ฐจ์› ํ˜•ํƒœ
    • ํ–‰(=ํŠœํ”Œ, ๋ ˆ์ฝ”๋“œ) : ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ๊ฐ€๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ์…‹
    • ์—ด(=์†์„ฑ, ํ•„๋“œ) : ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ์„ธ๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ์…‹

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

  • NoSQL(Not Only SQL) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ๋ณด๋‹ค ์œ ์—ฐํ•œ ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    • ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์กฐํšŒ์‹œ ์†๋„ ๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค.
    • ์ˆ˜ํ‰์  ํ™•์žฅ์„ฑ์ด ์ข‹์•„ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค vs NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๊ตฌ๋ถ„ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ ์ €์žฅ 2์ฐจ์› ํ…Œ์ด๋ธ”๋กœ ์ €์žฅ ๋ถ„์‚ฐํ˜• ๊ตฌ์กฐ๋กœ, ๋„ํ๋จผํŠธ, ํ‚ค-๊ฐ’, ๊ทธ๋ž˜ํ”„ ๋“ฑ
๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์ €์žฅ
๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ค‘๋ณต ์—†์Œ ์ค‘๋ณต ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์„œ ๋ฐ์ดํ„ฐ ๊ฐฑ์‹  ์‹œ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•จ
์Šคํ‚ค๋งˆ ์Šคํ‚ค๋งˆ๊ฐ€ ์žˆ์–ด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ ์Šคํ‚ค๋งˆ๊ฐ€ ์—†๊ณ  ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
๋ฐ์ดํ„ฐ ํ™•์žฅ ์ˆ˜์ง์  ํ™•์žฅ ์ง€์› ์ˆ˜ํ‰์  ํ™•์žฅ ์ง€์›
DBMS Oracle, MySQL MongoDB, Redis

๐Ÿ”– ์ธ๋ฑ์Šค

  • ์ธ๋ฑ์Šค : ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ ๊ณต๊ฐ„์„ ํ™œ์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŠœํ”Œ์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ. ์ฃผ๋กœ ์กฐํšŒ ์กฐ๊ฑด์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ(WHERE์ ˆ), JOIN์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ, ์ •๋ ฌ์ด๋‚˜ GROUP BY์— ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿผ์— ์ธ๋ฑ์Šค๋ฅผ ๊ฑด๋‹ค.

์ธ๋ฑ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ํ‚ค-๊ฐ’ ํ˜•ํƒœ๋กœ '์†์„ฑ ๊ฐ’ - ํŠœํ”Œ ์ฃผ์†Œ'๋ฅผ ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์— ์ €์žฅํ•œ๋‹ค. ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ์ฒ˜๋Ÿผ ์†์„ฑ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.

 

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

 

์ธ๋ฑ์Šค์˜ ์žฅ๋‹จ์ ์„ ์ •๋ฆฌํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

์žฅ์ 

  • ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋˜์–ด ์žˆ์–ด์„œ ๊ฒ€์ƒ‰ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.

๋‹จ์ 

  • ์ธ๋ฑ์Šค ํ…Œ์ด๋ธ”์„ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค.
  • ์ •๋ ฌ๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.

์ธ๋ฑ์Šค ๊ตฌํ˜„ ๋ฐฉ๋ฒ•

ํ•ด์‹œ ํ…Œ์ด๋ธ” ์ธ๋ฑ์Šค

  • ํ•ด์‹œ ํ…Œ์ด๋ธ”(hash table) : ์†์„ฑ ๊ฐ’์œผ๋กœ ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•ด ์ธ๋ฑ์‹ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์žฅ์ 
    • O(1) ์ˆ˜์ค€์˜ ๋น ๋ฅธ ํƒ์ƒ‰
    • ์บ์‹œ ํšจ์œจ์ด ์ข‹์•„ ๋ฉ”๋ชจ๋ฆฌ ์—”์ง„ ๋“ฑ์— ์ ํ•ฉ
  • ๋‹จ์ 
    • ๋ฒ”์œ„ ๊ฒ€์ƒ‰, ์ •๋ ฌ์ด ํ•„์š”ํ•œ ์—ฐ์‚ฐ ๋ถˆ๊ฐ€๋Šฅ
    • ํ•ด์‹œ ์ถฉ๋Œ ๋ฐœ์ƒ ์‹œ ์„ฑ๋Šฅ ์ €ํ•˜ ๊ฐ€๋Šฅ์„ฑ

B+ ํŠธ๋ฆฌ

  • B+ ํŠธ๋ฆฌ(Balanced Tree) : ๋‹จ๋ง ๋…ธ๋“œ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹จ๋ง ๋…ธ๋“œ ๊ฐ„์—๋Š” ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ์—ฐ๊ฒฐ๋˜๋Š” ๋ฐฉ์‹
  • MySQL, PostgreSQL, Oracle ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ DBMS์˜ ๊ธฐ๋ณธ ์ธ๋ฑ์Šค ๊ตฌ์กฐ
  • ์žฅ์ 
    • ์ •๋ ฌ๋œ ๊ตฌ์กฐ๋ฅผ ์œ ์ง€ํ•ด ๋ฒ”์œ„ ๊ฒ€์ƒ‰์— ๊ฐ•ํ•จ
    • O(log n) ํƒ์ƒ‰ ์‹œ๊ฐ„
  • ๋‹จ์ 
    • ์‚ฝ์ž…/์‚ญ์ œ ์‹œ ๋…ธ๋“œ ๋ถ„ํ•  ๋˜๋Š” ๋ณ‘ํ•ฉ์ด ํ•„์š”ํ•ด ํ•ด์‹œ๋ณด๋‹ค ์•ฝ๊ฐ„ ๋А๋ฆผ

๐Ÿ”’ ํŠธ๋žœ์žญ์…˜

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

  • ํŠธ๋žœ์žญ์…˜(transaction) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„ ๋˜๋Š” ์ผ๋ จ์˜ ์—ฐ์‚ฐ

ACID ํŠน์„ฑ

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

๋ฐ๋“œ๋ฝ

  • ๋ฐ๋“œ๋ฝ(deadlock) : ๋‘ ๊ฐœ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ๊ฐ€ ์ ์œ ํ•œ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉด์„œ ๋ฌดํ•œ ๋Œ€๊ธฐ ์ƒํƒœ์— ๋น ์ง€๋Š” ํ˜„์ƒ
  • ๋ฐ๋“œ๋ฝ ๋ฐฉ์ง€ ๋ฐฉ๋ฒ•
    • ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ์ „ ๋ฏธ๋ฆฌ ๋ฝ ํš๋“
    • ํŠธ๋žœ์žญ์…˜์ด ๋“ค์–ด์˜จ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋ฝ์„ ํš๋“ํ•˜๊ฑฐ๋‚˜ ํŠน๋žœ์žญ์…˜์„ ์ข…๋ฃŒ

๐Ÿ“์ •๊ทœํ™”์™€ ์—ญ์ •๊ทœํ™”

์ด์ƒ

  • ์ด์ƒ(anomaly) : ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ ์ค‘ ์†์„ฑ ๊ฐ„ ์ข…์†์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ
    • ์‚ฝ์ž… ์ด์ƒ(insertion anomaly) : ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์‹œ ์˜๋„์น˜ ์•Š์€ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋„ ์‚ฝ์ž…๋œ๋‹ค.
    • ๊ฐฑ์‹  ์ด์ƒ(update anomaly) : ๋ฐ์ดํ„ฐ ๊ฐฑ์‹  ์‹œ ์ผ๋ถ€ ํŠœํ”Œ๋งŒ ๊ฐฑ์‹ ๋˜์–ด ๋ฐ์ดํ„ฐ ๋ชจ์ˆœ์ด ๋ฐœ์ƒํ•œ๋‹ค.
    • ์‚ญ์ œ ์ด์ƒ(deletion anomaly) : ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์‹œ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋„ ์‚ญ์ œ๋œ๋‹ค.

์ •๊ทœํ™” ๋‹จ๊ณ„

  • ์ •๊ทœํ™”(normalization) :  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด์ƒ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•˜๋Š” ๊ฒƒ
    • ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต, ์ตœ๋Œ€ํ•œ์˜ ๋ฐ์ดํ„ฐ ์œ ์—ฐ์„ฑ์„ ์œ„ํ•œ ๋ฐฉ๋ฒ• 
    • ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•˜๋А๋ผ ์—ฐ์‚ฐ ์‹œ๊ฐ„ ์ฆ๊ฐ€ →์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์ ์ ˆํ•œ ์ •๊ทœํ™” ํ•„์š”

์ œ1์ •๊ทœํ˜•(1NF, First Normal Form)

์ œ1์ •๊ทœํ˜•์€ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ์†์„ฑ ๊ฐ’์ด ๋” ์ด์ƒ ๋ถ„ํ•ด๋  ์ˆ˜ ์—†๋Š” ๊ฐ’(์›์ž ๊ฐ’)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์ด๋ ‡๊ฒŒ ์‰ผํ‘œ๋กœ ๋‘ ๊ฐœ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฉด ์ฟผ๋ฆฌ๋ฅผ ์งœ๊ธฐ๋„ ์–ด๋ ต๊ณ , ๋ฐ์ดํ„ฐ ๋ถ„์„์ด ํž˜๋“ค์–ด์ง„๋‹ค.

ํ•™์ƒ์ด๋ฆ„  ์ „ํ™”๋ฒˆํ˜ธ
ํ™๊ธธ๋™ 010-1111-2222, 010-3333-4444

 

๋”ฐ๋ผ์„œ '์ „ํ™”๋ฒˆํ˜ธ' ์†์„ฑ์— ์†์„ฑ ๊ฐ’์ด ํ•˜๋‚˜๋งŒ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์Œ๊ณ  ๊ฐ™์ด ํ…Œ์ด๋ธ”์„ ๋ถ„ํ•ดํ•œ๋‹ค.

ํ•™์ƒ์ด๋ฆ„ ์ „ํ™”๋ฒˆํ˜ธ
ํ™๊ธธ๋™ 010-1111-2222
ํ™๊ธธ๋™ 010-3333-4444

์ œ2์ •๊ทœํ˜•(2NF, Second Normal Form)

์ œ2์ •๊ทœํ˜•์€ ์ œ1์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๊ณ , ๋ถ€๋ถ„์  ํ•จ์ˆ˜ ์ข…์†์„ ์ œ๊ฑฐํ•ด ์™„์ „ ํ•จ์ˆ˜ ์ข…์†์„ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์ด ํ™๊ธธ๋™์ด ๊ณผ๋ชฉ์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋“ค์„ ๋•Œ๋งˆ๋‹ค ์ด๋ฆ„์ด ๊ณ„์† ์ค‘๋ณต๋˜๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•™์ƒ์ด๋ฆ„์€ ํ•™์ƒ ID์—๋งŒ ์ข…์†๋˜๋ฏ€๋กœ ๋ถ€๋ถ„ ์ข…์†๋˜์–ด ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ œ2์ •๊ทœํ˜•์„ ์œ„๋ฐ˜ํ•˜๊ฒŒ ๋œ๋‹ค.

ํ•™์ƒID ๊ณผ๋ชฉID ์ ์ˆ˜ ํ•™์ƒ์ด๋ฆ„
1 A 90 ํ™๊ธธ๋™
1 B 85 ํ™๊ธธ๋™
2 A 88 ๊น€์ฒ ์ˆ˜

 

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•™์ƒ ํ…Œ์ด๋ธ”๊ณผ ์ˆ˜๊ฐ• ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿง‘๐Ÿป‍๐ŸŽ“ ํ•™์ƒ ํ…Œ์ด๋ธ”

ํ•™์ƒID ํ•™์ƒ์ด๋ฆ„
1 ํ™๊ธธ๋™
2 ๊น€์ฒ ์ˆ˜

 

๐Ÿ“‹ ์ˆ˜๊ฐ• ํ…Œ์ด๋ธ”

ํ•™์ƒID ๊ณผ๋ชฉID ์ ์ˆ˜
1 A 90
1 B 85
2 A 88

 

์ œ3์ •๊ทœํ˜•(3NF, Third Normal Form)

์ œ3์ •๊ทœํ˜•์€ ์ œ2์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๊ณ , ์ดํ–‰์  ์ข…์†์ด ์—†์–ด์•ผ ํ•œ๋‹ค. 

 

 ์•„๋ž˜ ํ…Œ์ด๋ธ”์„ ๋ณด๋ฉด ๋ถ€์„œ ์ด๋ฆ„์€ ๋ถ€์„œ ID์— ์ข…์†๋˜๊ณ , ๋ถ€์„œ ID๋Š” ์ง์› ID์— ์ข…์†๋˜์–ด์žˆ๋‹ค.

์ง์›ID ๋ถ€์„œID ๋ถ€์„œ์ด๋ฆ„

1
10 ์ธ์‚ฌํŒ€
2 20 ๊ฐœ๋ฐœํŒ€
3 10 ์ธ์‚ฌํŒ€

 

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ดํ–‰ ์ข…์†์„ ์ œ๊ฑฐํ•ด ์ง์› ํ…Œ์ด๋ธ”๊ณผ ๋ถ€์„œ ํ…Œ์ด๋ธ”๋กœ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿง‘๐Ÿป‍๐Ÿ’ผ์ง์› ํ…Œ์ด๋ธ”

์ง์›ID ๋ถ€์„œID
1 10
2 20
3 10

 

๐Ÿข ๋ถ€์„œ ํ…Œ์ด๋ธ”

๋ถ€์„œID ๋ถ€์„œ์ด๋ฆ„
10 ์ธ์‚ฌํŒ€
20 ๊ฐœ๋ฐœํŒ€

์—ญ์ •๊ทœํ™”

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

 

๐Ÿ”— ์ฐธ๊ณ ์ž๋ฃŒ

๋”๋ณด๊ธฐ
 

๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ CS ์ „๊ณต ํ•ต์‹ฌ์š”์•ฝ์ง‘ | ์ด์ˆ˜์ง„ - ๊ต๋ณด๋ฌธ๊ณ 

๊ธฐ์ˆ  ๋ฉด์ ‘ ๋Œ€๋น„ CS ์ „๊ณต ํ•ต์‹ฌ์š”์•ฝ์ง‘ | 1๋ถ„ 1์ดˆ๊ฐ€ ์•„์‰ฌ์šด ์ทจ์—…/์ด์ง ์ค€๋น„์ƒ์„ ์œ„ํ•ด ๊ธฐ์ˆ  ๋ฉด์ ‘์— ํ•„์š”ํ•œ CS ์ „๊ณต์˜ ํ•ต์‹ฌ ๋‚ด์šฉ๋งŒ ๊ฐ„์ถ”๋ ธ๋‹ค!๋น„์ „๊ณต์ž๋Š” ๋ฌผ๋ก  IT ์ „๊ณต์ž๋ผ๋„ ๊ด‘๋ฒ”์œ„ํ•œ CS ์ „๊ณต ์ค‘์— ์–ด๋–ค

product.kyobobook.co.kr

 

 

์‹ ์ž… ๊ฐœ๋ฐœ์ž ๊ธฐ์ˆ ๋ฉด์ ‘ ์งˆ๋ฌธ ์ •๋ฆฌ - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํŠน์ง•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ(Real-Time Accessibility) : ๋น„์ •ํ˜•์ ์ธ ์งˆ์˜(์กฐํšŒ)์— ๋Œ€ํ•˜์—ฌ ์‹ค์‹œ๊ฐ„ ์ฒ˜๋ฆฌ์— ์˜ํ•œ ์‘๋‹ต์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•˜๋ฉฐ, ์ง€์†์ ์ธ ๋ณ€ํ™”(Continuous Evloution) :

dev-coco.tistory.com

 

 

GitHub - WooVictory/Ready-For-Tech-Interview: ๐Ÿ’ป ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ง€์‹์„ ์Œ“๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„ ๐Ÿ‘จ‍

๐Ÿ’ป ์‹ ์ž… ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ง€์‹์„ ์Œ“๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๋Š” ๊ณต๊ฐ„ ๐Ÿ‘จ‍๐Ÿ’ป. Contribute to WooVictory/Ready-For-Tech-Interview development by creating an account on GitHub.

github.com