๐ 1๏ธโฃ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง ๋ฐฉ๋ฒ**
๐ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ(Data Integrity)๋?
๋ฐ์ดํฐ๊ฐ ์ ํํ๊ณ ์ผ๊ด๋๋ฉฐ ์ ๋ขฐํ ์ ์๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ
๐ฏ ๋ฌด๊ฒฐ์ฑ ์ ํ
์ ํ | ์ค๋ช | ์์ |
---|---|---|
์ํฐํฐ ๋ฌด๊ฒฐ์ฑ | ๊ธฐ๋ณธํค๋ ๋ฐ๋์ ๊ณ ์ ํ๊ณ NULL ๋ถ๊ฐ | ํ์ ํ ์ด๋ธ์์ ํ๋ฒ์ ์ค๋ณต X, NULL X |
๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ | ์ปฌ๋ผ ๊ฐ์ ๋ฏธ๋ฆฌ ์ ํ ํ์๊ณผ ๋ฒ์ ๋ด์ฌ์ผ ํจ | ๋์ด๋ 0 |
์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ | ์ธ๋ํค ๊ฐ์ ๋ถ๋ชจ ํ ์ด๋ธ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํจ | ์ฃผ๋ฌธ ํ ์ด๋ธ์ ๊ณ ๊ฐID๋ ๊ณ ๊ฐ ํ ์ด๋ธ์ ๋ฐ๋์ ์์ด์ผ ํจ |
์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ | ๋น์ฆ๋์ค ๋ฃฐ์ ๋ง๋ ์กฐ๊ฑด | ์: ์ง์ ๊ธ์ฌ๋ 100๋ง์ ์ด์ |
๐ก๏ธ ๋ฌด๊ฒฐ์ฑ ์ ์ง ๋ฐฉ๋ฒ
1๏ธโฃ ์ ์ฝ์กฐ๊ฑด(CONSTRAINT) ์ค์
- PRIMARY KEY, FOREIGN KEY, CHECK, UNIQUE, NOT NULL
2๏ธโฃ ํธ๋์ญ์ (Transaction) ๊ด๋ฆฌ
- ACID ์์น ์ค์:
- Atomicity (์์์ฑ)
- Consistency (์ผ๊ด์ฑ)
- Isolation (๊ฒฉ๋ฆฌ์ฑ)
- Durability (์ง์์ฑ)
3๏ธโฃ ์ ๊ธฐ์ ์ธ ๊ฒ์ฆ ๋ฐ ์คํฌ๋ฆฝํธ ํ์ฉ
- ๋ฐ์ดํฐ ์ ํจ์ฑ ๊ฒ์ฌ ์คํฌ๋ฆฝํธ ์ฃผ๊ธฐ์ ์คํ(์: ์๋ชป๋ ์ธ๋ํค ๊ฐ ๊ฒ์ฌ)
๐ฌ ๋น์ ๋ก ์ดํดํ๊ธฐ: ๋์ด๊ณต์ ๊ด๋ฆฌ
๋์ด๊ณต์์์๋ ์ ์ฅ๊ถ(๊ธฐ๋ณธํค)์ ๋ฐ๋์ ์์งํด์ผ ์ ์ฅ ๊ฐ๋ฅ
- ์ ์ฅ๊ถ์ด ์ค๋ณต๋๊ฑฐ๋ ์์ผ๋ฉด ์ถ์ ๋ถ๊ฐ (์ํฐํฐ ๋ฌด๊ฒฐ์ฑ) ๋์ด๊ธฐ๊ตฌ๋ง๋ค ํ์น ์ ํ(๋๋ฉ์ธ ๋ฌด๊ฒฐ์ฑ): ํค 120cm ์ด์ ์น๊ตฌ ๋ฐ๋ผ ํจ๊ป ์จ ์ฌ๋์, ๋ฐ๋์ ๊ทธ ์น๊ตฌ๊ฐ ์ ์ฅํด์ผ ์ ์ฅ ๊ฐ๋ฅ (์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ) ์ถ๊ฐ๋ก โVIP ๊ณ ๊ฐ์ ๋์ด๊ธฐ๊ตฌ ๋ฌด์ ํ ์ด์ฉ ๊ฐ๋ฅโ ๊ฐ์ ํน๋ณ ๊ท์น(์ฌ์ฉ์ ์ ์ ๋ฌด๊ฒฐ์ฑ)
๐ 2๏ธโฃ ์ฃผ๊ธฐ์ ์ธ ๋ฐ์ดํฐ ์์นด์ด๋น ๋ฐ ์ ๋ฆฌ
๐ ์์นด์ด๋น(Archiving)์ด๋?
์์ฃผ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ณ๋์ ์ ์ฅ์๋ก ์ด๋์์ผ, ์์คํ ์ฑ๋ฅ์ ์ ์งํ๋ ๊ฒ
๐ฏ ์ ํ์ํ๊ฐ?
์ด์ | ์ค๋ช |
---|---|
์ฑ๋ฅ ํฅ์ | ์ด์ ํ ์ด๋ธ์ ๋ถํ์ํ ๋ฐ์ดํฐ ์ ๊ฑฐ โ ์ฟผ๋ฆฌ ์๋ ํฅ์ |
์คํ ๋ฆฌ์ง ํจ์จ์ฑ | ์ค๋๋ ๋ฐ์ดํฐ๋ ์ ๋ ดํ ์คํ ๋ฆฌ์ง๋ก ์ด๋ |
๊ท์ ์ค์ | ๋ฐ์ดํฐ ๋ณด๊ด ๊ธฐ๊ฐ ์ ์ฑ ์ค์ (์: ๊ฐ์ธ์ ๋ณด 5๋ ๋ณด๊ด ํ ์ญ์ ๋ฑ) |
๐ ๏ธ ์ฃผ์ ๋ฐฉ๋ฒ
1๏ธโฃ ํํฐ์ ๋ + ํํฐ์ ์ด๋
- ์: ์๋ณ ๋ฐ์ดํฐ ํํฐ์ ์์ฑ โ 1๋ ์ง๋ ํํฐ์ ์ ์ธ๋ถ ์คํ ๋ฆฌ์ง๋ก ์ด๋
2๏ธโฃ ์์นด์ด๋น ์ ์ฉ ํ ์ด๋ธ๋ก ์ด๊ด
ARCHIVE
์์ง ์ฌ์ฉ ๊ฐ๋ฅ (MariaDB)
3๏ธโฃ ์์ถ ๋ฐ ์ธ๋ถ ํ์ผ๋ก ๋ฐฑ์ (CSV, JSON)
โ ์ฅ๊ธฐ ๋ณด๊ด ํ ํ์ ์๋ง ๋ถ๋ฌ์ค๊ธฐ
๐ฌ ๋น์ : ์ฐฝ๊ณ ์ ๋ฆฌ
์ฐฝ๊ณ ์ ๋งค์ผ ์์ด๋ ๋ฌผ๊ฑด๋ค!
์ค๋๋ ๋ฌผ๊ฑด์ ๋ณ๋ ๋ณด๊ด์๋ก ์ฎ๊ธฐ๊ณ , ์์ฃผ ์ฐ๋ ๋ฌผ๊ฑด์ ๋ฐ๋ก ์์!
โ ์ฐฝ๊ณ ๊ฐ ๊น๋ํ๋ฉด ์ฐพ๊ธฐ ์ฝ๊ณ ๊ด๋ฆฌ๊ฐ ํธํจ
(DB๋ ์ค๋๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ฆฌ๋์ด์ผ ๋น ๋ฆ)
๐ฅ 3๏ธโฃ ์ฅ์ ๋ณต๊ตฌ ๋ฐ ๋ณต์ ์ ๋ต
๐ ํต์ฌ ์ ๋ต
์ ๋ต | ์ค๋ช | ์ฌ์ฉ ์์ |
---|---|---|
์ ๊ธฐ ๋ฐฑ์ | ์ ์ฒด, ์ฆ๋ถ, ์ฐจ๋ฑ ๋ฐฑ์ ์ํ | ๋งค์ผ ์๋ฒฝ ์ ์ฒด ๋ฐฑ์ , ๋งค์๊ฐ ์ฆ๋ถ ๋ฐฑ์ |
๋ก๊ทธ ํ์ฉ (PITR) | ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ๋ก ํน์ ์์ ๊น์ง ๋ณต๊ตฌ | ์ฅ์ ์ง์ 1๋ถ ์ ๊น์ง ๋๋๋ฆฌ๊ธฐ |
๊ณ ๊ฐ์ฉ์ฑ(HA) ๊ตฌ์ฑ | ์ด์คํ(Replication, Cluster)๋ก ์ฅ์ ์ ์๋ ์ ํ | Master-Slave Replication |
๋ณต๊ตฌ ์๋๋ฆฌ์ค ๋ฌธ์ํ | ์ฅ์ ๋ฐ์ ์ ๋๊ตฌ๋ ๋์ ๊ฐ๋ฅํ๋๋ก ์ ์ฐจํ | ๋ณต๊ตฌ ๋งค๋ด์ผ ์์ฑ ๋ฐ ์ฐ์ต |
๐ฌ ๋น์ : ์๋ฐฉ ์์คํ
๊ฑด๋ฌผ ํ์ฌ ๋ฐ์ ์:
- ์คํ๋งํด๋ฌ(Replication) ์๋ ์๋
- ๋น์๊ตฌ(Backup) ํตํด ์์ ํ๊ฒ ๋ํผ
- *์๋ฐฉํ๋ จ(๋ณต๊ตฌ ์๋๋ฆฌ์ค ์ฐ์ต)**์ผ๋ก ๋น ๋ฅธ ๋์
๐ 4๏ธโฃ ๋๊ท๋ชจ ์์คํ ์์์ ์ฑ๋ฅ ๊ด๋ฆฌ
๐ ์ฑ๋ฅ ๊ด๋ฆฌ ํต์ฌ ์์
๋ฐฉ๋ฒ | ์ค๋ช | ์์ |
---|---|---|
์ธ๋ฑ์ค ์ต์ ํ | ์์ฃผ ์ฌ์ฉํ๋ ์ฟผ๋ฆฌ์ ์ ์ ํ ์ธ๋ฑ์ค ์ถ๊ฐ | B-Tree, Fulltext |
์ฟผ๋ฆฌ ํ๋ | ๋๋ฆฐ ์ฟผ๋ฆฌ ๋ถ์ โ JOIN, WHERE, LIMIT ์ต์ ํ | EXPLAIN ์ฌ์ฉ |
ํํฐ์ ๋ | ํ ์ด๋ธ์ ํํฐ์ ์ผ๋ก ๋๋ ์ฟผ๋ฆฌ ๋ฒ์ ์ถ์ | ์๋ณ ๋ก๊ทธ ํ ์ด๋ธ |
Connection Pool ๊ด๋ฆฌ | DB ์ฐ๊ฒฐ ์ ์ ํ, ๊ณผ๋ถํ ๋ฐฉ์ง | max_connections ์กฐ์ |
์บ์ฑ | Redis, Memcached ํ์ฉํด ์์ฃผ ์กฐํํ๋ ๋ฐ์ดํฐ ์บ์ฑ | ์ธ์ , ์กฐํ์ ๋ฑ |
๐ฌ ๋น์ : ๊ณ ์๋๋ก ๊ตํต ๊ด๋ฆฌ
- ์ธ๋ฑ์ค = ๋ค๋น๊ฒ์ด์ ์ ์ต์ ๊ฒฝ๋ก
- ์ฟผ๋ฆฌ ํ๋ = ์ฐจ์ ๋ณ๊ฒฝ, ์๋ ์กฐ์
- ํํฐ์ ๋ = ๊ณ ์๋๋ก ํจ๊ฒ์ดํธ ๊ตฌ๊ฐ๋ณ ๋ถ๋ฆฌ
- Connection Pool = ์ ์ฅ ์ฐจ๋ ์ ์ ํ
- ์บ์ฑ = ์์ฃผ ์ฐ๋ ํ์ดํจ์ค ํฐ์ผ ์ค๋น
๐ ๐ ์์ฝ
๐ ๋ฐ์ดํฐ ๊ด๋ฆฌ & ์ ์ง๋ณด์
๐ก๏ธ 1. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ง
- โ ์ ์ฝ์กฐ๊ฑด (PK, FK, CHECK)
- โ ํธ๋์ญ์ ๊ด๋ฆฌ (ACID)
- โ ์ ๊ธฐ์ ๋ฐ์ดํฐ ๊ฒ์ฆ ์คํฌ๋ฆฝํธ๐ฌ ๋์ด๊ณต์ ์ ์ฅ๊ถ ๋น์
๐ 2. ์ฃผ๊ธฐ์ ๋ฐ์ดํฐ ์์นด์ด๋น
- โ ํํฐ์ ๋ ํ ๋ฐ์ดํฐ ์ด๋
- โ ์์นด์ด๋น ์ ์ฉ ํ ์ด๋ธ ์ฌ์ฉ
- โ ์ธ๋ถ ํ์ผ ์์ถ ๋ฐฑ์ ๐ฌ ์ฐฝ๊ณ ์ ๋ฆฌ ๋น์
๐ฅ 3. ์ฅ์ ๋ณต๊ตฌ & ๋ณต์ ์ ๋ต
- โ ์ ์ฒด/์ฆ๋ถ ๋ฐฑ์
- โ PITR๋ก ํน์ ์์ ๋ณต๊ตฌ
- โ ๋ณต๊ตฌ ์๋๋ฆฌ์ค ๋ฌธ์ํ๐ฌ ์๋ฐฉ ์์คํ ๋น์
๐ 4. ๋๊ท๋ชจ ์์คํ ์ฑ๋ฅ ๊ด๋ฆฌ
- โ ์ธ๋ฑ์ค ์ต์ ํ
- โ ์ฟผ๋ฆฌ ํ๋ + EXPLAIN
- โ ํํฐ์ ๋ & ์บ์ฑ ํ์ฉ๐ฌ ๊ณ ์๋๋ก ๊ตํต ๋น์