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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ191

[Oracle] DICTIONARY ๋ฐ์ดํ„ฐ ์‚ฌ์ „ Dictionary๋ž€? ์˜ค๋ผํด์„œ๋ฒ„์— ์˜ํ•ด์„œ ์ƒ์„ฑ๋˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๋จ. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ฐ€์ง. VIEW(์ฝ๊ธฐ์ „์šฉ)์™€ ํ…Œ์ด๋ธ”์˜ ์ง‘ํ•ฉ ๋ฐ์ดํ„ฐ์‚ฌ์ „ ํ…Œ์ด๋ธ”์€ SYS์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•จ. (SYS=์˜ค๋ผํด super์‚ฌ์šฉ์ž๊ณ„์ •. DBA๊ณ„์ •) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ค‘์š”ํ•œ ์‹œ์Šคํ…œ ๋…ผ๋ฆฌ ๊ตฌ์กฐ. Dictionary์˜ ์˜ˆ Dictionary View ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ๋ทฐ. ๋ฐ์ดํ„ฐ ์‚ฌ์ „ ๋ทฐ๋Š” ์˜ค๋ผํด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๊ฐ์ฒด๋“ค(ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค, ์‹œํ€€์Šค ๋“ฑ)์— ๋Œ€ํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ œ๊ณต. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋“ค์˜ ์ •์˜, ์†์„ฑ, ๊ถŒํ•œ, ํ†ต๊ณ„ ๋“ฑ์— ๊ด€ํ•œ ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ์Œ. ์ ‘๋‘์–ด ์„ค๋ช… USER_ ์‚ฌ์šฉ์ž๊ฐ€ ์†Œ์œ ํ•œ ๊ฐ์ฒด๋ฅผ ์กฐํšŒํ•  ๋•Œ ์‚ฌ์šฉํ•จ. ALL_ ํ˜„์žฌ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•จ. ํ˜„์žฌ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•œ ๊ฐ์ฒด+๋‹ค๋ฅธ์‚ฌ์šฉ์ž์˜.. 2024. 1. 5.
[Oracle] TRANSACTION CONTROL ํŠธ๋žœ์žญ์…˜ ์ปจํŠธ๋กค TRANSACTION์˜ ๊ฐœ๋… ํŠธ๋žœ์žญ์…˜. Tx ๋…ผ๋ฆฌ์ ์ธ ์—…๋ฌด์˜ ์ž‘์—… ๋‹จ์œ„ (์˜ˆ์‹œ- ๊ณ„์ขŒ์ด์ฒด = ‘์ถœ๊ธˆ’ + ‘์ž…๊ธˆ’ ) ํŠธ๋žœ์žญ์…˜์˜ ์†์„ฑ A ์›์ž์„ฑ Atomicity ํ•˜๋‚˜์˜ ์›์ž์ ์ธ ์ž‘์—… ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•จ. ํ•˜๋‚˜์˜ ์ž‘์—…์ด๋ผ๋„ ์‹คํŒจํ•˜๋ฉด ํŠธ๋žœ์žญ์…˜ ์ „์ฒด๊ฐ€ ์‹คํŒจ. ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ์ž‘์—…์€ ๋ชจ๋‘ ์„ฑ๊ณต or ๋ชจ๋‘ ์‹คํŒจํ•ด์„œ ์›์ƒํƒœ๋กœ ๋กค๋ฐฑ C ์ผ๊ด€์„ฑ Consistency ํŠธ๋žœ์žญ์…˜ ์‹œ์ž‘์ „๊ณผ ์ข…๋ฃŒํ›„ DB๋Š” ํ•ญ์ƒ ์ผ๊ด€๋œ ์ƒํƒœ ์œ ์ง€ I ๋…๋ฆฝ์„ฑ Isolation ๊ฐ๊ฐ์˜ ํŠธ๋žœ์žญ์…˜์€ ๋…๋ฆฝ์ ์ธ ์ž‘์—… ๋‹จ์œ„. ํŠธ๋žœ์žญ์…˜ ๊ฐ„์˜ ๋™๊ธฐํ™” ์œ ์ง€๋จ. D ์ง€์†์„ฑ Durability ํŠธ๋žœ์žญ์…˜ ์„ฑ๊ณตํ›„ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์œผ๋กœ DB์— ์ €์žฅ๋˜์–ด์•ผ ํ•จ ํŠธ๋žœ์žญ์…˜ ์ปจํŠธ๋กค ๋ช…์‹œ์  ํŠธ๋žœ์žญ์…˜ ์ œ์–ด ๋ช…๋ น์–ด ๋ช…๋ น์–ด ์„ค๋ช… COMMIT ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์‚ฌํ•ญ DB์— ์™„์ „ํžˆ ๋ฐ˜์˜. ํ˜„.. 2024. 1. 5.
[Oracle] Constraint ์ œ์•ฝ์กฐ๊ฑด ์ œ์•ฝ์กฐ๊ฑด์˜ ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๋ฅผ ์œ„ํ•˜์—ฌ ์‚ฌ์šฉํ•จ ์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ๋“  ์ด์œ : DB๋ณดํ˜ธ(์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์ด๋‚˜ ์‹ค์ˆ˜๋“ฑ์„ ๋ฐฉ์ง€ํ•จ) ํ…Œ์ด๋ธ”๊ณผ ๋”ฐ๋กœ ์ƒ์„ฑ๋จ ๋ชจ๋“  ์ œ์•ฝ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ์‚ฌ์ „์— ์ €์žฅ๋จ ์˜๋ฏธ์ด๋ฆ„ ๋ถ€์—ฌํ•˜๋ฉด ์ข‹์Œ ์ œ์•ฝ์กฐ๊ฑด ์ •์˜ ๋ ˆ๋ฒจ: โ‘ ์นผ๋Ÿผ โ‘กํ…Œ์ด๋ธ” Constraint ์ œ์•ฝ์กฐ๊ฑด์˜ ์ข…๋ฅ˜ โ‘  PK Primary Key. ํ…Œ์ด๋ธ”์— ๋‹จ ํ•˜๋‚˜๋งŒ ํ—ˆ์šฉ. PK๋Š” ๋‹จ์ผ์นผ๋Ÿผ์ด๊ฑฐ๋‚˜๋‚˜ ์—ฌ๋Ÿฌ์นผ๋Ÿผ์˜ ์กฐํ•ฉ๋„ ๊ฐ€๋Šฅ. ๋Ÿฌ์นผ๋Ÿผ์˜ ์กฐํ•ฉ์ผ ๋•Œ ๋ชจ๋“  ์นผ๋Ÿผ์ด ๊ฐ’์ด ์žˆ์–ด์•ผํ•จ. NULL๊ฐ’ ํ—ˆ์šฉX. Java์˜ Map-Key์™€ ๊ฐ™์€ ๊ฒƒ. PK๋กœ ์„ค์ •๋œ ์นผ๋Ÿผ์— ๋Œ€ํ•ด UNIQUE ์ธ๋ฑ์Šค ์ž๋™ ์ƒ์„ฑํ•จ. ์ธ๋ฑ์Šค=๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ๋•Œ ์ค‘๋ณต ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ. โ‘ก NOT NULL NULL๊ฐ’ ํ—ˆ์šฉX โ‘ข UNIQUE ๋ชจ๋“  ํ–‰์—์„œ ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ง€.. 2024. 1. 5.
[Oracle] SubQuery ์„œ๋ธŒ์ฟผ๋ฆฌ SubQuery ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฐœ๋… ํ•˜๋‚˜์˜ SELECT๋ฌธ ์•ˆ์— ํฌํ•จ๋˜์–ด์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ. ๋ณดํ†ต โ‘ ์„œ๋ธŒ์ฟผ๋ฆฌ → โ‘ก๋ฉ”์ธ์ฟผ๋ฆฌ ์ˆœ์„œ๋กœ ๊ณ„์‚ฐํ•จ ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ Where์ ˆ, From์ ˆ, Having์ ˆ, Select๋ฌธ, CREAT์ ˆ, DML๋ฌธ(Insert,Update,Delete) ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๊ด„ํ˜ธ๋กœ ๋ฌถ์—ฌ์žˆ์–ด์•ผ ํ•จ. ์„œ๋ธŒ์ฟผ๋ฆฌ๊ตฌ๋ฌธ์—๋Š” Order By์ ˆ ๋ชป๋“ค์–ด๊ฐ. ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ์—ฐ์‚ฐ์ž์˜ ์˜ค๋ฅธ์ชฝ!์— ์œ„์น˜ํ•จ ์„œ๋ธŒ์ฟผ๋ฆฌ๊ฐ€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์—ฐ์‚ฐ์ž ๋‹จ์ผํ–‰ ์—ฐ์‚ฐ์ž: = > >= < 2024. 1. 5.
[Oracle] Join์œผ๋กœ ๋ฐ์ดํ„ฐ ์—ฐ๊ฒฐ, Set ์—ฐ์‚ฐ์ž ์บก์ณ์— ๋‚˜์˜จ SQL๋ฌธ๋ฒ•์€ ANSI(๋ฏธ๊ตญํ‘œ์ค€ํ˜‘ํšŒ) SQL ํ‘œ์ค€๊ณผ๋Š” ๋‹ค๋ฅธ ์˜›๋‚  ๋ฌธ๋ฒ•์ด ์‚ฌ์šฉ๋œ ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ ๋ธ”๋Ÿญ์„ ์ค‘์‹ฌ์œผ๋กœ ๋ด์ฃผ์„ธ์š” Join 1๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ƒ‰ํ•ด์˜ค๋Š” ๋ฐฉ๋ฒ•. PK์™€ FK๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋…ผ๋ฆฌ์ ์ธ ๊ฐ’๋“ค์˜ ์—ฐ๊ด€์œผ๋กœ ์„ฑ๋ฆฝ๋„ ๊ฐ€๋Šฅํ•จ. ์—ฐ๊ด€๋œ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ. ํ…Œ์ด๋ธ”๊ฐ„์˜ ์—ฐ๊ฒฐ๊ณ ๋ฆฌ๊ฐ€ ์žˆ์„ ๋•Œ ํ•ฉ์ณ์„œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์„ ๋ณด์—ฌ์คŒ ์ •๊ทœํ™”: ํ…Œ์ด๋ธ”์„ ์ชผ๊ฐœ๋Š” ๊ฒƒ. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•จ. ์ค‘๋ณต์ด ๋งŽ์œผ๋ฉด ๋ณ€๊ฒฝ ์‹œ ๋ณ€๊ฒฝํšŸ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉฐ ์‹ค์ˆ˜์™€ ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์Œ. Join(๋ถ™์ด๊ธฐ) ↔ ์ •๊ทœํ™”(์ชผ๊ฐœ๊ธฐ) Join ๋ฐฉ๋ฒ• ์˜๋ฏธ ์˜ˆ์‹œ EquiJoin ์นผ๋Ÿผ ๊ฐ„์˜ ๊ฐ’๋“ค์ด ์„œ๋กœ ์ •ํ™•ํžˆ ์ผ์น˜ํ•  ๋•Œ ์ง์›์ •๋ณด์˜ ๋ถ€์„œ๋ฒˆํ˜ธ & ๋ถ€์„œ์ด๋ฆ„ & ๋ถ€์„œ์˜ ์ง€์—ญ๋ฒˆํ˜ธ์™€ ์ง€์—ญ์ด๋ฆ„ Non-EquiJoin ์นผ๋Ÿผ.. 2024. 1. 5.
[Oracle] SubGroup์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ถ„๋ฅ˜ Group By ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ์†Œ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์นผ๋Ÿผ์„ ๋ช…์‹œํ•จ. Having Group์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ๊ธฐ์ˆ ํ•จ. ๊ทธ๋ฃนํ•จ์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ ๊ทธ๋ฃนํ•จ์ˆ˜ ์‚ฌ์šฉ์‹œ ์ฃผ์˜ํ•  ์  Select์ ˆ์— ๊ทธ๋ฃนํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Select์ ˆ์˜ ๋‚˜๋จธ์ง€ ์นผ๋Ÿผ์€ Group By์ ˆ์— ๊ธฐ์ˆ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฃน์— ๋Œ€ํ•œ ์กฐ๊ฑด์€ Having์ ˆ์—๋Š” ๊ธฐ์ˆ ํ•œ๋‹ค. Group By์ ˆ ์ดํ•˜์— ์นผ๋Ÿผ์„ ์—ฌ๋Ÿฌ๊ฐœ ๊ธฐ์ˆ ํ•˜๋ฉด ๊ทธ๋ฃน์„ ์„ธ๋ถ„ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. 2024. 1. 5.
[Oracle] ํ…Œ์ด๋ธ” ์ƒ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ํ…Œ์ด๋ธ” ๋ช…๋ช… ๊ทœ์น™ -ํ…Œ์ด๋ธ”๋ช…, ์นผ๋Ÿผ๋ช… ๋ฌธ์ž๋กœ ์‹œ์ž‘. ์ตœ๋Œ€ 30์ž -A-Z, a-z, 0-9, _, $, # ๊ฐ€๋Šฅ -์ด๋ฆ„์ค‘๋ณต X -์˜ˆ์•ฝ์–ด X ๋ฐ์ดํ„ฐ ํƒ€์ž… -VARCHAR2(size): ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. -CHAR(size): ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž๊ฐ’ -NUMBER: ์ˆซ์ž, 38์ž๋ฆฌ๊นŒ์ง€ -NUMBER(p, s): ์ˆซ์ž. p์ž๋ฆฟ์ˆ˜๊นŒ์ง€ ์œ ํšจ -DATE: ๋‚ ์งœ์™€ ์‹œ๊ฐ„ -LONG: ํฐ ๊ฐ€๋ณ€๊ธธ์ด ๋ฌธ์ž๊ฐ’. ํ…Œ์ด๋ธ”๋‹น LONG์—ด์€ 1๊ฐœ๋งŒ ํ—ˆ์šฉ -RAW ๊ณผ LONGRAW: ์ด์ง„๋ฐ์ดํ„ฐ ์ €์žฅ์— ์‚ฌ์šฉ ํ…Œ์ด๋ธ” ์ƒ์„ฑ -์Šคํ‚ค๋งˆ(๊ฐ์ฒด์˜ ์ง‘ํ•ฉ. ํ…Œ์ด๋ธ” ์†Œ์œ ์ž) -ํ…Œ์ด๋ธ”๋ช…(์ƒˆ ํ…Œ์ด๋ธ” ์ด๋ฆ„) -์นผ๋Ÿผ๋ช…(์นผ๋Ÿผ์˜ ์ด๋ฆ„) -DataType(์นผ๋Ÿผ์ด ๊ฐ€์งˆ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ํฌ๊ธฐ) -Default(๋ฐ์ดํ„ฐ ์ž…๋ ฅ์‹œ ๊ธฐ๋ณธ๊ฐ’) SQL ๋ช…๋ น์–ด ๊ธฐ๋ณธ๋ถ€๋ฅ˜ ๋ถ€๋ฅ˜ ๋ช…๋ น์–ด ๋ช…๋ น์–ด R.. 2024. 1. 5.