์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

SQLD ๊ฐœ๋… ์ •๋ฆฌ

stonesy 2025. 5. 24. 14:10
728x90

๐Ÿ“Œ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ 3Step

- ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’๊ณ  ์—…๋ฌด์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง ์ง„ํ–‰, ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, EA ์ˆ˜๋ฆฝ์‹œ ๋งŽ์ด ์ด์šฉ

- ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: Key, ์†์„ฑ, ๊ด€๊ณ„๋“ค์„ ํ‘œํ˜„ํ•˜๋Š” ์ •๊ทœํ™” ํ™œ๋™์ด ์ด๋ฃจ์–ด์ง€๋Š” ๋‹จ๊ณ„

- ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ฑ๋Šฅ, ์ €์žฅ ๋“ฑ ๋ฌผ๋ฆฌ์ ์ธ ์„ฑ๊ฒฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์„ค๊ณ„

 

๐Ÿ“Œ๋ฐ์ดํ„ฐ ์Šค์นด๋งˆ์˜ ๊ตฌ์กฐ

- ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ: ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ์Šคํ‚ค๋งˆ ์ •์˜ ๋ฐ ํ‘œํ˜„

- ๊ฐœ๋… ์Šคํ‚ค๋งˆ: ๋ชจ๋“  ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๋ฐ์ดํ„ฐ ์ •์˜ ๋ฐ ํ‘œํ˜„, ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๋Š” ๋‹จ๊ณ„

- ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ: ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‹จ๊ณ„

 

๐Ÿ“Œ์—”ํ„ฐํ‹ฐ

๊ฐœ๋…

- ์ •์˜ ๊ฐ€๋Šฅํ•œ ์‚ฌ๋ฌผ ๋˜๋Š” ๊ฐœ๋…

 

ํŠน์ง•

- ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์—…๋ฌด์—์„œ ํ•„์š”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์—ฌ์•ผ ํ•œ๋‹ค.

- ์œ ์ผํ•œ ์‹๋ณ„์ž์— ์˜ํ•ด ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค.

- ์˜์†์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ์ธ์Šคํ„ด์Šค์˜ ์ง‘ํ•ฉ์ด์–ด์•ผ ํ•œ๋‹ค. ("ํ•œ ๊ฐœ"๊ฐ€ ์•„๋‹ˆ๋ผ "๋‘ ๊ฐœ ์ด์ƒ")

- ์—”ํ„ฐํ‹ฐ๋Š” ์—…๋ฌด ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ด์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.

- ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค. (ํ•œ ๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ๋Š” ๋‘ ๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์„ ๊ฐ–๋Š”๋‹ค.)

- ์—”ํ„ฐํ‹ฐ๋Š” ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ์™€ ์ตœ์†Œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค. 

 

๋ถ„๋ฅ˜

1) ๋ฐœ์ƒ ์‹œ์ ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜

ํ–‰๊ธฐ์ค‘

- ๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ: ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ/์กด์žฌํ•˜๋Š” ์—”ํ„ฐํ‹ฐ

- ์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ: ๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ์™€ ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•ด์ฃผ๋Š” ์ค‘๊ฐ„ ์—”ํ„ฐํ‹ฐ(๊ณ ๊ฐ, ์ƒํ’ˆ)

- ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ: ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ๋Š” 2๊ฐœ ์ด์ƒ์˜ ๋ถ€๋ชจ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒ๋œ๋‹ค.(์ฃผ๋ฌธ ๋‚ด์—ญ)

2) ์œ ํ˜•, ๋ฌดํ˜•์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜

๊ฐœ์‚ฌ์œ 

- ์œ ํ˜• ์—”ํ„ฐํ‹ฐ: ๋ฌผ๋ฆฌ์ ์ธ ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜๊ณ , ์ง€์†์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์—”ํ„ฐํ‹ฐ

- ๊ฐœ๋… ์—”ํ„ฐํ‹ฐ: ๋ฌผ๋ฆฌ์ ์œผ๋กœ ํ˜•ํƒœ๊ฐ€ ์—†์ง€๋งŒ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ์ •๋ณด๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์—”ํ„ฐํ‹ฐ

- ์‚ฌ๊ฑด ์—”ํ„ฐํ‹ฐ: ์—…๋ฌด ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๋ฉด์„œ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ

 

๐Ÿ“Œ์†์„ฑ

๊ฐœ๋…

- ์—”ํ„ฐํ‹ฐ ๊ฐœ์ฒด๊ฐ€ ๊ฐ–๊ณ  ์žˆ๋Š” ์†์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค.

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•„๋“œ๋“ค์ด ์—”ํ„ฐํ‹ฐ ์†์„ฑ์ด๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.

- ์—”ํ„ฐํ‹ฐ์˜ ํŠน์ง•์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ตœ์†Œ์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„์ด๋‹ค.

 

ํŠน์ง•

- ์—…๋ฌด์— ํ•„์š”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์—ฌ์•ผ ํ•œ๋‹ค.

- ์ฃผ ์‹๋ณ„์ž๋ฅผ ํ†ตํ•ด์„œ ์‹๋ณ„๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

- ํ•˜๋‚˜์˜ ์†์„ฑ์—๋Š” ๋‹จ ํ•œ ๊ฐœ์˜ ๊ฐ’๋งŒ์„ ๊ฐ€์ง„๋‹ค.

 

๋ถ„๋ฅ˜

1) ํŠน์„ฑ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜

- ๊ธฐ๋ณธ ์†์„ฑ: ์—…๋ฌด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„์„ํ•˜๋ฉด ๋ฐ”๋กœ ์ •์˜ ๊ฐ€๋Šฅํ•œ ์†์„ฑ

- ์„ค๊ณ„ ์†์„ฑ: ์ธ์Šคํ„ด์Šค์— ์œ ๋‹ˆํฌํ•จ์„ ๋ถ€์—ฌํ•˜๋Š” ์†์„ฑ(ํ•™๋ฒˆ, ์‚ฌ๋ฒˆ)

ํŒŒ์ƒ ์†์„ฑ: ์„ฑ๋Šฅ, ํŽธ์˜๋ฅผ ์œ„ํ•ด ์ƒˆ๋กœ ๋งŒ๋“  ์†์„ฑ(ํ‰๊ท , ์žฌ๊ณ )

 

๐Ÿ“Œ๊ด€๊ณ„

๊ฐœ๋…

์—”ํ„ฐํ‹ฐ์™€ ์—”ํ„ฐํ‹ฐ ์‚ฌ์œผ์˜ ์†์„ฑ๋ผ๋ฆฌ์˜ ์—ฐ๊ฒฐ์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ์ƒ๊ด€๊ด€๊ณ„

 

์ข…๋ฅ˜

์กด์žฌ ๊ด€๊ณ„: ๋ชจ๋ธ๋ง ๋œ ์—”ํ„ฐํ‹ฐ๋“ค์ด ์กด์žฌ๋กœ์„œ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๊ด€๊ณ„

ํ–‰์œ„ ๊ด€๊ณ„: ๋ชจ๋ธ๋ง ๋œ ์—”ํ„ฐํ‹ฐ๋“ค์ด ํ–‰์œ„์— ์˜ํ•ด ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๊ด€๊ณ„

- ์—ฐ๊ด€ ๊ด€๊ณ„: ํ•„์ˆ˜์ ์ธ ๊ด€๊ณ„๋กœ ํ•ญ์ƒ ์„œ๋กœ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ด€๊ณ„(์‹ค์„ )

์˜์กด ๊ด€๊ณ„: ์„ ํƒ์ ์ธ ๊ด€๊ณ„๋ฅด ์ƒ๋Œ€ ํด๋ž˜์Šค์˜ ํ–‰์œ„์— ๋”ฐ๋ผ ์ด์šฉํ•˜๋Š” ๊ด€๊ณ„

 

๐Ÿ“Œ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ

์Šˆํผ/์„œ๋ธŒํƒ€์ž… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

- ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ์ฃผ๋กœ ์ด์šฉ(=๋ถ„์„ ๋‹จ๊ณ„์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋จ)

- ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋กœ ์„ค๊ณ„ ์‹œ ๋ฌธ์ œ ๋ฐœ์ƒ

- ์Šˆํผํƒ€์ž…: ๊ณตํ†ต ๋ถ€๋ถ„์„ ์Šˆํผํƒ€์ž…์œผ๋กœ ๋ชจ๋ธ๋ง

- ์„œ๋ธŒํƒ€์ž…: ๊ณตํ†ต์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›์•„ ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ์™€ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๋ชจ๋ธ๋งŒ ๋ชจ๋ธ๋ง

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ฑ๋Šฅ ์ €ํ•˜ ์›์ธ 3๊ฐ€์ง€

- ํŠธ๋žœ์žญ์…˜: ์ „์ฒด๋ฅผ ์ผ๊ด„์ฒ˜๋ฆฌ, ํ…Œ์ด๋ธ” ๊ฐœ๋ณ„๋กœ ์œ ์ง€ > Union ์—ฐ์‚ฐ์— ์˜ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜

- ํŠธ๋žœ์žญ์…˜: ์Šˆํผ+์„œ๋ธŒํƒ€์ž… ๊ณตํ†ต ์ฒ˜๋ฆฌ, ํ…Œ์ด๋ธ”์€ ๊ฐœ๋ณ„๋กœ ์œ ์ง€ > ์กฐ์ธ์— ์˜ํ•ด ์„ฑ๋Šฅ ์ €ํ•˜

- ํŠธ๋žœ์žญ์…˜: ์„œ๋ธŒํƒ€์ž…๋งŒ ๊ฐœ๋ณ„๋กœ ์ฒ˜๋ฆฌ, ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ > ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ ์ง‘์ 

 

๐Ÿ“ŒNULL์˜ ์˜๋ฏธ

- ์•Œ์ˆ˜ ์—†๋Š” ๊ฐ’, 0๋„ ์•„๋‹ˆ๊ณ  ๊ณต๋ฐฑ๋„ ์•„๋‹˜(ORACLE์€ ๋นˆ ๋ฌธ์ž์—ด์„ NULL๋กœ ์ทจ๊ธ‰)

- NULL์€ "IS NULL", "IS NOT NULL"๋กœ๋งŒ ๋น„๊ต ๊ฐ€๋Šฅ, !=NULL์€ ๋ถˆ๊ฐ€๋Šฅ

- a=""๋กœ ๋„ฃ์œผ๋ฉด ๊ณต๋ฐฑ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋ฉฐ IS NULL ์‹œ์— false๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์—ฐ์‚ฐ

- NULL ๊ฐ’๊ณผ์˜ ์—ฐ์‚ฐ(+, -, *, / ๋“ฑ)์€ NULL ๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

- NULL ๊ฐ’๊ณผ์˜ ๋น„๊ต์—ฐ์‚ฐ์€ ๊ฑฐ์ง“(FALSE)๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค.

- ํŠน์ • ๊ฐ’๋ณด๋‹ค ํฌ๋‹ค ๋ฐ ์ž‘๋‹ค๋ผ๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.

 

2. SQL ๊ธฐ๋ณธ ๋ฐ ํ™œ์šฉ

๐Ÿ“ŒSQL ๋ฌธ์žฅ๋“ค์˜ ์ข…๋ฅ˜

1) DML(Data Management Language): SELECT, INSERT, UPDATE, DELECT

2) DDL(Data Definition Language): CREATE, ALTER, DROP, RENAME

3) DCL(Data Control Language): GRANT, REVOKE

4) TML(Transaction Management Language): COMMIT, ROLLBACK

 

*DDL ์ฐธ๊ณ ์‚ฌํ•ญ

- DROP COLUMN: ๋ฐ์ดํ„ฐ ์žˆ๊ฑฐ๋‚˜ ์—…๊ฑฐ๋‚˜ ๋ชจ๋‘ ์‚ญ์ œ ๊ฐ€๋Šฅ. ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์นผ๋Ÿผ๋งŒ ์‚ญ์ œ ๊ฐ€๋Šฅ

DROP CONSTRAINT: ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์‹œ ๋ถ€์—ฌํ–ˆ๋˜ ์ œ์•ฝ์กฐ๊ฑด์„ ์‚ญ์ œํ•˜๋Š” ๋ช…๋ น์–ด

ADD CONSTRAINT: ํ…Œ์ด๋ธ” ์ƒ์„ฑ ์ดํ›„์— ํ•„์š”์— ์˜ํ•ด ์ œ์•ฝ์กฐ๊ฑด์„ ์ถ”๊ฐ€

 

*์ฐธ์กฐ ๋™์ž‘(Referential Action)

์ฐธ์กฐ ๋™์ž‘(Referential Action)์€ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ทœ์น™ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ด๋Š” ์™ธ๋ž˜ํ‚ค๊ฐ€ ์„ค์ •๋œ ๊ฒฝ์šฐ์—, ๋ถ€๋ชจ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฝ์ž…๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ/์ˆ˜์ •๋  ๋•Œ ์ž์‹(Child) ํ…Œ์ด๋ธ”์ด ์–ด๋–ป๊ฒŒ ๋ฐ˜์‘ํ• ์ง€๋ฅผ ์ •์˜ํ•œ๋‹ค.

1) โญ Automatic: Child์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•  ๋•Œ ์ฐธ์กฐํ•  Parent์˜ PK๊ฐ€ ์—†์œผ๋ฉด, ์ž๋™์œผ๋กœ Parent ํ…Œ์ด๋ธ”์— ํ•ด๋‹น PK ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•œ ํ›„ Child์— ์‚ฝ์ž…ํ•œ๋‹ค.

2) Set Null: Parent ํ…Œ์ด๋ธ”์— ํ•ด๋‹น PK๊ฐ€ ์—†์œผ๋ฉด, Child์˜ ์™ธ๋ž˜ํ‚ค ํ•„๋“œ๋ฅผ NULL๋กœ ์„ค์ •ํ•˜์—ฌ ์‚ฝ์ž…ํ•œ๋‹ค.

3) Set Default: Parent์— ํ•ด๋‹น PK๊ฐ€ ์—†์œผ๋ฉด, Child์˜ ์™ธ๋ž˜ํ‚ค๋ฅผ ๋ฏธ๋ฆฌ ์ง€์ •๋œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์‚ฝ์ž…ํ•œ๋‹ค.

4) โญ Dependent: Parent์— ์ฐธ์กฐํ•  PK๊ฐ€ ์กด์žฌํ•  ๋•Œ๋งŒ Child์— ์‚ฝ์ž…์ด ํ—ˆ์šฉ๋œ๋‹ค.

 

*Delete / Modify Action

1) โญ Cascade: Parent ์‚ญ์ œ ์‹œ Child ๊ฐ™์ด ์‚ญ์ œ

2) Set Null: Parent ์‚ญ์ œ ์‹œ ํ•ด๋‹น Child์˜ ํ•ด๋‹น ํ•„๋“œ๋Š” Null๋กœ ์…‹ํŒ…

3) Set Default: Parent ์‚ญ์ œ ์‹œ ํ•ด๋‹น Child์˜ ํ•ด๋‹น ํ•„๋“œ๋Š” Default๋กœ ์…‹ํŒ…

4) โญ Restrict: Parent ์‚ญ์ œ ์‹œ Child ํ…Œ์ด๋ธ”์— PK๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ Parent ์‚ญ์ œ ํ—ˆ์šฉ

5) No Action:์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ„๋ฐ˜ํ•˜๋Š” ์‚ญ์ œ/์ˆ˜์ • ์•ก์…”๋Š” ์ทจํ•˜์ง€ ์•Š๋Š”๋‹ค. 

 

*์‚ญ์ œ SQL ๋น„๊ต ์ •๋ฆฌ

Drop Table ํ…Œ์ด๋ธ”๋ช… Truncate Table ํ…Œ์ด๋ธ”๋ช… Delete From ํ…Œ์ด๋ธ”๋ช…
 DDL DDL DML
Auto Commit(DDL์ด๋ฏ€๋กœ) Auto Commit(DDL์ด๋ฏ€๋กœ) ์‚ฌ์šฉ์ž Commit
Rollback ๋ถˆ๊ฐ€ Rollback ๋ถˆ๊ฐ€ Commit ์ „์— Rollback ๊ฐ€๋Šฅ
ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ
๋กœ๊ทธ ์ œ๊ฑฐ ๋กœ๊ทธ ์ œ๊ฑฐ ๋กœ๊ทธ ์œ ์ง€
์Šคํ‚ค๋งˆ ์ •์˜๊นŒ์ง€ ๋ชจ๋‘ ์‚ญ์ œ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ ์œ ์ง€ ํ…Œ์ด๋ธ” ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ ์œ ์ง€

 

๐Ÿ“ŒํŠธ๋žœ์žญ์…˜์˜ ํŠน์ • ACID

1) ์›์ž์„ฑ(Automicity): ํŠธ๋žœ์žญ์…˜์—์„œ ์ •์˜๋œ ์—ฐ์‚ฐ๋“ค์€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋“ ์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ์–ด์•ผ ํ•œ๋‹ค.(all or notion)

2) ์ผ๊ด€์„ฑ(consistency): ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค  ๋‚ด์šฉ์ด ์ž˜๋ชป๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋œ ์ดํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์ด ์ž˜๋ชป์ด ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค. 

3) ๊ณ ๋ฆฝ์„ฑ(isolation): ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋„์ค‘์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„œ๋Š” ์•ˆ๋œ๋‹ค.

4) ์ง€์†์„ฑ(durability): ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰๋˜๋ฉด ๊ทธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์ด ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค.

 

*DB ํŠธ๋žœ์žญ์…˜์ด ๊ฒฉ๋ฆฌ์„ฑ์ด ๋‚ฎ์„ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์ 

- Dirty Read: ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ•ด ์ˆ˜์ •๋˜์—ˆ์ง€๋งŒ ์•„์ง ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ Dirtyํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒƒ

- Non-Repeatable Read: ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๋‘๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ, ๊ทธ ์‚ฌ์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ฐ’์„ ์ˆ˜์ •/์‚ญ์ œํ•ด์„œ ๋‘ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ

- Phantom Read: ํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ๊ฐ™์€ ์ฟผ๋ฆฌ๋ฅผ ๋‘๋ฒˆ ์ˆ˜ํ–‰ํ–ˆ๋Š”๋ฐ, ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ์—†๋˜ ์œ ํ˜• ๋ ˆ์ฝ”๋“œ(ํŒฌํ…€ ๋ ˆ์ฝ”๋“œ)๊ธฐ ๋‘ ๋ฒˆ์งธ ์ฟผ๋ฆฌ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ํ˜„์ƒ 

 

๐Ÿ“ŒSQL ํ™œ์šฉ

*์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž - SQL

- Union - Union(ํ•ฉ์ง‘ํ•ฉ)

- Intersection - Intersect(๊ต์ง‘ํ•ฉ)

- Difference - Except(Oracle์€ Minus) - 1-1 ๊ด€๊ณ„์ธ ํ…Œ์ด๋ธ”์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฉด ๊ณต์ง‘ํ•ฉ์ด ๋œ๋‹ค.

- Product - Cross Join

 

*์ˆœ์ˆ˜ ์—ฐ์‚ฐ์ž - SQL

- Select - Where

- Project - Select

- Join - ๋‹ค์–‘ํ•œ Join์œผ๋กœ ๊ธฐ๋Šฅ ๊ตฌํ˜„

- Divide - ํ˜„์žฌ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ

 

 

728x90