Database basic
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ ๊ฐ๋ ์ ๋ฆฌ
์ถ์ ๋น๋: ํ
๋น์ถ ํ๊ทธ: DB ์์คํ , ์คํค๋ง RDBMS, ๊ฐ์ฒดํ์ , ํค
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋ฐ์ดํฐ์ ์ฒด๊ณ์ ์ธ ์งํฉ์ผ๋ก, ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ณ ํตํฉํ์ฌ ์ ์ฅใป์ด์ํ๋ ์์คํ ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ข ๋ฅ
- ๊ณต์ ๋ฐ์ดํฐ: ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ๊ณตํต์ผ๋ก ํ์๋ก ํ๋ ๋ฐ์ดํฐ
- ํตํฉ ๋ฐ์ดํฐ: ๋ถํ์ํ ์ค๋ณต์ ์ ๊ฑฐํ ๋ฐ์ดํฐ
- ์ ์ฅ ๋ฐ์ดํฐ: ์ ์ฅ ๋งค์ฒด์ ์ ์ฅ๋ ๋ฐ์ดํฐ
- ์ด์ ๋ฐ์ดํฐ: ์กฐ์ง์ ์ ๋ฌด๋ฅผ ์ํํ๋๋ฐ ํ์ํ ๋ฐ์ดํฐ
DB ์์คํ ์ ํน์ง
- ์ค์๊ฐ ์ ๊ทผ์ฑ
- ์ง์์ ์ธ ๋ณํ
- ๋์ ๊ณต์
- ๋ด์ฉ์ ์ํ ์ฐธ์กฐ
- ๋ฐ์ดํฐ์ ์์น๊ฐ ์๋ ๋ด์ฉ์ ๋ฐ๋ผ ์ฐธ์กฐ
- ๋ฐ์ดํฐ ๋
ผ๋ฆฌ์ ๋
๋ฆฝ์ฑ
- ๋ ผ๋ฆฌ ๊ตฌ์กฐ ๋ณ๊ฒฝ์ ์์ฉํ๋ก๊ทธ๋จ ์์ ๋ถํ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ๋จ์
์ฅ์
- ๋ฐ์ดํฐ ์ค๋ณต ์ต์ํ
- ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ
- ๋ณด์์ฑ ํ๋ณด
- ์์ ์ฑ ํฅ์
- ํจ์จ์ ์ธ ๋ฐ์ดํฐ ๊ด๋ฆฌ
๋จ์
- ๋ณต์กํ ๊ตฌ์กฐ๋ก ์ธํ ๋น์ฉ ์ฆ๊ฐ
- ์ ๋ฌธ๊ฐ ํ์
์คํค๋ง(Schema)
์คํค๋ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ์ ์ ์ฝ์กฐ๊ฑด์ ์ ์ํ ๊ฒ์ ๋๋ค.
์คํค๋ง์ ํน์ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์
- ๊ด๋ฆฌ ์์คํ ๊ณผ ๊ตฌ์ถ ํ๊ฒฝ ๊ณ ๋ ค
- ๋ฐ์ดํฐ ์ฌ์ ์ ์ ์ฅ
์คํค๋ง์ ์ข ๋ฅ
1. ์ธ๋ถ ์คํค๋ง
- ์ฌ์ฉ์ ๊ด์ ์์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ๋ค์ํ ์ธ๋ถ ์คํค๋ง ์กด์ฌ ๊ฐ๋ฅ
- ์ฌ์ฉ์๊ฐ ์ ์
2. ๊ฐ๋ ์คํค๋ง
- ์กฐ์ง ์ ์ฒด ๊ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ์ ๊ทผ๊ถํ, ๋ณด์์ ์ฑ , ๋ฌด๊ฒฐ์ฑ ๊ท์น ํฌํจ
- DBA(๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์)๊ฐ ์ ์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋น ํ๋๋ง ์กด์ฌ
3. ๋ด๋ถ ์คํค๋ง
- ๋ฌผ๋ฆฌ์ ์ ์ฅ์ฅ์น ๊ด์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ
- ์ค์ ์ ์ฅ ํํ๋ฅผ ์ ์
๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)
DBMS์ ๊ตฌ์ฑ
- ์ง์์ด(์ฟผ๋ฆฌ) ์ฒ๋ฆฌ๊ธฐ
- DB ์ฒ๋ฆฌ๊ธฐ
- DML ์ปดํ์ผ๋ฌ
- DDL ์ปดํ์ผ๋ฌ
- ์ ์ฅ ๋ฐ์ดํฐ ๊ด๋ฆฌ์
DBMS์ ํ์ ๊ธฐ๋ฅ
- ์ ์ ๊ธฐ๋ฅ: ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ์ ์
- ์กฐ์ ๊ธฐ๋ฅ: ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐ ๊ด๋ฆฌ
- ์ ์ด ๊ธฐ๋ฅ: ๋ฐ์ดํฐ ๋ณด์๊ณผ ๊ถํ ๊ด๋ฆฌ
DB ์์คํ ์ ํ
1. ํ์ผ ์์คํ
- ํ์ผ ๋จ์๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ
2. HDBMS (๊ณ์ธตํ DBMS)
- ๊ณ์ธต์ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ์ฅ์ : ๋น ๋ฅธ ์ ๊ทผ ์๋
- ๋จ์ : ๊ตฌ์กฐ ๋ณํ์ ์ทจ์ฝ, N:M ๊ด๊ณ ํํ ์ด๋ ค์
3. NDBMS (๋คํธ์ํฌํ DBMS)
- ๋คํธ์ํฌ ํํ๋ก ๋ฐ์ดํฐ ๊ด๋ฆฌ
- ์ฅ์ : ์ํ์ข ์๊ด๊ณ ํด๊ฒฐ ๊ฐ๋ฅ
- ๋จ์ : ๋ณต์กํ ๊ตฌ์ฑ
4. RDBMS (๊ด๊ณํ DBMS)
- ํ ์ด๋ธ ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง
- ์ฅ์ : ์ ๋ฌด ๋ณํ ๋์๋ ฅ ์ฐ์
- ๋จ์ : ์์คํ ๋ถํ ๊ฐ๋ฅ์ฑ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฉ์ด
๊ฐ์ฒด ํ์ (Entity Type)
- ํ์ค ์ธ๊ณ์ ๊ฐ๋ ์ด๋ ๋์์ ๋ ผ๋ฆฌ์ ์ผ๋ก ํํ
- ์์ฑ์ผ๋ก ํํ๋จ
- RDB์์ ํ ์ด๋ธ(๋ฆด๋ ์ด์ )์ ํด๋น
์์ฑ(Attribute)
- ๊ฐ์ฒด์ ๊ณ ์ ํน์ฑ
- ํ๋์ ์ด์ ํด๋น
- ์ฌ๋ฌ ์์ฑ์ด ๋ชจ์ฌ ์๋ฏธ์๋ ๊ฐ์ฒด ๊ตฌ์ฑ
๋๋ฉ์ธ(Domain)
- ์์ฑ๊ฐ์ด ๊ฐ์ง ์ ์๋ ์์๊ฐ์ ์งํฉ
- ๋ฐ์ดํฐ ํ์ ๊ณผ ์ ์ฝ์กฐ๊ฑด ์ ์
ํํ(Tuple)
- ํ๋์ ์์ ํ๊ณ ๊ณ ์ ํ ๊ฐ์ฒด ์ ๋ณด
- ํ(Row)์ ํด๋น
- ์์ ์์
๋ฆด๋ ์ด์ (Relation)
- ์์ฑ๊ณผ ํํ๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ
- ๋ฆด๋ ์ด์ ์คํค๋ง์ ์ธ์คํด์ค์ ๊ฒฐํฉ
- ์ฐจ์(Degree): ์ ์ฒด ์์ฑ์ ๊ฐ์
- ๊ธฐ์(Cardinality): ์ ์ฒด ํํ์ ๊ฐ์
ํค(Key)
ํค์ ์ข ๋ฅ
1. ํ๋ณดํค(Candidate Key)
- ์ ์ผ์ฑ๊ณผ ์ต์์ฑ์ ๋ง์กฑํ๋ ์์ฑ
- ํํ ์๋ณ ๊ฐ๋ฅํ ์์ฑ์ ์งํฉ
2. ๊ธฐ๋ณธํค(Primary Key)
- ํ๋ณดํค ์ค ์ ํ๋ ์ฃผ ์๋ณ์
- ์ค๋ณต๊ณผ NULL ๋ถ๊ฐ
3. ๋์ฒดํค(Alternate Key)
- ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ํ๋ณดํค๋ค
4. ์ํผํค(Super Key)
- ์ ์ผ์ฑ๋ง ๋ง์กฑํ๋ ์์ฑ
- ์ต์์ฑ์ ๋ถ๋ง์กฑ
5. ์ธ๋ํค(Foreign Key)
- ๋ค๋ฅธ ๋ฆด๋ ์ด์ ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐ
- 1:N ๊ด๊ณ์์ N์ชฝ์ ์ฐธ์กฐํค