๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป Computer Science/๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค25

[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(NoSQL) ์ฐจ์ด RDB์™€ NoSQL ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDB; Relational Database) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)๋Š” ์‚ฌ์ „์— ์—„๊ฒฉํ•˜๊ฒŒ ์ •์˜๋œ DB schema๋ฅผ ์š”๊ตฌํ•˜๋Š” table ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค. ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (NoSQL; Not only SQL) table ํ˜•์‹์ด ์•„๋‹Œ ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. RDB๋Š” ์—„๊ฒฉํ•œ schema๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ ์ค‘๋ณต์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ Update๊ฐ€ ๋งŽ์„ ๋•Œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. NoSQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค‘๋ณต์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ update ์‹œ ๋ชจ๋“  ์ปฌ๋ ‰์…˜์—์„œ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— update๊ฐ€ ์ ๊ณ  ์กฐํšŒ๊ฐ€ ๋งŽ์„ ๋•Œ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. * ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋ž€? ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋Š” ํ‹€์ด ์žกํ˜€์žˆ์ง€ ์•Š๊ณ  ์‚ฌ์ „ ์ •์˜๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•˜๊ณ  ๋ฐฉ๋Œ€ํ•œ ์–‘์˜ ๋ฐ์ด.. 2023. 11. 9.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] left outer join๊ณผ join(=inner join) ์ฐจ์ด, JOIN์„ ํ•˜๋Š” ์ด์œ  ๋‚ด๋ถ€์กฐ์ธ (join = inner join )์ด๋ž€? join์ด๋ž€ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. inner join( ๋˜๋Š” join )์€ ๋‚ด๋ถ€์กฐ์ธ์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋ฉฐ, ์กฐ์ธํ•œ ํ…Œ์ด๋ธ” ๋ชจ๋‘ ์žˆ๋Š” ๋‚ด์šฉ๋งŒ join๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๋‘ ํ…Œ์ด๋ธ”์„ joinํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ํ…Œ์ด๋ธ”์ด 1:N ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 1:N ๊ด€๊ณ„๋Š” ์ฃผ๋กœ primary key์™€ foreign key ๊ด€๊ณ„๋กœ ๋งบ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. (์ƒํ˜ธ์กฐ์ธ์˜ ๊ฒฝ์šฐ์—๋Š” PK-FK ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ์—ฌ๋„ ๋ฉ๋‹ˆ๋‹ค.) SQL JOIN ์˜ˆ์‹œ ํ…Œ์ด๋ธ” video table id title y_id 1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์™„์ „์ •๋ณต 2 2 ๋ณผ๋ฆฌ๋น„์•„ ๊ด‘์‚ฐ ํƒ๋ฐฉ๊ธฐ 4 3 ์นจvsํŽ„ ํ† ๋ก  3 4 ์šด์˜์ฒด์ œ ์™„์ „ ์ •๋ณต 2 5 ์ถฉ๊ฒฉ์‹คํ™” ๋Œ€ํ•œ๋ฏผ๊ตญ์ด ํ•ด๋ƒˆ๋‹ค Nul.. 2023. 11. 9.
[๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ N:M ๊ด€๊ณ„ ๋ž€? ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS) ๋ž€? ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ–‰๊ณผ ์—ด๋กœ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฐ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๋“ค์€ ํ–‰(row)์— ์ €์žฅ๋˜๊ณ , ํ•ญ๋ชฉ์˜ ์†์„ฑ์€ ์—ด(column)์ด๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—ด์€ ํ•ญ๋ชฉ์˜ ์†์„ฑ์ธ ๋งŒํผ ์ž…๋ ฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•์ด ์ •ํ•ด์ง‘๋‹ˆ๋‹ค. * ์—ด(column) ํ•„๋“œ(field)๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ํ•ญ๋ชฉ์˜ ์†์„ฑ(๋ช…์นญ)์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํ•„๋“œ ๋งˆ๋‹ค ๊ฐ๊ฐ ์ •์ˆ˜, ํ…์ŠคํŠธ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. * ํ–‰(row) ๋ ˆ์ฝ”๋“œ(record)๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ, ๊ฐ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. * ์Šคํ‚ค๋งˆ(schema) ํ•„๋“œ๋Š” ๋ฐ์ดํ„ฐ ์œ ํ˜•๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ œ์•ฝ์‚ฌํ•ญ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ์ œ์•ฝ์‚ฌํ•ญ์„ ์Šคํ‚ค๋งˆ๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•„๋“œ๋Š” ์ค‘๋ณต ๊ฐ’์„ ํ•ด๋‹น ํ–‰์— ์ €์žฅํ•  ์ˆ˜ ์—†๋‹ค๊ฑฐ๋‚˜, ๋ฐ˜๋“œ์‹œ ๊ฐ’์„ ๊ฐ€์ ธ.. 2023. 11. 7.
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ํšŒ๋ณต(Recovery)๋ž€? ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(DataBase) ํšŒ๋ณต(Recovery) ํŠธ๋žœ์žญ์…˜๋“ค์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘ ์žฅ์• ๋กœ ์ธํ•ด ์†์ƒ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์†์ƒ๋˜๊ธฐ ์ด์ „์˜ ์ •์ƒ์ ์ธ ์ƒํƒœ๋กœ ๋ณต๊ตฌ์‹œํ‚ค๋Š” ์ž‘์—…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. * ํŠธ๋žœ์žญ์…˜(Transaction) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋œปํ•œ๋‹ค. ์žฅ์• ์˜ ์›์ธ์œผ๋กœ๋Š” ๋””์Šคํฌ ๋ถ•๊ดด, ์ „์› ๊ณ ์žฅ์œผ๋กœ ์ธํ•œ ํ•˜๋“œ์›จ์–ด ๊ฒฐํ•จ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜๋กœ ์ธํ•œ ์†Œํ”„ํŠธ์›จ์–ด ๊ฒฐํ•จ, ์‚ฌ๋žŒ์˜ ์‹ค์ˆ˜(ํœด๋จผ ์—๋Ÿฌ) ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ์›์ธ์œผ๋กœ ๋ฐœ์ƒ๋˜๋Š” ์žฅ์• ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํฌ๊ฒŒ 3๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Ÿฌํ•œ ์žฅ์• ์— ๋Œ€ํ•ด ํšŒ๋ณต์„ ์œ„ํ•ด DBMS๋Š” ํšŒ๋ณต๊ด€๋ฆฌ์ž(recovery manager)๋ฅผ ๋‘๊ณ  ๋Œ€๋น„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์žฅ์•  ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋…ผ๋ฆฌ์  ์˜ค๋ฅ˜๋‚˜ ๋‚ด๋ถ€ ์กฐ๊ฑด ์ฆ‰, ์ž…๋ ฅ .. 2023. 9. 4.
728x90
๋ฐ˜์‘ํ˜•