728x90

database 8

[DB] ํŠธ๋žœ์žญ์…˜ (Transaction), ์žฅ์•  ํšŒ๋ณต

ํŠธ๋žœ์žญ์…˜ ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ์‚ฐ๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ = ์ž‘์—… ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ SQL ๋ฌธ์˜ ๋ชจ์ž„ ํŠนํžˆ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” INSERT, DELETE, UPDATE ๋ฌธ์˜ ์‹คํ–‰ ๊ด€๋ฆฌ ๋…ผ๋ฆฌ์  ์ž‘์—…์˜ ๋‹จ์œ„ ์žฅ์•  ๋ฐœ์ƒ ์‹œ ๋ณต๊ตฌ ์ž‘์—…์ด๋‚˜ ๋ณ‘ํ–‰ ์ œ์–ด ์ž‘์—…์„ ์œ„ํ•œ ์ค‘์š”ํ•œ ๋‹จ์œ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—… ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ์—ฐ์‚ฐ๋“ค์„ ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์œผ๋กœ ์ œ๋Œ€๋กœ ์ •์˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•จ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ (ACID) ์›์ž์„ฑ (Atomicity) - ํŠธ๋žœ์žญ์…˜ ์—ฐ์‚ฐ๋“ค์ด ๋ชจ๋‘ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ํ•˜๋‚˜๋„ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•จ (= all-or-nothing) - ๋งŒ์•ฝ ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ๋„์ค‘ ์žฅ์•  ๋ฐœ์ƒํ•˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์‹คํ–‰ํ•œ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ๋ชจ๋‘ ์ทจ์†Œํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ ค์•ผ..

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

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

[DB] ๋ทฐ(VIEW)

๋ทฐ(VIEW) ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ ์ €์žฅํ•˜์ง€ ์•Š๊ณ  ๋…ผ๋ฆฌ์ ์œผ๋กœ๋งŒ ์กด์žฌ but ์ผ๋ฐ˜ ํ…Œ์ด๋ธ”๊ณผ ๋™์ผํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ ๋‹ค๋ฅธ ๋ทฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒˆ๋กœ์šด ๋ทฐ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ ๋ทฐ ํ†ตํ•ด ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”(๋ทฐ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋ฐ˜์ด ๋˜๋Š” ๋ฌผ๋ฆฌ์  ํ…Œ์ด๋ธ”) ๋‚ด์šฉ ์‰ฝ๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” ์ž‘์—…์€ ์ œํ•œ์  →→ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์„ ๋“ค์—ฌ๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜ ์—ญํ• ์„ ๋‹ด๋‹น, ๋ฌผ๋ฆฌ์ X, ๋…ผ๋ฆฌ์  ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ๋ทฐ ์ƒ์„ฑ : CREATE VIEW ๋ฌธ CREATE VIEW ๋ทฐ_์ด๋ฆ„[(์†์„ฑ_๋ฆฌ์ŠคํŠธ)] AS SELECT ๋ฌธ [WITH CHECK OPTION]; CREATE VIEW ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์ƒ์„ฑํ•  ๋ทฐ์˜ ์ด๋ฆ„๊ณผ ๋ทฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ ์ด๋ฆ„ ๋‚˜์—ด AS ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ SELECT ๋ฌธ..

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

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

[Linux] ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ ๋ถ„ํ• ํ•˜๊ธฐ (split ์‚ฌ์šฉ)

๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํŒŒ์ผ์„ ๋ฐ›๊ฑฐ๋‚˜, ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์„ ๋ถ„ํ• ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. csvํŒŒ์ผ๋„ ๊ฐ€๋Šฅํ•˜๊ณ , ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†๋Š” ํŒŒ์ผ ๋“ฑ ๋ชจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค. 1. ํŒŒ์ผ ์‚ฌ์ด์ฆˆ๋กœ ๋ถ„ํ•  # 100kb ๋‹จ์œ„๋กœ ๋ถ„ํ•  split -b 100k [ํŒŒ์ผ๋ช…] # 100mb ๋‹จ์œ„๋กœ ๋ถ„ํ•  split -b 100m [ํŒŒ์ผ๋ช…] 2. ํŠน์ • ๋ผ์ธ ์ˆ˜๋กœ ๋ถ„ํ•  # 10000์ค„ ๋‹จ์œ„๋กœ ๋ถ„ํ•  split -l 10000 [ํŒŒ์ผ๋ช…] # 1000000์ค„ ๋‹จ์œ„๋กœ ๋ถ„ํ•  split -l 1000000 [ํŒŒ์ผ๋ช…]

Linux 2021.02.09

[MySQL] ๋Œ€์šฉ๋Ÿ‰ ํ…Œ์ด๋ธ” csv, txt ํŒŒ์ผ ํ˜•ํƒœ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ & ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

txt ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ select * from [ํ…Œ์ด๋ธ”๋ช…] into outfile '[ํŒŒ์ผ๋ช…].txt' character set utf8mb4 fields terminated by ',', optionally enclosed by '"' escaped by '\\' lines terminated by '\n'; csv ํŒŒ์ผ๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ select * from [ํ…Œ์ด๋ธ”๋ช…] into outfile '[ํŒŒ์ผ๋ช…].csv' character set utf8mb4 fields terminated by ',', optionally enclosed by '"' escaped by '\\' lines terminated by '\n'; txt ํŒŒ์ผ ํ…Œ์ด๋ธ”๋กœ ์ฝ์–ด์˜ค๊ธฐ load data infile '[ํŒŒ์ผ๋ช…].txt' ..

DB(Database)/MySQL 2021.02.09

[MySQL] SQL ์ฟผ๋ฆฌ๋ฌธ ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ 1 - MySQL Workbench, SELECT๋ฌธ, USE๊ตฌ๋ฌธ, DB ๋ชฉ๋ก ํ™•์ธ

SELECT๋ฌธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด ํ…Œ์ด๋ธ”์—์„œ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ์ดˆ์ ์ธ ๊ตฌ๋ฌธ SELECT ์—ด์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๋ฝ‘๋Š” ๊ตฌ๋ฌธ ์‚ฌ์šฉ ์‹œ WHERE, GROUP BY, HAVING, ORDER BY์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š” SELECT ์—ด์ด๋ฆ„ FROM ํ…Œ์ด๋ธ”์ด๋ฆ„ WHERE ์กฐ๊ฑด GROUP BY ๊ธฐ์ค€ HAVING ์กฐ๊ฑด ORDER BY USE๊ตฌ๋ฌธ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ง€์ • Workbench์—์„œ ์ง์ ‘ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅ USE [๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…] SELECT * FROM [ํ…Œ์ด๋ธ”๋ช…] ํ…Œ์ด๋ธ” ์•ˆ์˜ ๋ชจ๋“  ์—ด ์ถ”์ถœํ•˜๋Š” ์ฟผ๋ฆฌ๋ฌธ ์„ ํƒํ•œ DB๊ฐ€ sqldb๋ผ๋ฉด ์•„๋ž˜ ๋‘ ๋ฌธ์žฅ์€ ๋™์ผํ•˜๋‹ค SELECT * FROM sqldb.table1; SELECT * FROM table1; MySQL Workbench ..

DB(Database)/MySQL 2021.01.15
728x90