๐Ÿ‘จ‍๐Ÿ’ป Back End

์กฐ์ธ ์ด๋ž€ (Join) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์— ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์—์„œ ๊ฐ€์ ธ์˜จ ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์ด๋‚˜ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ Join ์ด๋ผ๊ณ  ํ•œ๋‹ค.์ด๋Ÿฌํ•œ JOIN์€ ๋ณดํ†ต SELECT๋ฌธ๊ณผ ํ•จ๊ป˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋ฉฐ ํ‘œ์ค€ SQL์—์„œ๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์กฐํ•ฉํ•˜๋Š” ๋ฐฉ์‹์— ๋”ฐ๋ผ JOIN์„ INNER JOIN, LEFT JOIN, RIGHT JOIN ์œผ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค. ๊ธฐ๋ณธ ์›๋ฆฌJoin์˜ ๊ธฐ๋ณธ ์›๋ฆฌ๋Š” N ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์นดํ…Œ์‹œ์•ˆ ๊ณฑ (Cartesian Product)์œผ๋กœ ํ…Œ์ด๋ธ”์„ ์กฐํ•ฉํ•œ๋‹ค๋Š” ๊ฒƒ์— ์žˆ๋‹ค. ์กฐ์ธ์„ ํ†ตํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•˜๊ณ ์ž ํ•  ๋•Œ๋Š” ์กฐ์ธ ์กฐ๊ฑด์„ ๋ช…์‹œํ•ด์ค˜์•ผ ํ•˜๋Š”๋ฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ํ…Œ์ด๋ธ”์— PK๋‚˜ FK์˜ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ์—ด ๊ฐ’์˜ ํŠน์ •ํ•œ ๊ทœ์น™์„ ํ†ตํ•ด์„œ ๋ช…์‹œํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, N๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์กฐ์ธํ•  ๋•Œ์—๋Š” ์ตœ์†Œ (N-..
์„œ๋ธŒ์ฟผ๋ฆฌ (SubQuery)SQL ๋ฌธ์žฅ (SQL Statement) ์•ˆ์—์„œ ๋ณด์กฐ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋˜ ๋‹ค๋ฅธ SELECT๋ฌธ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์˜ˆ๋ฅผ ๋“ค์–ด ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ฉ”์ธ ์ฟผ๋ฆฌ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด ์ด๋ฅผ ์œ„ํ•œ ์ค‘๊ฐ„ ๋‹จ๊ณ„ ํ˜น์€ ๋ณด์กฐ ์—ญํ• ์„ ํ•˜๋Š” SELECT๋ฌธ์„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ•˜๋‚˜์˜ SQL๋ฌธ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฉ”์ธ ์ฟผ๋ฆฌ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๋ชจ๋“  SELECT๋ฌธ์„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๋ณด๋ฉด ๋˜๋ฉฐ, ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”๋ณด๊ธฐโœ…  [์ฐธ๊ณ ] ํ…Œ์ด๋ธ” ์ฐธ์กฐ์กฐ์ธ (Join)์€ ์กฐ์ธ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์ด ๋Œ€๋“ฑํ•œ ๊ด€๊ณ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์ธ์— ์ฐธ์—ฌํ•˜๋Š” ๋ชจ๋“  ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์„ ์–ด๋Š ์œ„์น˜์—์„œ๋ผ๋„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฉ”์ธ์ฟผ๋ฆฌ๊ฐ€ ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ข…์†์ ์ธ ๊ด€๊ณ„๋กœ ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ์ปฌ๋Ÿผ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ..
SELECT๋ฌธ ๊ตฌ์กฐSELECT [DISTINCT] ํ•„๋“œ ์ด๋ฆ„FROM ํ…Œ์ด๋ธ” ์ด๋ฆ„WHERE ์กฐ๊ฑดGROUP BY ํ•„๋“œ ์ด๋ฆ„ [ํ‘œํ˜„์‹]HAVING ์กฐ๊ฑดORDER BY ํ•„๋“œ ์ด๋ฆ„ ASC[DESC]LIMIT ๋ณด์—ฌ์ค„ ๋ฐ์ดํ„ฐ ๊ฐฏ์ˆ˜OFFSET ๊ฑด๋„ˆ๋›ธ ๊ฐฏ์ˆ˜ SELECT๋ฌธ ์‹คํ–‰ ์ˆœ์„œโ‘  FROM- SELECT ๋ฌธ์— ํ•„์š”ํ•œ ํ…Œ์ด๋ธ” ์„ ํƒโ‘ก WHERE- WHERE ์กฐ๊ฑด์ ˆ์„ ์ด์šฉํ•˜์—ฌ ํ–‰(row) ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง (๊ทธ๋ฃนํ•จ์ˆ˜ ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ!! HAVING ๊ตฌ๋ฌธ์—์„œ๋งŒ)โ‘ข GROUP BY - GROUP BY ์ ˆ์„ ์ด์šฉํ•˜์—ฌ ํŠน์ • ์ปฌ๋Ÿผ์˜ ๊ทธ๋ฃนํ™”๋ฅผ ์ˆ˜ํ–‰โ‘ฃ HAVING- HAVING ์ ˆ์„ ์ด์šฉํ•˜์—ฌ ๊ทธ๋ฃนํ™”๋œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์กฐ๊ฑด ํ•„ํ„ฐ๋งโ‘ค SELECT- SELECT ์ ˆ์—์„œ ์‚ฌ์šฉํ•  ์ปฌ๋Ÿผ ์„ ํƒโ‘ฅ ORDER BY- ORDER BY ์ ˆ์„ ์ด์šฉํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ ์ •..
Entity-Relationship Digagram (E-R Model)๊ฐ์ฒด-๊ด€๊ณ„ ๋ชจ๋ธ (Entity-Relationship Modeling, E-R Modeling)์€ ์„ธ์ƒ์˜ ์‚ฌ๋ฌผ์„ ๊ฐœ์ฒด (Entity)์™€ ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ (Relationship)๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.ํ•œ๋งˆ๋””๋กœ ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„๋“ค์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋ฉฐ Entity (๊ฐœ์ฒด)์™€ Relationship (๊ด€๊ณ„)๋ฅผ ์ค‘์ ์ ์œผ๋กœ ํ‘œ์‹œํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ํ•œ ๋ˆˆ์— ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด ๊ทธ๋ ค๋†“๋Š” ๋‹ค์ด์–ด๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๊ฐœ์ฒด ๊ด€๊ณ„๋„๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ ์‰ฝ๊ฒŒ ๋งํ•ด, ์š”๊ตฌ๋ถ„์„ ์‚ฌํ•ญ์—์„œ ์–ป์€ ์—”ํ„ฐํ‹ฐ์™€ ์†์„ฑ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ERD ๊ตฌ์„ฑ ์š”์†Œ Entity์—”ํ„ฐํ‹ฐ๋Š” ์ •์˜ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋ฌผ ๋˜๋Š” ๊ฐœ๋…์„ ์˜๋ฏธํ•œ๋‹ค.์‚ฌ..
๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ž€๋ณต์žกํ•œ ์‹ค์„ธ๊ณ„๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์—ฌ ์‹ค์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ๊ฐœ์ฒด๋“ค์„ ์‹๋ณ„ํ•˜์—ฌ ์ด๋“ค ๊ฐ์ฒด์™€ ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•จ์œผ๋กœ์จ ์ปดํ“จํ„ฐ์ƒ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ถ”์ƒํ™”๋œ ๊ฐœ๋…์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‚ฌ์šฉ์ž๋“ค ์‚ฌ์ด์˜ ์˜์‚ฌ์†Œํ†ต์„ ์›ํ™œํžˆ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค.๋ชจ๋ธ์€ ์„ค๊ณ„์˜ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด, ์—”์ง€๋‹ˆ์–ด๋Š” ์ž๋™์ฐจ๋ฅผ ์ œํ’ˆํ™”ํ•˜๊ธฐ ์ „์— ๋ชจ๋ธ์„ ์ž‘์„ฑํ•˜์—ฌ ์„ธ๋ถ€์‚ฌํ•ญ๋“ค์„ ํ™•์ธํ•˜๋ฉฐ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์‹œ์Šคํ…œ ์„ค๊ณ„์ž๋Š” ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜์—ฌ ์•„์ด๋””์–ด๋ฅผ ์ ๊ฒ€ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๋†’ํž ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ค‘๊ฐ„ ๊ณผ์ •์œผ๋กœ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ๊ณผ์ •์—์„œ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ๋…๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€ ์ •๋ณด..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (DB, DataBase)๋Š” ์ผ์ •ํ•œ ๊ทœ์น™, ํ˜น์€ ๊ทœ์•ฝ์„ ํ†ตํ•ด ๊ตฌ์กฐํ™”๋˜์–ด ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค.ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ด, ๊ด€๋ฆฌํ•˜๋Š” ํ†ตํ•ฉ ์‹œ์Šคํ…œ์„ DBMS (DataBase Management System)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์•ˆ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ํŠน์ • DBMS๋งˆ๋‹ค ์ •์˜๋œ ์ฟผ๋ฆฌ ์–ธ์–ด(Query Language)๋ฅผ ํ†ตํ•ด ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ์กฐํšŒ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ๊ณผ ๋™์‹œ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.  โœ… [์ฐธ๊ณ ] DBMS ์‹œ์Šคํ…œ ๊ตฌ์„ฑ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.๋ชจ๋“  ๋ฐ์ดํ„ฐ๋“ค์„ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋ฉฐ ํ”ํžˆ, ์ผ์ƒ ์ƒํ™œ์—์„œ ๋ฐ..
Dev_sHu
'๐Ÿ‘จ‍๐Ÿ’ป Back End' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (4 Page)