๐พ [CS] RDB๋?
RDB๋ Relational Databas(๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค) ๋ฅผ ์ค์ธ ์ฉ์ด๋ก, ๊ด๊ณํ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค.
RDB์์๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํ๋ฉฐ, ๊ฐ ํ ์ด๋ธ์ ํ(row) ๊ณผ ์ด(column) ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํค(Key) ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ๊ณ , ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ๊ฒ์ํ ์ ์์ต๋๋ค.
1๏ธโฃ RDB์ ์ฃผ์ ํน์ง.
1. ํ ์ด๋ธ ํ์์ ๋ฐ์ดํฐ ์ ์ฅ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ(Table) ๋ก ์ ์ฅํฉ๋๋ค.
- ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ํ ์ ํ์ ๋ํ๋ด๋ฉฐ, ํ ์ด๋ธ ์์ ์ฌ๋ฌ ๋ ์ฝ๋(ํ, row)๊ฐ ์ ์ฅ๋ฉ๋๋ค.
- ๊ฐ ํ(row)์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ํญ๋ชฉ์ ๋ํ๋ด๊ณ , ์ด(column)์ ๋ฐ์ดํฐ์ ์์ฑ์ ๋ํ๋ ๋๋ค.
2. ๊ด๊ณ(Relation)
- RDB์์ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ Primary Key(๊ธฐ๋ณธ ํค) ์ Foreign Key(์ธ๋ ํค) ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฉ๋๋ค.
- ๊ธฐ๋ณธ ํค(Primary Key)๋ ๊ฐ ํ ์ด๋ธ์์ ๊ฐ ํ(row)์ ๊ณ ์ ํ๊ฒ ์๋ณํ๋ ๊ฐ์ด๋ฉฐ, ์ธ๋ ํค(Foreign Key)๋ ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค(Primary Key)๋ฅผ ์ฐธ์กฐํ๋ ๊ฐ์ ๋๋ค.
- ์ด ํค๋ฅผ ํตํด ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๊ณ , ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
3. SQL(Structured Query Language) ์ฌ์ฉ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ๊ด๋ฆฌํฉ๋๋ค.
- SQL์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ , ์กฐํ, ์์ , ์ญ์ ํ๋ ๋ช ๋ น์ด๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ(ํ ์ด๋ธ ์์ฑ, ์์ , ์ญ์ ๋ฑ)๋ฅผ ์ ์ํ๋ ์ธ์ด์ ๋๋ค.
๐โโ๏ธ SQL์ด๋?
4. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ.
- RDB๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ(Integrity) ์ ๋ณด์ฅํ๊ธฐ ์ํ ๋ค์ํ ์ ์ฝ ์กฐ๊ฑด์ ์ง์ํฉ๋๋ค.
- ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ผ๋ก๋ Primary Key, Foreign Key, Unique ์ ์ฝ ์กฐ๊ฑด ๋ฑ์ด ์์ต๋๋ค.
- ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ํตํด ๋ฐ์ดํฐ์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
5. ACID ์์ฑ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํธ๋์ญ์
์ฒ๋ฆฌ์์ ACID ์์ฑ์ ์ค์ํฉ๋๋ค.
- ์์์ฑ(Atomicity) : ํธ๋์ญ์ ๋ด์ ๋ชจ๋ ์์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๊ฑฐ๋, ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฌด ๊ฒ๋ ์๋ฃ๋์ง ์์์ผ ํฉ๋๋ค.
- ์ผ๊ด์ฑ(Consistency) : ํธ๋์ญ์ ์ด ์๋ฃ๋ ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํญ์ ์ผ๊ด๋ ์ํ๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค.
- ๊ณ ๋ฆฝ์ฑ(Isolation) : ๋์์ ์คํ๋๋ ํธ๋์ญ์ ๋ค์ ์๋ก์ ์์ ์ ์ํฅ์ ์ฃผ์ง ์์์ผ ํฉ๋๋ค.
- ์ง์์ฑ(Durability) : ํธ๋์ญ์ ์ด ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด, ๊ทธ ๊ฒฐ๊ณผ๋ ์๊ตฌ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์๋ฉ๋๋ค.
๐โโ๏ธ ํธ๋์ญ์
2๏ธโฃ RDB์ ์ฃผ์ ๊ฐ๋ .
1. ํ ์ด๋ธ(Table)
- ํ ์ด๋ธ์ RDB์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ์ฅ ๋จ์์ ๋๋ค.
- ํ
์ด๋ธ์ ํ(row)๊ณผ ์ด(colum)๋ก ๊ตฌ์ฑ๋๋ฉฐ, ๊ฐ ํ(row)์ ํ๋์ ๋ ์ฝ๋(๋ฐ์ดํฐ ํญ๋ชฉ)๋ฅผ, ๊ฐ ์ด(column)์ ๋ฐ์ดํฐ ์์ฑ์ ๋ํ๋
๋๋ค.
- ์๋ฅผ ๋ค์ด,
Users
๋ผ๋ ํ ์ด๋ธ์๋ ์ฌ์ฉ์ ์ ๋ณด๊ฐ ์ ์ฅ๋ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด,
์์ Users
ํ
์ด๋ธ
id | name | |
---|---|---|
1 | Kobe | kobe@example.com |
2 | MinSeond | minseong@example.com |
2. ๊ธฐ๋ณธ ํค(Primary Key)
- ํ ์ด๋ธ์์ ๊ฐ ๋ ์ฝ๋๋ฅผ ๊ณ ์ ํ๊ฒ ์๋ณํ ์ ์๋ ์ด์ ๋๋ค.
- ๊ธฐ๋ณธ ํค๋ ์ค๋ณต๋ ์ ์์ผ๋ฉฐ, null ๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด,
Users
ํ ์ด๋ธ์์id
์ด์ด ๊ธฐ๋ณธ ํค๊ฐ ๋ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด,
3. ์ธ๋ ํค(Foreign Key)
- ํ ํ ์ด๋ธ์ ์ด์ด ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ฐธ์กฐํ ๋, ์ด๋ฅผ ์ธ๋ ํค๋ผ๊ณ ํฉ๋๋ค.
- ์ธ๋ ํค๋ฅผ ํตํด ๋ ํ
์ด๋ธ ๊ฐ์ ๊ด๊ณ๊ฐ ์ค์ ๋ฉ๋๋ค.
- ์๋ฅผ ๋ค์ด,
Orders
ํ ์ด๋ธ์user_id
์ด์Users
ํ ์ด๋ธ์id
์ด์ ์ฐธ์กฐํ๋ ์ธ๋ ํค๊ฐ ๋ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด,
์์ Orders
ํ
์ด๋ธ (์ธ๋ ํค๋ฅผ ์ฌ์ฉ)
order_id | user_id | product |
---|---|---|
1001 | 1 | Laptop |
1002 | 2 | Smartphone |
- ์ฌ๊ธฐ์
user_id
๋Users
ํ ์ด๋ธ์id
๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ ํค(Foreign Key)์ ๋๋ค.
4. ๊ด๊ณ(Relation)
- ํ
์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ 1:1, 1(์ผ๋๋ค), N(๋ค๋๋ค) ๊ด๊ณ๋ก ์ ์๋ ์ ์์ต๋๋ค.
- 1:1 ๊ด๊ณ : ํ ํ ์ด๋ธ์ ํ๋์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ํ๋์ ๋ ์ฝ๋์๋ง ์ฐ๊ด๋ฉ๋๋ค.
- 1 ๊ด๊ณ : ํ ํ ์ด๋ธ์ ํ๋์ ๋ ์ฝ๋๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ์ฌ๋ฌ ๋ ์ฝ๋์ ์ฐ๊ด๋ฉ๋๋ค.
- N ๊ด๊ณ : ๋ ํ ์ด๋ธ ๊ฐ์ ์ฌ๋ฌ ๋ ์ฝ๋๊ฐ ์๋ก ์ฌ๋ฌ ๋ ์ฝ๋์ ์ฐ๊ด๋ฉ๋๋ค. ์ด๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฐ๊ฒฐ ํ ์ด๋ธ์ด ์ฌ์ฉ๋ฉ๋๋ค.
3๏ธโฃ RDB์ ์์
1. ํ ์ด๋ธ ์์ฑ
CREATE TABLE Users (
id INT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);
2. ๋ฐ์ดํฐ ์ฝ์
INSERT INTO Users (id, name, email) VALUES (1, 'Kobe', 'kobe@email.com');
3. ๋ฐ์ดํฐ ์กฐํ
SELECT * FROM Users WHERE id = 1;
4. ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ ์ค์
CREATE TABLE Orders (
order_id INT PRIMARY KEY,
user_id INT,
product VARCHAR(100),
FOREIGN KEY (user_id) REFERENCE Users(id)
);
- ์ด ์์์์๋
Orders
ํ ์ด๋ธ์user_id
๊ฐUsers
ํ ์ด๋ธ์id
๋ฅผ ์ฐธ์กฐํ๋ ์ธ๋ ํค๋ก ์ค์ ๋ฉ๋๋ค.
4๏ธโฃ RDB์ ์ฅ์ .
1. ๋ฐ์ดํฐ ์ผ๊ด์ฑ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL์ ํตํด ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ ํค(Primary Key)์ ์ธ๋ ํค(Foreign Key)๋ฅผ ํตํด ๋ฐ์ดํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ๋ฐฉ์งํฉ๋๋ค.
2. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ.
- ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด(Primary Key, Foreign Key, Unique ๋ฑ)์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ์ ์ ํ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
3. ํ์คํ๋ ์ฟผ๋ฆฌ ์ธ์ด.
- SQL์ด๋ผ๋ ํ์คํ๋ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ค์ํ RDBMS์์ SQL์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฒ์ฉ์ฑ์ด ๋์ต๋๋ค.
4. ๋ณต์กํ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐ์ธ(Join) ์ฐ์ฐ์ ํตํด ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒฐํฉํ์ฌ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
5. ACID ํธ๋์ญ์ ์ง์.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ACID ์์ฑ์ ์ค์ํ์ฌ ํธ๋์ญ์
์ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ์ด๋ ๊ธ์ต์์คํ ์ด๋ ์ค์ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ๋งค์ฐ ์ ํฉํฉ๋๋ค.
5๏ธโฃ RDB์ ๋จ์ .
1. ํ์ฅ์ฑ์ ํ๊ณ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ค์ผ์ผ ์์(์๋ฒ๋ฅผ ์ํ์ ์ผ๋ก ํ์ฅํ๋ ๋ฐฉ์)์ ์ ์ฝ์ด ์์ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ๋ณต์กํ ๋ถ์ฐ ํ๊ฒฝ์์๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋ ์ ํฉํ ์ ์์ต๋๋ค.
2. ๋ณต์กํ ๊ตฌ์กฐ.
- ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ๊ฐ๋ ฅํ์ง๋ง, ๋ณต์กํ ์คํค๋ง ์ค๊ณ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง ์ ์์ต๋๋ค.
3. ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ํ๊ณ.
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ ์ ๋ ์คํค๋ง ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฏ๋ก, ๋น์ ํ ๋ฐ์ดํฐ(์: JSON, XML, ๋ฏธ๋์ด ํ์ผ ๋ฑ)๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ๋ ์ ํฉํ์ง ์์ ์ ์์ต๋๋ค.
6๏ธโฃ RDB์ ์์ ์์คํ .
1. MySQL
- ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋ฉ๋๋ค.
2. PostgreSQL
- ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์คํ ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ๋ณต์กํ ์ฟผ๋ฆฌ์ ํธ๋์ญ์ ์ ์ง์ํฉ๋๋ค.
3. Oracle Database
- ์ํฐํ๋ผ์ด์ฆ๊ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ์ฑ๋ฅ๊ณผ ์์ ์ฑ์ด ๋งค์ฐ ๋ฐ์ด๋๊ณ , ๋ง์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
4. Microsoft SQL Server
- Microsoft์์ ๊ฐ๋ฐํ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก, ์ฃผ๋ก Windows ํ๊ฒฝ์์ ์ฌ์ฉ๋ฉ๋๋ค.
7๏ธโฃ RDB์ ํ์ฉ ์ฌ๋ก.
1. ์ ์์๊ฑฐ๋ ์์คํ
- ์ฌ์ฉ์ ์ ๋ณด, ์ฃผ๋ฌธ ์ ๋ณด, ์ ํ ์ ๋ณด ๋ฑ์ ํ ์ด๋ธ๋ก ๊ด๋ฆฌํ๊ณ , ์ด๋ฌํ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด์ฑ ์๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
2. ์ํ ์์คํ
- ๊ณ์ข ์ ๋ณด, ๊ฑฐ๋ ๊ธฐ๋ก, ๊ณ ๊ฐ ์ ๋ณด ๋ฑ์ ํ ์ด๋ธ์ ์ ์ฅํ๊ณ , ๊ฐ ํ ์ด๋ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํตํด ํ ์ดํฐ๋ฅผ ์์ ํ๊ฒ ๊ด๋ฆฌํฉ๋๋ค.
- ํธ๋์ญ์ ์ฒ๋ฆฌ๊ฐ ์ค์ํฉ๋๋ค.
3. ERP ์์คํ
- ๊ธฐ์ ์์ ๊ด๋ฆฌ ์์คํ ์์ ์์ฐ, ์ฌ๊ณ , ๊ตฌ๋งค, ํ๋งค, ์ธ์ฌ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ๋ก ๊ด๋ฆฌํ๊ณ , ์๋ก ๊ด๊ณ๋ฅผ ๋งบ์ด ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํฉ๋๋ค.
8๏ธโฃ ์์ฝ.
- RDB(Relational Database) ๋ ๋ฐ์ดํฐ๋ฅผ ํ ์ด๋ธ ํํ๋ก ์ ์ฅํ๊ณ , ๊ด๊ณ(Relation) ๋ฅผ ํตํด ํ ์ด๋ธ ๊ฐ์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋๋ค.
- RDB๋ SQL์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ฝ์ , ์์ , ์ญ์ ํ๋ฉฐ, ACID ์์ฑ์ ํตํด ํธ๋์ญ์ ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๊ณ ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ํ์ฅ์ฑ์ด๋ ๋น์ ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์๋ ํ๊ณ๊ฐ ์์ ์ ์์ต๋๋ค.