๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

DB5

DBMS์ ‘์†๊ธฐ์ˆ , ORM * DBMS์ ‘์†๊ธฐ์ˆ  : DBMS์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” API ๋˜๋Š” ๊ทธ API์˜ ์‚ฌ์šฉ์„ ๋•๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ์˜๋ฏธ : ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋งˆ๋‹ค DBMS์— ์ ‘๊ทผํ•˜๋Š” ๊ธฐ์ˆ ์ด ๋‹ค์–‘ํ•จ * Driver : DBMS์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋ฐ ๊ฒฐ๊ณผ๊ฐ’ ์ €์žฅ ๊ธฐ๋Šฅ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๋‹ด๊ณ ์žˆ๋Š”๊ฒƒ : ๊ฐ DBMS๋งˆ๋‹ค ๋‹ค๋ฅธ ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉ โ‡จ ๊ฐ ๋ฒค๋”์‚ฌ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ์ œ๊ณต : ๋‹ค์šด๋กœ๋“œ ํ›„ ๋นŒ๋“œ ์ž‘์—… ํ•„์ˆ˜ 1. JDBC (Java DataBase Connectivity) : Java์–ธ์–ด๋กœ, ๋‹ค์–‘ํ•œ DBMS์— ์ ‘์† ๋ฐ SQL๋ฌธ์„ ์ˆ˜ํ–‰ํ• ๋•Œ ์‚ฌ์šฉ๋˜๋Š” API : DBMS ๋“œ๋ผ์ด๋ฒ„ ํ•„์š” : java.sql ๋˜๋Š” javax.spl์— ํฌํ•จ 2. ODBC(Oracle DataBase Connectivity) : DB์— ์ ‘๊ทผํ•˜๊ธฐ์œ„ํ•œ ํ‘œ์ค€ ๊ฐœ๋ฐฉํ˜• .. 2020. 9. 9.
JOIN(INNER/OUTER/SELF) , 1999JOIN(CROSS,NATURAL,INNER,OUTER) * JOIN 2๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์—ฐ๊ด€๋œ ํŠœํ”Œ์„ ๊ฒฐํ•ฉํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ๋ฆด๋ ˆ์ด์…˜์„ ๋ฐ˜ํ™˜ ๋˜๋Š” ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ 1. INNER JOIN : ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ์กฐ์ธ : ์กฐ๊ฑด์ด ์—†๋Š” INNER JOIN์„ ํ•˜๋ฉด CROSS JOIN๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ 1) ๋™๋“ฑ์กฐ์ธ(EQUI JOIN) : ๋Œ€์ƒ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ๊ณตํ†ต์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ '=' ์—ฐ์‚ฐ์ž ๋น„๊ต์— ์˜ํ•ด ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ํ–‰์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฒฐ๊ณผ ์ƒ์„ฑ : ์—ฐ๊ฒฐ๊ณ ๋ฆฌ์ธ ๊ณตํ†ต์†์„ฑ โžก๏ธŽ JOIN ์†์„ฑ ํ‘œํ˜„ โ‘  '=' ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ WHERE์ ˆ์˜ ์กฐ๊ฑด์œผ๋กœ ์„ค์ • ํ‘œํ˜„ โ‘ก NATURAL JOIN : ์ž๋™์œผ๋กœ ๊ณตํ†ต์†์„ฑ์„ ์ฐพ์•„ ์กฐ์ธ ํ‘œํ˜„ โ‘ข USING(๊ณตํ†ต์†์„ฑ๋ช…) : ํ•ด๋‹น ๊ณตํ†ต์†์„ฑ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š”๊ฒƒ์ด ์ž๋™์œผ๋กœ ์กฐ์ธ -- SELECT ํ…Œ์ด๋ธ”1.์†์„ฑ, ํ…Œ์ด๋ธ”2.์†์„ฑ, ... FROM .. 2020. 9. 8.
๋ฐ์ดํ„ฐ ๋ถ„์„ํ•จ์ˆ˜ (์ง‘๊ณ„ํ•จ์ˆ˜, ๊ทธ๋ฃนํ•จ์ˆ˜, ์œˆ๋„์šฐํ•จ์ˆ˜) * SELECT๋ฌธ ํ•ด์„ ์ˆœ์„œ - GROUP BY๊ตฌ๋ฌธ์€ NULL ๊ฐ’์ด ์กด์žฌํ•˜๋Š” ROW๋Š” ์ œ์™ธํ•˜๊ณ  ์‚ฐ์ถœ, WHERE์ ˆ ๋จผ์ € ์ˆ˜ํ–‰ ํ›„ ์‹คํ–‰ (๊ทธ๋ฃน๋ณ„ ์ง‘๊ณ„) : ๋˜ํ•œ GROUP BY ๋’ค์— ์˜ค๋Š” ์†์„ฑ๋ช…์€ ๋ฐ˜๋“œ์‹œ SELECT๋ฌธ์˜ ์ฐพ๋Š” ์†์„ฑ ์ค‘์— ์กด์žฌํ•ด์•ผํ•จ. : ์œˆ๋„์šฐํ•จ์ˆ˜์™€ ์ ˆ๋Œ€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ - HAVING ๊ตฌ๋ฌธ์€ GROUP BY์— ๋Œ€ํ•œ ์กฐ๊ฑด์‹์„ ์„œ์ˆ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ * ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ•จ์ˆ˜๋ž€? : ์ดํ•ฉ, ํ‰๊ท  ๋“ฑ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ์œ„ํ•ด ๋ณต์ˆ˜ํ–‰ ๊ธฐ์ค€์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ๋‹ค์ค‘ํ–‰ ํ•จ์ˆ˜ : ๋ณต์ˆ˜ํ–‰์„ ๊ทธ๋ฃน๋ณ„๋กœ ๋ฌถ์–ด ๊ทธ๋ฃน๋‹น ๋‹จ์ผ ๊ณ„์‚ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ 1. ์ง‘๊ณ„ํ•จ์ˆ˜(Aggragate Function) : ์—ฌ๋Ÿฌ ํ–‰ ๋˜๋Š” ํ…Œ์ด๋ธ” ์ „์ฒด ํ–‰์œผ๋กœ๋ถ€ํ„ฐ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฐ˜ํ™˜ : NULL๊ฐ’์€ ์ œ์™ธํ•˜๊ณ  ์ง‘๊ณ„ ์ง‘๊ณ„ํ•จ์ˆ˜.. 2020. 9. 8.
์ •๊ทœํ™”์™€ ๋ฐ˜์ •๊ทœํ™” ๊ฐ„๋‹จํžˆ ๋งํ•˜๋ฉด ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฆด๋ ˆ์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์žฌ์ •๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ์ •๊ทœํ™”๋ž€ ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์—์„œ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๊ตฌ์กฐํ™” ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค ๋ฐ˜์ •๊ทœํ™”๋ž€ ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์—์„œ ์„ฑ๋Šฅํ–ฅ์ƒ์„ ์œ„ํ•ด ์ผ๋ถ€๋Ÿฌ ์ค‘๋ณต/ํ†ตํ•ฉํ•˜๋Š” ์ •๊ทœํ™”์— ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋… * ์ •๊ทœํ™”(Normalization) : ๋…ผ๋ฆฌ์  ๋‹จ๊ณ„์—์„œ ์‹คํ–‰ : ์›์น™ โžก๏ธŽ ๋ฌด์†์‹ค, ๋ถ„๋ฆฌ(๋…๋ฆฝ), ์ค‘๋ณต๊ฐ์†Œ : ์•ˆ์ •์„ฑ, ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ตฌํ˜„์„ ์œ„ํ•ด ์ค‘๋ณต์„ ๋ฐฐ์ œํ•˜๋Š” ์ž‘์—… : ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ฑ์œผ๋กœ ์ธํ•œ ์ด์ƒํ˜„์ƒ ๋ฐฉ์ง€ (์‚ฝ์ž…์ด์ƒ, ๊ฐฑ์‹ ์ด์ƒ, ์‚ญ์ œ์ด์ƒ) : ๋…๋ฆฝ์ ์ธ ๊ด€๊ณ„๋Š” ๋ณ„๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ํ‘œํ˜„ โ‡จ ์ฆ‰, ํ…Œ์ด๋ธ”์„ ์ชผ๊ฐœ๋Š” ๊ฒƒ : ํŠน์ •์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์ •๊ทœํ˜•์— ์†ํ•œ๋‹ค๊ณ  ํ‘œํ˜„ # ํ•จ์ˆ˜์  ์ข…์†(Functional Dependency).. 2020. 9. 7.