Study/DB
μ€ν€λ§
by ꡬ루λ§3λ¨
2025. 4. 15.
π DB 3λ¨κ³ μ€ν€λ§ ꡬ쑰 β μμ½ μ 리ν
κ΅¬λΆ |
λμ λ²μ |
νμ νν |
μ€λͺ
|
μΈλΆ μ€ν€λ§ |
κ°λ³ μ¬μ©μ / μμ© μμ€ν
|
μΈλΆ μΈν°νμ΄μ€ + νν νμ |
μ¬μ©μκ° λ³΄λ λ·°. μμ© νλ‘κ·Έλ¨μ΄λ μ¬μ©μκ° μ§μ μ κ·Όνλ λΆλΆ. 보μΒ·νν°λ§ μ μ© κ°λ₯. |
κ°λ
μ€ν€λ§ |
μ 체 μ‘°μ§ / DB λ
Όλ¦¬ ꡬ쑰 |
κ°λ
μ ꡬ쑰 + λ
Όλ¦¬μ νμ |
λͺ¨λ μμ©κ³Ό μ¬μ©μκ° κ³΅μ νλ DB ν΅ν© ꡬ쑰. μ 체 μν°ν°, κ΄κ³, λ¬΄κ²°μ± μ‘°κ±΄ ν¬ν¨. |
λ΄λΆ μ€ν€λ§ |
μ μ₯μ₯μΉ / DBMS λ΄λΆ |
물리 μ μ₯ ꡬ쑰 + λ΄λΆ νμ |
μ€μ λ‘ νλλμ€ν¬ λ± λ¬Όλ¦¬ μ₯μΉμ μ μ₯λλ λ°μ΄ν° νμ λ° κ΅¬μ‘°. μΈλ±μ€, νμ΄μ§ λ± ν¬ν¨. |
π§ κ³μΈ΅ ꡬ쑰λ (3κ³μΈ΅ ꡬ쑰 νλ¦)
μ¬μ©μ1 μ¬μ©μ2 μ± A μ± B
β β β β
βΌ βΌ βΌ βΌ
βββββββββββββββββββββββββββββββ
β μΈλΆ μ€ν€λ§ β β μ¬μ©μ/νλ‘κ·Έλ¨λ³ λ§μΆ€ λ·°
ββββββββββββββ¬ββββββββββββββββ
βΌ
ββββββββββββββββββββ
β κ°λ
μ€ν€λ§ β β μ 체 λ
Όλ¦¬μ ꡬ쑰 (ERλͺ¨λΈ μμ€)
ββββββββββ¬ββββββββββ
βΌ
ββββββββββββββββββββ
β λ΄λΆ μ€ν€λ§ β β 물리μ μ μ₯ ꡬ쑰 (νμΌ/λΈλ‘/μΈλ±μ€)
ββββββββββββββββββββ
β
μΆκ° μμ½ (νν μ€ν€λ§ μ€μ¬μΌλ‘ λΆλ₯)
κ³μΈ΅ |
νν λ°©μ |
μ€λͺ
|
μΈλΆ μ€ν€λ§ |
νν μ€ν€λ§ |
μ¬μ©μμκ² λ³΄μ΄λ νμ. View, νν°λ§ |
κ°λ
μ€ν€λ§ |
λ
Όλ¦¬ μ€ν€λ§ |
μ 체 DB ꡬ쑰. ERD, κ΄κ³, μ μ½μ‘°κ±΄ |
λ΄λΆ μ€ν€λ§ |
μ μ₯ μ€ν€λ§ |
μ€μ νμΌ ν¬λ§·, λ μ½λ ꡬ쑰, μΈλ±μ€ λ± |
β
μ©μ΄ κ΅¬λΆ μ 리
μ©μ΄ |
μλ―Έ |
μμ |
λΉκ³ |
μν°ν°(Entity) |
νμ€ μΈκ³μ λ
립μ μΈ κ°μ²΄ (μΆμνλ κ°λ
) |
νμ, μ ν, μ£Όλ¬Έ |
ν
μ΄λΈ λ¨μλ‘ λ§€νλ¨ |
μμ±(Attribute) |
μν°ν°κ° κ°μ§λ νΉμ± (컬λΌ) |
μ΄λ¦, νλ², μ νλ²νΈ |
컬λΌμ΄λΌκ³ λΆλ¦ |
νν(Tuple) |
μμ±λ€μ μ§ν©, νλμ λ μ½λ |
(νκΈΈλ, 20240101, 010...) |
ν(Row) |
μμ±κ°(Value) |
κ° μμ±μ μ€μ κ° |
'νκΈΈλ', '010-1234' λ± |
μ
κ°(Cell) |
π― μ½κ² λ§νλ©΄
- "νμ"μ μν°ν° β νμ€μ κ°μ²΄
- "μ΄λ¦", "νλ²"μ μμ±(Attribute) β 컬λΌ(Column)
- νκΈΈλ, 20240001 β μμ±κ°, λλ λ°μ΄ν° κ°
- ν μ€ μ 체
(νκΈΈλ, 20240001, κ²½μνκ³Ό)
β νν(Tuple)
β μ€ν΄ λ°©μ§
μλͺ»λ νν |
μ¬λ°λ₯Έ νν |
"컬λΌκ°μ μν°ν°λ€" β |
"컬λΌκ°μ μν°ν°μ μμ±κ°μ΄λ€" β
|
"μν°ν° = 컬λΌ" β |
"μν°ν° = ν
μ΄λΈ", "μμ± = 컬λΌ" β
|
-
β
μ 리: μν°ν° β ν
μ΄λΈ
κ°λ
|
μ€λͺ
|
μμ |
μν°ν°(Entity) |
νμ€μ κ°μ²΄ λλ κ°λ
μ DBλ‘ μΆμνν κ² |
νμ, μν, μ£Όλ¬Έ λ± |
ν
μ΄λΈ(Table) |
μν°ν°λ₯Ό ꡬνν λ°μ΄ν°λ² μ΄μ€ ꡬ쑰 |
STUDENT, PRODUCT ν
μ΄λΈ λ± |
- νλμ μν°ν° β νλμ ν
μ΄λΈ
- νλμ μμ± β νλμ 컬λΌ
- νλμ μν°ν° μΈμ€ν΄μ€ β νλμ ν(Row)
π μμ: "νμ(Student)" μν°ν°
νλ²(ID) |
μ΄λ¦(Name) |
νκ³Ό(Department) |
2024001 |
νκΈΈλ |
μ»΄ν¨ν°κ³΅νκ³Ό |
2024002 |
κΉμ μ |
κ²½μνκ³Ό |
- μ΄ μ 체 ν: STUDENT μν°ν° / ν
μ΄λΈ
- κ° μ΄: μμ±(Attribute) / 컬λΌ(Column)
- κ° ν: μν°ν° μΈμ€ν΄μ€ / νν(Tuple)
β οΈ μ£Όμ
- ν
μ΄λΈμ΄ νμ μν°ν°μΈ κ²μ μλ.
- π μ: μ‘°μΈ κ²°κ³Όλ₯Ό λ΄λ λ·°(View), μμ ν
μ΄λΈ, κ΄κ³ ν
μ΄λΈ(M:N)μ μΌλ° μν°ν°κ° μλ μ μμ.
- μν°ν°λ κ°λ
λͺ¨λΈ(ER λͺ¨λΈ)μ μ©μ΄,
ν
μ΄λΈμ λ
Όλ¦¬/물리 λͺ¨λΈ(DB)μ μ©μ΄μ.
β
μμ½ κ²°λ‘
κ΅¬λΆ |
μ€λͺ
|
μ€ν€λ§(Schema)λ ꡬ쑰 μ μ β DDL(Data Definition Language) μ¬μ© |
|
μΈμ€ν΄μ€(Instance)λ μ€μ λ°μ΄ν° β DML(Data Manipulation Language) μ¬μ© |
|
π κ°λ
μ μ μ 리
κ΅¬λΆ |
μ μ |
μμ |
κ΄λ ¨ SQL |
μ€ν€λ§ |
DB ꡬ쑰λ₯Ό μ μν κ² (ν) |
ν
μ΄λΈ ꡬ쑰, μ΄ μ΄λ¦, λ°μ΄ν° νμ
, μ μ½μ‘°κ±΄ λ± |
CREATE , ALTER , DROP (DDL) |
μΈμ€ν΄μ€ |
κ·Έ ꡬ쑰 μμ μ€μ λ‘ λ€μ΄μλ λ°μ΄ν° |
νκΈΈλ , 2024001 , μ»΄ν¨ν°κ³΅ν λ±μ λ°μ΄ν° κ° |
SELECT , INSERT , UPDATE , DELETE (DML) |
π― μ κ·Έλ°κ°? (μ΄μ μμ½)
β
1. μ€ν€λ§ = λ°μ΄ν°λ² μ΄μ€ ꡬ쑰 β μ μν΄μΌ νλ―λ‘ DDL
- ν
μ΄λΈ λ§λ€κΈ°, μ»¬λΌ μ μ, ν€ μ€μ λ±μ λ°μ΄ν° νμμ μ μ
- νμμ μ μνλ λͺ
λ Ήμ DDL β "Definition Language"
β
2. μΈμ€ν΄μ€ = ꡬ쑰 μμ λ°μ΄ν° β λ€λ£¨λ 건 DML
- λ°μ΄ν°λ₯Ό λ£κ³ (
INSERT
), λ°κΎΈκ³ (UPDATE
), μ‘°ννκ³ (SELECT
), μμ (DELETE
)λ μ€μ κ° μ‘°μ
- κ°μ μ‘°μνλ λͺ
λ Ήμ DML β "Manipulation Language"
π κ°λ
νλ¦λ (μκ° μ 리)
[ DDL ]
β
βββ CREATE TABLE STUDENT (
β id INT PRIMARY KEY,
β name VARCHAR(50)
β );
β β
β β
β βββΆ μ€ν€λ§ μ μ (ν λ§λ€κΈ°)
β
β
[ DML ]
β
βββ INSERT INTO STUDENT VALUES (1, 'νκΈΈλ');
βββ UPDATE STUDENT SET name='κΉμ μ ' WHERE id=1;
β β
β β
β βββΆ μΈμ€ν΄μ€ μ‘°μ (κ° λ£κ³ λ°κΎΈκΈ°)
μ’μ΅λλ€. SQL λͺ
λ Ήμ΄λ ν¬κ² 4κ°μ§λ‘ λΆλ₯λλ©°, κ° λͺ
λ Ήμ΄λ λ°μ΄ν°λ² μ΄μ€μ μν λ³λ‘ μ 리λ©λλ€. μλμ μ 체 ꡬ쑰λ₯Ό μ μ/μ‘°μ/μ μ΄/κ΄λ¦¬ μ€μ¬μΌλ‘ μ 리ν + ν€μλ μμ½ + μμκΉμ§ μ κ³΅ν΄ λ릴κ²μ.
π SQL λͺ
λ Ήμ΄ 4λ λΆλ₯ μ 리ν
λΆλ₯ |
λͺ
μΉ |
λͺ©μ |
μ£Όμ λͺ
λ Ήμ΄ |
μ€λͺ
|
DDL |
Data Definition Language |
λ°μ΄ν° ꡬ쑰 μ μ |
CREATE , ALTER , DROP , TRUNCATE |
ν
μ΄λΈ, λ·°, μΈλ±μ€, μ€ν€λ§ μ μ λ° μμ |
DML |
Data Manipulation Language |
λ°μ΄ν° μ‘°μ |
SELECT , INSERT , UPDATE , DELETE |
ν
μ΄λΈ λ΄ λ°μ΄ν° μΆκ°/μ‘°ν/μμ /μμ |
DCL |
Data Control Language |
μ κ·Ό μ μ΄ λ° κΆν κ΄λ¦¬ |
GRANT , REVOKE |
μ¬μ©μμκ² DB μ κ·Ό κΆν λΆμ¬ λ° νμ |
TCL |
Transaction Control Language |
νΈλμμ
κ΄λ¦¬ |
COMMIT , ROLLBACK , SAVEPOINT , SET TRANSACTION |
DML μ€ν κ²°κ³Όμ νμ /μ·¨μ κ΄λ¦¬ |
β
λΆλ₯λ³ ν€μλ μμ½
λΆλ₯ |
ν΅μ¬ ν€μλ |
κΈ°μ΅λ² |
DDL |
μ€ν€λ§ μ μ, ꡬ쑰 λ³κ²½ |
ν
μ΄λΈ/DB νμ βλ§λ€κ±°λ λ°κΏβ |
DML |
λ°μ΄ν° μ½μ
, μ‘°ν, λ³κ²½, μμ |
λ°μ΄ν°λ₯Ό βμ‘°μβ |
DCL |
μ κ·Ό κΆν, 보μ |
"λκ° μ κ·Ό κ°λ₯νκ°?" |
TCL |
νΈλμμ
νμ /μ·¨μ |
λ°μ΄ν° μνμ β보쑴/볡ꡬβ |
π λͺ
λ Ήμ΄λ³ μμ
λΆλ₯ |
μμ |
μ€λͺ
|
DDL |
CREATE TABLE USER (id INT, name VARCHAR(20)); |
ν
μ΄λΈ μμ± |
DML |
INSERT INTO USER VALUES (1, 'νκΈΈλ'); |
λ°μ΄ν° μ½μ
|
DCL |
GRANT SELECT ON USER TO user1; |
user1μκ² SELECT κΆν λΆμ¬ |
TCL |
COMMIT; / ROLLBACK; |
λ³κ²½ μ¬ν νμ / λλ리기 |
π νλ¦ μμ½ (μμ± β μ‘°μ β κΆν β κ΄λ¦¬)
[DDL] μ€ν€λ§ λ§λ€κ³ β [DML] λ°μ΄ν° λ€λ£¨κ³ β
[DCL] λκ° λ€λ£° μ μλμ§ μ νκ³ β
[TCL] νΈλμμ
λ¨μλ‘ νμ or λλ리기
π "μΈμ€ν΄μ€"μ μλ―Έ 3κ°μ§ (DBμμ νΌμ©λλ λ§₯λ½)
κ΅¬λΆ |
μλ―Έ |
μ€λͺ
|
μμ νν |
1οΈβ£ λ°μ΄ν° μΈμ€ν΄μ€ |
ν
μ΄λΈ μμ μ€μ λ°μ΄ν° |
μ€ν€λ§μ ꡬ쑰μ λ°λΌ μ μ₯λ λ°μ΄ν°λ€ |
"νν", "λ μ½λ" μλ―Έλ‘: μΈμ€ν΄μ€ λ°μ΄ν° |
2οΈβ£ DBMS μΈμ€ν΄μ€ |
DB μμ§μ΄ λ©λͺ¨λ¦¬ μμ λ¬ μν |
νλμ DBκ° κ΅¬λλ λ λ©λͺ¨λ¦¬/νλ‘μΈμ€ κ΅¬μ± |
"DB μΈμ€ν΄μ€κ° μ£½μλ€" β DB νλ‘μΈμ€ μ€λ¨ |
3οΈβ£ μ€λΈμ νΈ μΈμ€ν΄μ€ |
DBMS λ΄λΆ κ°μ²΄μ μ€ν μΈμ€ν΄μ€ |
μΈμ
, νΈλμμ
, 컀μ, 컀λ₯μ
λ± κ°μ²΄ κ΄μ μμ μ€ν μ€μΈ μν |
"μΈμ
μΈμ€ν΄μ€κ° μΆ©λλ¬λ€" |
β
μ§λ¬Έμμ μΈκΈν βμΈμ€ν΄μ€κ° μ£½μλ€βμ μλ―Έ
μ΄κ±΄ "DBMS μΈμ€ν΄μ€κ° μ£½μλ€", μ¦:
DB μλ²μμ Oracle/MySQL/PostgreSQL λ±μ μ€ν νλ‘μΈμ€κ° λΉμ μ μ’
λ£λμλ€λ μλ―Έμ
λλ€.
- DBMSλ λ©λͺ¨λ¦¬ μμμ νλ‘μΈμ€ + μΊμ + λ²νΌ ν + λ°±κ·ΈλΌμ΄λ μμ
μΌλ‘ ꡬμ±λ μ€ν λ¨μκ° μμΌλ©°, μ΄κ²μ βμΈμ€ν΄μ€βλΌκ³ ν©λλ€.
- Oracleμμλ
μΈμ€ν΄μ€
= SGA + λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€
(β λ°μ΄ν°λ² μ΄μ€ μ체)
π κ·Έλμ μμ€ν
μμλ μ΄λ κ² λ§ν©λλ€:
- "DBλ μ΄μ μλλ° μΈμ€ν΄μ€κ° μ λ΄μ΄μ." β λμ€ν¬μ λ°μ΄ν°λ μμΌλ μ€ν νλ‘μΈμ€λ μ£½μ
- "μΈμ€ν΄μ€ μ£½μ΄μ μ κ·Ό μ λ¨" β DBMSκ° λ€μ΄λ μν
π§ νΌλ μ 리
νν |
μ νν μλ―Έ |
μλͺ» μ€ν΄λ μ μλ μλ―Έ |
"μΈμ€ν΄μ€κ° μ£½μλ€" |
DBMSκ° λ©λͺ¨λ¦¬μμμ κΊΌμ§ (μλΉμ€ λΆλ₯) |
ν
μ΄λΈμ΄λ λ°μ΄ν°κ° μμ λ κ²μ²λΌ λ€λ¦΄ μ μμ |
"μΈμ€ν΄μ€κ° λ§λ€" |
λμμ μ¬λ¬ DB νλ‘μΈμ€ or μ¬μ©μ μΈμ
|
λ¨μν λ°μ΄ν° μμ΄ λ§μ κ²μ²λΌ μ°©κ° κ°λ₯ |
β
λ§λ¬΄λ¦¬ μμ½
- λ°μ΄ν° μΈμ€ν΄μ€: ν
μ΄λΈ μμ λ°μ΄ν°
- DB μΈμ€ν΄μ€: ꡬλ μ€μΈ DBMSμ λ©λͺ¨λ¦¬ μ€ν체
- "μ£½μλ€"λ νν: λκ° DB μΈμ€ν΄μ€(νλ‘μΈμ€)κ° λ€μ΄λμλ€λ λ»
'Study > DB' μΉ΄ν
κ³ λ¦¬μ λ€λ₯Έ κΈ