Computer Science ๐Ÿ“š/SQLD 5

[SQLD] 2๊ณผ๋ชฉ - 3์žฅ. ๊ด€๋ฆฌ ๊ตฌ๋ฌธ

์ œ 1์ ˆ DML - ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰, ๋ฐ์ดํ„ฐ ๋ณ€ํ˜•1. DMLํ˜ธ์ŠคํŠธ ํ”„๋กœ๊ทธ๋žจ ์†์— ์‚ฝ์ž…๋˜์–ด ์‚ฌ์šฉ, ๋ฐ์ดํ„ฐ ๋ถ€์†์–ด๋ผ๊ณ ๋„ ํ•จProcedural DML(์ ˆ์ฐจ์  ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด): ์ดˆ๊ธ‰์–ธ์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์Šจ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•ด ์ฒ˜๋ฆฌํ•  ๊ฒƒ์ธ์ง€ ๋ช…์„ธํ•ด์•ผ ํ•จNonprocedural DML(๋น„์ ˆ์ฐจ์  ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด): ๊ณ ๊ธ‰์–ธ์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌด์Šจ ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š”์ง€๋งŒ ๋ช…์„ธํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์ ‘๊ทผํ•  ๊ฒƒ์ธ์ง€๋Š” ํ•˜์ง€ ์•Š์Œ. ์„ ์–ธ์  ์–ธ์–ด๋ผ๊ณ ๋„ ํ•จ2. INSERT - ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ๋ฐฉ๋ฒ•INSERT INTO ๊ณ ๊ฐ (์ด๋ฆ„, ์ฃผ์†Œ) VALUES ('์ด์ˆœ์‹ ', 'ํ•œ์–‘');INSERT INTO ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ฆฌ์ŠคํŠธ / ์ƒ๋žต = ์ „์ฒด์ปฌ๋Ÿผ)VALUES (์ปฌ๋Ÿผ๋ช… ์ˆœ์„œ์— ๋งž์ถฐ ์ž…๋ ฅํ•  ๊ฐ’ ๋งคํ•‘ํ•ด ์ž‘์„ฑ);๋ฐ์ดํ„ฐ๊ฐ€ ๋ฌธ์žํ˜•์ผ ๊ฒฝ์šฐ “”๋กœ ๋ฌถ์–ด์„œ ์ž…๋ ฅ3. UPDA..

[SQLD] 2๊ณผ๋ชฉ - 2์žฅ. SQL ํ™œ์šฉ

์ œ 1์ ˆ ์„œ๋ธŒ์ฟผ๋ฆฌ 1. ์„œ๋ธŒ์ฟผ๋ฆฌํ•˜๋‚˜์˜ SQL๋ฌธ ์•ˆ์˜ SQL ๋ฌธ๋‹จ์ผํ–‰ ๋˜๋Š” ๋ณต์ˆ˜ํ–‰ ๋น„๊ต ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„  ORDER BY ์‚ฌ์šฉ ๋ถˆ๊ฐ€(๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋งจ ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์—๋งŒ ์œ„์น˜ ๊ฐ€๋Šฅ)์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ํ…Œ์ด๋ธ”์˜ ์นผ๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ(๋ฉ”์ธ์ฟผ๋ฆฌ์—์„  ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์นผ๋Ÿผ ์‚ฌ์šฉ๋ถˆ๊ฐ€)์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ SQL ๋ฌธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ณณSELECT, FROM, WHERE, HAVING, ORDER BY์ ˆINSERT ๋ฌธ์˜ VALUES์ ˆUPDATE๋ฌธ์˜ SET์ ˆDELECT๋ฌธ ์‚ฌ์šฉ ๋ถˆ๊ฐ€2. ๋™์ž‘๋ฐฉ์‹์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜Un-Correlated(๋น„์—ฐ๊ด€) ์„œ๋ธŒ์ฟผ๋ฆฌ: ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ๋ฉ”์ธ์ฟผ๋ฆฌ ์นผ๋Ÿผ์„ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์€ ํ˜•ํƒœ์˜ ์„œ๋ธŒ์ฟผ๋ฆฌ. ๋ฉ”์ธ์ฟผ๋ฆฌ์— ๊ฐ’(์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋œ ๊ฒฐ๊ณผ)์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ ์ฃผ๋กœ ์‚ฌ์šฉCorrelated(์—ฐ๊ด€) ์„œ๋ธŒ์ฟผ๋ฆฌ: ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ..

[SQLD] 2๊ณผ๋ชฉ - 1์žฅ. SQL ๊ธฐ๋ณธ

์ œ 1์ ˆ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ์š”1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฐ์ดํ„ฐ๋ฅผ ์ผ์ •ํ•œ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด ๋†“์€ ๊ฒƒ๊ณ„์ธตํ˜• DB: ํŠธ๋ฆฌ ํ˜•ํƒœ์˜ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋ฐ์ดํ„ฐ ์ €์žฅ (1:N)๋„คํŠธ์›Œํฌํ˜• DB: ์˜ค๋„ˆ์™€ ๋ฉค๋ฒ„ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ์ €์žฅ (M:N)๊ด€๊ณ„ํ˜• DB: ์ง‘ํ•ฉ ์—ฐ์‚ฐ๊ณผ ๊ด€๊ณ„ ์—ฐ์‚ฐ ๊ฐ€๋Šฅ2. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDB: Relational Databae)ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‹จ์ : ๋™์‹œ์— ์‚ฝ์ž…/์ˆ˜์ •/์‚ญ์ œ ๋ถˆ๊ฐ€๋Šฅํ•ด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค๊ณ  ๋ณต์‚ฌ๋ณธ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜์„ฑ์˜ ๋ฐœ์ƒRDB ์žฅ์ : ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ์ด์ƒ ํ˜„์ƒ๊ณผ ์ค‘๋ณต์ œ๊ฑฐ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ, ๋ฐ์ดํ„ฐ ํšŒ๋ณต/๋ณต๊ตฌ ๊ฐ€๋Šฅ, ๋ณ‘ํ–‰ ์ œ์–ด, ๋™์‹œ์„ฑ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ๊ณต์œ , ๋ฐ์ดํ„ฐ ํ‘œํ˜„ ๋ฐฉ๋ฒ• ๋“ฑ ์ฒด๊ณ„ํ™”3. SQL ๋ฌธ์žฅ๋“ค์˜ ์ข…๋ฅ˜SQL: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ ์ •์˜/์กฐ์ž‘/์ œ์–ด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š”..

[SQLD] 1๊ณผ๋ชฉ - 2์žฅ. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ SQL

์ œ 1์ ˆ ์ •๊ทœํ™”1. ์ •๊ทœํ™”(Normalization)์ •์˜: ๋ฐ์ดํ„ฐ ๋ถ„ํ•ด ๊ณผ์ •, ์ด์ƒํ˜„์ƒ ์ œ๊ฑฐ๋ชฉ์ : ์‚ฝ์ž…/์‚ญ์ œ/๊ฐฑ์‹  ์ด์ƒํ˜„์ƒ ๋ฐฉ์ง€ํ•จ์ˆ˜์  ์ข…์†์„ฑ์— ๊ธฐ๋ฐ˜ํ•œ ์ •๊ทœํ™” ์ˆ˜ํ–‰ ํ•„์š”2. ํ•จ์ˆ˜์  ์ข…์†์„ฑ(FD, Functional Dependency)๋ฐ์ดํ„ฐ๋“ค์ด ์–ด๋–ค ๊ธฐ์ค€๊ฐ’์— ์˜ํ•ด ์ข…์†๋˜๋Š” ํ˜„์ƒ์„ ์ง€์นญ, ๊ฒฐ์ •์ž์™€ ์ข…์†์ž์˜ ๊ด€๊ณ„, ๊ฒฐ์ •์ž์˜ ๊ฐ’์œผ๋กœ ์ข…์†์ž์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ์Œ๊ฒฐ์ •์ž, ex) ํ•™๋ฒˆ, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์ข…์†์ž, ex) ์ด๋ฆ„, ํ˜ˆ์•กํ˜•, ์ถœ์ƒ์ง€, ์ฃผ์†Œ(ํ•™๋ฒˆ์€ ์ด๋ฆ„๊ณผ ํ˜ˆ์•กํ˜•์„ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •, ์ด๋ฆ„๊ณผ ํ˜ˆ์•กํ˜•์€ ํ•™๋ฒˆ์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†๋จ)3. ์ข…๋ฅ˜์ •๊ทœํ˜•(NF, Normal Form): ์ •๊ทœํ™”๋กœ ๋„์ถœ๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๊ฐ–์ถฐ์•ผ ํ•  ํŠน์„ฑ์ œ 1 ์ •๊ทœํ˜•(1NF): ๋ชจ๋“  ๋„๋ฉ”์ธ์ด ์›์ž๊ฐ‘์œผ๋กœ๋งŒ ๋˜์–ด ์žˆ๋Š” ์ •๊ทœํ˜•์ œ 2 ์ •๊ทœํ˜•(2NF): ํ…Œ์ด๋ธ” R์ด..

[SQLD] ๊ณผ๋ชฉ1 - 1์žฅ. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด

์ œ1์ ˆ. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ดํ•ด1. ๋ชจ๋ธ๋ง๋‹ค์–‘ํ•œ ํ˜„์‹ค์„ ์ถ”์ƒํ™”, ๋‹จ์ˆœํ™”ํ•˜์—ฌ ์ผ์ •ํ•œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ๋ชจ๋ธ์ด๋ž‘ ํ˜„์‹ค ์„ธ๊ฒŒ์˜ ์ถ”์ƒํ™” ๋œ ๋ฐ˜์˜ 2. ๋ชจ๋ธ๋ง ํŠน์ง•์ถ”์ƒํ™”: ์ผ์ •ํ•œ ํ˜•์‹์— ๋งž์ถฐ์„œ ํ‘œํ˜„๋‹จ์ˆœํ™”: ์ œํ•œ๋œ ํ‘œ๊ธฐ๋ฒ•์ด๋‚˜ ์–ธ์–ด๋กœ ํ‘œํ˜€๋ช…ํ™•ํ™”(=์ •ํ™•ํ™”): ์• ๋งค๋ชจํ˜ธํ•จ์„ ์ œ๊ฑฐํ•ด ์ดํ•ด๊ฐ€ ์‰ฝ๊ฒŒ ํ‘œํ˜„ 3. ๋ชจ๋ธ๋ง ํŠน์ง• ๋ฐ์ดํ„ฐ ๊ด€์ (what): ์—…๋ฌด์™€ ๋ฐ์ดํ„ฐ ๋ฐ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ๋ชจ๋ธ๋ง ํ”„๋กœ์„ธ์Šค ๊ด€์ (how): ์—…๋ฌด๊ฐ€ ์‹ค์ œ๋กœ ํ•˜๋Š” ์žˆ๋Š” ์ผ, ํ•ด์•ผ ํ•˜๋Š” ์ผ ๋ชจ๋ธ๋ง ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ๊ด€ ๊ด€์ (interaction): ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—…๋ฌด ์ฒ˜๋ฆฌ ๋ฐฉ์‹์˜ ์˜ํ–ฅ์„ ๋ชจ๋ธ๋ง ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ค‘์š”์„ฑ๊ณผ ์œ ์˜์  ์ค‘์š”์„ฑ: ํŒŒ๊ธ‰ํšจ๊ณผ, ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„, ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ์œ ์ง€ ์œ ์˜์ : ์ค‘๋ณต(์—ฌ๋Ÿฌ ์žฅ์†Œ์— ๊ฐ™์€ ์ •๋ณด ์ €์žฅX), ๋น„์œ ์—ฐ์„ฑ(๋ฐ์ดํ„ฐ์˜ ์ •์˜๋ฅผ ..