๐Ÿ“š CS [ComputerScience]/๐Ÿ“š CS ๋ฉด์ ‘

๐Ÿ“š [CS๋ฉด์ ‘] ์›น ๋ฉด์ ‘ ์งˆ๋ฌธ [13] [ Database ]

Dbswnstjd 2024. 3. 7. 23:24

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด(DDL, DML, DCL)์— ๋Œ€ํ•ด ์„ค๋ช…

- DDL (์ •์˜์–ด : Data Definition Language) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์ •์˜, ์ˆ˜์ •, ์‚ญ์ œํ•˜๋Š” ์–ธ์–ด ( alter, create, drop )

- DML (์กฐ์ž‘์–ด : Data Manipulation Language) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚ด์˜ ์ž๋ฃŒ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ์–ธ์–ด ( select, insert, update, delete )

- DCL (์ œ์–ด์–ด : Data Control Language) : ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ ์ œ์–ด, ๋ณดํ˜ธ์™€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์–ธ์–ด ( commit, rollback, grant, revoke )

 

2. SELECT ์ฟผ๋ฆฌ์˜ ์ˆ˜ํ–‰ ์ˆœ์„œ

1. FROM

- ๊ฐ ํ…Œ์ด๋ธ”์„ ํ™•์ธํ•œ๋‹ค.

2. ON

- JOIN ์กฐ๊ฑด์„ ํ™•์ธํ•œ๋‹ค.

3. JOIN

- JOIN์ด ์‹คํ–‰๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ SET์œผ๋กœ ๋ชจ์•„์ง€๊ฒŒ ๋œ๋‹ค. ์„œ๋ธŒ์ฟผ๋ฆฌ๋„ ํ•จ๊ป˜ ํฌํ•จ๋˜์–ด ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค€๋‹ค.

2. WHERE

- ๋ฐ์ดํ„ฐ์…‹์„ ํ˜•์„ฑํ•˜๊ฒŒ ๋˜๋ฉด WHERE์˜ ์กฐ๊ฑด์ด ๊ฐœ๋ณ„ ํ–‰์— ์ ์šฉ๋œ๋‹ค. WHERE์ ˆ์˜ ์ œ์•ฝ ์กฐ๊ฑด์€ FROM์ ˆ๋กœ ๊ฐ€์ ธ์˜จ ํ…Œ์ด๋ธ”์— ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

3. GROUP BY

- WHERE์˜ ์กฐ๊ฑด ์ ์šฉ ํ›„ ๋‚˜๋จธ์ง€ ํ–‰์€ GROUP BY์ ˆ์— ์ง€์ •๋œ ์—ด์˜ ๊ณตํ†ต ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๊ทธ๋ฃนํ™”๋œ๋‹ค. ์ฟผ๋ฆฌ์— ์ง‘๊ณ„ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

4. HAVING

- GROUP BY์ ˆ์ด ์ฟผ๋ฆฌ์— ์žˆ์„ ๊ฒฝ์šฐ HAVING ์ ˆ์˜ ์ œ์•ฝ์กฐ๊ฑด์ด ๊ทธ๋ฃนํ™”๋œ ํ–‰์— ์ ์šฉ๋œ๋‹ค.

5. SELECT

- SELECT์— ํ‘œํ˜„๋œ ์‹์ด ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ์šฉ๋œ๋‹ค.

6. DISTINCT

- ํ‘œํ˜„๋œ ํ–‰์—์„œ ์ค‘๋ณต๋œ ํ–‰์€ ์‚ญ์ œ

7.ORDER BY

- ์ง€์ •๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ง€์ •

8. LIMIT

- LIMIT์—์„œ ๋ฒ—์–ด๋‚˜๋Š” ํ–‰๋“ค์€ ์ œ์™ธ๋˜์–ด ์ถœ๋ ฅ๋œ๋‹ค.

 

3. ์ •๊ทœํ™”๋ž€ ?

ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์— ํ•˜๋‚˜์˜ ์˜๋ฏธ๋งŒ ์กด์žฌํ•˜๋„๋ก ๋ฆด๋ ˆ์ด์…˜์„ ๋ถ„ํ•ดํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ์ตœ์†Œํ•œ์˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต, ์ตœ๋Œ€ํ•œ์˜ ๋ฐ์ดํ„ฐ ์œ ์—ฐ์„ฑ์„ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ œ1 ์ •๊ทœํ˜• : ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์ด ์›์ž ๊ฐ’(Atomic Value; ํ•˜๋‚˜์˜ ๊ฐ’)์„ ๊ฐ–๋„๋ก ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

์ œ2 ์ •๊ทœํ˜•: ์ œ1 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๊ณ , ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ์™„์ „ ํ•จ์ˆ˜ ์ข…์†์ด๋„๋ก ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

โ€ป ์—ฌ๊ธฐ์„œ ์™„์ „ ํ•จ์ˆ˜ ์ข…์†์ด๋ž€ ๊ธฐ๋ณธํ‚ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฒฐ์ •ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์˜๋ฏธ


์ œ3 ์ •๊ทœํ˜• : ์ œ2 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๊ณ , ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†์„ ์—†์• ๋„๋ก ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.

โ€ป ์—ฌ๊ธฐ์„œ ์ดํ–‰์  ์ข…์†์ด๋ž€ A → B, B → C๊ฐ€ ์„ฑ๋ฆฝํ•  ๋•Œ A → C๊ฐ€ ์„ฑ๋ฆฝ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ


BCNF ์ •๊ทœํ˜• : ์ œ3 ์ •๊ทœํ˜•์„ ๋งŒ์กฑํ•˜๊ณ , ํ•จ์ˆ˜ ์ข…์†์„ฑ X → Y๊ฐ€ ์„ฑ๋ฆฝํ•  ๋•Œ ๋ชจ๋“  ๊ฒฐ์ •์ž X๊ฐ€ ํ›„๋ณดํ‚ค๊ฐ€ ๋˜๋„๋ก ๋ถ„ํ•ดํ•ฉ๋‹ˆ๋‹ค.