π λ°μ΄ν°λ² μ΄μ€
- λ°μ΄ν°(data)μ λ² μ΄μ€(base)μ ν©μ±μ΄μ΄λ©° DBMSλ
Database Management Systemμ μ½μλ‘ 'λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν
'μ
μλ―Ένλ€.
κΈ°λ³Έ κ°λ
μλ£ (Data)
- νμ€ μΈκ³μμ κ΄μ°°μ΄λ μΈ‘μ μ ν΅ν΄ μμ§ν λ¨μν μ¬μ€μ΄λ κ°
μ 보 (Information)
- μμ¬ κ²°μ μ λμμ μ€ μ μλ μ μ©ν νν
- μλ£λ₯Ό κ°κ³΅(μ²λ¦¬)ν΄μ μ»μ μ μλ κ²°κ³Όλ₯Ό μλ―Έ
λ°μ΄ν° λ² μ΄μ€
- μ΄λ ν μ‘°μ§μ²΄μ μ¬λ¬ μμ© μμ€ν
λ€μ΄ 곡λμΌλ‘ μ¬μ©ν μ μλλ‘ ν΅ν©νμ¬ μ μ₯ν
μ΄μλ°μ΄ν°μ μ§ν©.
- 곡λμ λͺ©μ μ μ§μνκΈ° μν μλ‘ κ΄λ ¨λ μλ£λ€μ λͺ¨μ
- μ£Όμ μ κ΄λ ¨λ μλ―Έ μλ λ°μ΄ν°λ€μ λͺ¨μ
DBMS (DataBase Management System)
- μ¬μ©μμκ² λ°μ΄ν°λ² μ΄μ€λ₯Ό μμ±νκ³ μ μ§ν μ μκ² νλ νλ‘κ·Έλ¨ μ§ν©
- DBMSλ λ°μ΄ν°λ² μ΄μ€ μΈμ΄λ₯Ό κ°μ§κ³ μμΌλ©° μ΄λ₯Ό ν΅ν΄ λ°μ΄ν°μ μ½μ
/μμ /μμ μ
ν μ μλ€.
- DBMS μ’
λ₯ :
- MySql, MongoDB, Oracle, MSSql, MariaDB, Tibero, Postgresql,
sqlite, h2
DBMS κΈ°λ₯
- λ°μ΄ν°μ λ¬΄κ²°μ± μ μ§
- DBμ λ°μ΄ν°λ μ€μΈκ³λ₯Ό μ μ©νλ κ·μΉμ νμ λ§μ‘±ν΄μΌ νλ€.
- μλ‘ λ€λ₯Έ λΆλΆμ μλ λ κ°μ λ°μ΄ν°κ° μλ‘ λͺ¨μλμ§ μμμΌ νλ€.
μ¦, λ°μ΄ν°μ μΌκ΄μ± μ μ§
DBMSμ 3κ°μ§ νΉμ±
-
λ°μ΄ν°μ λ
Όλ¦¬μ λ
립μ±
- ν μμ±μ κ°ν΄μ§ λ³κ²½μ΄ λμΌν ν
μ΄λΈμμ λ€λ₯Έ μμ±μ μν₯μ μ£Όμ§
μλ κ²μ μλ―Ένλ€.
- μμ©νλ‘κ·Έλ¨μ μν₯μ μ£Όμ§ μκ³ λ°μ΄ν° ꡬ쑰λ₯Ό λ³κ²½ν μ μκ² νλ κ²
-
μ°Έμ‘° 무결μ±κ³Ό λ°μ΄ν° 무결μ±
- μμ©νλ‘κ·Έλ¨ κ°λ°μ λ¬΄κ²°μ± μ μ½ μ‘°κ±΄μ μ κ²½μ°μ§ μμλ λλ€.
-
λΉμ κ· μ§μ
- μ¬μ©μλ μμ
μ μ€ννλ λ°©λ²μ λͺ
μνμ§ μκ³ λ, λ°μ΄ν°λ² μ΄μ€μκ² μ΄λ€
λ°μ΄ν°λ₯Ό μ‘°νν κ²μΈμ§λ₯Ό λͺ
λ Ήν μ μλ€.
λ°μ΄ν°λ² μ΄μ€ λͺ¨λΈμ μ’
λ₯
- κ³μΈ΅ν λ°μ΄ν° λͺ¨λΈ
- λλκ°μ§ ννμ νΈλ¦¬(tree)ꡬ쑰λ₯Ό νμ©νμ¬ λ°μ΄ν° κ΄λ ¨μ±μ
κ³μΈ΅λ³λ‘ λλμ΄ λΆλͺ¨ μμ κ°μ κ΄κ³λ₯Ό μ μνκ³ λ°μ΄ν°λ₯Ό
κ΄λ¦¬νλ€.
- μΌλλ€ κ΅¬μ‘°μ λ°μ΄ν°λ₯Ό νννκΈ°μλ μλ§μ§λ§ μμ κ°μ²΄κ°
μ¬λ¬ λΆλͺ¨λ₯Ό κ°μ§ κ΄κ³λ ννν μ μλ€.
- λ§ν λ°μ΄ν° λͺ¨λΈ (λ€νΈμν¬ λ°μ΄ν° λͺ¨λΈ)
- κ·Έλν(graph) ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ νλ€.
- κ°μ²΄ κ° κ΄κ³λ₯Ό κ·Έλν κ΅¬μ‘°λ‘ μ°κ²°νλ―λ‘ μμ κ°μ²΄κ°
μ¬λ¬ λΆλͺ¨ κ°μ±λ₯Ό κ°μ§ μ μλ€.
- κ°μ²΄ μ§ν₯ λ°μ΄ν° λͺ¨λΈ
- κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ¬μ©νλ κ°μ²΄ κ°λ
μ κΈ°λ°μΌλ‘ νλ€.
- λ°μ΄ν°λ₯Ό λ
립λ κ°μ²΄λ‘ ꡬμ±νκ³ κ΄λ¦¬νμ¬ μμ, μ€λ²λΌμ΄λ λ±
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ¬μ©νλ κ°λ ₯ν κΈ°λ₯μ μ¬μ©ν μ μλ€.
- νμ§λ§ κ°μ²΄ μ§ν₯ν λͺ¨λΈ κ°λ
μ μμ ν λ°μ΄ν° λ² μ΄μ€μ
μ μ©νλ κ²μ μ½μ§ μκΈ° λλ¬Έμ μ΄λ₯Ό μ μ©ν
μ¬μ© DBMSλ λ§μ§ μλ€.
λ€λ§ μ¬λ¬ DBMSμ νκ΅°μ΄ 'κ΄κ³ν λ°μ΄ν° λͺ¨λΈ'μ λ°νμΌλ‘ κ°μ²΄ κ°λ
μ
λμ
νμ¬ 'κ°μ²΄ κ΄κ³ν DBMS'λ‘ μμμ νμ₯νκ³ μλ€.
- κ΄κ³ν λ°μ΄ν° λͺ¨λΈ (Relational Data Model)
- κ°μ²΄ μ§ν©μ λν μμ± κ΄κ³λ₯Ό νννκΈ° μνμ¬ κ°μ²΄λ₯Ό
ν
μ΄λΈ(table)λ‘ μ¬μ©νκ³ κ°μ²΄ μ§ν©λ€ μ¬μ΄μ κ΄κ³λ κ³΅ν΅ μμ±μΌλ‘
μ°κ²°νλ λ
립λ ννμ λ°μ΄ν° λͺ¨λΈ
κ΄κ³ν λ°μ΄ν° λͺ¨λΈμ ν΅μ¬ κ΅¬μ± μμ
μ΄λ¦ | μ€λͺ
|
---|
κ°μ²΄ (entity) | λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°ννλ €λ μ¬λ¬Ό, κ°λ
μ μ 보 λ¨μ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ ν
μ΄λΈ(table) κ°λ
κ³Ό λμλλ©° ν
μ΄λΈμ 릴λ μ΄μ
(relation)μΌλ‘ νκΈ°νκΈ°λ νλ€. |
μμ± (attribute) | κ°μ²΄λ₯Ό ꡬμ±νλ λ°μ΄ν°μ κ°μ₯ μμ λ
Όλ¦¬μ λ¨μλ‘μ λ°μ΄ν°μ μ’
λ₯, νΉμ±, μν λ±μ μ μνλ€. κ΄κ³ν λ°μ΄ν° λ² μ΄μ€μ μ΄(column)κ°λ
κ³Ό λμλλ€. |
κ΄κ³ (relationship) | κ°μ²΄μ κ°μ²΄ λλ μμ± κ°μ μ°κ΄μ±μ λνλ΄κΈ° μν΄ μ¬μ© κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ ν
μ΄λΈ κ°μ κ΄κ³λ₯Ό μΈλν€(foreign key)λ±μΌλ‘ ꡬννμ¬ μ¬μ©νλ€. |
κ΄κ³ν λͺ¨λΈμ κ΅¬μ± μμ
- ν
μ΄λΈ (table)
- κ΄κ³ν λͺ¨λΈμ κΈ°λ³Έμ μΌλ‘ λ°μ΄ν°λ₯Ό 2μ°¨μ ν ννλ‘ μ μ₯,κ΄λ¦¬νλ€.
- μ΄ νννμ λ°μ΄ν° μ μ₯ 곡κ°μ ν
μ΄λΈμ΄λΌκ³ νλ€.
- ν
μ΄λΈμ λ΄μ©μ μ€μ μ μΈ νμ μ§ν©μΌλ‘ κ°μ£Όλλ€.
- ν (row)
- ν
μ΄λΈμ κ°λ‘μ€μ λ§νλ€.
- μ μ₯νλ €λ νλμ κ°μ²΄λ₯Ό ꡬμ±νλ μ¬λ¬ κ°μ κ°λ‘λ‘
λμ΄λ¨λ¦° νν
- μμκ° μ ν΄μ Έ μμ§ μλ€.
- μ΄(column)
- ν
μ΄λΈμ μΈλ‘μ€μ λ§νλ€.
- μ μ₯νλ €λ λ°μ΄ν°λ₯Ό λννλ μ΄λ¦κ³Ό κ³΅ν΅ νΉμ±μ μ μνλ€.
- μ μ₯ 쑰건과 λ²μλ₯Ό μ§μ ν μ μλ€.
ν€ (key)
λ°μ΄ν°λ₯Ό ꡬλ³ν μ μλ μ μΌν κ°μΌλ‘, μ’
λ₯λ³λ‘ λ°μ΄ν°λ₯Ό ꡬλ³νκ±°λ
ν
μ΄λΈ κ°μ μ°κ΄ κ΄κ³λ₯Ό ννν λ ν€λ‘ μ§μ ν μ΄μ μ¬μ©νλ€.
- κΈ°λ³Έν€ (PK : Primary Key)
- ν
μ΄λΈμ μ μ₯λ νμ μλ³ν μ μλ μ μΌν κ°
- ν ν
μ΄λΈ λ΄μμ μ€λ³΅λμ§ μλ κ°λ§ κ°μ§ μ μλ ν€
- NULL κ°μ κ°μ§ μ μλ€.
κΈ°λ³Έν€λ νλ², μ£Όλ―Όλ±λ‘λ²νΈ λ± μ²λΌ κ°μΈ μ 보 λ
ΈμΆμ΄ κ°μ₯ μ μ
λ°μ΄ν°λ₯Ό μ μ νλ€.
μ¬μ§μμ νμ μ 보 ν
μ΄λΈμ 보면 μ΄ μ€μ νκ³Ό μ 보 ν
μ΄λΈμ κΈ°λ³Έν€μΈ
'νκ³Ό μ½λ'κ° μλ€.
μ΄ νκ³Ό μ½λκ° λ°λ‘ νμ μ 보 ν
μ΄λΈκ³Ό νκ³Ό μ 보 ν
μ΄λΈμ μ΄μ΄ μ£Όλ
'μΈλν€' μν μ νλ€.
μ¦! νμ μ 보 ν
μ΄λΈμ νκ³Ό μ½λλ₯Ό ν΅ν΄ νκ³Ό μ 보 ν
μ΄λΈμ μΈλΆ μ 보λ₯Ό μ°Ύμ κ°
μ μλ€. μ΄λ₯Ό νμ μ 보 ν
μ΄λΈμ΄ νκ³Ό μ½λλ₯Ό 'μ°Έμ‘°'νλ€κ³ νννλ€.
- 볡ν©ν€ (composite key)
- μ¬λ¬ μ΄μ μ‘°ν©νμ¬ κΈ°λ³Έν€ μν μ ν μ μκ² λ§λ ν€λ₯Ό λ»νλ€.
- νλμ μ΄λ§μΌλ‘ νμ μλ³νλ κ²μ΄ λΆκ°λ₯νμ¬ λ κ° μ΄μμ μ΄ κ°μ
ν¨κ» μ¬μ©ν΄μΌ κ° νμ΄ μ μΌν λ°μ΄ν°λ‘μ κ°μΉλ₯Ό μ§λλ€.
λ§μ½ κ°μ κ³Όλͺ©μ μ¬λ¬ κ΅μκ° κ°λ₯΄μΉκ±°λ, ν κ΅μκ° μλ‘ λ€λ₯Έ κ³Όλͺ©μ
κ°λ₯΄μΉλ κ²½μ°μλ ν
μ΄λΈ νμ μ νν ꡬλΆνλ κ²μ΄ λΆκ°λ₯νλ€.
μ΄λ κ° κ³Όλͺ©λ³ κ³Όλͺ© μ½λμ λ΄λΉ κ΅μ μ΄μ μ‘°ν©νμ¬ νλμ ν€λ‘
μ§μ νλ€λ©΄ κ³Όλͺ© μ 보 ν
μ΄λΈμ νμ μ νν ꡬλΆν μ μλ€.
μ¦ 'κ³Όλͺ© μ½λ + λ΄λΉ κ΅μ' κ° λ³΅ν©ν€λ‘μ κΈ°λ³Έν€ μν μ νκ² λλ€.
SQLμ΄λ?
- Structured Query Languageμ μ½μλ‘μ κ΄κ³ν λ°μ΄ν° λ² μ΄μ€ μΈμ΄μ΄λ€.
- λ°μ΄ν°μ μ½μ
, μμ , κ°±μ , μ§μ, 보νΈ(보μ) λͺ
λ Ήλ¬ΈμΌλ‘ ꡬμ±λμ΄ μλ€.
- SQLμ λΉμ μ°¨μ λ°μ΄ν°λ² μ΄μ€ μΈμ΄λ‘ λΆλ₯νλ€.
SQL κΈ°λ₯μ λ°λ₯Έ λΆλ₯
μ’
λ₯ | μ€λͺ
|
---|
λ°μ΄ν° μ μμ΄(DDL) | ν
μ΄λΈμ΄λ κ΄κ³μ ꡬ쑰λ₯Ό μμ±νλλ° μ¬μ©νλ€. Create, Alter, Drop λ¬Έ λ±μ΄ μλ€. |
λ°μ΄ν° μ‘°μμ΄(DML) | ν
μ΄λΈμ λ°μ΄ν°λ₯Ό κ²μ, μ½μ
, μμ , μμ νλλ° μ¬μ©νλ€. select, insert, delete, update λ¬Έ λ±μ΄ μλ€. |
λ°μ΄ν° μ μ΄μ΄(DCL) | λ°μ΄ν°μ μ¬μ© κΆνμ κ΄λ¦¬νλλ° μ¬μ©νλ€. grant, revokeλ¬Έ λ±μ΄ μλ€. |
μ°Έκ³ μλ£ : <Do it! μ€λΌν΄λ‘ λ°°μ°λ λ°μ΄ν°λ² μ΄μ€ μ
λ¬Έ>