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

์ „์ฒด ๊ธ€193

[Oracle] DCL ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด ๊ถŒํ•œ Privilege ์‹œ์Šคํ…œ ๊ถŒํ•œ ํŠน์ •ํ•œ SQL๋ฌธ์žฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ ํŠน์ •ํ•œ Object์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๋Š” ๊ถŒํ•œ ์‹œ์Šคํ…œ ๊ถŒํ•œ System Privilege ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ค€์˜ ๊ถŒํ•œ ์‚ฌ์šฉ์ž์™€ Role์— ๋ถ€์—ฌ๋  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ ๊ถŒํ•œ ์ข…๋ฅ˜๋Š” 80๊ฐœ ์ด์ƒ. ์‹œ์Šคํ…œ ๊ถŒํ•œ์€ ๋Œ€๊ฐœ ๊ด€๋ฆฌ์ž(DBA)๊ฐ€ ๋ถ€์—ฌํ•จ. ์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ Object Privilege ๊ด€๋ฆฌ์ž(DBA)๋Š” ํŠน์ •ํ•œ ์˜ค๋ธŒ์ ํŠธ์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ—ˆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ. ์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ์€ ์˜ค๋ธŒ์ ํŠธ ํƒ€์ž…์— ๋”ฐ๋ผ ๋‹ค์–‘ํ•จ. ์˜ค๋ธŒ์ ํŠธ ์†Œ์œ ์ž๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠน์ • ์˜ค๋ธŒ์ ํŠธ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์Œ. ์—ญํ•  Role ๊ถŒํ•œ ๋ถ€์—ฌ์™€ ์ ‘๊ทผ์ œ์–ด ๊ด€๋ฆฌ๋ฅผ ์†์‰ฝ๊ฒŒ ํ•˜๋ ค๊ณ  ์—ฐ๊ด€๋œ ๊ถŒํ•œ๋“ค์˜ ์ง‘ํ•ฉ์„ ๋ฌถ์–ด์„œ ์ •์˜ํ•ด ๋†“์€ ๊ฒƒ. Role์ด๋ž€ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ—ˆ๊ฐ€ํ•  ์ˆ˜.. 2024. 1. 5.
[Oracle] DDL ๋ฐ์ดํ„ฐ ์ •์˜์–ด DDL ๋ช…๋ น์–ด์˜ ์ข…๋ฅ˜ ๋ฐ ์„ค๋ช… ๋ช…๋ น์–ด ์„ค๋ช… CREATE TABLE ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ์ƒ์„ฑ DROP TABLE ๊ธฐ์กด ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ ๋ฐ ๋ชจ๋“  ๋กœ์šฐ๋ฅผ ์‚ญ์ œ ALTER TABLE ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์„ ๋ณ€๊ฒฝํ•จ -์ปฌ๋Ÿผ์˜ ์ถ”๊ฐ€/์ˆ˜์ • -์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€/์‚ญ์ œ/ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™” TRUNCATE ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋Š” ๋‚จ๊ธฐ๊ณ  ๋ชจ๋“  ํ–‰์„ ์‚ญ์ œํ•จ RENAME Object์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟˆ COMMENT ํ…Œ์ด๋ธ”์ด๋‚˜ ์ปฌ๋Ÿผ์— ์ฃผ์„๋ฌธ ๋‹ฌ๊ธฐ DDL ๋ช…๋ น์–ด๋Š” ์‹คํ–‰ ์‹œ Auto COMMIT ๋˜๊ธฐ ๋•Œ๋ฌธ์— ROLLBACK๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์„œ ์‹คํ–‰ SQL ์‚ญ์ œ โœ‚โœ‚ 3์ด์‚ฌ ๋ช…๋ น์–ด ๋ถ€๋ฅ˜ ๋ช…๋ น์–ด ์„ค๋ช… ๋กค๋ฐฑ DDL (๋ฐ์ดํ„ฐ ๊ตฌ์กฐ) DROP TABLE ํ…Œ์ด๋ธ” ์ „์ฒด ์‚ญ์ œ. ๊ตฌ์กฐ ์‚ญ์ œ, ํ–‰ ์‚ญ์ œ. ๋ถˆ๊ฐ€๋Šฅ TRUNCATE ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ญ์ œ. ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‚จ๊น€. ๋ถˆ๊ฐ€๋Šฅ .. 2024. 1. 5.
[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.