728x90

dbms 10

[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๊ทœํ™”

์ •๊ทœํ™”์˜ ํ•„์š”์„ฑ, ์ด์ƒํ˜„์ƒ์˜ ์˜๋ฏธ ์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜ ์ข…์†์„ฑ์˜ ๊ฐœ๋… ์ดํ•ด ์ •๊ทœํ˜•์˜ ์œ ํ˜•, ๊ด€๊ณ„ ํŒŒ์•… ์ •๊ทœํ™”์˜ ๊ฐœ๋…๊ณผ ์ด์ƒ ํ˜„์ƒ ์ด์ƒ ํ˜„์ƒ์˜ ์ข…๋ฅ˜ ์‚ฝ์ž… ์ด์ƒ: ์ƒˆ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์œ„ํ•ด ๋ถˆํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์‚ฝ์ž…ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ ๊ฐฑ์‹  ์ด์ƒ: ์ค‘๋ณต ํˆฌํ”Œ ์ค‘ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ์ผ์น˜ํ•˜๊ฒŒ ๋˜๋Š” ๋ชจ์ˆœ์˜ ๋ฌธ์ œ ์‚ญ์ œ ์ด์ƒ: ํˆฌํ”Œ์„ ์‚ญ์ œํ•˜๋ฉด ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊นŒ์ง€ ํ•จ๊ป˜ ์‚ญ์ œ๋˜๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค์˜ ๋ฌธ์ œ ์ •๊ทœํ™” ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜๊ธฐ ์•Š๋„๋ก, ๋ฆด๋ ˆ์ด์…˜์„ ๊ด€๋ จ ์žˆ๋Š” ์†์„ฑ๋“ค๋กœ๋งŒ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ๋ฆด๋ ˆ์ด์…˜์„ ๋ถ„ํ•ดํ•˜๋Š” ๊ณผ์ • ํ•จ์ˆ˜์„ฑ ์ข…์†์„ฑ์„ ํŒ๋‹จํ•ด ์ •๊ทœํ™” ์ˆ˜ํ–‰ ํ•จ์ˆ˜์„ฑ ์ข…์†์„ฑ(FD; Functional Dependency): ์†์„ฑ๋“ค ๊ฐ„์˜ ๊ด€๋ จ์„ฑ ํ•จ์ˆ˜ ์ข…์† X๊ฐ€ Y๋ฅผ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์ด ๋ชจ๋“  ํˆฌํ”Œ์—์„œ ํ•˜๋‚˜์˜ X๊ฐ’์— ๋Œ€ํ•œ ..

[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์‚ฌ์šฉ์ž์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋Œ€ํ‘œ์ ์ธ ์„ค๊ณ„ ๋ฐฉ๋ฒ• E-R ๋ชจ๋ธ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ด์šฉํ•œ ์„ค๊ณ„ ์ •๊ทœํ™”๋ฅผ ์ด์šฉํ•œ ์„ค๊ณ„ E-R ๋ชจ๋ธ๊ณผ ๋ฆด๋ ˆ์ด์…˜ ๋ณ€ํ™˜ ๊ทœ์น™์„ ์ด์šฉํ•œ ์„ค๊ณ„ 1๋‹จ๊ณ„ ์š”๊ตฌ ์‚ฌํ•ญ ๋ถ„์„ - ์ฒ˜๋ฆฌํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ ํŒŒ์•…, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์šฉ๋„ ํŒŒ์•… - ๊ฒฐ๊ณผ๋ฌผ: ์š”๊ตฌ ์‚ฌํ•ญ ๋ช…์„ธ์„œ 2๋‹จ๊ณ„ ๊ฐœ๋…์  ์„ค๊ณ„ - DBMS์— ๋…๋ฆฝ์ ์ธ ๊ฐœ๋…์  ๊ตฌ์กฐ ์„ค๊ณ„ - ๊ฒฐ๊ณผ๋ฌผ: ๊ฐœ๋…์  ์Šคํ‚ค๋งˆ(E-R ๋‹ค์ด์–ด๊ทธ๋žจ) 3๋‹จ๊ณ„ ๋…ผ๋ฆฌ์  ์„ค๊ณ„ - DBMS์— ์ ํ•ฉํ•œ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ ์„ค๊ณ„ - ๊ฒฐ๊ณผ๋ฌผ: ๋…ผ๋ฆฌ์  ์Šคํ‚ค๋งˆ(๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ) 4๋‹จ๊ณ„ ๋ฌผ๋ฆฌ์  ์„ค๊ณ„ - DBMS๋กœ ๊ตฌํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ ์„ค๊ณ„ - ์ €์žฅ ์žฅ์น˜์— ์ ํ•ฉํ•œ ์ €์žฅ ๋ ˆ์ฝ”๋“œ, ์ธ๋ฑ์Šค์˜ ๊ตฌ์กฐ ๋“ฑ ์„ค๊ณ„ - ์ธ๋ฑ์Šค์— ๋น ๋ฅด๊ฒŒ ์ ‘๊ทผํ•  ..

[DB] ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

5์žฅ. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ œ์•ฝ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ฐœ๋…์  ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ•˜๋‚˜์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์— ์ €์žฅ (๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋‹ค์ค‘ ๊ฐ’ ์†์„ฑ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์ฐจ์ˆ˜๋Š” 6, ์นด๋””๋„๋ฆฌํ‹ฐ๋Š” 4 ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ์šฉ์–ด ๋ฆด๋ ˆ์ด์…˜(relation) 2์ฐจ์› ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ ๊ฒƒ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํŒŒ์ผ(file)์— ๋Œ€์‘ ์†์„ฑ(attribute) ๋ฆด๋ ˆ์ด์…˜์˜ ์—ด = ์• ํŠธ๋ฆฌ๋ทฐํŠธ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํ•„๋“œ(field)์— ๋Œ€์‘ ํˆฌํ”Œ(tuple) ๋ฆด๋ ˆ์ด์…˜์˜ ํ–‰ ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ๋ ˆ์ฝ”๋“œ(record)์— ๋Œ€์‘ ๋„๋ฉ”์ธ(domain) ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’์˜ ์ง‘ํ•ฉ ์†์„ฑ ..

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

4์žฅ. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๊ณผ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๊ฐœ์ฒด - ๊ด€๊ณ„ ๋ชจ๋ธ ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ: ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋ธ๋ง ํ•˜๋Š” ๋„๊ตฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง๊ณผ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ํ˜„์‹ค ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ๋ณ€ํ™˜ ๊ณผ์ • (ํ˜„์‹ค ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” data๋Š” ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— data์˜ ์„ ๋ณ„ ๋˜ํ•œ ๊นŠ์€ ๋‹จ๊ณ„๋กœ ์ด๋ฃจ์–ด์ง) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์˜ ํ•ต์‹ฌ ๊ณผ์ • ์ถ”์ƒํ™” ์ €์žฅํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”, ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ์•„์•ผ ํ•จ. (ํŠน์„ฑ, ์†์„ฑ, ๊ณผ์ •) (๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด์—์„œ ์ถ”์ƒํ™”์˜ ๊ฒฐ๊ณผ๋กœ java๊ฐ€ class๋กœ ๋ณ€ํ™˜๋จ) 2๋‹จ๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•ด ๊ฐœ๋… ์„ธ๊ณ„๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ๊ฐœ๋… ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ตฌ์กฐ๋กœ ..

[MySQL] ๋‚ด์žฅํ•จ์ˆ˜ - ์ˆ˜ํ•™ ํ•จ์ˆ˜, ๋‚ ์งœ/์‹œ๊ฐ„ ํ•จ์ˆ˜, ์‹œ์Šคํ…œ/์ •๋ณด ํ•จ์ˆ˜

์ˆ˜ํ•™ ํ•จ์ˆ˜ ABS(์ˆซ์ž) : ์ ˆ๋Œ€๊ฐ’ ๊ณ„์‚ฐ CEILING(์ˆซ์ž) : ์˜ฌ๋ฆผ FLOOR(์ˆซ์ž) : ๋‚ด๋ฆผ ROUNG(์ˆซ์ž) : ๋ฐ˜์˜ฌ๋ฆผ CONV(์ˆซ์ž, ๊ธฐ์กด ์ง„์ˆ˜, ๋ฐ”๊ฟ€ ์ง„์ˆ˜) : ๊ธฐ์กด ์ง„์ˆ˜์—์„œ ๋‹ค๋ฅธ ์ง„์ˆ˜๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ํ•จ์ˆ˜ SELECT ABS(-100); SELECT CEILING(4.7), FLOOR(4.7), ROUND(4.7); SELECT CONV('AA',16,2), CONV(100,10,8); -- 16์ง„์ˆ˜ AA๋ฅผ 2์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝ, 10์ง„์ˆ˜์˜ 100์„ 8์ง„์ˆ˜๋กœ ๋ณ€๊ฒฝ MOD(์ˆซ์ž1, ์ˆซ์ž2), ์ˆซ์ž1 % ์ˆซ์ž2 : ์ˆซ์ž1์„ ์ˆซ์ž2๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๋ฐ˜ํ™˜ POW(์ˆซ์ž1, ์ˆซ์ž2) : ์ˆซ์ž1์„ ์ˆซ์ž2๋งŒํผ ๊ฑฐ๋“ญ์ œ๊ณฑํ•œ ๊ฐ’ ๋ฐ˜ํ™˜ SQRT(์ˆซ์ž) : ์ˆซ์ž์˜ ์ œ๊ณฑ๊ทผ ๋ฐ˜ํ™˜ select mod(228, 10), 228%10, ..

DB(Database)/MySQL 2021.02.06

[DB] ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

1์žฅ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ๋ณธ ๊ฐœ๋… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•„์š”์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜์™€ ํŠน์„ฑ ๋ฐ์ดํ„ฐ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜์™€ ํŠน์ง• ๋ฐ์ดํ„ฐ์™€ ์ •๋ณด ๋ฐ์ดํ„ฐ: ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ๋‹จ์ˆœํžˆ ๊ด€์ฐฐํ•˜๊ฑฐ๋‚˜ ์ธก์ •ํ•˜์—ฌ ์ˆ˜์ง‘ํ•œ ์‚ฌ์‹ค์ด๋‚˜ ๊ฐ’ ์ •๋ณด(information): ์˜์‚ฌ ๊ฒฐ์ •์— ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๋ฌผ ์›์œ ์™€ ๊ฐ€๊ณต์šฐ์œ ๋กœ ๋น„์œ  ๊ฐ€๋Šฅ (์›์œ : ๋ฐ์ดํ„ฐ, ๊ฐ€๊ณต ์šฐ์œ : ์ •๋ณด) ์ •๋ณด์ฒ˜๋ฆฌ ๋ฐ์ดํ„ฐ์—์„œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ณผ์ •, ๋ฐฉ๋ฒ• ์ƒํ™ฉ์— ๋งž๊ฒŒ ํ•ด์„ํ•ด ์˜๋ฏธ ์žˆ๋Š” ๊ฒฐ๊ณผ ๋„์ถœ ์ •๋ณด ์‹œ์Šคํ…œ ์กฐ์ง ์šด์˜์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ง‘ํ•ด ์ €์žฅํ•ด ๋‘์—ˆ๋‹ค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ์ˆ˜๋‹จ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ •๋ณด ์‹œ์Šคํ…œ ์•ˆ์—์„œ ๋ฐ์ดํ„ฐ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์ œ๊ณตํ•˜๋Š” ์—ญํ•  ๋‹ด๋‹น ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ†ตํ•ฉ..

[PostgreSQL] Python์—์„œ PostgreSQL ์ ‘์†ํ•˜๊ธฐ, python์—์„œ SQL ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰ํ•˜๊ธฐ + ์ฟผ๋ฆฌ ์‹คํ–‰ ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์œผ๋กœ ๋งŒ๋“ค๊ธฐ

PostgreSQL ์„œ๋ฒ„์— ์ ‘์†ํ•˜๊ธฐ psycopg2 ์„ค์น˜ import psycopg2 conn_string = "host = 'localhost' dbname = 'db๋ช…' user = 'user๋ช…' password = 'ํŒจ์Šค์›Œ๋“œ'" conn = psycopg2.connect(conn_string) cur = conn.cursor() ์œ„์˜ ์ฝ”๋“œ ์‹คํ–‰ ํ›„ SQL ์ฟผ๋ฆฌ๋ฅผ ํŒŒ์ด์ฌ์œผ๋กœ ์‹คํ–‰ ๊ฐ€๋Šฅ import pandas as pd cur.execute("์ฟผ๋ฆฌ๋ฌธ") # ์˜ˆ์‹œ # cur.execute("SELECT * FROM [DB๋ช…];") result = cur.fetchall() # result์— ๊ฒฐ๊ณผ ์ €์žฅ # ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ pandas dataframe ํ˜•์‹์œผ๋กœ ๋งŒ๋“ค๊ธฐ my_df = pd.DataFra..

[PostgreSQL] PostgreSQL์˜ GUI ํˆด pgAdmin ์‚ฌ์šฉ

sql์„ ์ด์šฉํ•œ ๋ฐ๋ฒ ๊ด€๋ฆฌ ์‹œ csv๋‚˜ ๋‹ค๋ฅธ ํŒŒ์ผ ํ˜•์‹์œผ๋กœ export/import ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒŒ ๊ฐ€์žฅ ํŽธ๋ฆฌํ•จ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ schemas table ์„ ํƒ ํ›„ Tools -> Import/Export ์„ ํƒ export ํ›„ ํŒŒ์ผ ์ด๋ฆ„ .csv๋กœ ๋ฐ”๊พธ๋ฉด csv๋กœ ์ €์žฅ๋จ

728x90