πΎ [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 μμ±μ ν΅ν΄ νΈλμμ μ μΌκ΄μ±μ 보μ₯ν©λλ€.
- λ°μ΄ν°λ² μ΄μ€μ 무결μ±μ μ μ§νκ³ λ³΅μ‘ν 쿼리λ₯Ό μ²λ¦¬νλλ° κ°λ ₯ν κΈ°λ₯μ μ 곡νμ§λ§, νμ₯μ±μ΄λ λΉμ ν λ°μ΄ν° μ²λ¦¬μλ νκ³κ° μμ μ μμ΅λλ€.