๐Ÿ“–์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๐Ÿค”DB Connection Pool์ด๋ž€? ๋ฏธ๋ฆฌ ์ผ์ • ๊ฐฏ์ˆ˜์˜ Connection์„ ๋งŒ๋“ค์–ด Pool์— ์ €์žฅ ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ๋ฐœ์ƒํ•˜๋ฉด Connection์„ ์ œ๊ณต, ์—ฐ๊ฒฐ์ด ์ข…๋ฃŒ๋˜๋ฉด Pool์— ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ €์žฅ ์ƒ์„ฑ๋œ Connection์ด ๋ชจ๋‘ ์‚ฌ์šฉ์ค‘์ผ๋•Œ๋Š” ํด๋ผ์ด์–ธํŠธ๋Š” ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ์ „ํ™˜ โ—ป๏ธConnection ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ DB ๋“œ๋ผ์ด๋ฒ„๋ฅผ ํ†ตํ•ด ์ปค๋„ฅ์…˜์„ ์กฐํšŒํ•œ๋‹ค. DB ๋“œ๋ผ์ด๋ฒ„๋Š” DB์™€ TCP/IP ์ปค๋„ฅ์…˜์„ ์—ฐ๊ฒฐํ•œ๋‹ค. (3 way handshake์™€ ๊ฐ™์€ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ ๋™์ž‘ ๋ฐœ์ƒ ) DB ๋“œ๋ผ์ด๋ฒ„๋Š” TCP/IP ์ปค๋„ฅ์…˜์ด ์—ฐ๊ฒฐ๋˜๋ฉด ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ, ๊ธฐํƒ€ ๋ถ€๊ฐ€ ์ •๋ณด๋ฅผ DB์— ์ „๋‹ฌํ•œ๋‹ค. DB๋Š” ์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ์ธ์ฆ์„ ๊ฑฐ์นœ ํ›„ ๋‚ด๋ถ€์— DB๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. DB๋Š” ์ปค๋„ฅ์…˜ ์ƒ์„ฑ์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ..
๐Ÿค”JOIN์ด๋ž€? ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ๊ฐ€์ ธ์™€์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์„ ๋ชฉ์  ๐Ÿค”JOIN์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ? ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์  ํŠน์ง•์œผ๋กœ ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์˜๋ฏธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์œผ๋กœ ํ…Œ์ด๋ธ”์ด ๊ตฌ์„ฑ๋˜๊ณ , ๊ฐ ํ…Œ์ด๋ธ”๋ผ๋ฆฌ ๊ด€๊ณ„(Relationship)๋ฅผ ๊ฐ–๊ฒŒ ๋œ๋‹ค. ์œ„์˜ ํŠน์ง•์œผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ €์žฅ ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ํ–ฅ์ƒ๋œ๋‹ค. ์„œ๋กœ ๊ด€๊ณ„ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋‰˜์–ด ์ €์žฅ๋˜๋ฏ€๋กœ, ๊ฐ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์กฐ์ธ์ด ํ•„์š”ํ•˜๋‹ค. ๐ŸŸฉJOIN ์ข…๋ฅ˜ โ—ป๏ธ๋‚ด๋ถ€ ์กฐ์ธ(Inner Join) ๋‘ ํ…Œ์ด๋ธ”์—์„œ ๊ณตํ†ต๋œ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ–‰๋“ค๋งŒ์„ ๋ฐ˜ํ™˜ ๊ทธ๋ƒฅ ์กฐ์ธ์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉด ๋‚ด๋ถ€..
B-Tree๋ž€? ๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ ฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜์–ด ์žˆ๋Š” ํŠธ๋ฆฌ๋กœ ์ผ๋ฐ˜์ ์ธ ์ด์ง„ ํŠธ๋ฆฌ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ํ•œ ๋…ธ๋“œ ๋‹น ์ž์‹ ๋…ธ๋“œ๊ฐ€ 2๊ฐœ ์ด์ƒ ๊ฐ€๋Šฅํ•œ ํŠธ๋ฆฌ. ์–ด๋–ค ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ™์€ ์‹œ๊ฐ„์— ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์žฅ์ . ํŠธ๋ฆฌ๋ž€? ๊ทธ๋ž˜ํ”„์˜ ์ผ์ข…์œผ๋กœ, ํ•œ ๋…ธ๋“œ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋‹ค๋ฅธ ์ •์ ๋“ค์„ ์ˆœํšŒํ•˜์—ฌ ์ž๊ธฐ ์ž์‹ ์—๊ฒŒ ๋Œ์•„์˜ค๋Š” ์ˆœํ™˜์ด ์—†๋Š” ์—ฐ๊ฒฐ ๊ทธ๋ž˜ํ”„ B tree ์‚ฌ๊ฐํ˜•์œผ๋กœ ํ‘œ์‹œ๋œ ํ•œ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋…ธ๋“œ(node) ๊ฐ€์žฅ ์ƒ๋‹จ์˜ ๋…ธ๋“œ๋ฅผ ๋ฃจํŠธ ๋…ธ๋“œ(root node) ์ค‘๊ฐ„ ๋…ธ๋“œ๋“ค์„ ๋ธŒ๋žœ์น˜ ๋…ธ๋“œ (branch node) ๊ฐ€์žฅ ์•„๋ž˜ ๋…ธ๋“œ ๋ฆฌํ”„ ๋…ธ๋“œ(leaf node) ํŠน์ง• ๊ท ์ผ์„ฑ : ์–ด๋–ค ๊ฐ’์— ๋Œ€ํ•ด์„œ๋„ ๊ฐ™์€ ์‹œ๊ฐ„์— ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. (ํŠธ๋ฆฌ ๋†’์ด๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ, ์•ฝ๊ฐ„์˜ ์ฐจ์ด๋Š” ์žˆ์ง€๋งŒ O(logN)) ๊ท ํ˜•ํŠธ๋ฆฌ : ๋ฃจํŠธ๋กœ ๋ถ€ํ„ฐ ๋ฆฌํ”„๊นŒ์ง€..
์ธ๋ฑ์Šค๋ž€? ์ถ”๊ฐ€์ ์ธ ์“ฐ๊ธฐ ์ž‘์—…๊ณผ ์ €์žฅ๊ณต๊ฐ„์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ ์ฆ‰, index๋ž€ ๋ฐ์ดํ„ฐ์˜ ์ฃผ์†Œ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๋ณ„๋„์˜ ํŠน๋ณ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ์ด๋‹ค. index๋ฅผ ํ™œ์šฉํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. - DBํ…Œ์ด๋ธ”์— ์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ํ’€์Šค์บ”(full scan) ํ•ด์•ผ ํ•œ๋‹ค. Full Scan ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(N) Index๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„(B tree) : O(logN) - ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ(๋“ค)์„ ๋น ๋ฅด๊ฒŒ ์กฐํšŒํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์ •๋ ฌ(order by)ํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ฃนํ•‘(group by) ํ•˜๊ธฐ ์œ„ํ•ด - ์ธ๋ฑ์Šค ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ• - ์ด๋ฏธ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ CREATE TA..
๐ŸŸฉํŠธ๋ฆฌ๊ฑฐ ์ •์˜ ๐Ÿค” ํŠธ๋ฆฌ๊ฑฐ๋ž€? ํŠธ๋ฆฌ๊ฑฐ๋Š” ํ…Œ์ด๋ธ”์— ์–ด๋–ค ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ์–ด๋–ค ํ…Œ์ด๋ธ”์—์„œ ํŠน์ •ํ•œ ์ด๋ฒคํŠธ(update, insert, delete)๊ฐ€ ๋ฐœ์ƒํ–ˆ์„๋•Œ, ์‹คํ–‰์‹œํ‚ค๊ณ ์ž ํ•˜๋Š” ์ถ”๊ฐ€ ์ฟผ๋ฆฌ ์ž‘์—…๋“ค์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ• ์ˆ˜ ์žˆ๊ฒŒ๋” ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด๋‘๋Š” ๊ฒƒ. ๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ์˜จ๋ผ์ธ ์ฃผ๋ฌธ์‹œ ์žฅ๋ฐ”๊ตฌ๋‹ˆํ…Œ์ด๋ธ”์ด์„œ -> ๊ตฌ๋งคํ…Œ์ด๋ธ” insert-> ๋ฐฐ์†ก ํ…Œ์ด๋ธ”๋กœ ์ž๋™์œผ๋กœ insert ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰์‹œํ‚จ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐ŸŸฉํŠธ๋ฆฌ๊ฑฐ ์œ ํ˜• ํฌ๊ฒŒ ํ–‰ ํŠธ๋ฆฌ๊ฑฐ์™€ ๋ฌธ์žฅํŠธ๋ฆฌ๊ฑฐ๊ฐ€ ์žˆ๋‹ค. ํ–‰ ํŠธ๋ฆฌ๊ฑฐ : ํ…Œ์ด๋ธ” ์•ˆ์˜ ์˜ํ–ฅ์„ ๋ฐ›์€ ํ–‰ ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์‹คํ–‰๋œ๋‹ค. ๋ณ€๊ฒฝ ์ „ ๋˜๋Š” ๋ณ€๊ฒฝ ํ›„์˜ ํ–‰์€ OLD, NEW๋ผ๋Š” ๊ฐ€์ƒ ์ค„ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. OLD : ์˜ˆ์ „ ๋ฐ์ดํ„ฐ ( DELETE๋กœ ์‚ญ์ œ ๋œ ๋ฐ์ดํ„ฐ ๋˜๋Š” ..
๐ŸŸฉ์ €์žฅํ”„๋กœ์‹œ์ €์˜ ์ •์˜ - DB๋‚ด๋ถ€์— ์ €์žฅ๋œ ์ผ๋ จ์˜ SQL ๋ช…๋ น๋ฌธ๋“ค์„ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ์˜ ์ง‘ํ•ฉ - ์ผ๋ จ์˜ ์ฟผ๋ฆฌ๋ฅผ ๋งˆ์น˜ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ๋ฌธ๋“ค์˜ ์ง‘ํ•ฉ - DB๋‚ด๋ถ€์— ์ €์žฅ๋œ ์ผ๋ จ์˜ SQL ๋ช…๋ น๋ฌธ๋“ค์„ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ์˜ ์ง‘ํ•ฉ - ์ฟผ๋ฆฌ๋ฌธ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ, ์–ด๋–ค ๋™์ž‘์„ ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ๊ฑฐ์ณ์„œ ์ผ๊ด„์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ๋•Œ ์‚ฌ์šฉ - ์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ์— ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ. ๋งˆ์น˜ SQL๋ฌธ๋ฒ•์˜ ํ•จ์ˆ˜์™€ ์œ ์‚ฌํ•œ ๋Š๋‚Œ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ์—์„œ ์ฐพ์•„๋ณด๋‹ˆ ๋น„์Šทํ•œ ์„ค๋ช…๋“ค์ด๋‹ค. ์ €์žฅํ”„๋กœ์‹œ์ €๋Š” '์—ฌ๋Ÿฌ ์ฟผ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ์˜ ์ง‘ํ•ฉ'์ด๋ผ๊ณ  ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์ฟผ๋ฆฌ๋“ค์ด ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์‹คํ–‰๋œ๋‹ค๋Š” ์˜๋ฏธ๋Š” ๋ฌด์—‡์ผ๊นŒ? ์˜๋ฏธ๋ฅผ ์•Œ๊ธฐ ์œ„ํ•ด SQL์˜ ํ•จ์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ถ€ํ„ฐ ์•Œ์•„๋ณด์ž. SQL์˜ ํ•จ์ˆ˜๋ž€? ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ..
๐ŸŸฉ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๐Ÿ‘‰๋ฌด๊ฒฐ์„ฑ์ด๋ž€? ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ์„ ๋‚˜ํƒ€๋ƒ„ ๋ฐ์ดํ„ฐ์— ๊ฒฐํ•จ์ด ์—†๋Š” ์ƒํƒœ, ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ณ  ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ ๐Ÿ‘‰๋ฌด๊ฒฐ์„ฑ์ œ์•ฝ์กฐ๊ฑด์ด๋ž€? ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ, ์‚ญ์ œ, ์ˆ˜์ •๋“ฑ์„ ์ œ์•ฝํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ( Entity Intergrity ) ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์€ null๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์€ ๋‹ค๋ฅธ ๋ ˆ์ฝ”๋“œ(ํŠœํ”Œ)์™€ ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ( Referential Intergrity ) ์™ธ๋ž˜ ํ‚ค์˜ ๊ฐ’์€ null์ด๊ฑฐ๋‚˜ ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•œ๋‹ค. ์™ธ๋ž˜ ํ‚ค ์†์„ฑ์€ ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ์ง€๋‹ ์ˆ˜ ์—†์Œ (์™ธ๋ž˜ ํ‚ค ์†์„ฑ ๊ฐ’์ด ์ƒ์œ„ ํ…Œ์ด๋ธ”์˜ ์ธ์Šคํ„ด์Šค์—..
๐Ÿค”์ •๊ทœํ™”(Normalization)๋ž€? ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ค๊ณ„์—์„œ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ •๊ทœํ™” ๋ผ๊ณ ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด '์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”'๋ผ๋Š” ๊ฒŒ ๋ญ˜๊นŒ? ๊ณตํ†ต์ ์œผ๋กœ ํ•จ์ˆ˜ ์ข…์†์„ฑ์„ ์‚ฌ์šฉ ๋˜๋Š” ์ด์šฉํ•ด์„œ ํ…Œ์ด๋ธ”(๋ฆด๋ ˆ์ด์…˜)์„ ๊ด€๋ จ ์žˆ๋Š” ์†์„ฑ๋“ค๋กœ๋งŒ ๊ตฌ์„ฑํ•ด์„œ ๋‚˜๋จธ์ง€๋Š” ๋ถ„ํ•ดํ•˜๊ณ  ์ด์ƒํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ •์ด๋ผ๊ณ  ๋Œ€๋ถ€๋ถ„์˜ ๋ธ”๋กœ๊ทธ์—์„œ ์„ค๋ช…๋˜๊ณ  ์žˆ๋‹ค. ํ•จ์ˆ˜ ์ข…์†์„ฑ์ด๋ผ๋Š” ๊ฑธ ์‚ฌ์šฉํ•ด์„œ ํ•จ์ˆ˜์ข…์†์„ฑ๊ณผ ๊ด€๋ จ๋œ attibute๋“ค๋กœ๋งŒ ๊ตฌ์„ฑํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ถ„ํ•ด ๊ทธ๋ฆฌ๊ณ  ์ค‘๋ณต์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ณผ์ •์ด๊ตฌ๋‚˜! โ“ํ•จ์ˆ˜ ์ข…์†์„ฑ์€ ๋ญ์ง€? ํ•œ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๋‘ ๊ฐœ์˜ Attribute(s) ์ง‘ํ•ฉ(set) ์‚ฌ์ด์˜ ์ œ์•ฝ(a contraint) X ๊ฐ’์— ๋”ฐ๋ผ Y ๊ฐ’์ด ์œ ์ผํ•˜๊ฒŒ ๊ฒฐ์ •๋  ๋•Œ X๊ฐ€..
mmmhmm
'๐Ÿ“–์Šคํ„ฐ๋””/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก