Home
>
DB
>
πΎ[Database] κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ 무μμΌκΉμ?
Database
πΎ[Database] κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ 무μμΌκΉμ?
-
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ ν
μ΄λΈ νμμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νκ³ , ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μνμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ λ°μ΄ν° λͺ¨λΈμ
λλ€.
- μ΄λ₯Ό κ΄λ¦¬νκΈ° μν΄ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
(Database Management System, DBMS)μ΄ μ¬μ©λλ©°, RDB(Relational Database, κ΄κ³ν λ°μ΄ν°λ² μ΄μ€)λ₯Ό κ΄λ¦¬νλ DBMS(Database Management System, λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
)λ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μ΄λΌκ³ ν©λλ€.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν°λ₯Ό ν(Row)κ³Ό μ΄(Column)λ‘ κ΅¬μ±λ ν
μ΄λΈ(Table)μ μ μ₯λλ©°, κ° ν
μ΄λΈμ μλ‘ κ΄κ³λ₯Ό λ§Ίμ΄ κ΅¬μ‘°νλ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκ³ κ²μνκΈ° μ½κ² ν©λλ€.
1οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(RDB, Relational Database)μ μ£Όμ νΉμ§.
1οΈβ£ ν
μ΄λΈ ꡬ쑰.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(RDB, Relational Database)λ λ°μ΄ν°λ₯Ό ν
μ΄λΈ ννλ‘ μ μ₯ν©λλ€.
- κ° ν
μ΄λΈμ ν(Row)κ³Ό μ΄(Column)λ‘ κ΅¬μ±λλ©°, ν(Row)μ λ μ½λ(Record)λΌκ³ νκ³ , μ΄(Column)μ μμ±(Attribute) λλ νλ(Field)λΌκ³ λΆλ¦
λλ€.
- μλ₯Ό λ€μ΄, βμ¬μ©μβλΌλ ν
μ΄λΈμ΄ μλ€λ©΄, κ° ν(Row)μ μ¬μ©μ μ 보(μ΄λ¦, μ΄λ©μΌ, λμ΄ λ±)λ₯Ό λνλ΄κ³ , κ° μ΄(Column)μ μ¬μ©μ μ 보λ₯Ό μ€λͺ
νλ μμ±(Attribute)μ λνλ
λλ€.
2οΈβ£ κ΄κ³.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ μ¬λ¬ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μν μ μμ΅λλ€.
-
ν€(Key)λ₯Ό μ¬μ©ν΄ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό λ§Ίκ³ , λ°μ΄ν°λ₯Ό μ°Έμ‘°νκ³ μ°κ²°ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, βμ¬μ©μβ ν
μ΄λΈκ³Ό βμ£Όλ¬Έβ ν
μ΄λΈμ΄ μλ€κ³ νλ©΄, βμ¬μ©μβ ν
μ΄λΈμ κΈ°λ³Έ ν€(Primary Key)κ° βμ£Όλ¬Έβ ν
μ΄λΈμ μΈλ ν€(Foreign Key)λ‘ μ¬μ©λλ©°, μ¬μ©μμ μ£Όλ¬Έ κ°μ κ΄κ³λ₯Ό λνλΌ μ μμ΅λλ€.
3οΈβ£ κ³ μ ν ν€(Primary Key).
- κ° ν
μ΄λΈμλ κ³ μ ν ν€(Primary Key)κ° μμ΅λλ€.
- μ΄ ν€λ ν
μ΄λΈμ κ° λ μ½λ(Record)λ₯Ό μ μΌνκ² μλ³νλ μν μ ν©λλ€.
- κΈ°λ³Έ ν€(Primary Key)λ μ€λ³΅λ μ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ ννκ² κ²μνκ³ κ΄λ¦¬ν μ μμ΅λλ€.
4οΈβ£ λ°μ΄ν° λ¬΄κ²°μ± λ° μΌκ΄μ±.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν° 무결μ±(Integrity)κ³Ό μΌκ΄μ±(Consistency)μ μ μ§νλλ‘ μ€κ³λμμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μ νμ±κ³Ό μ λ’°μ±μ 보μ₯ν μ μμ΅λλ€.
-
μ μ½ μ‘°κ±΄(Constraints)μ ν΅ν΄ λ°μ΄ν°μ 무결μ±(Integrity)μ μ μ§ν©λλ€.
- μλ₯Ό λ€μ΄, NOT NULL μ μ½ μ‘°κ±΄μ μ¬μ©νμ¬ νΉμ μ΄μ΄ νμ κ°μ κ°μ ΈμΌ νλ€λ κ²μ 보μ₯νκ±°λ, FOREIGN KEY μ μ½ μ‘°κ±΄μ μ¬μ©ν΄ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μ§ν©λλ€.
5οΈβ£ SQL(Structured Query Language)
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν΄ SQL(Structured Query Language)μ΄λΌλ μΈμ΄λ₯Ό μ¬μ©ν©λλ€.
- SQL(Structured Query Language)μ λ°μ΄ν°λ₯Ό μ‘°ν, μ½μ
, μμ , μμ νλ λ° μ¬μ©λλ νμ€ μΈμ΄μ
λλ€.
- SQL(Structured Query Language)μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μμ λ°μ΄ν° κ²μκ³Ό μ‘°μμ μν κ°λ ₯ν λꡬμ
λλ€.
- μ: λ°μ΄ν°λ₯Ό μ½μ
νκΈ° μν
INSERT
λ¬Έ, λ°μ΄ν°λ₯Ό μ‘°ννκΈ° μν SELECT
λ¬Έ, λ°μ΄ν°λ₯Ό μμ νκΈ° μν UPDATE
λ¬Έ, λ°μ΄ν°λ₯Ό μμ νκΈ° μν DELETE
λ¬Έ λ±μ΄ μμ΅λλ€.
2οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ κ΅¬μ± μμ.
1οΈβ£ ν
μ΄λΈ(Table)
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ κΈ°λ³Έ λ¨μμ
λλ€.
- λ°μ΄ν°λ ν(Row)κ³Ό μ΄(Column)λ‘ κ΅¬μ±λ ν
μ΄λΈμ μ μ₯λ©λλ€.
- μ:
μ¬μ©μ(Users)
ν
μ΄λΈ, μ£Όλ¬Έ(Order)
ν
μ΄λΈ
2οΈβ£ κΈ°λ³Έ ν€(Primary Key)
- κ° ν
μ΄λΈμμ κ³ μ νκ² λ μ½λλ₯Ό μλ³νλ μ΄(Column)μ
λλ€.
- μ€λ³΅λ μ μμΌλ©°, κ° ν(Row)μ μ μΌνκ² κ΅¬λΆν μ μμ΅λλ€.
- μ: μ¬μ©μ ν
μ΄λΈμ
user_id
μ΄(Column)μ κΈ°λ³Έ ν€(Primary Key)λ‘ μ¬μ©λ μ μμ΅λλ€.
3οΈβ£ μΈλ ν€(Foreign Key)
-
λ€λ₯Έ ν
μ΄λΈμ κΈ°λ³Έ ν€(Primary Key)λ₯Ό μ°Έμ‘°νλ μ΄(Column)λ‘, ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μν©λλ€.
- μΈλ ν€(Foreign Key)λ λ ν
μ΄λΈμ μ°κ²°νλ μν μ νλ©°, λ°μ΄ν° κ°μ μΌκ΄μ±μ μ μ§νλ λ° λμμ μ€λλ€.
- μ:
μ£Όλ¬Έ(Orders)
ν
μ΄λΈμμ user_id
μ΄μ΄ μ¬μ©μ(Users)
ν
μ΄λΈμ user_id
λ₯Ό μ°Έμ‘°νλ κ²½μ°, μ΄λ₯Ό μΈλν€(Foreign Key)λΌκ³ ν©λλ€.
4οΈβ£ μμ±(Attribute)
- ν
μ΄λΈμ μ΄(Column)μ μλ―Ένλ©°, κ° μμ±(Attribute)μ νΉμ μ νμ λ°μ΄ν°λ₯Ό μ μ₯ν©λλ€.
- μλ₯Ό λ€μ΄, μ¬μ©μ ν
μ΄λΈμμ
name
, email
, age
μ κ°μ μμ±μ΄ μμ μ μμ΅λλ€.
5οΈβ£ λ μ½λ(Record)
- ν
μ΄λΈμ ν(Row)μ μλ―Ένλ©°, νλμ λ μ½λλ ν
μ΄λΈμ μ μ₯λ λ°μ΄ν°μ ν νλͺ©μ λνλ
λλ€.
- μλ₯Ό λ€μ΄, μ¬μ©μ ν
μ΄λΈμ ν ν(Row)μ ν μ¬μ©μμ μ 보λ₯Ό λνλ
λλ€.
3οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ μμ.
- μλ₯Ό λ€μ΄, μ μμκ±°λ μΉμ¬μ΄νΈλ₯Ό μν λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€κ³νλ€κ³ κ°μ ν΄λ΄
μλ€.
- μ¬κΈ°μλ μ¬μ©μμ μ£Όλ¬Έ μ 보λ₯Ό μ μ₯νκΈ° μν΄ λ κ°μ ν
μ΄λΈμ΄ μμ μ μμ΅λλ€.
1οΈβ£ μ¬μ©μ(Users) ν
μ΄λΈ.
-
user_id
(κΈ°λ³Έ ν€, Primary Key)
-
name
`
email
address
2οΈβ£ μ£Όλ¬Έ(Orders) ν
μ΄λΈ.
-
order_id
(κΈ°λ³Έ ν€, Primary Key)
-
user_id
(μΈλ ν€, Foreign Key, μ¬μ©μμμ κ΄κ³λ₯Ό λνλ)
product
quantity
3οΈβ£ μ€λͺ
.
- μ΄ μμμ, μ¬μ©μ ν
μ΄λΈκ³Ό μ£Όλ¬Έ ν
μ΄λΈμ
user_id
λ₯Ό ν΅ν΄ κ΄κ³λ₯Ό λ§Ίκ³ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ νΉμ μ¬μ©μκ° μ΄λ€ μ£Όλ¬Έμ νλμ§ μ½κ² μ‘°νν μ μμ΅λλ€.
4οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μ μ.
-
MySQL
- μ€ν μμ€ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μΌλ‘, μΉ μ ν리μΌμ΄μ
μμ λ§μ΄ μ¬μ©λ©λλ€.
-
PostgreSQL
- μ€ν μμ€ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)λ‘, νμ₯μ±κ³Ό νμ€ μ€μμ μ€μ μ λ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μ
λλ€.
-
Oracle
- λκ·λͺ¨ μμ
μ© λ°μ΄ν°λ² μ΄μ€λ‘, λμ μ±λ₯κ³Ό 보μμ±μ μλνλ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μ
λλ€.
-
Microsoft SQL Server
- λ§μ΄ν¬λ‘μννΈμμ κ°λ°ν κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬μμ€ν
(RDBMS, Relational Database Management System)μΌλ‘, κΈ°μ
νκ²½μμ λ§μ΄ μ¬μ©λ©λλ€.
5οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ μ₯μ .
1οΈβ£ λ°μ΄ν° λ¬΄κ²°μ± λ³΄μ₯.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ μ μ½ μ‘°κ±΄(Constraints)μ ν΅ν΄ λ°μ΄ν°μ 무결μ±μ 보μ₯ν©λλ€.
- μλ₯Ό λ€μ΄, μΈλ ν€(Foreign key)λ₯Ό ν΅ν΄ ν
μ΄λΈ κ°μ μ°Έμ‘° 무결μ±μ μ μ§νκ³ , λ°μ΄ν°μ μΌκ΄μ±μ ν보ν©λλ€.
2οΈβ£ SQLμ ν΅ν λ°μ΄ν° κ΄λ¦¬.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database)λ SQL(Structured Query Language)μ΄λΌλ νμ€ μΈμ΄λ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ²μ, μ½μ
, μμ , μμ ν μ μμ΅λλ€.
- SQLμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό μ½κ² κ΄λ¦¬ν μ μλλ‘ ν΄μ€λλ€.
3οΈβ£ λ°μ΄ν° μ€λ³΅ μ΅μν.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν°λ₯Ό μ¬λ¬ ν
μ΄λΈλ‘ λλκ³ , μ€λ³΅μ μ΅μννμ¬ μ μ₯ν©λλ€.
- μ΄λ‘ μΈν΄ λ°μ΄ν° μ μ₯μμ ν¨μ¨μ±μ΄ μ¦κ°νκ³ , λ°μ΄ν° μΌκ΄μ±μ μ μ§ν μ μμ΅λλ€.
4οΈβ£ λ°μ΄ν° 보μ.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ μ¬μ©μ κΆνμ κ΄λ¦¬νμ¬, λ°μ΄ν°μ λν μ κ·Όμ μ μ΄νκ³ λ³΄μμ κ°νν μ μμ΅λλ€.
6οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ λ¨μ .
1οΈβ£ 볡μ‘ν ꡬ쑰.
- λ°μ΄ν°κ° μ¬λ¬ ν
μ΄λΈμ λΆμ°λμ΄ μ μ₯λκΈ° λλ¬Έμ, λ°μ΄ν°μ κ΅¬μ‘°κ° λ³΅μ‘ν΄μ§ μ μμ΅λλ€.
- νΉν, λ°μ΄ν°κ°μ κ΄κ³κ° λ§μμ§μλ‘ κ΄λ¦¬μ μ€κ³κ° μ΄λ €μμ§ μ μμ΅λλ€.
2οΈβ£ νμ₯μ±μ νκ³.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν°μ μνμ νμ₯(λ°μ΄ν°λ₯Ό μ¬λ¬ μλ²λ‘ λλμ΄ μ μ₯)μ΄ μ΄λ €μ΄ κ²½μ°κ° λ§μ΅λλ€.
- λ°μ΄ν°κ° ν¬κ³ κ΄κ³κ° 볡μ‘ν μλ‘ νμ₯μ±κ³Ό μ±λ₯μ μ μ½μ΄ μμ μ μμ΅λλ€.
3οΈβ£ κ³ μ λ μ€ν€λ§.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ κ³ μ λ μ€ν€λ§λ₯Ό μ¬μ©ν©λλ€.
- μ¦, ν
μ΄λΈ ꡬ쑰(μ΄(Row)μ μμ μ΄λ¦ λ±)κ° μ ν΄μ§ ν, μ΄λ₯Ό λ³κ²½νκΈ° μ΄λ ΅μ΅λλ€.
- λ°μ΄ν° κ΅¬μ‘°κ° μμ£Ό λ³κ²½λλ κ²½μ° μ μ°μ±μ΄ λ¨μ΄μ§ μ μμ΅λλ€.
7οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ NoSQL λ°μ΄ν°λ² μ΄μ€μ μ°¨μ΄.
1οΈβ£ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)
- λ°μ΄ν°λ₯Ό ν
μ΄λΈ ννλ‘ μ μ₯νλ©°, ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μν©λλ€.
-
SQL(Structured Query Language)μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν©λλ€.
-
μΌκ΄μ±κ³Ό 무결μ±μ μ€μνκ² λ€λ£¨λ©°, κ³ μ λ μ€ν€λ§ ꡬ쑰λ₯Ό κ°μ§λλ€.
2οΈβ£ NoSQL λ°μ΄ν°λ² μ΄μ€
- λ°μ΄ν°λ₯Ό μ μ°ν κ΅¬μ‘°λ‘ μ μ₯νλ©°, λ¬Έμ(Document), ν€-κ°(Key-Value), κ·Έλν(Graph) λ± λ€μν λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯ν μ μμ΅λλ€.
-
μ€ν€λ§κ° μ μ°νμ¬ λ°μ΄ν° κ΅¬μ‘°κ° μμ£Ό λ³κ²½λ λ μ 리ν©λλ€.
- κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)μ λΉν΄ μνμ νμ₯μ΄ μ©μ΄νλ©°, λκ·λͺ¨ λΆμ° μμ€ν
μ μ ν©ν©λλ€.
8οΈβ£ κ²°λ‘ .
-
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(Relational Database, RDB)λ λ°μ΄ν°λ₯Ό ν
μ΄λΈ ννλ‘ μ μ₯νκ³ , μ¬λ¬ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μ μνμ¬ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νλ λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
μ
λλ€.
-
SQLμ μ¬μ©ν΄ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ©°, λ°μ΄ν° 무결μ±κ³Ό μΌκ΄μ±μ μ μ§νλ λ° κ°μ μ κ°μ§λλ€.
- λνμ μΈ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ‘λ MySQL, PostgreSQL, Oracle λ±μ΄ μμΌλ©°, 볡μ‘ν κ΄κ³λ₯Ό κ°μ§λ μ ν λ°μ΄ν° κ΄λ¦¬μ μ ν©ν©λλ€.