[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ] - [3๊ณผ๋ชฉ] 2023 (01)

[์ 3๊ณผ๋ชฉ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ถ]
- 2023๋ ๋ 1ํ์ฐจ (01)
CREATE TABLE
โถ ๊ฐ๋
: ํ ์ด๋ธ์ ์ ์ํ๋ ๋ช ๋ น๋ฌธ์ด๋ค.
โถ ํ๊ธฐ ํ์
CREATE TABLE ํ ์ด๋ธ๋ช ( ์์ฑ๋ช ๋ฐ์ดํฐ_ํ์ [ DEFAULT ๊ธฐ๋ณธ๊ฐ ] [ NOT NULL ],
...
[ , PRIMARY KEY ( ๊ธฐ๋ณธํค_์์ฑ๋ช , ...) ]
[ , UNIQUE (๋์ฒดํค_์์ฑ๋ช , ...) ]
[ , FOREIGN KEY (์ธ๋ํค_์์ฑ๋ช , ...) ]
[ REFERENCES ์ฐธ์กฐํ ์ด๋ธ (๊ธฐ๋ณธํค_์์ฑ๋ช , ...) ]
[ ON DELETE ์ต์ ]
[ ON UPDATE ์ต์ ]
[ . CONSTRAINT ์ ์ฝ์กฐ๊ฒฌ๋ช ] [ CHECK (์กฐ๊ฑด์) ] );
: ๊ธฐ๋ณธ ํ ์ด๋ธ์ ํฌํจ๋ ๋ชจ๋ ์์ฑ์ ๋ํ์ฌ ์์ฑ๋ช ๊ณผ ๊ทธ ์์ฑ์ ๋ฐ์ดํฐ ํ์ , ๊ธฐ๋ณธ๊ฐ, NOT NULL ์ฌ๋ถ๋ฅผ ์ง์ ํ๋ค.
โถ ํฌํจ๋๋ ๊ธฐ๋ฅ
1. ์์ฑ ํ์ ๋ณ๊ฒฝ ๋ถ๊ฐ
2. ์์ฑ์ NOT NULL ์ฌ๋ถ ์ง์
3. ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ ์ง์
4. CHECK ์ ์ฝ์กฐ๊ฑด์ ์ ์
โท PRIMARY KEY
: ๊ธฐ๋ณธํค๋ก ์ฌ์ฉํ ์์ฑ ๋๋ ์์ฑ์ ์งํฉ์ ์ง์ ํ๋ค.
โท UNIQUE
: ๋์ฒดํค๋ก ์ฌ์ฉํ ์์ฑ ๋๋ ์์ฑ์ ์งํฉ์ ์ง์ ํ๋ ๊ฒ์ผ๋ก UNIQUE๋ก ์ง์ ํ ์์ฑ์ ์ค๋ณต๋ ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
DROP ์ต์
1. CASCADE
: ์ ๊ฑฐํ ์์๋ฅผ ์ฐธ์กฐํ๋ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํจ๊ป ์ ๊ฑฐํ๋ค. ์ฆ ์ฃผ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ์ ๊ฑฐ ์ ๊ฐ ์ธ๋ํค์ ๊ด๊ณ๋ฅผ ๋งบ๊ณ ์๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ ์ค์ ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
2. RESTRICTED
: ๋ค๋ฅธ ๊ฐ์ฒด๊ฐ ์ ๊ฑฐํ ์์๋ฅผ ์ฐธ์กฐ์ค์ผ ๋๋ ์ ๊ฑฐ๋ฅผ ์ทจ์ํ๋ค.
๊ด๊ณ ํด์ ๊ด๋ จ ๊ธฐํธ
๊ธฐํธ | ๊ตฌ์ฑ์์ | ์ค๋ช |
โจ | OR ์ฐ์ฐ | ๋ ์์ '๋๋' ์ด๋ผ๋ ๊ด๊ณ๋ก ์ฐ๊ฒฐ |
โง | AND ์ฐ์ฐ | ๋ ์์ '๊ทธ๋ฆฌ๊ณ ' ๋ผ๋ ๊ด๊ณ๋ก ์ฐ๊ฒฐ |
ใฑ | NOT ์ฐ์ฐ | ์์ ๋ํ ๋ถ์ |
โ | ์ ์นญ ์ ๋์ | ๊ฐ๋ฅํ ๋ชจ๋ ํํ์ ๋ํ์ฌ (='For All) |
โ | ์กด์ฌ ์ ๋์ | ํ๋๋ผ๋ ์ผ์นํ๋ ํํ์ด ์์ |
๊ฐ๋ ์ , ๋ ผ๋ฆฌ์ , ๋ฌผ๋ฆฌ์ ์ค๊ณ
โถ ๊ฐ๋ ์ ์ค๊ณ (์ ๋ณด ๋ชจ๋ธ๋ง, ๊ฐ๋ ํ) ๊ฐ๋
: ์ ๋ณด์ ๊ตฌ์กฐ๋ฅผ ์ป๊ธฐ ์ํ์ฌ ํ์ค ์ธ๊ณ์ ๋ฌดํ์ฑ๊ณผ ๊ณ์์ฑ์ ์ดํดํ๊ณ , ๋ค๋ฅธ ์ฌ๋๊ณผ ํต์ ํ๊ธฐ ์ํ์ฌ ํ์ค ์ธ๊ณ์ ๋ํ ์ธ์์ ์ถ์์ ๊ฐ๋ ์ผ๋ก ํํํ๋ ๊ณผ์ ์ด๋ค.
: ๊ฐ๋ ์ ์ค๊ณ ๋จ๊ณ์์๋ ๊ฐ๋ ์คํค๋ง ๋ชจ๋ธ๋ง๊ณผ ํธ๋์ญ์ ๋ชจ๋ธ๋ง์ ๋ณํ ์ํํ๋ค.
: ๊ฐ๋ ์ ์ค๊ณ ๋จ๊ณ์์๋ ์๊ตฌ ๋ถ์ ๋จ๊ณ์์ ๋์จ ๊ฒฐ๊ณผ์ธ ์๊ตฌ ์กฐ๊ฑด ๋ช ์ธ๋ฅผ DBMS์ ๋ ๋ฆฝ์ ์ธ E-R ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ์์ฑํ๋ค.
โ ์ฐ์ถ๋ฌผ๋ก E-R Diagram์ ๋ง๋ค ์ ์๋ค.
: DBMS์ ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ ์คํค๋ง๋ฅผ ์ค๊ณํ๋ค.
: ๋ ผ๋ฆฌ์ ์ค๊ณ ๋จ๊ณ์ ์ ๋จ๊ณ์์ ์ํ๋๋ค.
โถ ๋ ผ๋ฆฌ์ ์ค๊ณ (๋ฐ์ดํฐ ๋ชจ๋ธ๋ง)
: ํ์ค ์ธ๊ณ์์ ๋ฐ์ํ๋ ์๋ฃ๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ์ ์ฅํ ์ ์๋๋ก ๋ณํํ๊ธฐ ์ํด ํน์ DBMS๊ฐ ์ง์ํ๋ ๋ ผ๋ฆฌ์ ์๋ฃ ๊ตฌ์กฐ๋ก ๋ณํ์ํค๋ ๊ณผ์ ์ด๋ค.
: ํน์ DBMS๊ฐ ์ง์ํ๋ ๋ ผ๋ฆฌ์ ์๋ฃ ๊ตฌ์กฐ๋ก ๋ณํ์ํค๋ ๊ณผ์ ์ด๋ค.
: ๊ฐ๋ ์ธ๊ณ์ ๋ฐ์ดํฐ๋ฅผ ํ๋๋ก ๊ธฐ์ ๋ ๋ฐ์ดํฐ ํ์ ๊ณผ ์ด ๋ฐ์ดํฐ ํ์ ๋ค ๊ฐ์ ๊ด๊ณ๋ก ํํ๋๋ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ก ๋ชจ๋ธํํ๋ค.
: ๊ฐ๋ ์ ์ค๊ณ๊ฐ ๊ฐ๋ ์คํค๋ง๋ฅผ ์ค๊ณํ๋ ๋จ๊ณ๋ผ๋ฉด ๋ ผ๋ฆฌ์ ์ค๊ณ์์๋ ๊ฐ๋ ์คํค๋ง๋ฅผ ํ๊ฐ ๋ฐ ์ ์ ํ๊ณ DBMS์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ๋ ผ๋ฆฌ์ ์คํค๋ง๋ฅผ ์ค๊ณํ๋ ๋จ๊ณ์ด๋ค.
: ํธ๋์ญ์ ์ ์ธํฐํ์ด์ค๋ฅผ ์ค๊ณํ๋ค.
: ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๋ฉด ํ ์ด๋ธ์ ์ค๊ณํ๋ ๋จ๊ณ์ด๋ค.
โถ ๋ฌผ๋ฆฌ์ ์ค๊ณ (๋ฐ์ดํฐ ๊ตฌ์กฐํ)
: ๋ ผ๋ฆฌ์ ์ค๊ณ ๋จ๊ณ์์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ํํ๋ ๋ฐ์ดํฐ๋ฅผ ๋์คํฌ ๋ฑ์ ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ์ ์ฅํ ์ ์๋ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ณผ์ ์ด๋ค.
: ๋ฌผ๋ฆฌ์ ์ค๊ณ ๋จ๊ณ์์๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฉ์ ๋ํด ์ฒ๋ฆฌ ์ฑ๋ฅ์ ์ป๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ์ผ์ ์ ์ฅ ๊ตฌ์กฐ ๋ฐ ์ก์ธ์ค ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๋ค.
: ์ ์ฅ ๋ ์ฝ๋์ ํ์, ์์, ์ ๊ทผ ๊ฒฝ๋ก์ ๊ฐ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๊ฐ ์ปดํจํฐ์ ์ ์ฅ๋๋ ๋ฐฉ๋ฒ์ ๋ฌ์ฌํ๋ค.
์งํฉ ์ฐ์ฐ์
โถ ์ข ๋ฅ
์งํฉ ์ฐ์ฐ์ | ์ค๋ช | ์งํฉ ์ข ๋ฅ |
UNION | - ๋ SELECT๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ์ฌ ๋ชจ๋ ์ถ๋ ฅํ๋ค. - ์ค๋ณต๋ ํ์ ํ ๋ฒ๋ง ์ถ๋ ฅํ๋ค |
ํฉ์งํฉ |
UNION ALL | - ๋ SELECT ๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉํ์ฌ ๋ชจ๋ ์ถ๋ ฅํ๋ค. - ์ค๋ณต๋ ํ๋ ๊ทธ๋๋ก ์ถ๋ ฅํ๋ค. |
ํฉ์งํฉ |
INTERSECT | - ๋ SELECT ๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ ์ค ๊ณตํต๋ ํ๋ง ์ถ๋ ฅํ๋ค. | ๊ต์งํฉ |
EXCEPT | - ์ฒซ ๋ฒ์งธ SELECT ๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ์์ ๋ ๋ฒ์งธ SELECT ๋ฌธ์ ์กฐํ ๊ฒฐ๊ณผ๋ฅผ ์ ์ธํ ํ์ ์ถ๋ ฅํ๋ค. | ์ฐจ์งํฉ |
์ ๊ทํ ๊ณผ์
[ ๋น์ ๊ท ๋ฆด๋ ์ด์ ]
โ : ๋๋ฉ์ธ์ด ์์๊ฐ
[ 1NF ]
โ : ๋ถ๋ถ์ ํจ์ ์ข ์ ์ ๊ฑฐ
[ 2NF ]
โ : ์ดํ์ ํจ์ ์ข ์ ์ ๊ฑฐ
[ 3NF ]
โ : ๊ฒฐ์ ์์ด๋ฉด์ ํ๋ณดํค๊ฐ ์๋ ๊ฒ์ ์ ๊ฑฐ
[ BCNF ]
โ : ๋ค์น ์ข ์ ์ ๊ฑฐ
[ 4NF ]
โ : ์กฐ์ธ ์ข ์์ฑ ์ด์ฉ
[ 5NF ]
โ ์ง๋ฌธ ์์
Q. ์ 3 ์ ๊ทํ( 3NF )์์ BCNF ๊ฐ ๋๊ธฐ ์ํ ์กฐ๊ฑด์?
1. ๊ฒฐ์ ์๊ฐ ํ๋ณดํค๊ฐ ์๋ ํจ์ ์ข ์ ์ ๊ฑฐ (3NF โ BCNF)
2. ์ดํ์ ํจ์ ์ข ์ ์ ๊ฑฐ (2NF โ 3NF)
3. ๋ถ๋ถ์ ํจ์ ์ข ์ ์ ๊ฑฐ (1NF โ 2NF)
4. ์์๊ฐ์ด ์๋ ๋๋ฉ์ธ ๋ถํด (๋น์ ๊ท ๋ฆด๋ ์ด์ โ 1NF)
โป ์ ๊ทํ ๊ณผ์ ๋ฐ ์กฐ๊ฑด ์์ ์๊ธฐ
๊ด๊ณ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด
โถ ์ข ๋ฅ
1. ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ
: ๋ฆด๋ ์ด์ ์์ ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ์ ๋(NULL) ๊ฐ์ด๋ ์ค๋ณต ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
2. ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
: ์ธ๋ํค ๊ฐ์ NULL์ด๊ฑฐ๋ ์ฐธ์กฐ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค ๊ฐ๊ณผ ๋์ผํด์ผ ํ๋ค.
: ๋ฆด๋ ์ด์ ์ ์ฐธ์กฐํ ์ ์๋ ์ธ๋ ํค ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
3. ๋ ๋ฌด๊ฒฐ์ฑ
: ๋ฆด๋ ์ด์ ์ ํน์ ์์ฑ ๊ฐ์ด NULL์ด ๋ ์ ์๋๋ก ํ๋ ๊ท์
4. ๊ณ ์ ๋ฌด๊ฒฐ์ฑ
: ๋ฆด๋ ์ด์ ์ ํน์ ์์ฑ์ ๋ํด์ ๊ฐ ํํ์ด ๊ฐ๋ ๊ฐ๋ค์ด ์๋ก ๋ฌ๋ผ์ผ ํ๋ค๋ ๊ท์
5. ๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ
: ํน์ ์์ฑ์ ๊ฐ์ด ๊ทธ ์์ฑ์ด ์ ์๋ ๋๋ฉ์ธ์ ์ํ ๊ฐ์ด์ด์ผ ํ๋ค๋ ๊ท์
6. ํค ๋ฌด๊ฒฐ์ฑ
: ํ๋์ ๋ฆด๋ ์ด์ ์๋ ์ ์ด๋ ํ๋์ ํค๊ฐ ์กด์ฌํด์ผ ํ๋ค๋ ๊ท์
7. ๊ด๊ณ ๋ฌด๊ฒฐ์ฑ
: ๋ฆด๋ ์ด์ ์ ์ด๋ ํ ํํ์ ์ฝ์ ๊ฐ๋ฅ ์ฌ๋ถ ๋๋ ํ ๋ฆด๋ ์ด์ ๊ณผ ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ํํ๋ค ์ฌ์ด์ ๊ด๊ณ์ ๋ํ ์ ์ ์ฑ ์ฌ๋ถ๋ฅผ ์ง์ ํ ๊ท์
๋กํน ๋จ์ (Locking Granularity)
: ๋กํน ๋จ์๋ ๋ณํ์ ์ด์์ ํ๊บผ๋ฒ์ ๋กํนํ ์ ์๋ ๊ฐ์ฒด์ ํฌ๊ธฐ๋ฅผ ์๋ฏธํ๋ค.
โ ํ๊บผ๋ฒ์ ๋กํนํ ์ ์๋ ๋จ์๋ฅผ ๋กํน ๋จ์๋ผ๊ณ ํ๋ค.
: ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํ์ผ, ๋ ์ฝ๋, ํ๋ ๋ฑ์ ๋กํน ๋จ์๊ฐ ๋ ์ ์๋ค.
: ๋กํน ๋จ์๊ฐ ํฌ๋ฉด ๋กํฌ ์๊ฐ ์์ ๊ด๋ฆฌํ๊ธฐ ์ฝ์ง๋ง ๋ณํ์ฑ ์์ค์ด ๋ฎ์์ง๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณต์ ๋๊ฐ ์ ํ๋๋ค.
: ๋กํน ๋จ์๊ฐ ์์ผ๋ฉด ๋กํฌ ์๊ฐ ๋ง์ ๊ด๋ฆฌํ๊ธฐ ๋ณต์กํด ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ์ง๋ง ๋ณํ์ฑ ์์ค์ด ๋์์ง๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ณต์ ๋๊ฐ ์ฆ๊ฐํ๋ค.
โ ๋กํน ๋จ์๊ฐ ์์์ง๋ฉด ๋กํน ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํ๋ค.
ํธ๋์ญ์ ์ ์ํ
1. ํ๋ (Actice)
: ํธ๋์ญ์ ์ด ์คํ ์ค์ธ ์ํ
2. ์คํจ (Failed)
: ํธ๋์ญ์ ์คํ ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ ์ค๋จ๋ ์ํ
3. ์ฒ ํ (Aborted)
: ํธ๋์ญ์ ์ด ๋น์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ด Rollback ์ฐ์ฐ์ ์ํํ ์ํ
4. ๋ถ๋ถ ์๋ฃ (Partially Committed)
: ํธ๋์ญ์ ์ ๋ง์ง๋ง ์ฐ์ฐ๊น์ง ์๋ฃํ์ง๋ง, Commit ์ฐ์ฐ์ด ์คํ๋๊ธฐ ์ง์ ์ ์ํ
โ ํธ๋์ญ์ ์ ์ํ ์ค ํธ๋์ญ์ ์ ๋ง์ง๋ง ์ฐ์ฐ์ด ์คํ๋ ์งํ์ ์ํ๋ก, ๋ชจ๋ ์ฐ์ฐ์ ์ฒ๋ฆฌ๋ ๋๋ฌ์ง๋ง ํธ๋์ญ์ ์ด ์ํํ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ํ์ง ์์ ์ํ
5. ์๋ฃ (Committed)
: ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์ข ๋ฃ๋์ด Commit ์ฐ์ฐ๊น์ง ์ํํ ์ํ
์ญ์ ๋ฌธ (DELETE FROM ~)
: ์ญ์ ๋ฌธ์ ๊ธฐ๋ณธ ํ ์ด๋ธ์ ์๋ ํํ๋ค ์ค์์ ํน์ ํํ(ํ)์ ์ญ์ ํ ๋ ์ฌ์ฉํ๋ค.
โป DROP : ํ ์ด๋ธ ์ญ์ / DELETE : ๋ ์ฝ๋ ์ญ์
: ํ ์ด๋ธ์ ํ์ ์ญ์ ํ ๋ ์ฌ์ฉํ๋ค.
: SQL์ ์ฌ์ฉ ์ฉ๋์ ๋ฐ๋ผ ๋ถ๋ฅํ ๊ฒฝ์ฐ DML์ ํด๋นํ๋ค.
โถ ๊ธฐ๋ณธ ์ฌ์ฉ ํ์
DELETE
FROM ํ ์ด๋ธ๋ช
[WHERE ์กฐ๊ฑด] :
โถ ํ์
: ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ ๋๋ WHERE ์ ์ ์๋ตํ๋ค.
: ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ๋๋ผ๋ ํ ์ด๋ธ ๊ตฌ์กฐ๋ ๋จ์์๊ธฐ ๋๋ฌธ์ ๋์คํฌ์์ ํ ์ด๋ธ์ ์์ ํ ์ ๊ฑฐํ๋ DROP๊ณผ๋ ๋ค๋ฅด๋ค.
๊ด๊ณ ๋์์
ฯ ์ด๋ฆ ( โํ๊ณผ = '๊ต์ก' (ํ์) )
โถ SQL ์ง์๋ก ํํํ ๊ฒ
: SELECT ์ด๋ฆ FROM ํ์ WHERE ํ๊ณผ = '๊ต์ก';
- ฯ ์ด๋ฆ : '์ด๋ฆ' ํ๋๋ฅผ ํ์
- โํ๊ณผ = '๊ต์ก' : 'ํ๊ณผ'๊ฐ "๊ต์ก"์ธ ์๋ฃ๋ง์ ๋์์ผ๋ก ํ๋ค.
- (ํ์) : <ํ์> ํ ์ด๋ธ์ ์๋ฃ๋ฅผ ๊ฒ์ํ๋ค.
โซ ๊ต์ก๊ณผ ํ์์ '์ด๋ฆ'์ ๊ฒ์ํ๋ ์
๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
โถ ๊ฐ๋
: ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ๊ฐ์ ์์คํ ์ ์ํ์ง๋ง ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ์ปดํจํฐ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ถ์ฐ๋์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค
โถ ๋ชฉํ
1. ์์น ํฌ๋ช ์ฑ : ์ ๊ทผํ๋ ค๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค์ ์์น๋ฅผ ์ ํ์ ์์ด ๋จ์ง ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ผ๋ฆฌ์ ์ธ ๋ช ์นญ๋ง์ผ๋ก ์ ๊ทผํ ์ ์๋ค.
2. ์ค๋ณต ํฌ๋ช ์ฑ : ๋์ผํ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๊ณณ์ ์ค๋ณต๋์ด ์๋๋ผ๋ ์ฌ์ฉ์๋ ๋ง์น ํ๋์ ๋ฐ์ดํฐ๋ง ์กด์ฌํ๋ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ณ , ์์คํ ์ ์๋์ผ๋ก ์ฌ๋ฌ ๋ฐ์ดํฐ์ ๋ํ ์์ ์ ์ํํ๋ค.
3. ๋ณํ ํฌ๋ช ์ฑ : ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๋ จ๋ ๋ค์์ ํธ๋์ญ์ ๋ค์ด ๋์์ ์คํ๋๋๋ผ๋ ๊ทธ ํธ๋์ญ์ ๋ค์ ์ํ ๊ฒฐ๊ณผ๋ ์๋ก ์ํฅ์ ๋ฐ์ง ์๋๋ค.
4. ์ฅ์ ํฌ๋ช ์ฑ : ํธ๋์ญ์ , DBMS, ๋คํธ์ํฌ, ์ปดํจํฐ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ ํธ๋์ญ์ ์ ์ ํํ๊ฒ ์ํ๋๋ค.
โถ ๊ตฌ์ฑ ์์
1. ๋ถ์ฐ ์ฒ๋ฆฌ๊ธฐ : ์์ฒด์ ์ผ๋ก ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ ๊ฐ์ง๋ฉฐ, ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์๋ ์ปดํจํฐ ์์คํ
2. ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค : ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก์ ํด๋น ์ง์ญ์ ํน์ฑ์ ๋ง๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๊ตฌ์ฑ
3. ํต์ ๋คํธ์ํฌ : ๋ถ์ฐ ์ฒ๋ฆฌ๊ธฐ๋ค์ ํต์ ๋ง์ผ๋ก ์ฐ๊ฒฐํ์ฌ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๋์ ์์คํ ์ฒ๋ผ ์๋ํ ์ ์๋๋ก ํ๋ ํต์ ๋คํธ์ํฌ๋ฅผ ์๋ฏธ
โถ ์ฅ์
: ์ง์ญ ์์น์ฑ โ
: ์๋ฃ์ ๊ณต์ ์ฑ ํฅ์
: ๋ถ์ฐ ์ ์ด ๊ฐ๋ฅ
: ์์คํ ์ฑ๋ฅ ํฅ์
: ์ค์ ์ปดํจํฐ์ ์ฅ์ ๊ฐ ์ ์ฒด ์์คํ ์ ์ํฅ์ ๋ผ์น์ง ์์
: ํจ์ฉ์ฑ๊ณผ ์ตํต์ฑ์ด ๋์
: ์ ๋ขฐ์ฑ ๋ฐ ๊ฐ์ฉ์ฑ์ด ๋์
: ์ ์ง์ ์์คํ ์ฉ๋ ํ์ฅ์ด ์ฉ์ดํจ
โถ ๋จ์
: ๋ถ์ฐ ์ฒ๋ฆฌ๊ธฐ๋ค์ ํต์ ๋ง์ผ๋ก ์ฐ๊ฒฐํ์ฌ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๋์ ์์คํ ์ฒ๋ผ ์๋ํ ์ ์๋๋ก ํ๋ ํต์ ๋คํธ์ํฌ๋ฅผ ์๋ฏธ
๋ฆด๋ ์ด์ , ํํ, ์์ฑ
โถ ๋ฆด๋ ์ด์ (Relation)
: ๋ฐ์ดํฐ๋ค์ ํ(Table)์ ํํ๋ก ํํํ ๊ฒ์ผ๋ก ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด๋ ๋ฆด๋ ์ด์ ์คํค๋ง์ ์ค์ ๊ฐ๋ค์ธ ๋ฆด๋ ์ด์ ์ธ์คํด์ค๋ก ๊ตฌ์ฑ๋๋ค,.
โถ ํํ (Tuple)
: ํํ์ ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๊ฐ์ ํ์ ๋งํ๋ค.
: ํํ์ ์์ฑ์ ๋ชจ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.
: ํ์ผ ๊ตฌ์กฐ์์ ๋ ์ฝ๋์ ๊ฐ์ ์๋ฏธ์ด๋ค.
: ํํ์ ์๋ฅผ ์นด๋๋๋ฆฌํฐ ๋๋ ๊ธฐ์, ๋์์๋ผ๊ณ ํ๋ค.
โถ ์์ฑ (Attribute)
: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์
: ํ์ผ ๊ตฌ์กฐ์์ ๋ฐ์ดํฐ ํญ๋ชฉ ๋๋ ๋ฐ์ดํฐ ํ๋์ ํด๋น๋๋ค.
: ๊ฐ์ฒด์ ํน์ฑ์ ๊ธฐ์ ํ๋ค.
: ์์ฑ์ ์๋ฅผ ๋๊ทธ๋ฆฌ(Degree) ๋๋ ์ฐจ์๋ผ๊ณ ํ๋ค.
๋ฐ์ดํฐ ์ ์์ด ( DDL )
: CREATE, ALTER, DROP
๋ฐ์ดํฐ ์กฐ์์ด ( DML )
: SELECT, INSESRT, UPDATE, DELETE
๋ฐ์ดํฐ ์ ์ด์ด ( DCL )
: COMMIT, ROLLBACK, GRANT, REVOKE
์ด์ (Anomaly)
: ๋ฐ์ดํฐ์ ์ค๋ณต์ผ๋ก ์ธํ์ฌ ๊ด๊ณ ์ฐ์ฐ์ ์ฒ๋ฆฌํ ๋ ์๊ธฐ์น ๋ชปํ ๊ณค๋ํ ํ์์ด ๋ฐ์ํ๋ ๊ฒ
โถ ์ข ๋ฅ
1. ์ฝ์ ์ด์ (Insertion Anomaly)
: ๋ฆด๋ ์ด์ ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ์๋์๋ ์๊ด์์ด ์ํ์ง ์๋ ๊ฐ๋ค๋ ํจ๊ป ์ฝ์ ๋๋ ํ์
2. ์ญ์ ์ด์ (Deletion Anomaly)
: ๋ฆด๋ ์ด์ ์์ ํ ํํ์ ์ญ์ ํ ๋ ์๋์๋ ์๊ด์๋ ๊ฐ๋ค๋ ํจ๊ป ์ญ์ ๋๋ ์ฐ์๊ฐ ์ผ์ด๋๋ ํ์
3. ๊ฐฑ์ ์ด์ (Update Anomaly)
: ๋ฆด๋ ์ด์ ์์ ํํ์ ์๋ ์์ฑ๊ฐ์ ๊ฐฑ์ ํ ๋ ์ผ๋ถ ํํ์ ์ ๋ณด๋ง ๊ฐฑ์ ๋์ด ์ ๋ณด์ ๋ชจ์์ด ์๊ธฐ๋ ํ์
๋ฆด๋ ์ด์
โถ ํน์ง
: ํ ๋ฆด๋ ์ด์ ์ ํฌํจ๋ ํํ๋ค์ ๋ชจ๋ ์์ดํ๋ค.
โ ๋ชจ๋ ํํ์ ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ๋๋ค.
ex. <ํ์> ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ํ๊ธธ๋ ๋ ์ฝ๋๋ ํ๊ธธ๋์ ๋ํ ํ์ ์ฌํญ์ ๋ํ๋ด๋ ๊ฒ์ผ๋ก <ํ์> ๋ฆด๋ ์ด์ ๋ด์์๋ ์ ์ผํ๋ค.
: ํ ๋ฆด๋ ์ด์ ์ ํฌํจ๋ ํํ ์ฌ์ด์๋ ์์๊ฐ ์๋ค.
: ํํ๋ค์ ์ฝ์ , ์ญ์ ๋ฑ์ ์์ ์ผ๋ก ์ธํด ๋ฆด๋ ์ด์ ์ ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ค.
ex. <ํ์> ๋ฆด๋ ์ด์ ์ ์๋ก์ด ํ์์ ๋ ์ฝ๋๋ฅผ ์ฝ์ ํ๊ฑฐ๋, ๊ธฐ์กด ํ์์ ๋ํ ๋ ์ฝ๋๋ฅผ ์ญ์ ํจ์ผ๋ก์จ ํ ์ด๋ธ์ ๋ด์ฉ ๋ฉด์์๋ ํฌ๊ธฐ ๋ฉด์์ ๋ณํ๊ฒ ๋๋ค.
: ์์ฑ์ ์ ์ผํ ์๋ณ์ ์ํด ์์ฑ์ ๋ช ์น์ ์ ์ผํด์ผ ํ์ง๋ง, ์์ฑ์ ๊ตฌ์ฑํ๋ ๊ฐ์ ๋์ผํ ๊ฐ์ด ์์ ์ ์๋ค.
โ ๊ฐ ์์ฑ์ ๋ฆด๋ ์ด์ ๋ด์์ ์ ์ผํ ์ด๋ฆ์ ๊ฐ์ง๋ค.
ex. ๊ฐ ํ์์ ํ๋ ์ ๊ธฐ์ ํ๋ ์์ฑ์ธ 'ํ๋ '์ ๋ค๋ฅธ ์์ฑ๋ช ๋ค๊ณผ ๊ตฌ๋ถ๋์ด ์ ์ผํด์ผ ํ์ง๋ง 'ํ๋ ' ์์ฑ์๋ 2, 1, 2, 4 ๋ฑ์ด ์ ๋ ฅ๋ ๊ฒ์ฒ๋ผ ๋์ผํ ๊ฐ์ด ์์ ์ ์๋ค.
: ์์ฑ์ ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ์์ ๊ฐ๋ง์ ์ ์ฅํ๋ค.
โ ๋ชจ๋ ์์ฑ ๊ฐ์ ์์ ๊ฐ์ด๋ค.
ex. 'ํ๋ '์ ์ ์ฅ๋ 1, 2, 4 ๋ฑ์ ๋ ์ด์ ์ธ๋ถํํ ์ ์๋ค.
: ๋ฆด๋ ์ด์ ์ ๊ตฌ์ฑํ๋ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ๊ธฐ ์ํด ์์ฑ๋ค์ ๋ถ๋ถ์งํฉ์ ํค(Key) ๋ก ์ค์ ํ๋ค.
๋ทฐ (View)
: ๋ทฐ๋ ๊ธฐ๋ณธ ํ ์ด๋ธ๋ก๋ถํฐ ์ ๋๋ ํ ์ด๋ธ
: ๊ธฐ๋ณธ ํ ์ด๋ธ๊ณผ ๊ฐ์ ํํ์ ๊ตฌ์กฐ ์ฌ์ฉ / ์กฐ์๋ ๊น๋ ธ ํ ์ด๋ธ๊ณผ ๊ฑฐ์ ์ ์ฌ
: ๊ฐ์ ํ ์ด๋ธ์ด๊ธฐ ๋๋ฌธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌํ๋์ด ์์ง ์๋ค.
: ๋ฐ์ดํฐ์ ๋ ผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ์ด ์ด๋ ์ ๋ ์ ๊ณต๋๋ค.
โ ๋ ผ๋ฆฌ์ ๋ ๋ฆฝ์ฑ์ ์ ๊ณตํ๋ค.
: ํ์ํ ๋ฐ์ดํฐ๋ง ๋ทฐ๋ก ์ ์ํด์ ์ฒ๋ฆฌํ ์ ์๊ธฐ ๋๋ฌธ์ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๊ณ ๋ช ๋ น๋ฌธ์ด ๊ฐ๋จํ๋ค.
: ๋ทฐ๋ฅผ ํตํด์๋ง ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ฒ ํ๋ฉด ๋ทฐ์ ๋ํ๋์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๋ณดํธํ๋ ํจ์จ์ ์ธ ๊ธฐ๋ฒ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
: ํ๋์ ๋ทฐ๋ฅผ ์ญ์ ํ๋ฉด ๊ทธ ๋ทฐ๋ฅผ ๊ธฐ์ด๋ก ์ ์๋ ๋ค๋ฅธ ๋ทฐ๋ ์๋์ผ๋ก ์ญ์ ๋๋ค.
โ ๋ทฐ๊ฐ ์ ์๋ ๊ธฐ๋ณธ ํ ์ด๋ธ์ด ์ญ์ ๋๋ฉด ๋ทฐ๋ ์๋์ ์ผ๋ก ์ญ์ ๋๋ค.
: ๋ทฐ๋ ๋ ์์ ์ธ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง ์ ์๋ค.
: ๊ธฐ๋ณธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ํฌํจํ ์์ฑ(์ด) ์งํฉ์ผ๋ก ๋ทฐ๋ฅผ ๊ตฌ์ฑํด์ผ๋ง ์ฝ์ , ์ญ์ , ๊ฐฑ์ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
โ ๋ทฐ๋ก ๊ตฌ์ฑ๋ ๋ด์ฉ์ ๋ํ ์ฝ์ , ๊ฐฑ์ , ์ญ์ ์ฐ์ฐ์๋ ์ ์ฝ์ด ๋ฐ๋ฅธ๋ค.
