โ ๋ฐ์ดํฐ ๋ฒ ์ด์ค (DBMS, DataBase Management System)
- ํน์ ์กฐ์ง ๋ด ํ์ํ ๋ฐ์ดํฐ๋ค์ ๋ชจ์, ๊ณต์ฉ์ผ๋ก ์์ /์ ์ง/์ด๋ํ๋ ๊ณต์ฉ ๋ฐ์ดํฐ
โ ์คํค๋ง(Schema)
- ์ธ๋ถ ์คํค๋ง(์๋ธ ์คํค๋ง)
- ์ฌ์ฉ์ ๊ด์ ์ ์คํค๋ง → ํ๋์ DB์ ์ฌ๋ฌ ๊ฐ์ ์ธ๋ถ ์คํค๋ง ์กด์ฌ
- ์ฌ์ฉ์, ํ๋ก๊ทธ๋จ๋ง๋ค ๋ค์ํ ํํ์ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ๋ก ์กด์ฌ
- ๊ฐ๋
์คํค๋ง
- ์ฌ์ฉ์์ DB ๊ด๋ฆฌ์ ๊ด์ ์ ์คํค๋ง / DB์ ์ ์ฒด์ ์ธ ๋ ผ๋ฆฌ์ ๊ตฌ์กฐ
- ์ผ๋ฐ์ ์ผ๋ก ํ๋์ DB์๋ ํ๋์ ๊ฐ๋ ์คํค๋ง๊ฐ ์กด์ฌ → ๋ฐ์ดํฐ ๊ฐ์ฒด/๊ด๊ณ/์ ์ฝ์กฐ๊ฑด/์ ๊ทผ๊ถํ/๋ฌด๊ฒฐ์ฑ ๊ท์น ๋ช ์ธ
- ๋ด๋ถ ์คํค๋ง
- DB ์ค๊ณ์/๊ฐ๋ฐ์ ๊ด์ ์ ์คํค๋ง
- ๊ฐ๋ ์คํค๋ง๋ฅผ ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์ ์ → ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ / ๋ด๋ถ ๋ ์ฝ๋์ ๋ฌผ๋ฆฌ์ ์์
โ ๋ฐ์ดํฐ ๋ ๋ฆฝ์ฑ
- ๋
ผ๋ฆฌ์ ๋
๋ฆฝ์ฑ: ์์ฉ ํ๋ก๊ทธ๋จ ์ํฅ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋
ผ๋ฆฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ
- ๋ฌผ๋ฆฌ์ ๋
๋ฆฝ์ฑ: ์์ฉ ํ๋ก๊ทธ๋จ ๋ฐ ๋
ผ๋ฆฌ ๊ตฌ์กฐ ์ํฅ์์ด ๋ฐ์ดํฐ์ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ ๋ณ๊ฒฝ
โ ๋ฐ์ดํฐ ์ธ์ด
- DDL(Data Definition Language): ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ/์ ์ฝ ์กฐ๊ฑด ์ ์
- DML(Data Manipulation ~): ๋ฐ์ดํฐ ์ฒ๋ฆฌ/์กฐ์์ ์ฌ์ฉ๋๋ ์ธ์ด
- DCL(Data Control ~): ๋ฐ์ดํฐ์ ๋ณด์, ๊ถํ, ๋ฌด๊ฒฐ์ฑ, ๊ถํ ๊ฒ์ฌ, ๋ณํ ์ ์ด๋ฅผ ์ํ ์ธ์ด
โ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์ค๊ณ ์์ ← โ ์์ ์ธ์ฐ๊ธฐ(์๊ฐ๋ ผ๋ฌผ๊ตฌ)
- ์๊ตฌ์กฐ๊ฑด ๋ถ์: ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ฌ์ฉ ์ฉ๋ / ์๊ตฌ์ฌํญ / ์๊ตฌ ์กฐ๊ฑด ๋ช ์ธ์ ์์ฑ
- ๊ฐ๋
์ ๋ชจ๋ธ
- ํ์ค ์ธ๊ณ์ ์ธ์์ ์ถ์์ ๊ฐ๋ ์ธ๊ณ๋ก ํํ
- ๋ ๋ฆฝ์ ์ธ ๊ฐ๋ ์คํค๋ง ๋ชจ๋ธ๋ง / ํธ๋์ญ์ ๋ชจ๋ธ๋ง / E-R ๋ชจ๋ธ
- ๋
ผ๋ฆฌ์ ๋ชจ๋ธ
- ๊ฐ๋ ์ ๋ชจ๋ธ์ ์ปดํจํฐ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๊ตฌ์กฐ๋ก ํํ(๊ด๊ณ ๋ชจ๋ธ)
- ์ข ์์ ์ธ ๋ ผ๋ฆฌ ์คํค๋ง ์ค๊ณ / ํธ๋์ญ์ ์ธํฐํ์ด์ค ์ค๊ณ / ์ ๊ทํ
- ๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์กฐ๋ก Mapping / ์คํค๋ง์ ํ๊ฐ ๋ฐ ์ ์
- ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ
- ๋ฐ์ดํฐ์ ์ค์ ์ ์ฅ ๋ฐฉ๋ฒ ๋ฐ ์ ๊ทผ ๊ฒฝ๋ก ํํ(๋ ์ฝ๋ ํ์/์์)
- ๋ชฉํ DBMS ์ข ์์ ์ธ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ ๋ฐ์ดํฐ๋ก ๋ณํ / ๋ฐ์ ๊ทํ
- ์ค๋ธ์ ํธ, ์ ๊ทผ๋ฐฉ๋ฒ, ์ธ๋ฑ์ค, ๋ทฐ ์ฉ๋ ์ค๊ณ / ํธ๋์ญ์ ์์ฑ → ์ ์ฅ ๋ ์ฝ๋์ ํ์/์์/์ ๊ทผ ๊ฒฝ๋ก ์ค๊ณ
- ๊ตฌํ: DBMS์์ SQL๋ก ์์ฑํ ๋ช ๋ น๋ฌธ ์คํ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์์ฑ
โป ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง: ํ์ค ๋ด ๋ณต์กํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋จ์/์ถ์ํํ์ฌ ์ฒด๊ณ์ ์ผ๋ก ํํ
โ ๋ฐ์ดํฐ ๋ชจ๋ธ ๊ตฌ์ฑ ์์
- ๊ตฌ์กฐ (Structure): ๋
ผ๋ฆฌ์ ๊ฐ์ฒด ๊ฐ ๊ด๊ณ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, ์ ์ ์ฑ์ง ํํ
- ์ฐ์ฐ(Operation): ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ์์
๋ช
์ธ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ ๋๊ตฌ
- ์ ์ฝ ์กฐ๊ฑด(Constraint): DB์ ์ ์ฅ๋ ์ ์๋ ์ค์ ๋ฐ์ดํฐ์ ๋
ผ๋ฆฌ์ ์ ์ฝ ์กฐ๊ฑด
โ ๊ฐ์ฒด - ๊ด๊ณ ๋ชจ๋ธ (E-R Model / Entity-Realation Model)
- ๊ฐ์ฒด(Entity): ๋
๋ฆฝ์ ์ด๊ณ ๊ตฌ๋ณ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒ
- ๊ฐ์ฒด ํ์ : ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ๋ค์ ์งํฉ
- ๊ฐ์ฒด ์ธ์คํด๊ทธ: ์ค์ ๊ฐ์ ๊ฐ์ง๋ฉด์ ์ค์ฒดํ๋ ๊ฐ์ฒด
- ๊ฐ์ฒด ์ธํธ: ๊ฐ์ฒด ์ธ์คํด์ค๋ค์ ์งํฉ
- ์์ฑ(Attribute): ๊ฐ์ฒด๊ฐ ๊ฐ์ง ๊ณ ์ ์ ํน์ฑ / ๊ฐ์ฅ ์์ ๋ ผ๋ฆฌ์ ๋จ์(์)
- ๊ด๊ณ(Relationship): ๋ ๊ฐ์ฒด ๊ฐ์ ์๋ฏธ ์๋ ์ฐ๊ด์ฑ ๋ฐ ์ฐ๊ฒฐ ๊ตฌ์กฐ(๋ง๋ฆ๋ชจ) → ์ผ๋์ผ(1:1) / ์ผ๋๋ค(1:N) / ๋ค๋๋ค (N:N)
โ E-R ๋ค์ด์ด๊ทธ๋จ ํ๊ธฐ๋ฒ
โป ์ ์ : '๊ด๊ณ-์์ฑ ์ฐ๊ฒฐ'
โ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด
- ๋ฆด๋ ์ด์ (Relation)์ด๋ผ๋ ํ(Table)๋ก ํํ
- ์์ฑ(Attribute) = ์ด = ํผ๋ / ํํ(Tuple) = ํ = ๋ ์ฝ๋
์ฐจ์(Degree): ์์ฑ์ ๊ฐ์ / ๊ธฐ์(Cardinality): ํํ์ ๊ฐ์ - ๋๋ฉ์ธ(Domain): ํ๋์ ์์ฑ์์ ์ทจํ ์ ์๋ ์์ ๊ฐ๋ค์ ์งํฉ(ex. ์ฑ๋ณ: ๋จ/์ฌ)
- ๋ฆด๋ ์ด์ ์ธ์คํด์ค: ๋ฆด๋ ์ด์ ์ ์ค์ ๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ ์งํฉ
โป ๋ฆด๋ ์ด์
ํน์ง
- ํํ๊ณผ ์์ฑ์ ์ ์ผํ๋ฉฐ ์์๋ ๋ฌด์๋ฏธํจ
- ํํ์ ์ฝ์
/์ญ์ ๋ฑ์ ์ํด ๊ณ์ ๋ณํจ / ํํ์ ์๋ก ์์ดํ ๊ฐ์ ใน๊ฐ์ง
- ์์ฑ์ ๊ฐ์ ๋ถํด ๋ถ๊ฐ (์์์ฑ) / ๋์ผํ ์ ์์
- ํํ์ ์๋ณํ๊ธฐ ์ํด ์์ฑ(ํ๋)์ ์ผ๋ถ๋ฅผ Key๋ก ์ค์
- ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋, ๊ธฐ๋ณธํค์ ํด๋น๋๋ ์์ฑ์ Null ๊ฐ์ ๊ฐ์ง ์ ์์
โ ํค(Key)
- ํ๋ณดํค(Candidate Key)
- ๊ธฐ๋ณธํค๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ์์ฑ / ๋ชจ๋ ๋ฆด๋ ์ด์ ์๋ ํ๋ณดํค ์กด์ฌ
- ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ O, ์ต์์ฑ O
โป ์ ์ผ์ฑ: ํ๋์ ํค ๊ฐ์ผ๋ก ํ๋์ ํํ ์ ์ผํ๊ฒ ์๋ณ
โป ์ต์์ฑ: ๋ชจ๋ ๋ ์ฝ๋ ์๋ณํ๋๋ฐ ์ต์ํ์ ์์ฑ์ผ๋ก๋ง ๊ตฌ์ฑ
- ๊ธฐ๋ณธํค(Primary Key)
- ํ๋ณดํค ์ค์์ ์ ํ๋์ด, ์ค๋ณต๋ ๊ฐ•NULL ๊ฐ X
- ์ ์ผ์ฑ/์ต์์ฑ ๋ง์ข, ํํ ์๋ณํ๊ธฐ ์ํด ๋ฐ๋์ ํ์ํ ํค
- ๋์ฒดํค(Alternate Key)
- ํ๋ณดํค๊ฐ ๋ ์ด์์ผ ๋ ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ณดํค
- ์ํผํค(Super Key)
- ํ ๋ฆด๋ ์ด์ ๋ด ์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค
- ๋ชจ๋ ํํ์ ๋ํด ์ ์ผ์ฑ O, ์ต์์ฑ X
- ์ธ๋ํค(Foreign Key)
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ or ์์ฑ๋ค์ ์งํฉ
- ์ฐธ์กฐ๋๋ ๋ฆด๋ ์ด์ ๊ธฐ๋ณธํค์ ๋์๋์ด ๋ฆด๋ ์ด์ ๊ฐ ์ฐธ์กฐ ๊ด๊ณ
โ ๋ฌด๊ฒฐ์ฑ(Integrity)
- ๊ฐ์ฒด ๋ฌด๊ฒฐ์ฑ
- ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์ด๋ค ์์ฑ๋ ์ค๋ณต/NULL X
- ๊ธฐ๋ณธํค์ ์์ฑ ๊ฐ์ด NULL๊ฐ์ด ์๋ ์์ ๊ฐ์ ๊ฐ๋ ์ฑ์ง
- ๋๋ฉ์ธ/์์ฑ ๋ฌด๊ฒฐ์ฑ
- ๋ฆด๋ ์ด์ ๋ด ํํ๋ค์ด ๊ฐ ์์ฑ์ ๋๋ฉ์ธ์ ์ง์ ๋ ๊ฐ๋ง ๊ฐ์ง
- ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
- ์ธ๋ํค๋ NULL ๋๋ ์ฐธ์กฐ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค ๊ฐ๊ณผ ๋์ผ
- ๋ฆด๋ ์ด์ ์ ์ฐธ์กฐํ ์ ์๋ ์ธ๋ํค ๊ฐ์ ๊ฐ์ง ์ ์์
- ์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ
- ์์ฑ ๊ฐ๋ค์ ์ฌ์ฉ์๊ฐ ์ ์ํ ์ ์ฝ ์กฐ๊ฑด์ ๋ง์กฑ
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๊ฐํ
- ๋ฐ์ดํฐ ํน์ฑ์ ๋ง๋ ์ ์ ํ ๋ฌด๊ฒฐ์ฑ์ ์ ์ํ๊ณ ๊ฐํ
- ๊ฐํ ๋ฐฉ๋ฒ: ์ ์ฝ์กฐ๊ฑด, ์ดํ๋ฆฌ์ผ์ด์ , ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ
โ ์ ๊ทผ ํต์ ๊ธฐ์ (AC, Access Control)
- DAC (์์ ์ ๊ทผ ํต์ )
- ์ฌ์ฉ์์ ์ ์/์ ๋ถ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ
- ๋ฐ์ดํฐ ์์ ์๊ฐ ์ ๊ทผ ํต์ ๊ถํ ์ง์ /์ ์ด
- ๊ฐ์ฒด ์์ฑ์๊ฐ ๋ชจ๋ ๊ถํ ๊ฐ๊ณ , ๋ค๋ฅธ ์ฌ์ฉ์์๊ฒ ํ๊ฐ
- SQL ๋ช ๋ น์ด: GRANT / REVOKE
- MAC (๊ฐ์ ์ ๊ทผ ํต์ )
- ์ฃผ์ฒด์ ๊ฐ์ฒด์ ๋ฑ๊ธ์ ๋น๊ต ํ ์์คํ ์ด ์ ๊ทผ ๊ถํ ๋ถ์ฌ
- DB ๊ฐ์ฒด๋ณ๋ก ๋ณด์ ๋ฑ๊ธ ๋ถ์ฌ ๋ฐ ์ฌ์ฉ์๋ณ๋ก ์ธ๊ฐ ๋ฑ๊ธ ๋ถ์ฌ
- ์์ ๋ณด๋ค ๋ณด์ ๋์ ๊ฐ์ฒด์ ์ฝ๊ธฐ/์์ /๋ฑ๋ก ๋ถ๊ฐํ๋ ๋ฑ๊ธ ๊ฐ์ ๊ฐ์ฒด์๋ ๋ชจ๋ ๊ฐ๋ฅ, ์์ ๋ณด๋ค ๋ฎ์ ๊ฐ์ฒด์๋ ์ฝ๊ธฐ ๊ฐ๋ฅ
- RBAC (์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ํต์ )
- ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ ๋ถ์ฌ (์ค์๊ด๋ฆฌ์๊ฐ ์ง์ )
- ๋ค์ค ํ๋ก๊ทธ๋๋ฐ์ ์ต์ ํ
โ ๋ทฐ (View)
- ๊ธฐ๋ณธ ํ
์ด๋ธ์ ๊ธฐ๋ฐ์ ๋ ์ด๋ฆ์ ๊ฐ์ง๋ ๊ฐ์ ํ
์ด๋ธ (๊ธฐ๋ณธ ํ
์ด๋ธ๊ณผ ๋์ผ ํํ)
- ์ ์ฅ์ฅ์น ๋ด ๊ฐ์์ผ๋ก, ๋
ผ๋ฆฌ์ ์ผ๋ก ์กด์ฌ (์ค์กดํ๋ ๋ฌผ๋ฆฌ์ ์กด์ฌX)
- ๊ธฐ๋ณธ ํ
์ด๋ธ ๋ฐ ๋ทฐ ์ญ์ ์ ํด๋น ํ
์ด๋ธ/๋ทฐ๋ฅผ ๊ธฐ์ด๋ก ์ ์๋ ๋ค๋ฅธ ๋ทฐ๋ ์๋ ์ญ์
โท ์ฅ์ : ๋
ผ๋ฆฌ์ ๋ฐ์ดํฐ ๋
๋ฆฝ์ฑ ์ ๊ณต / ๋ฐ์ดํฐ ์๋ ๋ณด์ ์ ๊ณต / ๋ฐ์ดํฐ ๊ด๋ฆฌ ์ฉ์ด
โท ๋จ์ : ๋
์ง์ ์ธ๋ฑ์ค ๋ณด์ ๋ถ๊ฐ / ALTER ๋ณ๊ฒฝ ๋ถ๊ฐ / ์ฝ์
, ์ญ์ , ๊ฐฑ์ , ์ฐ์ฐ ์ ์ฝ
โ ์ ๊ทํ
- ์ด์(Anomaly) ํ์์ด ๋ฐ์ํ์ง ์๋๋ก ์ค๋ณต์ฑ/์ข
์์ฑ์ ์ต์ํํ๊ธฐ ์ํ ์์
- ๋
ผ๋ฆฌ์ ์ค๊ณ ๋จ๊ณ์์ ์ํํ๋ฉฐ, ์์ฑ ์๊ฐ ์ ์ ํ
์ด๋ธ๋ก ๋ถํ ๋์ด ๊ด๋ฆฌ๊ฐ ์ฉ์ดํด์ง
- ๋ฐ์ดํฐ ๊ตฌ์กฐ ์์ ์ฑ ์ต๋ํ / ๋ฐ์ดํฐ ์ฝ์
์ ๋ฆด๋ ์ด์
์ฌ๊ตฌ์ฑ ํ์ ์ต์ํ
โป ์ด์ํ์ ์ข
๋ฅ
1. ์ฝ์
์ด์: ๋ฐ์ดํฐ ์ฝ์
์ ๋ถํ์ํ ๋ฐ์ดํฐ๊ฐ ํจ๊ป ์ฝ์
2. ์ญ์ ์ด์: ํํ ์ญ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ ํจ๊ป ์ญ์
3. ๊ฐฑ์ ์ด์: ์ผ๋ถ๋ง ์์ ๋์ด ๋ฐ์ดํฐ ๋ถ์ผ์น → ์ ๋ณด ๋ชจ์ ๋ฐ์
1) ์ ๊ทํ ๊ณผ์
์ 1 ์ ๊ทํ | ๋ชจ๋ ๋๋ฉ์ธ(Domain)์ด ์์ ๊ฐ๋ง์ผ๋ก ๋์ด ์์ |
์ 2 ์ ๊ทํ | ๊ธฐ๋ณธํค๊ฐ ์๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ๋ํ ์์ ํจ์์ ์ข
์ ๋ง์กฑ ๋ถ๋ถ์ ํจ์ ์ข ์์ ์ ๊ฑฐํ ์ ๊ทํ |
์ 3 ์ ๊ทํ | ๊ธฐ๋ณธํค๊ฐ ์๋ ๋ชจ๋ ์์ฑ์ด ๊ธฐ๋ณธํค์ ๋ํด ์ดํ์ ํจ์ ์ข ์ ๊ด๊ณ(X→Y, Y→Z์ด๋ฉด X→Z)๋ฅผ ๋ง์กฑ |
BCNF | ๋ฆด๋ ์ด์ R์์ ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค |
์ 4 ์ ๊ทํ | ๋ฆด๋ ์ด์ R์ ๋ค์น ์ข ์์ด ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ R์ ๋ชจ๋ ์์ฑ์ด A์ ํจ์์ ์ข ์ ๊ด๊ณ๋ฅผ ๋ง์กฑํ๋ ์ ๊ทํ |
์ 5 ์ ๊ทํ | ๋ฆด๋ ์ด์ R์ ๋ชจ๋ ์กฐ์ธ ์ข ์์ด R์ ํ๋ณดํค๋ฅผ ํตํด์๋ง ์ฑ๋ฆฝ |
โป ๋ฐ์ ๊ทํ: ์ ๊ทํ ๊ณผ์ ์งํ ํ, ์์คํ ์ฑ๋ฅ ํฅ์ ๋ฐ ์ด์ ํธ์์ฑ์ ์ํด ์๋์ ์ผ๋ก ๋ฐ์ดํฐ ์ค๋ณต/ํตํฉ/๋ถ๋ฆฌ๋ฅผ ํ์ฉํด ์ ๊ทํ ์์น์ ์๋ฐ
โป ํจ์์ ์ข
์
- ์์ ํจ์์ ์ข
์(Full Functional Dependency): ์ข
์์๊ฐ ๊ธฐ๋ณธํค์๋ง ์ข
์
- ๋ถ๋ถ ํจ์์ ์ข
์(Partial ~): ๊ธฐ๋ณธํค๊ฐ ์ฌ๋ฌ ์์ฑ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ ๋ ๊ธฐ๋ณธํค๋ฅผ ๊ตฌ์ฑํ๋ ์์ฑ ์ค ์ผ๋ถ๋ง ์ข
์
- ์ดํ์ ํจ์ ์ข
์(Transitive ~): X→Y, Y→Z์ด๋ฉด X→Z
์ 1 ์ ๊ทํ: ์์๊ฐ ์๋ ๋๋ฉ์ธ ๋ถํด
์ 2 ์ ๊ทํ: ๋ถ๋ถ ํจ์ ์ข ์ ์ ๊ฑฐ
์ 3 ์ ๊ทํ: ์ดํ ํจ์ ์ข ์ ์ ๊ฑฐ
BCNF: ๋ชจ๋ ๊ฒฐ์ ์๊ฐ ํ๋ณดํค
โ ๊ด๊ณ ๋์ - ์ํ๋ ์ ๋ณด์ ๊ฒ์ ๊ณผ์ ์ ์ ์ํ๋ ์ ์ฐจ์ ์ธ์ด
โ ์์ ๊ด๊ณ ์ฐ์ฐ์
σ | Select(์ ํ) | ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ๋ค์ ๋ถ๋ถ ์งํฉ(์ํ ์ฐ์ฐ) |
ใ | Project(์ถ์ถ) | ์์ฑ๋ค์ ๋ถ๋ถ ์งํฉ, ์ค๋ณต ์ ๊ฑฐ(์์ง ์ฐ์ฐ) |
โ | Join(์กฐ์ธ) | ๋ ๊ฐ์ ๋ฆด๋ ์ด์ ๋ฅใน ํ๋๋ก ํฉ์ณ ์๋ก์ด ๋ฆด๋ ์ด์ ํ์ฑ |
÷ | Division(๋๋๊ธฐ) | A์ ์์ฑ์ด B์ ์์ฑ ๊ฐ์ ๋ชจ๋ ๊ฐ์ง ํํ์์ (A⊃B) B๊ฐ ๊ฐ์ง ์์ฑ์ ์ ์ธํ ๋๋จธ์ง ์์ฑ๋ค๋ง ์ถ์ถ |
- ์ธํ ์กฐ์ธ: ๋ ๋ฆด๋ ์ด์
์์ฑ ๊ฐ์ ๋น๊ต ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ๋ง ๋ฐํ
- ๋๋ฑ ์กฐ์ธ: ์กฐ๊ฑด์ด ์ ํํ๊ฒ '=' ๋ฑํธ๋ก ์ผ์นํ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
- ์์ฐ ์กฐ์ธ: ๋๋ฑ ์กฐ์ธ์ ๊ฒฐ๊ณผ์์ ์ค๋ณต๋ ์์ฑ์ ์ ๊ฑฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
โก ์ผ๋ฐ ์งํฉ ์ฐ์ฐ์
∪ | Union (ํฉ์งํฉ) |
๋ ๋ฆด๋ ์ด์ ์ ํฉ ์ถ์ถ / ์ค๋ณต์ ์ ๊ฑฐ |
∩ | Intersection (๊ต์งํฉ) |
๋ ๋ฆด๋ ์ด์ ์ ์ข ๋ณต๋๋ ๊ฐ๋ง ์ถ์ถ |
− | Difference (์ฐจ์งํฉ) |
A ๋ฆด๋ ์ด์ ์์ B ๋ฆด๋ ์ด์ ๊ฐ ์ค๋ณต๋์ง ์๋ ๊ฐ์ ์ถ์ถ |
× | Cartesian Product (๊ต์ฐจ๊ณฑ) |
๋ ๋ฆด๋ ์ด์
์ ๊ฐ๋ฅํ ๋ชจ๋ ํํ์ ์งํฉ → ์์ฑ/์นผ๋ผ๋ผ๋ฆฌ ๋ํ๊ธฐ / ํํ๋ผ๋ฆฌ๋ ๊ณฑํ๊ธฐ |
โ ๊ด๊ณ ํด์ - ์ํ๋ ์ ๋ณด๊ฐ ๋ฌด์์ด๋ผ๋ ๊ฒ๋ง ์ ์ํ๋ ๋น์ ์ฐจ์ ์ธ์ด
๋
ผ๋ฆฌ ์ฐ์ฐ์ |
โ | OR | ์์์ ๊ฐ "๋๋" ๊ด๊ณ๋ก ์ฐ๊ฒฐ |
โ | AND | ์์์ ๊ฐ "๊ทธ๋ฆฌ๊ณ " ๊ด๊ณ๋ก ์ฐ๊ฒฐ | |
¬ | NOT | ์์์์ ๋ํ ๋ถ์ | |
์ ๋์ | ∀ | ์ ์นญ ์ ๋์ | ๋ชจ๋ ๊ฐ๋ฅํ ํํ "For All" |
∃ | ์กด์ฌ ์ ๋์ | ์ด๋ค ํํ ํ๋๋ผ๋ ์กด์ฌ 'There Exists" |
โ ํธ๋์ญ์ (Transaction)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ๋จ์
์์์ฑ(Atomicity) | ํธ๋์ญ์
์ฐ์ฐ์ด ์ ์์ ์ผ๋ก ์ํ๋๊ฑฐ๋ (Commit), ์๋๋ฉด ์ด๋ ํ ์ฐ์ฐ๋ ์ํ๋์ง ์์์ผ ํจ (Rollback) |
์ผ๊ด์ฑ(Consistency) | ์์คํ ์ ๊ณ ์ ์์๋ ํธ๋์ญ์ ์ํ ์ /ํ๋ก ๋์ผํด์ผ ํจ |
๋ ๋ฆฝ์ฑ(Isolation) | ๊ฐ๋ณ ํธ๋์ญ์ ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ ๊ฐ์ญ ๋ฐ ์ํฅ ๋ฐ์ง ์์์ผ ํจ |
์์์ฑ(Durability) | ์๋ฃ๋ ํธ๋์ญ์ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๊ธฐ๋ก๋์ด์ผ ํจ |
- COMMIT: ํธ๋์ญ์
์ ์ ์ข
๋ฃ ํ ๋ณ๊ฒฝ๋ ๋ด์ฉ์ DB์ ๋ฐ์ํ๋ ๋ช
๋ น์ด
- ROLLBACK: ํธ๋์ญ์
๋น์ ์ ์ข
๋ฃ ํ ๋ชจ๋ ๋ณ๊ฒฝ ์์
์ ์ทจ์ํ๊ณ ์ด์ ์ํ๋ก ์๋ณต
- REDO: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น์ ์ ์ข
๋ฃ ์ ํธ๋์ญ์
์์(Start)์ ์๋ฃ(Commit)์ ๋ํ ๊ธฐ๋ก์ด ์๋ ํธ๋์ญ์
๋ค์ ์์
์ ์ฌ์์
(์ด์ ๊ฐ์ ์ดํ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ)
- UNDO: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋น์ ์ ์ข
๋ฃ ์ ์์์ ์์ง๋ง ์๋ฃ ๊ธฐ๋ก์ด ์๋ ํธ๋์ญ์
๋ค์ด ์์
ํ ๋ด์ฉ์ ๋ชจ๋ ์ทจ์ (์ดํ ๊ฐ์ ์ด์ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ)
โ ๋ฐ์ดํฐ ํ๋ณต ๊ธฐ๋ฒ
- ์ฆ์ ๊ฐฑ์ ๊ธฐ๋ฒ(Immediate Update)
- ํธ๋์ญ์
์คํ ์ํ์์ ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ๋ฐ๋ก ๋ฐ๋ฒ ์ ์ ์ฉ
→ ๋ณ๊ฒฝ๋๋ ๋ชจ๋ ๋ด์ฉ์ ๋ก๊ทธ(Log)์ ๊ธฐ๋กํ์ฌ ์ฅ์ ์ ํด๋น ๋ก๊ทธ ํ ๋๋ก ๋ณต์
→ Redo / Undo ๋ชจ๋ ์ํ
- ํธ๋์ญ์
์คํ ์ํ์์ ๋ณ๊ฒฝ๋๋ ๋ด์ฉ์ ๋ฐ๋ก ๋ฐ๋ฒ ์ ์ ์ฉ
- ์ง์ฐ ๊ฐฑ์ ๊ธฐ๋ฒ(Deferred Update)
- ํธ๋์ญ์
์ํ ํ ๋ถ๋ถ ์๋ฃ๋ ๋๊น์ง๋ ๋ฐ๋ฒ ์ ๋ฐ๋ก ์ ์ฉํ์ง ์๊ณ , ์ง์ฐ์ํจ ํ ๋ถ๋ถ ์๋ฃ ์ ๋ก๊ทธ(Log)์ ๋ด์ฉ์ ํ ๋๋ก ์ ์ฅ
→ ํธ๋์ญ์ ์ด ์คํจํ ๊ฒฝ์ฐ Undo ์์ด Redo๋ง ์ํ
- ํธ๋์ญ์
์ํ ํ ๋ถ๋ถ ์๋ฃ๋ ๋๊น์ง๋ ๋ฐ๋ฒ ์ ๋ฐ๋ก ์ ์ฉํ์ง ์๊ณ , ์ง์ฐ์ํจ ํ ๋ถ๋ถ ์๋ฃ ์ ๋ก๊ทธ(Log)์ ๋ด์ฉ์ ํ ๋๋ก ์ ์ฅ
- ๊ฒ์ฌ ์์ ๊ธฐ๋ฒ(Check point)
- ํธ๋์ญ์ ์ํ ์ค๊ฐ์ ๊ฒ์ฌ์์ (Checkpoint) ์ง์ ํ์ฌ ๊ฒ์ฌ ์์ ๊น์ง ๋ถ๋ถ ์ํ ํ ์๋ฃ๋ ๋ด์ฉ์ ์ค๊ฐ์ค๊ฐ ๋ฐ๋ฒ ์ ์ ์ฅ
- ๊ทธ๋ฆผ์ ํ์ด์ง ๊ธฐ๋ฒ(Shadow paging)
- ๋ก๊ทธ ๋ฏธ์ฌ์ฉ / ๋ฐ๋ฒ ๋ฅผ ๋์ผ ํฌ๊ธฐ์ ํ์ด์ง๋ก ๋ถํ ํ ๊ฐ ํ์ด์ง๋ง๋ค ๋ณต์ฌํ์ฌ ๊ทธ๋ฆผ์ ํ์ด์ง ๋ณด๊ด
→ ๋ณ๊ฒฝ ๋ด์ฉ์ ์๋ณธ ํ์ด์ง์๋ง ์ ์ฉํ์ฌ ์ฅ์ ๋ฐ์ ์ ํด๋น ํ์ด์ง ์ฌ์ฉ/ํ๋ณต
- ๋ก๊ทธ ๋ฏธ์ฌ์ฉ / ๋ฐ๋ฒ ๋ฅผ ๋์ผ ํฌ๊ธฐ์ ํ์ด์ง๋ก ๋ถํ ํ ๊ฐ ํ์ด์ง๋ง๋ค ๋ณต์ฌํ์ฌ ๊ทธ๋ฆผ์ ํ์ด์ง ๋ณด๊ด
โ ๋กํน ๋จ์ (Locking): ๋กํน์ ๋์์ด ๋๋ ๊ฐ์ฒด์ ํฌ๊ธฐ
- ๋กํน: ๋ฐ๋ฒ ๋ณํ ์ ์ด ์ํด ํธ๋์ญ์
์ด ์ ๊ทผํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฐ(lock) ๋ค๋ฅธ ํธ๋์ญ์
์ด ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ๋ ๋ณํ ์ ์ด ๊ธฐ๋ฒ
- ๋์: ๋ฐ๋ฒ / ํ์ผ / ๋ ์ฝ๋
- ๋กํน ๋จ์โผ → ๋กํฌ์ ์โฒ → ๋กํน ์ค๋ฒํค๋โฒ → ๋ณํ์ฑ(๊ณต์ ๋)โฒ
- ๋กํน ๋จ์โฒ → ๋กํฌ์ ์โผ → ๋กํน ์ค๋ฒํค๋โผ → ๋ณํ์ฑ(๊ณต์ ๋)โผ
โป ๋ณํ์ ์ด ๊ธฐ๋ฒ ์ข
๋ฅ
- ๋กํน ๊ธฐ๋ฒ: ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ธฐ ์ํ ํธ๋์ญ์
์ ์์ฐจ์ ์งํ์ ๋ณด์ฅ (๋ณํ ์ํ ํธ๋์ญ์
๋ค ๊ฐ ๋์ผ ๋ฐ์ดํฐ ์ ๊ทผ ์ฐจ๋จ)
- ๋๊ด์ ๊ฒ์ฆ: ์ผ๋จ ํธ๋์ญ์
์ํํ๊ณ , ํธ๋์ญ์
์ข
๋ฃ ์ ๊ฒ์ฆ์ ์ํ
- ํ์ ์คํฌํ ๊ธฐ๋ฒ: ํ์ ์คํฌํ๋ฅผ ๋ถ์ฌํด ๋ถ์ฌ๋ ์๊ฐ์ ๋ฐ๋ผ ํธ๋์ญ์
์ํ
- ๋ค์ค๋ฒ์ ๋์์ฑ ์ ์ด(MVCC): ํ์์คํฌํ๋ฅผ ๋น๊ตํด ์ง๋ ฌ๊ฐ๋ฅ์ฑ์ด ๋ณด์ฅ๋๋ ์ ์ ํ ๋ฒ์ ์ ์ ํํด ์ ๊ทผํ๋๋ก ํจ
โ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋
ผ๋ฆฌ์ ์ผ๋ก๋ ํ๋์ ์์คํ
์ ์กด์ฌํ๋, ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ์ฐ๊ฒฐ๋ ๋ค์์ ์ปดํจํฐ์ ๋ถ์ฐ๋์ด ์๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค
- ๊ตฌ์ฑ์์: ๋ถ์ฐ ์ฒ๋ฆฌ๊ธฐ(๋ถ์ฐ๋ ์ง์ญ ์ปดํจํฐ) / ๋ถ์ฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค / ํต์ ๋คํธ์ํฌ
- ๋ชฉํ: ์์น ํฌ๋ช
์ฑ(Location) / ์ค๋ณต ํฌ๋ช
์ฑ(Replication) / ๋ณํ ํฌ๋ช
์ฑ(Concurrency) / ๋ถํ ํฌ๋ช
์ฑ(Division) / ์ฅ์ ํฌ๋ช
์ฑ(Failure)
→ ์ฌ์ฉ์ ์
์ฅ์์ ๋ฐ๋ฒ ์ ์์น/์ค๋ณต/๋ณํ/๋ถํ /์ฅ์ ์ฌ๋ถ ์ธ์ํ ํ์X
โ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ จ ์ฉ์ด
- ์ธ๋ฑ์ค(Index)
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ ๊ฒ์ ์๋ ํฅ์์ ์ํ ์ ์ฅ ์์น ์๋ฃ
→ ๋ฐ์ดํฐ ๋น ๋ฅธ ์กฐํ๋ฅผ ์ํ ์์น ์ ๋ณด(ํฌ์ธํฐ) ํฌํจ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ
์ด๋ธ ๊ฒ์ ์๋ ํฅ์์ ์ํ ์ ์ฅ ์์น ์๋ฃ
- ํด๋ฌ์คํฐ(Cluster)
- ์์ฃผ ์ฌ์ฉํ๋ ํ ์ด๋ธ ๋ฐ์ดํฐ๋ฅผ ๋์ผ ์์น์ ์ ์ฅํ์ฌ ๋ฐ์ดํฐ ์ ๊ทผ ํจ์จ ํฅ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์คํ
- ์๋น์ค ์ฅ์ ๋๋นํ์ฌ ๋ฐ๋ฒ ์ค๋ณต(๋ณต์ )ํ์ฌ ๊ด๋ฆฌ
- Eager ๊ธฐ๋ฒ: ๋ชจ๋ ์ด์คํ ๋ฐ์ดํฐ ์ฆ์ ์ ๋ฐ์ดํธ
- Lazy ๊ธฐ๋ฒ: ๋ณ๊ฒฝ ์ฌํญ์ ์๋ก์ด ํธ๋์ญ์ ์ผ๋ก ๊ฐ ๋ ธ๋์ ์ ๋ฌ
- ํํฐ์
๋(Partitioning)
- ๋์ฉ๋ ๋ฐ๋ฒ ๋ฅผ ์ฌ๋ฌ ์น์ ์ผ๋ก ๋ถํ (์กฐํ ์๋ ํฅ์)
- ๋ฒ์ ๋ถํ : ํํฐ์ ํค ๊ฐ์ ๋ฒ์๋ก ๋ถํ
- ํด์ ๋ถํ : ํด์ ํจ์ ์ ์ฉ ํ ๋ฐํ๋ ๊ฐ์ผ๋ก ํํฐ์ ๋ถํ
- ํฉ์ ๋ถํ : ๋ฒ์ ๋ถํ ํ ํด์ ํจ์ ์ ์ฉํ์ฌ ๋ค์ ๋ถํ
- ๋ณต๊ตฌ ์๊ฐ ๋ชฉํ(RTO, Recovery Time Objective)
- ์๋น์ค ์ค๋จ ํ ๋ณต์๊น์ง ์ต๋ ์๊ฐ
→ ์๋น์ค๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ต๋ ํ์ฉ ์๊ฐ
- ์๋น์ค ์ค๋จ ํ ๋ณต์๊น์ง ์ต๋ ์๊ฐ
- ๋ณต๊ตฌ ์์ ๋ชฉํ(RPO, Recovery Point Objective)
- ๋ง์ง๋ง ๋ฐ์ดํฐ ๋ณต๊ตฌ ํ ํ์ฉ๋๋ ์ต๋ ์๊ฐ
→ ํ์ฉ ๊ฐ๋ฅํ ์ต๋ ๋ฐ์ดํฐ ์์ค๋ ๊ฒฐ์
- ๋ง์ง๋ง ๋ฐ์ดํฐ ๋ณต๊ตฌ ํ ํ์ฉ๋๋ ์ต๋ ์๊ฐ
โ ์๊ณ ๋ฆฌ์ฆ
- ์ ํ ๊ฒ์: ํ๋์ฉ ์์๋๋ก ๋น๊ตํ๋ฉฐ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ์ ์ฐพ์๋ด๋ ๊ฒ์
- ์ด์ง ๊ฒ์: ๊ฒ์ ์ํ ์ ์ ๋ฐ์ดํฐ ์งํฉ์ด ์ ๋ ฌ๋์ด์ผ ํจ
1) ์๊ณ ๋ฆฌ์ฆ ์๊ฐ ๋ณต์ก๋
๋ณต์ก๋ | ์๊ณ ๋ฆฌ์ฆ | ์ค๋ช |
O(1) | ํด์ ํจ์ | ์๋ฃ ํฌ๊ธฐ ๋ฌด๊ด ์ผ์ ํ ์๋ |
O(logโN) | ์ด์ง ํ์ | ๋ก๊ทธํ ๋ณต์ก๋ |
O(n) | ์์ฐจ ํ์ | ์ ํ ๋ณต์ก๋: ์ ๋ ฅ ์๋ฃ๋ฅผ ํ๋์ฉ ์ฒ๋ฆฌ (์ ๋น๋ก) |
O(NlogโN) | ํ / ํฉ๋ณ(๋ณํฉ) ์ ๋ ฌ | ์ ํ ๋ก๊ทธํ ๋ณต์ก๋ |
O(N²) | ์ ํ / ๋ฒ๋ธ / ์ฝ์ / ํต ์ ๋ ฌ | ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ/ํฉ๋ณ ๋ณด๋ค ๋ณต์ก๋๊ฐ ํผ N² > NlogโN (N > 2) |
2) ์๊ณ ๋ฆฌ์ฆ ์ค๊ณ ๊ธฐ๋ฒ
- Divide and Conquer: ๋ฌธ์ ๋ฅผ ์ต์ ๋จ์๋ก ๋๋์ด ํ๊ณ , ๊ฐ๊ฐ์ ๋ค์ ๋ณํฉ
- Dynamic Programming: ๋ ์์ ๋ฌธ์ ์ ์ฐ์ฅ์ ์ผ๋ก ์ฌ๊ธฐ๊ณ ๊ณผ๊ฑฐ์ ๊ตฌํ ํด๋ฅผ ํ์ฉ
- Greedy: ํ ์์ ์์ ๊ฐ์ฅ ์ต์ ์ผ๋ก ๋ฐฉ๋ฒ์ ์ ํ
- Backtracking: ๋ชจ๋ ์กฐํ์ ์๋ํ์ฌ ๋ฌธ์ ์ ๋ต์ ์ ํ (→ ๋ฌธ์ ์ ๋ถ๋ชจ ๋
ธ๋๋ก ๋๋์๊ฐ ํ ๋ค๋ฅธ ์์ ๋
ธ๋ ๊ฒ์)
3) ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ
- ์ฝ์
: ์ด๋ฏธ ์ ๋ ฌ๋ ํ์ผ์ ์๋ก์ด ๋ ์ฝ๋๋ฅผ ์์์ ๋ง๊ฒ ์ฝ์
ํ์ฌ ์ ๋ ฌ
- ์ ํ: N๊ฐ์ ๋ ์ฝ๋ ์ค ์ต์๊ฐ์ ์ฐพ์ ์ฒซ๋ฒ์งธ์ ๋ฐฐ์น, ๋๋จธ์ง N-1๊ฐ ๋ ์ฝ๋ ์ค ์ต์๊ฐ ์ฐพ์ ๋๋ฒ์งธ ๋ฐฐ์น, ์ด๋ฅผ ๋ฐ๋ณตํ์ฌ ์ ๋ ฌ
- ๋ฒ๋ธ: ์ธ์ ํ ๋ ๊ฐ์ ๋ ์ฝ๋ ํค ๊ฐ ๋น๊ต ํ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ ์ฝ๋ ์์น ๊ตํ
- ํต: ์๋ฃ ์ด๋ ์ต์ํ ํ ํ๋์ ํ์ผ์ ๋ถ๋ถ์ ์ผ๋ก ๋๋ ๊ฐ๋ฉด์ ์ ๋ ฌ
- 2-way ํฉ๋ณ: ์ด๋ฏธ ์ ๋ ฌ๋ 2๊ฐ์ ํ์ผ์ ํ ๊ฐ์ ํ์ผ๋ก ํฉ๋ณํ์ฌ ์ ๋ ฌ
- ์: ์
๋ ฅ ํ์ผ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ผ๋ก ์๋ธํ์ผ ๊ตฌ์ฑ ํ ๊ฐ ์๋ธํ์ผ์ ์ฝ์
์ ๋ ฌ ๋ฐฉ์์ผ๋ก ์์ ๋ฐฐ์ดํ๋ ๊ณผ์ ๋ฐ๋ณต
- ํ: ์์ ์ด์ง ํธ๋ฆฌ๋ฅผ ์ด์ฉํ ์ ๋ ฌ
4) ์ ๋ ฌ ๋ฐฉ๋ฒ
โ ์ ํ ์ ๋ ฌ(Selection sort)
- ์ต์๊ฐ์ ์ฐพ์ ์ฒซ๋ฒ์งธ ์ซ์์ ์์น ๊ตํ, ์ดํ ์ ๋ ฌ๋ ๊ฐ์ ์ ์ธํ ์ต์ ์ซ์๋ฅผ ์ ๋ ฌ๋์ง ์์ ์ซ์ ์ค ์ฒซ๋ฒ์งธ ์ซ์์ ๋ค์ ์์น ๊ตํ, ์ด๋ฅผ ๋ฐ๋ณต
โก ์ฝ์
์ ๋ ฌ (Insert sort)
- ๋ ๋ฒ์งธ ์ซ์์ ์ฒซ๋ฒ์งธ ์ซ์ ๋น๊ตํ์ฌ ํฌ๊ธฐ ์์ผ๋ก ์ ๋ ฌ, ์ดํ 3๋ฒ์งธ ์ซ์๋ฅผ ์์ ์ ๋ ฌ๋ ์ซ์๋ค ์ฌ์ด์ ํฌ๊ธฐ ์์ ๋ง๊ฒ ์ฌ์ ๋ ฌ, ์ด๋ฅผ ๋ฐ๋ณต
โข ๋ฒ๋ธ ์ ๋ ฌ (Bubble sort)
- ์ผ์ชฝ๋ถํฐ ์ธ์ ํ ๋ ์ซ์ ๊ฐ ํฌ๊ธฐ ๋น๊ตํ์ฌ ์์น ๊ตํ, → 1 Pass ๋ง๋ค ์ ๋ ฌ๋๊ณ ์ซ์๋ค ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ๋ฐ์ด์ ๋ฐฐ์น
'Computer Science ๐ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ์ฒ๊ธฐ] ์ ๋ณด ๋ณด์ (0) | 2024.07.18 |
---|---|
[์ ์ฒ๊ธฐ] ๋คํธ์ํฌ (0) | 2024.07.17 |
[์ ์ฒ๊ธฐ] ์ด์์ฒด์ (0) | 2024.07.16 |
[์ ์ฒ๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ II - ์ํํธ์จ์ด ๊ตฌํ, ์ํํธ์จ์ด ํ ์คํธ, ์ํํธ์จ์ด ์ ์ง ๋ณด์ etc. (0) | 2024.07.12 |
[์ ์ฒ๊ธฐ]์ํํธ์จ์ด ๊ตฌ์ถ I - ํ๋ก์ ํธ ๊ณํ, ์๊ตฌ์ฌํญ ๋ถ์, ์ํํธ์จ์ด ์ค๊ณ etc. (2) | 2024.07.10 |