[DynamoDB] DynamoDB๋ž€
ยท
๐Ÿ’ป CS/Database
DynamoDBAWS์˜ ๋Œ€ํ‘œ์ ์ธ NoSQL ๊ธฐ๋ฐ˜ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.key-value์™€ ๋ฌธ์„œ ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.์‚ฌ์šฉํ•œ๋งŒํผ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ณ , ๋ฒ„์ „ ์—…๊ทธ๋ ˆ์ด๋“œ, ๊ฐ€๋™ ์ค‘๋‹จ ๋“ฑ ์œ ์ง€๊ด€๋ฆฌ๊ฐ€ ํ•„์š”์—†์Šต๋‹ˆ๋‹ค.์ด์™ธ์˜ ํŠน์ง•์œผ๋ก  ์ด๋ฏธ์ง€, ๋™์˜์ƒ ๋“ฑ ์–ด๋– ํ•œ ํ˜•ํƒœ๋„ ์ €์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ณ , ์งˆ์˜ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ , ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ ์Šคํ‚ค๋งˆ ์ƒ์„ฑ์ด ํ•„์š”์—†๋‹ค๋Š” ํŠน์ง•์ด ์žˆ์Šต๋‹ˆ๋‹ค.๊ธฐ์กด RDBMS์™€ ๋‹ค๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ๋ฐฉ์‹์œผ๋กœ ์ €์žฅํ•˜๋ฏ€๋กœ ์ˆ˜ํ‰ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”๊ฐ€Tables & Items : ๋กœ์šฐ์™€ ์ปฌ๋Ÿผ ๋Œ€์‹ ์—, ๋‹ค์ด๋‚˜๋ชจ DB๋Š” items(JSON๊ณผ ๊ฐ™์€ ๊ฐ์ฒด)์„ ํ…Œ์ด๋ธ”์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.Primary Keys : ๊ฐ๊ฐ์˜ item๋“ค์€ ๊ณ ์œ ํ•œ primary key๋ฅผ ๊ฐ€์ ธ์•ผํ•ฉ๋‹ˆ๋‹ค. primaryํ‚ค๋Š” partition..
[์˜ค๋ผํด] MERGE INTO
ยท
๐Ÿ’ป CS/Database
MERGE INTOํ•ด๋‹น ๊ฐ’์ด ์žˆ์œผ๋ฉด UPDATEํ•˜๊ณ  ์—†์œผ๋ฉด INSERTํ•˜๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.๋งŒ์•ฝ์— ํ…Œ์ด๋ธ” ํ•˜๋‚˜๋งŒ ๊ฐ€์ง€๊ณ  ์ž‘์—…์„ ํ•  ๊ฒฝ์šฐ, MERGE INTO ํ…Œ์ด๋ธ” USING DUAL ~ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.์˜ˆ์ œmelon_chart ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค.melon_chart_new ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค.melon_chart_new์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ์™€ melon_chart์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๋ณต๋˜์ง€ ์•Š๊ฒŒ ํ•ฉ์น˜๊ณ , ์ตœ์‹ ํ™”๋ฅผ ์‹œ์ผœ์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.merge into melon_chart m1using melon_chart_new m2on (m1.singer = m2.singer and m1.song = m2.song)when matched then update set m1.ranking = m2.rank..
[์˜ค๋ผํด] WITH ๊ตฌ๋ฌธ
ยท
๐Ÿ’ป CS/Database
WITH ๊ตฌ๋ฌธORACLE9i R2 ์ดํ›„, ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ๋ฌธ์œผ๋กœ WITH ๊ตฌ๋ฌธ์€ ์ด๋ฆ„์ด ๋ถ€์—ฌ๋œ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ธ”๋ก์œผ๋กœ ์ธ๋ผ์ธ ๋ทฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ๋ณ„๋„๋กœ ๋นผ์„œ ์ด๋ฆ„์„ ์ง€์–ด์ฃผ๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.๋™์ผ ์ฟผ๋ฆฌ๋ธ”๋ก์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ, ์ด๋ฆ„์„ ๋ถ™์—ฌ ํ•œ ๊ณณ์— ์ •์˜ํ•˜๊ณ  ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ž์ฃผ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ ํ•œ ๋ฒˆ๋งŒ parsing๋˜๊ณ  ์‹คํ–‰ ๊ณ„ํš์ด ์ˆ˜๋ฆฝ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ ํ–ฅ์ƒ์— ์ข‹์Šต๋‹ˆ๋‹ค.์˜ˆ์‹œ์•„๋ž˜์™€ ๋น„์Šทํ•œ ํ…Œ์ด๋ธ”์—์„œ ์กด์žฌํ•˜์ง€ ์•Š์€ ์—ฐ๋„๋„ ๊ฐ™์ด ๋ฝ‘์•„๋‚ด๊ธฐ ์œ„ํ•ด, WITH์ ˆ์„ ์—…๋ฌด์— ์‚ฌ์šฉํ–ˆ๋˜ ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.์•„๋ž˜์ฒ˜๋Ÿผ WITH๊ตฌ๋ฌธ์„ ์ด์šฉํ•ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์—ฐ๋„๋„ ํฌํ•จํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.์ฃผ์˜์ ์—ฌ๋Ÿฌ ๋ฒˆ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์•„๋‹ˆ์—ˆ์ง€๋งŒ, WITH ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.๋‘ ๋ฒˆ์ด์ƒ ์‚ฌ์šฉ๋˜๋Š” WITH์ ˆ์€ ๊ฒฐ๊ณผ๊ฐ’์ด TEMP ..
[์˜ค๋ผํด] NULL๊ณผ ๊ณต๋ฐฑ
ยท
๐Ÿ’ป CS/Database
์ค‘์†Œ๊ธฐ์—… DB ์ง๋ฌด ๋ฉด์ ‘ ๋ดค์—ˆ๋Š”๋ฐ, ์˜ค๋ผํด์—์„œ NULL์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€์™€ ๊ด€๋ จ๋œ ์งˆ๋ฌธ์ด ๊ธฐ์ˆ ๋ฉด์ ‘ ์งˆ๋ฌธ ์ค‘ ํ•˜๋‚˜์˜€์Šต๋‹ˆ๋‹ค. ์ •๋‹ต์„ ๋งž์ท„์ง€๋งŒ, ๋‹ค์‹œ ์ •๋ฆฌํ•˜๊ณ ์ž ํฌ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.์š”์•ฝํ•˜์ž๋ฉด, ๊ณต๋ฐฑ์ด ์—†๋Š” ''์€ NULL ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ณต๋ฐฑ์ด ์žˆ๋‹ค๋ฉด ๋ฌธ์ž์—ด์ด๊ธฐ์— NULL ์ฒ˜๋ฆฌ ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ํ…Œ์ŠคํŠธ ์‚ฌ์ง„์€ ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค.
[Oracle] ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „ ํ™•์ธ ์ฟผ๋ฆฌ
ยท
๐Ÿ’ป CS/Database
์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „ ํ™•์ธ ์ฟผ๋ฆฌ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒ„์ „์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค.select * from v$version;์˜ค๋ผํด 10g10๋ฒ„์ „๋ถ€ํ„ฐ ์˜ค๋ผํด์˜ ์ธํ„ฐ๋„ท์—์„œ ๊ทธ๋ฆฌ๋“œ๋กœ ์„œ๋น„์Šค๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œ ํ•˜๋Š” ์‹œ๊ธฐ์— ๋ฐœํ‘œํ•œ ๋ฒ„์ „๊ธฐ์—…๋‚ด์˜ ์ค‘์†Œํ˜• ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ์œ ํœด์ž์›์„ ํ™œ์šฉํ•˜๋‚˜์˜ ์ปค๋‹ค๋ž€ ์„œ๋ฒ„๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฆฌํ•˜๊ฒŒ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ž…ํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง.Provisioning(ํ”„๋กœ๋น„์ €๋‹), Load Balancing(๋ถ€ํ•˜๊ด€๋ฆฌ), Automation(์ž๋™ํ™”) ์ง€์›์ฐธ๊ณ [ORACLE] ์˜ค๋ผํด - 2. ์˜ค๋ผํด ๋ฒ„์ „๋ณ„ ํŠน์ง• ๋ฐ ์ฐจ์ด์ 