CS 54

์„ ํ˜• ์ž๋ฃŒ ๊ตฌ์กฐ(์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ, ๋ฐฐ์—ด)

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

[์ž๋ฃŒ๊ตฌ์กฐ] ๋ณต์žก๋„(Complexity)

์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ˆ˜์ •, ์‚ญ์ œ, ํƒ์ƒ‰, ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ณต์žก๋„ ๋ณต์žก๋„๋Š” ์‹œ๊ฐ„ ๋ณต์žก๋„์™€ ๊ณต๊ฐ„ ๋ณต์žก๋„๋กœ ๋‚˜๋‰œ๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„(time complexity) ์‹œ๊ฐ„ ๋ณต์žก๋„๋ž€ '๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„๊ณผ ์ž…๋ ฅ์˜ ํ•จ์ˆ˜ ๊ด€๊ณ„'๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋กœ์ง์ด '์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜' ๊ฑธ๋ฆฌ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์“ฐ์ด๋ฉฐ, ๋ณดํ†ต ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ ํฌ๊ธฐ n์— ๋Œ€ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์ด 10n^2+n์ด๋ผ๊ณ  ํ•˜๋ฉด ๋น…์˜ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ๋Š” O(n^2)๊ฐ€ ๋œ๋‹ค. '๊ฐ€์žฅ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ผ์น˜๋Š” ํ•ญ'์˜ ์ƒ์ˆ˜ ์ธ์ž๋ฅผ ๋นผ๊ณ  ๋‚˜๋จธ์ง€ ํ•ญ์„ ์—†์• ์„œ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋‹ค. ๋‹ค๋ฅธ ํ•ญ๋“ค๋„ ์‹ ๊ฒฝ ์“ฐ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ์ฆ๊ฐ€ ์†๋„๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋ฉด ์ž…๋ ฅ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์—ฐ์‚ฐ๋Ÿ‰์ด ๊ฐ€์žฅ ๋งŽ์ด ์ปค์ง€๋Š” ํ•ญ์€ n์˜ ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์กฐ์ธ์˜ ์›๋ฆฌ

https://1eehyunji.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%A1%B0%EC%9D%B8Join [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์กฐ์ธ(Join) ์กฐ์ธ(Join)์ด๋ž€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. MySQL์—์„œ๋Š” JOIN์ด๋ผ๋Š” ์ฟผ๋ฆฌ๋กœ, MongoDB์—์„œ๋Š” lookup์ด๋ผ๋Š” ์ฟผ๋ฆฌ๋กœ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ( 1eehyunji.tistory.com ์œ„ ๊ฒŒ์‹œ๊ธ€์—์„œ ์„ค๋ช…ํ•œ ์กฐ์ธ์€ ์กฐ์ธ์˜ ์›๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค. ์กฐ์ธ์˜ ์›๋ฆฌ์ธ ์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ, ์ •๋ ฌ ๋ณ‘ํ•ฉ ์กฐ์ธ, ํ•ด์‹œ ์กฐ์ธ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž! ์ค‘์ฒฉ ๋ฃจํ”„ ์กฐ์ธ(NLJ, Nested Loop Join) ์ค‘์ฒฉ ๋ฃจํ”„..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์กฐ์ธ(Join)

์กฐ์ธ(Join)์ด๋ž€ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด ์•„๋‹Œ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. MySQL์—์„œ๋Š” JOIN์ด๋ผ๋Š” ์ฟผ๋ฆฌ๋กœ, MongoDB์—์„œ๋Š” lookup์ด๋ผ๋Š” ์ฟผ๋ฆฌ๋กœ ์ด๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‹จ, MongoDB๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, lookup์€ ๋˜๋„๋ก ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ด๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ JOIN ์—ฐ์‚ฐ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋‹ค.) ์กฐ์ธ์˜ ์ข…๋ฅ˜ ์กฐ์ธ์˜ ์ข…๋ฅ˜ ์ค‘ ๋Œ€ํ‘œ์ ์œผ๋กœ ๋‚ด๋ถ€ ์กฐ์ธ, ์™ผ์ชฝ ์กฐ์ธ, ์˜ค๋ฅธ์ชฝ ์กฐ์ธ, ํ•ฉ์ง‘ํ•ฉ ์กฐ์ธ์„ ์‚ดํŽด๋ณด์ž! ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ๋‘ ํ…Œ์ด๋ธ”๊ฐ„์˜ ๊ต์ง‘ํ•ฉ์ด ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„ค ๊ฐ€์ง€ ์กฐ์ธ์ด ์žˆ๋‹ค. ๋‚ด๋ถ€ ์กฐ์ธ(Inner join) ์™ผ์ชฝ ํ…Œ์ด๋ธ”๊ณผ ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋‘ ํ–‰์ด ๋ชจ๋‘ ์ผ์น˜ํ•˜๋Š” ํ–‰์ด ์žˆ๋Š” ๋ถ€๋ถ„๋งŒ ํ‘œ๊ธฐํ•œ๋‹ค. ์ฆ‰, ๋‘ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ต์ง‘..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์ธ๋ฑ์Šค(Index)

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

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ–‰๊ณผ ์—ด์„ ๊ฐ€์ง€๋Š” ํ‘œ ํ˜•์‹ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉฐ, SQL ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์กฐ์ž‘ํ•œ๋‹ค. MySQL, PostgreSQL, ์˜ค๋ผํด, SQLserver, MSSQL ๋“ฑ์ด ์žˆ๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ, ํ‘œ์ค€ SQL์„ ์ง€ํ‚ค๊ธฐ๋Š” ํ•˜์ง€๋งŒ, ๊ฐ ์ œํ’ˆ์— ๋”ฐ๋ผ ํŠนํ™”์‹œํ‚จ SQL์„ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ๋ฒ•์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํŠนํ™”์‹œํ‚จ SQL์„ ์˜ค๋ผํด์˜ ๊ฒฝ์šฐ PL/SQL, SQLserver์˜ ๊ฒฝ์šฐ T-SQL, MySQL์€ SQL์ด๋ผ ๋ถ€๋ฅธ๋‹ค. MySQL MySQL์€ ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜์ฒด์ œ์™€ ํ˜ธํ™˜๋˜๋ฉฐ ํ˜„์žฌ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. C,C++๋กœ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉฐ, MyISAM ์ธ๋ฑ์Šค ์••์ถ• ๊ธฐ์ˆ , B-ํŠธ๋ฆฌ ๊ธฐ๋ฐ˜์œผ ์ธ๋ฑ์Šค, ์Šค๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฌด๊ฒฐ์„ฑ

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

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋ฐ์ดํ„ฐ ์ด์ƒ ํ˜„์ƒ๊ณผ ์ •๊ทœํ™” ๊ณผ์ •

๋ฐ์ดํ„ฐ ์ด์ƒ ํ˜„์ƒ ์‚ฝ์ž… ์ด์ƒ(Insertion Anomaly) ํŠน์ • ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์•„ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€ํ•™๊ต ํ…Œ์ด๋ธ”์— (ํ•™๋ฒˆ, ํ•™์ƒ๋ช…, ํ•™๊ณผ๋ช…, ํ•™๊ณผ์ฝ”๋“œ) ์ปฌ๋Ÿผ์ด ์กด์žฌํ•˜๊ณ , ํ•™๋ฒˆ์ด ๊ธฐ๋ณธํ‚ค์ธ ๊ฒฝ์šฐ, ์ƒˆ๋กœ์šด ํ•™๊ณผ์ธ '์ˆ˜ํ•™๊ณผ'๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ํ•ด๋‹น ํ•™๊ณผ์ธ ํ•™์ƒ์˜ ์ •๋ณด๊ฐ€ ์—†์–ด์„œ ํ•™๋ฒˆ์ด NULL์ด ๋˜๋Š”๋ฐ, ํ•™๋ฒˆ์€ ๊ธฐ๋ณธํ‚ค์ด๋ฏ€๋กœ NULL ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ƒˆ๋กœ์šด ํ•™๊ณผ์ธ '์ˆ˜ํ•™๊ณผ'์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ํ•™๋ฒˆ ํ•™์ƒ๋ช… ํ•™๊ณผ๋ช… ํ•™๊ณผ ์ฝ”๋“œ 2018111111 ํ™๊ธธ๋™ ํ†ต๊ณ„ํ•™๊ณผ 001 2018222222 ์ž„๊บฝ์ • ์ „์ž๊ณตํ•™๊ณผ 002 2018333333 ์ดํ˜„์ง€ ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ 003 ์ˆ˜ํ•™๊ณผ 004 ๋งˆ์ง€๋ง‰ ํ–‰..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ERD(Entity Relationship Diagram)

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

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ(๊ด€๊ณ„, ํ‚ค)

๊ด€๊ณ„(relationship) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๊ณ , ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ํ…Œ์ด๋ธ”๋“ค์€ ์„œ๋กœ์˜ ๊ด€๊ณ„๊ฐ€ ์ •์˜๋˜์–ด ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ด€๊ณ„๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ด€๊ณ„ ํ™”์‚ดํ‘œ๋กœ ๋‚˜ํƒ€๋‚ธ๋‹ค. 1:1 ๊ด€๊ณ„ ํ•˜๋‚˜์˜ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ ํ•œ ๊ฐœ์™€ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, '์œ ์ €' ํ…Œ์ด๋ธ”์˜ '์ด๋ฆ„'์€ ์™ธ๋ž˜ํ‚ค๋กœ, '์œ ์ € ์ด๋ฉ”์ผ' ํ…Œ์ด๋ธ”์˜ '์ด๋ฆ„'๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค. ๊ฐ ์ด๋ฉ”์ผ์ด ๋‹จ ํ•œ ๋ช…์˜ ์œ ์ €์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ , ๊ทธ ๋ฐ˜๋Œ€๋„ ๋™์ผํ•˜๋‹ค๋ฉด ์œ ์ € ํ…Œ์ด๋ธ”๊ณผ ์œ ์ € ์ด๋ฉ”์ผ ํ…Œ์ด๋ธ”์€ 1:1 ๊ด€๊ณ„์ด๋‹ค. ํ•˜์ง€๋งŒ, ์ด๋Ÿฌํ•œ 1:1 ๊ด€๊ณ„๋Š” ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์œ ์ € ํ…Œ์ด๋ธ”์— ์ด๋ฉ”์ผ ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ด์„œ ์ง์ ‘ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋‚˜์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜๋„ 1:1 ๊ด€๊ณ„๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ํ…Œ์ด๋ธ”..