๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Data12

DB] JOIN JOIN ์ด๋ž€? - ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• - ๋‘ ํ…Œ์ด๋ธ”์„ ์กฐ์ธ์„ ํ•˜๋ ค๋ฉด ์ตœ์†Œ ํ•˜๋‚˜์˜ ๊ณตํ†ต๋œ ์ปฌ๋Ÿผ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. - ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ PK ์™€ FK ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ์ธ์— ํ™œ์šฉ ํ•œ๋‹ค. JOIN ์˜ ๋ฐฉ๋ฒ• 1) cross join : ๊ฑฐ์˜ ์•ˆ์“ด๋‹ค. 2) equi join : ์ œ์ผ ๋งŽ์ด ์‚ฌ์šฉ 3) non-equi join : ์•ˆ์“ด๋‹ค. 4) self join : ๊ฑฐ์˜ ์•ˆ์“ด๋‹ค. 5) outer join : ๋งŽ์ด ์‚ฌ์šฉ ํ•œ๋‹ค. 1. CROSS JOIN - ์นด๋‹ค์‹œ์•ˆ ๊ณฑ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. - ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ๊ณฑํ•œ ํ–‰์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. FROM [table A] CROSS JOIN [table B]; emp ํ…Œ์ด๋ธ”์˜ ename ํ–‰(row)์ด 11๊ฐœ dept ํ…Œ์ด๋ธ”์˜ deptno ํ–‰(row)์ด 5๊ฐœ 11 x 5 =.. 2022. 5. 6.
DB] IN / EXSITS / ANY / ALL / limit IN & EXISTS 1. IN - '=' ๋น„๊ต๋งŒ ๊ฐ€๋Šฅ, OR ์กฐ๊ฑด์˜ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜จ๋‹ค. - ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค. 2. EXISTS - ๊ธฐ๋ณธ์ ์œผ๋กœ IN๊ณผ ๊ฐ™์œผ๋‚˜ ์ฐธ / ๊ฑฐ์ง“ ๋ฐ˜ํ™˜ - ๋ฉ”์ธ์ฟผ๋ฆฌ ๋น„๊ต์กฐ๊ฑด์ด ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ค‘์— '๋งŒ์กฑํ•˜๋Š” ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ์žˆ์œผ๋ฉด ์ฐธ(1)/๊ฑฐ์ง“(0) ๋ฐ˜ํ™˜ - ๋ฉ”์ธ์ฟผ๋ฆฌ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค. ์ฒซ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฌธ์˜ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋“  ๊ฐ’์ด ๋‹ค ๋‚˜์™”๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์žˆ๋‹ค => exist๋ฅผ ๊ฑฐ์ณ '1'์„ ๋ฐ˜ํ™˜ => ๊ฒฐ๊ตญ ๋‘๋ฒˆ์žฌ ์ฟผ๋ฆฌ๋ฌธ๊ณผ ๊ฐ™์•„์ง„๋‹ค. where ์ ˆ์— 1์ด ๋“ค์–ด๊ฐ€๋ฉด ์ฐธ => ๋ชจ๋“  ๊ฐ’์„ ๋ณด์—ฌ์ค€๋‹ค. where ์ ˆ์— 0์ด ๋“ค์–ด๊ฐ€๋ฉด ๊ฑฐ์ง“ => ์•„๋ฌด ๊ฐ’๋„ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š”๋‹ค. EXISTS ์‚ฌ์šฉ ๋ฐฉ๋ฒ• 1) ๋ฉ”์ธ์ฟผ๋ฆฌ๊ฐ€ ๋จผ์ € ์‹คํ–‰๋œ๋‹ค. 2) emp ์˜ ๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ (๋ฉ”์ธ์ฟผ๋ฆฌ) ๋“ฑ.. 2022. 5. 6.
DB] ์„œ๋ธŒ์ฟผ๋ฆฌ , ์ƒํ•˜๊ด€๊ณ„์ฟผ๋ฆฌ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ž€? ์ฟผ๋ฆฌ ์•ˆ์˜ ์ฟผ๋ฆฌ ์‚ฌ์ „์— ์ถ”์ถœ๋œ ๋‚ด์šฉ์—์„œ ์žฌ๊ฒ€์ƒ‰ ํ•˜๊ฑฐ๋‚˜, ๊ฒ€์ƒ‰๋œ ๋‚ด์šฉ์„ ๊ฐ€์ƒ ์ปฌ๋Ÿผ์„ ๋งŒ๋“ค์–ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ์ •์ œ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ํŠน๋ณ„ํ•œ ๋ฌธ๋ฒ•์ด ์—†๋‹ค. ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ฌธ์ œ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ ์–ด๋ณด๊ณ , ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์—ฐ๊ด€๊ด€๊ณ„( ๊ณตํ†ต์ )๋ฅผ ์ฐพ์•„๋ณด๊ณ  ์ฟผ๋ฆฌ๋ฌธ์„ ์ ์–ด๋ณด๋ฉด ๋œ๋‹ค. ๋ฌธ์ œ1) han ์˜ ๊ทผ๋ฌด ๋ถ€์„œ ์ด๋ฆ„์„ ์ฐพ์•„๋ผ. ๋‘ ๊ฐœ์˜ ์ฟผ๋ฆฌ๋ฌธ์„ ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ํ•ฉ์ณ๋ณธ๋‹ค. ์œ„์˜ ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰๊ณผ ์•„๋ž˜ ์ฟผ๋ฆฌ๋ฌธ ์‹คํ–‰์˜ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™๋‹ค. ๋ฌธ์ œ2) ๋ถ€์„œ์œ„์น˜๊ฐ€ LA ์ด๊ฑฐ๋‚˜ BOSTON ์ธ ๋ถ€์„œ์— ์†ํ•œ ์‚ฌ๋žŒ๋“ค์˜ ์ด๋ฆ„๊ณผ ์ง์ฑ…์€? ALL / EXSITS ALL : ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ค‘์—์„œ ๋ชจ๋“  ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ ๋ฐ˜ํ™˜ EXSITS : ๊ธฐ๋ณธ์ ์œผ๋กœ IN๊ณผ ๊ฐ™์œผ๋‚˜ ์ฐธ/๊ฑฐ์ง“ ๋ฐ˜ํ™˜ ๋ฌธ์ œ3) sales ๋ถ€์„œ์— ๊ทผ๋ฌดํ•˜๋Š” ์‚ฌ์› ๋ฐ.. 2022. 5. 6.
DB] ์ œ์•ฝ ์กฐ๊ฑด(constraint) 2 - ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด / ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด / ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด / ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด ์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์•ฝํ•˜๋Š” ํŠน์ • ๊ทœ์น™์œผ๋กœ ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, ์ง€์ •๋œ ์กฐ๊ฑด์— ๋งž์ง€์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์ด ์œ ์ง€๋œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด (์™ธ๋ž˜ํ‚ค, ์ฐธ์กฐํ‚ค , FK) - foreign key references ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด - on delete cascade ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด ( ์œ ๋‹ˆํฌ ํ‚ค, ํ›„๋ณด ํ‚ค) - unique ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด - check 1. ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด - ์™ธ๋ž˜ ํ‚ค, ์ฐธ์กฐ ํ‚ค ๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค. FOREIGN KEY (FK) - ์™ธ๋ž˜ ํ‚ค๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ๋ถ€๋ชจ - ์ž์‹ ๊ด€๊ณ„๊ฐ€ ๋œ๋‹ค. - ๋”ฐ๋ผ์„œ ๋ถ€๋ชจ ํ…Œ์ด.. 2022. 5. 6.
DB] ํŠธ๋žœ์ ์…˜(TRANSACTION) Transaction database ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ์—…๋ฌด ์ฒ˜๋ฆฌ์˜ ๋‹จ์œ„. ALL or Nothing, ์ž‘์—… ๋‚ด๋ถ€์˜ ๊ณผ์ •์ด ํ•˜๋‚˜๋ผ๋„ ์ž˜๋ชป๋˜๋ฉด ๋ชจ๋‘ ์ทจ์†Œ๋˜์–ด์•ผ ํ•œ๋‹ค. ์˜ˆ์‹œ) 5000๋งŒ์›์„ ์†ก๊ธˆํ•˜๋Š” ๊ณผ์ •์€ '5000๋งŒ์›์„ A์˜ ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆ'ํ•˜๊ณ  'B์˜ ๊ณ„์ขŒ์— ์ž…๊ธˆ'ํ•˜๋Š” 2๋ฒˆ์˜ ๊ณผ์ •์œผ๋กœ ๋‚˜๋ˆ ์ ธ์žˆ๋‹ค. ๋งŒ์•ฝ 5000๋งŒ์›์ด 'A์˜ ๊ณ„์ขŒ์—์„œ ์ถœ๊ธˆ'ํ•˜๋Š” ๊ฒƒ ๊นŒ์ง„ ์„ฑ๊ณตํ–ˆ์œผ๋‚˜ 'B์˜ ๊ณ„์ขŒ์— ์ž…๊ธˆ'ํ•˜๋Š” ๊ฒƒ์„ ์‹คํŒจํ•˜๊ฒŒ ๋˜๋ฉด ๊ทธ 5000๋งŒ์›์€ ์–ด๋””๋กœ ๊ฐ”๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ 5000๋งŒ์›์„ 'A์—๊ฒŒ์„œ ์ถœ๊ธˆ'ํ•˜๋Š” ๊ฒƒ๊ณผ 'B์—๊ฒŒ ์ž…๊ธˆ'ํ•˜๋Š” ๊ฒƒ์€ ํŠธ๋žœ์ ์…˜์œผ๋กœ ๋ฌถ์–ด ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•ด์•ผ ์•ˆ์ „ํ•˜๋‹ค. ์ด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด rollback ๊ณผ commit ์ด๋‹ค. ์ž…๊ธˆ ์‹คํŒจ ํ•˜๋ฉด ์ถœ๊ธˆ๊นŒ์ง€ rollback, ์ถœ๊ธˆ๊ณผ ์ž…๊ธˆ ๋ชจ๋‘ .. 2022. 5. 2.
DB] ์ œ์•ฝ ์กฐ๊ฑด(constraint) 1 - ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด / NOT NULL ์ œ์•ฝ ์กฐ๊ฑด์€ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์•ฝํ•˜๋Š” ํŠน์ • ๊ทœ์น™์œผ๋กœ ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์„ ๊ฒฝ์šฐ ํŠน์ •ํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œ์ผœ์•ผ ํ•  ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ฆ‰, ์ง€์ •๋œ ์กฐ๊ฑด์— ๋งž์ง€์•Š์œผ๋ฉด ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด ์•ˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์ด ์œ ์ง€๋œ๋‹ค. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด ( PK ) - primary key NOT NULL ์ฐธ์กฐ ์ œ์•ฝ ์กฐ๊ฑด (์™ธ๋ž˜ํ‚ค, ์ฐธ์กฐํ‚ค , FK) - foreign key references ์—ฐ๊ณ„ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด - on delete cascade ์œ ๋‹ˆํฌ ์ œ์•ฝ ์กฐ๊ฑด ( ์œ ๋‹ˆํฌ ํ‚ค, ํ›„๋ณด ํ‚ค) - unique ์ฒดํฌ ์ œ์•ฝ ์กฐ๊ฑด - check 1. ๊ธฐ๋ณธ ํ‚ค ์ œ์•ฝ ์กฐ๊ฑด (Primary Key, PK) - ํ…Œ์ด๋ธ” ๋‹น 1๊ฐœ๋งŒ ์กด์žฌ - ์ค‘๋ณต ํ—ˆ์šฉ ์•ˆํ•จ, NULL ํ—ˆ์šฉ ์•ˆํ•จ - ํ•œ ๊ฐœ์˜ ์ปฌ๋Ÿผ์— ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด์ง€๋งŒ.. 2022. 4. 28.