๋ชฉ๋ก๐Ÿ‘ฉ‍๐Ÿ’ป ์ปดํ“จํ„ฐ ๊ตฌ์กฐ/Database (8)

๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[SQL] ์„œ๋ธŒ์ฟผ๋ฆฌ (๋‹จ์ผ ํ–‰, ๋‹ค์ค‘ ํ–‰)

๐Ÿ‘ฉ‍๐Ÿ’ป ์„œ๋ธŒ์ฟผ๋ฆฌ : ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ ์•ˆ์— ํฌํ•จ๋œ ๋˜ ํ•˜๋‚˜์˜ ์ฟผ๋ฆฌ : ๋ฉ”์ธ ์ฟผ๋ฆฌ๊ฐ€ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” ์ข…์†์ ์ธ ๊ด€๊ณ„ SELECT * FROM ํ…Œ์ด๋ธ” WHERE ์ปฌ๋Ÿผ > (SELECT ์ปฌ๋Ÿผ FROM ํ…Œ์ด๋ธ” WHERE ์กฐ๊ฑด); โญ ํŠน์ง• - ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๊ธฐ์ค€์„ ์ด์šฉํ•œ ๊ฒ€์ƒ‰ ์œ ์šฉ - ๋ฉ”์ธ ์ฟผ๋ฆฌ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „ ํ•œ๋ฒˆ ์‹คํ–‰ - ํ•œ ๋ฌธ์žฅ์—์„œ ์—ฌ๋Ÿฌ๋ฒˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅ โญ ์ฃผ์˜์‚ฌํ•ญ - ๊ด„ํ˜ธํ™” ํ•จ๊ป˜ ์‚ฌ์šฉ - ORDER BY ์‚ฌ์šฉ X - ์—ฐ์‚ฐ์ž์˜ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์‚ฌ์šฉ - ์˜ค๋กœ์ง€ SELECT๋ฌธ์œผ๋กœ๋งŒ ์ž‘์„ฑ ๐Ÿ‘ฉ‍๐Ÿ’ป ๋‹จ์ผ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๊ฐ€ ํ•œ ํ–‰๋งŒ ๋‚˜์˜ค๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 1๊ฐœ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ธ์ฟผ๋ฆฌ๋กœ ์ „๋‹ฌ ๐Ÿ‘ฉ‍๐Ÿ’ป ๋‹ค์ค‘ ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 2๊ฐœ ์ด์ƒ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”์ธ์ฟผ๋ฆฌ๋กœ ์ „๋‹ฌ SELECT * FROM ํ…Œ์ด๋ธ” ..

[SQL] ๋ฐ์ดํ„ฐ ๋‹ค๋ฃจ๊ธฐ

๐Ÿ‘ฉ‍๐Ÿ’ป SQL (Structed Query Language) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ ์‰ฌ์šด ํ‘œ์ค€ ์–ธ์–ด โญ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๊ณต์œ ํ•ด ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ ๐Ÿ‘ฉ‍๐Ÿ’ป ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ ๊ฐ€์ง (SQL๋กœ ์ œ์–ด) โญ ํ…Œ์ด๋ธ” : ์ปฌ๋Ÿผ๊ณผ ๋ ˆ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํ‘œ : ๋ชจ๋“  ํ…Œ์ด๋ธ”์€ ๊ณ ์œ ์˜ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ถ„ // ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ SELECT ๊ฒ€์ƒ‰ํ•  ์นผ๋Ÿผ FROM ํ…Œ์ด๋ธ”; - DISTINCT : ๋šœ๋ ทํ•œ, ๋ถ„๋ช…ํ•œ ๋’ค์— ๋‚˜์˜ค๋Š” ์ปฌ๋Ÿผ์˜ ์ค‘๋ณต ์ œ๊ฑฐํ•จ - WHERE : ๊ฒ€์ƒ‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์กฐ๊ฑด์„ ์„ค์ • SELCT ๊ฒ€์ƒ‰ํ•  ์ปฌ๋Ÿผ FROM ํ…Œ์ด๋ธ” WHERE ์กฐ๊ฑด; - LIKE : ํŠน์ • ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ๋ฌธ์ž์—ด์„ ์ฐพ๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ (๋Œ€์†Œ๋ฌธ์ž๋ฅผ ์šฐ์„ ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] DCL (๋ฐ์ดํ„ฐ ์ œ์–ด์–ด) & ์ธ๋ฑ์Šค

๐Ÿ‘ฉ‍๐Ÿ’ป DCL (๋ฐ์ดํ„ฐ ์ œ์–ด์–ด) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ถŒํ•œ์„ ๊ด€๋ฆฌํ•˜๋Š” ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ์ œ์–ด - GRANT : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ถŒํ•œ ๋ถ€์—ฌ - REVOKE : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ถŒํ•œ ํšŒ์ˆ˜ - COMMIT : ํŠธ๋žœ์žญ์…˜ (๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ž‘์—… ๋‹จ์œ„) ์ž‘์—… ๋ฐ˜์˜ํ•˜์—ฌ ์ €์žฅ - ROLLBACK : ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ทจ์†Œํ•˜์—ฌ ์ด์ „ ์ƒํƒœ๋กœ ๋Œ๋ฆผ => TCL (Transaction Control Language) ๐Ÿ‘ฉ‍๐Ÿ’ป ์ธ๋ฑ์Šค (Index) : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”์˜ ๊ฒ€์ƒ‰ ์†๋„๋ฅผ ํ–ฅ์ƒ ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ : ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์กฐํšŒํ•  ๋• ๋ถˆํ•„์š” => SELECT * FROM ํ…Œ์ด๋ธ”๋ช…; โญ ์žฅ๋‹จ์  : ์ธ๋ฑ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€ ์ž‘์—… ํ•„์š” : ์ธ๋ฑ์Šค ์ €์žฅํ•  ์ถ”๊ฐ€ ์ €์žฅ ๊ณต๊ฐ„ ํ•„์š” : ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ ์ €ํ•˜ โญ ์‚ฌ์šฉ ์ „๋žต : ๊ทœ..

[๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง] ์ด์ƒ ํ˜„์ƒ๊ณผ ์ •๊ทœํ™”

๐Ÿ‘ฉ‍๐Ÿ’ป ์ด์ƒ ํ˜„์ƒ (Anomaly) : ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋กœ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜ - ์‚ฝ์ž… ์ด์ƒ : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ๋ถˆํ•„์š”ํ•œ ๋‚ด์šฉ๊นŒ์ง€ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ - ๊ฐฑ์‹  ์ด์ƒ : ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋งŒ ๊ฐฑ์‹ ๋˜์–ด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ - ์‚ญ์ œ ์ด์ƒ : ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ๋•Œ ๋‹ค๋ฅธ ์œ ์šฉํ•œ ์ •๋ณด๋„ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ๋ฌธ์ œ โญ ํ•จ์ˆ˜ ์ข…์†์„ฑ : ์†์„ฑ๋“ค ๊ฐ„์˜ ์ข…์† ๊ด€๊ณ„ : ์–ด๋–ค ์†์„ฑ X์˜ ํ•œ ๊ฐ’์ด ๋‹ค๋ฅธ ์†์„ฑ Y์— ์†ํ•œ ํ•˜๋‚˜์˜ ๊ฐ’์—๋งŒ ๋งคํ•‘๋˜๋Š” ๊ฒฝ์šฐ X ๋Š” ๊ฒฐ์ •์ž, Y๋ฅผ ์ข…์† ๐Ÿ‘ฉ‍๐Ÿ’ป ์ •๊ทœํ™” (Normalization) : ์ด์ƒ ํ˜„์ƒ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๊ณผ์ • : ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์ข…์†์„ฑ ์ œ๊ฑฐํ•˜์—ฌ ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ ์ค„์ž„ : ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ - 1์ฐจ ์ •๊ทœํ™” : ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์ด ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ๊ฐ–๋„๋ก ๋„๋ฉ”์ธ์„ ์›์ž..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ํ‚ค(key) & ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

๐Ÿ‘ฉ‍๐Ÿ’ป ํ‚ค (key) : ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ์„ ์ฐพ๊ฑฐ๋‚˜, ์ •๋ ฌํ•  ๋•Œ ๊ธฐ์ค€์ด ๋˜๋Š” ์†์„ฑ โญ ๊ธฐ๋ณธํ‚ค : ์„œ๋กœ ๋‹ค๋ฅธ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ์†์„ฑ : ์ค‘๋ณต๋˜๋Š” ๋„ ๊ฐ€์งˆ ์ˆ˜ X : ๋„ ๊ฐ’ ๊ฐ€์งˆ ์ˆ˜ X : ํ…Œ์ด๋ธ” ๋‹น 1๊ฐœ๋งŒ ์„ค์ • => PRIMARY KEY โญ ์™ธ๋ž˜ํ‚ค : ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ์œผ๋กœ ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„ ์ •์˜ : ์ฐธ์กฐ๋˜๋Š” ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค์— ์—†๋Š” ๊ฐ’์€ ์ง€์ •ํ•  ์ˆ˜ X => FOREIGN KEY (์ฐธ์กฐํ•  ์†์„ฑ) REFERENCES ์ฐธ์กฐ๋˜๋Š” ํ…Œ์ด๋ธ” (์ฐธ์กฐ๋˜๋Š” ์†์„ฑ) โญ ํ›„๋ณดํ‚ค : ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ‚ค๋กœ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ ๋งŒ์กฑ ( ๊ธฐ๋ณธํ‚ค < ํ›„๋ณดํ‚ค ) โญ ๋Œ€์ฒดํ‚ค : ํ›„๋ณดํ‚ค ์ค‘์— ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ํ‚ค ( ๋Œ€์ฒดํ‚ค < ํ›„๋ณดํ‚ค ) โญ ์Šˆํผํ‚ค : ํŠœํ”Œ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ ์ตœ์†Œ..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ์ •์˜์–ด ๋ฐ SQL & ์ œ์•ฝ์กฐ๊ฑด

๐Ÿ‘ฉ‍๐Ÿ’ป SQL (Structured Query Language) : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ ์–ธ์–ด โญ ๋ฐ์ดํ„ฐ ์ •์˜์–ด (DDL, Data Definition Language) : ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ •์˜ โญ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด (DML, Data Manipulation Language) : ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ๊ฒ€์ƒ‰ โญ ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด (DCL, Data Control Language) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ๊ถŒํ•œ ๊ถŒ๋ฆฌ ๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐ์ดํ„ฐ ํƒ€์ž… ์ž๋ฃŒํ˜• ์˜๋ฏธ VARCHAR(n) nBytes ํฌ๊ธฐ์˜ ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ INT ์ •์ˆ˜ํ˜• ์ˆซ์ž ๋ฐ์ดํ„ฐ (4Bytes) FLOAT 4Bytes ํฌ๊ธฐ์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ๋ฐ์ดํ„ฐ DATETIME ๋‚ ์งœ์™€ ์‹œ๊ฐ„ ํ˜•ํƒœ์˜ ๊ธฐ๊ฐ„ ๋ฐ์ดํ„ฐ (YYYY-MM-DD HH:M..

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€ (RDB, NoSQL)

๐Ÿ‘ฉ‍๐Ÿ’ป ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ) : ํ•œ ์กฐ์ง ์•ˆ์—์„œ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ํ†ตํ•ฉํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ โญ ๋ฐ์ดํ„ฐ : ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ์ˆ˜์ง‘๋œ ๋‹จ์ˆœํ•œ ์‚ฌ์‹ค๊ณผ ๊ฐ’๋“ค์„ ๋ชจ์•„ ๋†“์€ ๊ฒƒ โญ ์ •๋ณด : ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ๋ชฉ์ ์— ์˜ํ•ด ํ•ด์„ํ•˜๊ฑฐ๋‚˜ ๊ฐ€๊ณตํ•œ ํ˜•ํƒœ โญ ํ•„์š”์„ฑ - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ๋„ ๋ฐ”๋€Œ์–ด์•ผ ํ•จ - ๋ฐ์ดํ„ฐ ์ค‘๋ณต์˜ ๋ฌธ์ œ - ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ์ง€ํ‚ฌ ์ˆ˜ ์—†์Œ โญ ํŠน์ง• - ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ - ์ง€์†์ ์ธ ๋ณ€ํ™” - ๋™์‹œ ๊ณต์œ  - ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ฐธ์กฐ โญ ์ข…๋ฅ˜ - RDB (Relational Database) : ๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ SQL ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ => ๊ด€๊ณ„ํ˜• (Relational database) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค : ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰๊ณผ ์—ด์„ ๊ฐ€์ง€๋Š” ํ…Œ์ด๋ธ” : ..