μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- νμ΄μ¬
- μΉνΌλΈλ¦¬μ±
- css
- html
- μ₯νΈμμ€
- μν
- μ»΄ν¨ν°κ³Όν
- λ°μν
- λ μ
- μ±
- μ½λ©
- κΉλ―Έκ²½
- Kλ°°ν°λ¦¬
- λΌνλΌμ€μλ§λ
- ComputerScience
- κΉνλ¨
- λ§μΌλ΄κ°μΈμμλ€μμ°λ€λ©΄
- μ€λΌν΄
- μλ°μ€ν¬λ¦½νΈ
- Kλ°°ν°λ¦¬λ 볼루μ
- κΉλ―Έκ²½μλ§νμμ
- μΉνμ΄μ§λ§λ€κΈ°
- database
- νλ‘κ·Έλλ°
- μλ°
- λ°μ΄ν°λ² μ΄μ€
- κ°λ°
- JavaScript
- Python
- Java
- Today
- Total
JiYoung Dev π₯
[Oracle Database] λ°μ΄ν°λ² μ΄μ€ κ°λ μ‘κΈ° λ³Έλ¬Έ
2023.03.15 μμ λ΄μ©
μ°Έκ³ μλ£ : μ€λΌν΄λ‘ λ°°μ°λ λ°μ΄ν°λ² μ΄μ€ μ λ¬Έ
μμ λͺ©μ
λ°μ΄ν°λ² μ΄μ€μ κ΄λ ¨λ μ©μ΄ λ° κ°λ μ μ€λͺ ν ν μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ€μΉνκ³ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό λ νΈλ¦¬νκ² μ¬μ©ν μ μλ λꡬ μκ°
π λ°μ΄ν°λ² μ΄μ€
π λ°μ΄ν°μ λ°μ΄ν°λ² μ΄μ€, DBMS
λ°μ΄ν°λ² μ΄μ€λ λ°μ΄ν°(data)μ λ² μ΄μ€(base)μ ν©μ±μ΄
DBMSλ Database Management Systemμ μ½μλ‘ 'λ°μ΄ν°λ² μ΄μ€ κ΄λ¦¬ μμ€ν 'μ μλ―Έ
β λ°μ΄ν° vs μ 보
λ°μ΄ν°
μ΄λ€ νμμ μν΄ μμ§νμ§λ§ μμ§ νΉμ λͺ©μ μ μν΄ νκ°νκ±°λ μ μ νμ§ μμ κ°μ΄λ μ¬μ€ λλ μλ£ μ체
μ 보
μμ§ν λ°μ΄ν°λ₯Ό μ΄λ ν λͺ©μ μ μν΄ λΆμνκ±°λ κ°κ³΅νμ¬ κ°μΉλ₯Ό μΆκ°νκ±°λ μλ‘μ΄ μλ―Έλ₯Ό μ΄λμ΄ λΌ μ μλ κ²°κ³Ό
μ¦, μμ§ν λ°μ΄ν°λ₯Ό νμ©νμ¬ μλ‘μ΄ κ°μΉ, μλ―Έλ₯Ό μ§λ μ 보λ₯Ό λμΆνλ€.
ν¨μ¨μ μΈ λ°μ΄ν° κ΄λ¦¬λ₯Ό μν 쑰건
• λ°μ΄ν°λ₯Ό ν΅ν©νμ¬ κ΄λ¦¬
• μΌκ΄λ λ°©λ²μΌλ‘ κ΄λ¦¬
• λ°μ΄ν° λλ½ λ° μ€λ³΅ μ κ±°
• μ¬λ¬ μ¬μ©μ(μμ© νλ‘κ·Έλ¨ ν¬ν¨)κ° κ³΅λμΌλ‘ μ€μκ° μ¬μ© κ°λ₯
β λ°μ΄ν°λ² μ΄μ€
ν¨μ¨μ μΈ λ°μ΄ν° κ΄λ¦¬λ₯Ό μν 쑰건μ λ§μ‘±νλ©΄μ νΉμ λͺ©μ μ μν΄ μ¬λ¬ μ¬λμ΄ κ³΅μ νμ¬ μ¬μ©ν μ μμΌλ©°, ν¨μ¨μ μΈ κ΄λ¦¬μ κ²μμ μν΄ κ΅¬μ‘°νν λ°μ΄ν° μ§ν©
β DBMS
ν¨μ¨μ μΈ λ°μ΄ν° κ΄λ¦¬ 쑰건μ λ§μ‘±νλ©° μλΉμ€ μ 곡μ ν¨μ¨μ±μ λμ΄κΈ° μν΄ λ±μ₯
λ°μ΄ν°λ² μ΄μ€μ λ°μ΄ν° μ‘°μκ³Ό κ΄λ¦¬λ₯Ό κ·Ήλνν μμ€ν μννΈμ¨μ΄
λ°μ΄ν°λ² μ΄μ€λ₯Ό ν΅ν λ°μ΄ν° κ΄λ¦¬λ, μ¬λ¬ λͺ©μ μΌλ‘ μ¬μ©ν λ°μ΄ν°μ μ κ·Ό, κ΄λ¦¬ λ±μ μ 무λ₯Ό DBMSκ° μ λ΄νλ λ°©μ. λ€μ λ§ν΄ μμ© νλ‘κ·Έλ¨μ΄ νμν λ°μ΄ν° μμ μ DBMSμ μμ²νλ©΄, DBMSλ μμ μ΄ κ΄λ¦¬νλ λ°μ΄ν°λ² μ΄μ€λ‘ κ΄λ ¨ μμ μ μννκ³ κ²°κ΄κ°μ μ 곡
μ΄λ ν λͺ©μ μ μν΄ μμ§ν λ°μ΄ν°κ° μ‘΄μ¬νκ³ ,
μ΄λ¬ν λ°μ΄ν°λ€μ΄ λͺ¨μ¬ κ²μ λ° κ΄λ¦¬νκΈ° μ½κ² ꡬ쑰νν κ²μ λ°μ΄ν°λ² μ΄μ€λΌκ³ νλ©°,
λ°μ΄ν°λ² μ΄μ€μ λ°μ΄ν° μ‘°μκ³Ό κ΄λ¦¬λ₯Ό κ·Ήλνν μμ€ν μννΈμ¨μ΄λ₯Ό DBMSλΌκ³ ν¨
π λ°μ΄ν° λͺ¨λΈ
λ°μ΄ν° λͺ¨λΈμ΄λ μ»΄ν¨ν°μ λ°μ΄ν°λ₯Ό μ μ₯νλ λ°©μμ μ μν΄ λμ κ°λ λͺ¨ν
κ³μΈ΅ν, λ€νΈμν¬ν, κ΄κ³ν, κ°μ²΄ μ§ν₯ν λ±μ΄ μμ
β κ³μΈ΅ν λ°μ΄ν° λͺ¨λΈ(hierarchical data model)
λλκ°μ§ ννμ νΈλ¦¬(tree) ꡬ쑰λ₯Ό νμ©νμ¬ λ°μ΄ν° κ΄λ ¨μ±μ κ³μΈ΅λ³λ‘ λλμ΄ λΆλͺ¨ μμ κ°μ κ΄κ³λ₯Ό μ μνκ³ λ°μ΄ν°λ₯Ό κ΄λ¦¬. μ΄ λͺ¨λΈμμ λ°μ΄ν°κ° μ μ₯λ νμΌμ λ€μ κ·Έλ¦Όκ³Ό κ°μ΄ μμ κ°λ μ νμ κ°λ μ΄ ν¬ν¨λμ΄ μλ νΉμ§μ΄ μμ. κΈ°λ³Έμ μΌλ‘ νλμ λΆλͺ¨ κ°μ²΄κ° μ¬λ¬ μμμ κ°μ§ μ μλ λ°λ©΄μ μμ κ°μ²΄λ μ¬λ¬ λΆλͺ¨λ₯Ό κ°μ§ μ μμ
β λ€νΈμν¬ν λ°μ΄ν° λͺ¨λΈ(network data model)
κ·Έλν(graph) ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ νμ¬ κ°μ²΄ κ° κ΄κ³λ₯Ό κ·Έλν κ΅¬μ‘°λ‘ μ°κ²°ν¨. λ°λΌμ μμ κ°μ²΄κ° μ¬λ¬ λΆλͺ¨ κ°μ²΄λ₯Ό κ°μ§ μ μλ€λ μ μμ κ³μΈ΅ν λ°μ΄ν° λͺ¨λΈκ³Ό μ°¨μ΄κ° μμ.
β κ°μ²΄ μ§ν₯ν λ°μ΄ν° λͺ¨λΈ(object-oriented data model)
1980λ λ λ±μ₯ν λͺ¨λΈλ‘ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ¬μ©νλ κ°μ²΄ κ°λ μ κΈ°λ°μΌλ‘ ν λ°μ΄ν° λͺ¨λΈ.
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ²λΌ λ°μ΄ν°λ₯Ό λ 립λ κ°μ²΄λ‘ ꡬμ±νκ³ κ΄λ¦¬νλ©° μμ, μ€λ²λΌμ΄λ λ± κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ¬μ©λλ κ°λ ₯ν κΈ°λ₯μ νμ©ν μ μμ.
κ·Έλ¬λ μ΄λ¬ν κ°μ²΄ μ§ν₯ν λͺ¨λΈ κ°λ μ μμ ν λ°μ΄ν°λ² μ΄μ€μ μ μ©νλ κ²μ μ½μ§ μκΈ° λλ¬Έμ μ΄λ₯Ό μ μ©ν μμ© DBMSλ λ§μ§ μμ. λ€λ§, μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€μ κ°μ μ¬λ¬ DBMS μ νκ΅°μ΄ κ΄κ³ν λ°μ΄ν° λͺ¨λΈμ λ°νμΌλ‘ κ°μ²΄ κ°λ μ λμ νμ¬ 'κ°μ²΄ κ΄κ³ν(object-ralational data model) DBMS'λ‘ μμμ νμ₯νκ³ μμ
β κ΄κ³ν λ°μ΄ν° λͺ¨λΈ(relational data model)
νλμ κ°μ₯ λ§μ΄ μ¬μ©νλ λͺ¨λΈλ‘ λ°μ΄ν° κ° κ΄κ³(relation)μ μ΄μ μ λ .
κ° λ°μ΄ν°μ λ 립 νΉμ±λ§μ κ·μ νμ¬ λ°μ΄ν° λ¬Άμμ λλκ³ μ€λ³΅μ΄ λ°μν μ μλ λ°μ΄ν°λ λ³κ°μ 릴λ μ΄μ (relation)μΌλ‘ μ μν ν μ°κ²°
κ΄κ³ν λ°μ΄ν° λͺ¨λΈμ ν΅μ¬ κ΅¬μ± μμ
κ°μ²΄(entity)
μ 보 μ μ₯μ μν μ§ν© κ°λ . μ 무μ νμνκ³ μ μ©ν μ 보λ₯Ό κ΄λ¦¬νκΈ° μν μ§ν©μ μΈ κ².
λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°ννλ €λ μ¬λ¬Ό, κ°λ μ μ 보 λ¨μ. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ ν μ΄λΈ(table) κ°λ κ³Ό λμλλ©° ν μ΄λΈμ 릴λ μ΄μ (relation)μΌλ‘ νκΈ°νκΈ°λ ν¨
μν°ν° μμλ 2κ° μ΄μμ μΈμ€ν΄μ€, νλ μ΄μμ μμ±μ΄ μμ΄μΌ νλ©°, νλ μ΄μμ κ΄κ³λ₯Ό κ°μ§.
μμ±(attribute)
μν°ν°μ 곡ν΅μ μΈ νΉμ§μ νννλ κ²μΌλ‘ μ΄ν μ°λ¦¬κ° μ»κ³ μ νλ μ λ³΄κ° λ¨. νλμ μμ±μλ νλμ μμ± κ°μ κ°μ§.
κ°μ²΄λ₯Ό ꡬμ±νλ λ°μ΄ν°μ κ°μ₯ μμ λ Όλ¦¬μ λ¨μ. λ°μ΄ν°μ μ’ λ₯, νΉμ±, μν λ±μ μ μν¨. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ΄(column) κ°λ κ³Ό λμν¨
κ΄κ³(relationship)
κ°μ²΄μ κ°μ²΄ λλ μμ± κ°μ μ°κ΄μ±μ λνλ΄κΈ° μν΄ μ¬μ©. κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμλ ν μ΄λΈ κ°μ κ΄κ³λ₯Ό μΈλν€(foreign key) λ±μΌλ‘ ꡬννμ¬ μ¬μ©
μΈμ€ν΄μ€(instance)
μν°ν° μμ κ°λ³μ μΈ κ²λ€. μν°ν° μμ μλ κ°κ°μ λμ
π λ°μ΄ν° λͺ¨λΈλ§
νμ€ λμμ λ°μ΄ν°λ² μ΄μ€λ‘ μ μ₯ν μ μλλ‘ μ€κ³ λ° κ΅¬μΆμ νλ κ³Όμ
νμ€ λμμ κ°μ²΄ β‘ κ°λ μ λ°μ΄ν° λͺ¨λΈλ§ (λ¨μ μ€κ³) β‘ λ Όλ¦¬μ λ°μ΄ν° λͺ¨λΈλ§ (μμΈ μ€κ³) ①물리μ λ°μ΄ν° λͺ¨λΈλ§ (μ€μ 곡μ¬) β‘ λ°μ΄ν°λ² μ΄μ€λ‘ νν μλ£
β κ°λ μ λ°μ΄ν° λͺ¨λΈλ§
볡μ‘ν νμ€ μΈκ³μ λμμ λ¨μν, μΆμ₯ν, λͺ νν νλ μμ
μν°ν°μ μμ±μ λμΆνκ³ μν°ν° κ°μ κ΄κ³λ₯Ό μ€μ νμ¬ ERDλ‘ κ·Έλ €λΈλ€.
β ERD
μν°ν°(Entity)μ μν°ν° κ°μ κ΄κ³(Relationship)λ₯Ό λ°κ²¬νκ³ , μ΄λ₯Ό κ·Έλ¦Ό(Diagram)μΌλ‘ νννλ νμ
μ΄λ° ꡬ쑰ν μμ μ ν΅ν΄ μλ‘ μμ¬μν΅μ΄ λ μ¬μμ§
1. μν°ν°λ₯Ό κ·Έλ¦°λ€. (μμ±μ μ μΈ)
2. μν°ν°λ₯Ό μ μ ν λ°°μΉνλ€.
3. κ΄κ³λ₯Ό μ€μ νλ€. (μλ‘ κ΄κ³κ° μλ μν°ν°λΌλ¦¬ μ μΌλ‘ μ΄μ΄μ€λ€)
4. κ΄κ³λͺ μ κΈ°μ νλ€. (μλ΅ κ°λ₯)
5. κ΄κ³μ μ°Έμ¬λ(Cardinality)λ₯Ό κΈ°μ νλ€.
- μ°Έμ¬λλ μν°ν° μμ μΈμ€ν΄μ€λ€μ΄ μΌλ§λ μ°Έμ¬νλμ§λ₯Ό μλ―Έν¨. 1:1, 1:N, N:N κ΄κ³ λ±μ΄ μμΌλ©°, Nμͺ½μλ κΉμΉλ°(>)λ‘ νμνλ€.
6. κ΄κ³μ νμμ¬λΆ(Optionality)λ₯Ό κΈ°μ νλ€.
- νμμ¬λΆλ μν°ν° μμ μΈμ€ν΄μ€λ€μ΄ λ°λμ μ°Έμ¬νλμ§λ₯Ό μλ―Ένλ€. μ΅μ μ°Έμ¬λ (I)λ₯Ό νμνκ³ , μ ν μ°Έμ¬λ (0)μΌλ‘ νμνλ€.
β λ Όλ¦¬μ λ°μ΄ν° λͺ¨λΈλ§
ERDλ₯Ό κΈ°μ€μΌλ‘ λ³΄λ€ μμΈν μ€κ³λλ₯Ό μμ±νλ κ²
μμ± μ λ ₯, μλ³μ μ ν, μ κ·ν, κ΄κ³ μ€μ λ±μ μ€μ ν¨
λ Όλ¦¬μ λͺ¨λΈλ§μ νλ‘μ νΈμμ λ°μ΄ν°λ² μ΄μ€κ° μ΄λ»κ² λ§λ€μ΄μ Έ μλμ§ μ°Έκ³ μ©μΌλ‘ μ°μ
1. μμ±μ μλλ‘ λͺ¨λ μ λ ₯νλ€.
2. κ° μν°ν°μμ μλ³μ(PRIMARY KEY)λ₯Ό μ ννλ€.
- μλ³μλ, μν°ν° λ΄μμ νΉμ ν μΈμ€ν΄μ€λ₯Ό μλ³ν μ μλ μμ± μ§ν©
3. μ κ·νλ₯Ό μ€μνλ€.
- μ κ·ν : μ€λ³΅λλ λ°μ΄ν°κ° μ μ₯λμ§ μλλ‘ μν°ν°λ₯Ό μͺΌκ°λ νλ
4. κ΄κ³μ€μ (FOREIGN KEY)λ₯Ό νλ€.
- μ κ·νλ‘ μͺΌκ°μ§ λμλ€μ μ°κ²°νκΈ° μν΄ μλ³μλ₯Ό λΉλ €μ¨λ€.
- μλ³μλ‘ κ΅¬λΆμ΄ μλλ κ²½μ°μλ μμ± μΆκ°
β 물리μ λ°μ΄ν° λͺ¨λΈλ§
μμΈνκ² μ€κ³λ λ Όλ¦¬μ λͺ¨λΈλ§ κ²°κ³Όλ₯Ό κ°μ§κ³ μ€μ λ‘ DB ꡬμΆ
π κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ SQL
β κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(RDBMS, Relational Database Management System)
κ΄κ³ν λ°μ΄ν° λͺ¨λΈ κ°λ μ λ°νμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ λ°μ΄ν°λ² μ΄μ€
β SQL(Structured Query Language)
RDBMSμμ λ°μ΄ν°λ₯Ό λ€λ£¨κ³ κ΄λ¦¬νλ λ° μ¬μ©νλ λ°μ΄ν°λ² μ΄μ€ μ§μ μΈμ΄
μ¦, μ°λ¦¬λ SQLμ ν΅ν΄(μ ννλ SQLμ μ¬μ©ν΄μΌλ§) λ°μ΄ν°λ² μ΄μ€μμ μ¬λ¬ λ°μ΄ν° κ΄λ ¨ μμ μ μνν μ μμ
SQLμ λͺ©μ μ λ°λΌ μλμ κ°μ΄ λλ¨
μ’ λ₯ | μ€λͺ |
DQL(Data Query Language) | RDBMSμ μ μ₯λ λ°μ΄ν°λ₯Ό μνλ λ°©μμΌλ‘ μ‘°ννλ λͺ λ Ήμ΄ |
DML(Data Manipulation Language) | RDBMS λ΄ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μ μ₯, μμ , μμ νλ λͺ λ Ήμ΄ |
DDL(Data Definition Language) | RDMBS λ΄ λ°μ΄ν° κ΄λ¦¬λ₯Ό μν΄ ν μ΄λΈμ ν¬ν¨ν μ¬λ¬ κ°μ²΄λ₯Ό μμ±, μμ , μμ νλ λͺ λ Ήμ΄ |
TCL(Transaction Control Language) | νΈλμμ λ°μ΄ν°μ μꡬ μ μ₯, μ·¨μ λ±κ³Ό κ΄λ ¨λ λͺ λ Ήμ΄ |
DCL(Data Control Language) | λ°μ΄ν° μ¬μ© κΆνκ³Ό κ΄λ ¨λ λͺ λ Ήμ΄ |
λ°μ΄ν°μ μ 보μ μ°¨μ΄
λ°μ΄ν°λ μ΄λ€ λͺ©μ μ μν΄ μμ§ν κ°κ³΅λμ§ μμ μ¬μ€ λλ μλ£ μ체
μ 보λ λ°μ΄ν°λ₯Ό μ΄μ©νμ¬ νΉμ ν λͺ©μ , κ°μΉλ₯Ό μ»κΈ° μν΄ κ°κ³΅νκ±°λ λΆμν κ²°κ³Ό
λ°μ΄ν°λ² μ΄μ€μ DBMS κ°λ
λ°μ΄ν°λ² μ΄μ€λ ν¨μ¨μ μΈ λ°μ΄ν° κ΄λ¦¬ λ°©λ²μ λ§μ‘±νλ©° μ¬λ¬ μ¬λμ΄ κ³΅μ ν μ μκ³ ν¨μ¨μ μΈ λ°μ΄ν° κ²μκ³Ό κ΄λ¦¬λ₯Ό μν΄ κ΅¬μ‘°νν λ°μ΄ν°μ μ§ν©
DBMSλ λ°μ΄ν°λ² μ΄μ€μ μ‘°μκ³Ό κ΄λ¦¬λ₯Ό κ·Ήλνν μμ€ν μννΈμ¨μ΄
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€ μλ―Έ
λ°μ΄ν° κ° κ΄κ³μ μ΄μ μ λ κ΄κ³ν λ°μ΄ν° λͺ¨λΈ κ°λ μ λ°νμΌλ‘ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ λ°μ΄ν°λ² μ΄μ€
π κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€
π κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μ κ΅¬μ± μμ
β ν μ΄λΈ(table)
κ΄κ³ν λ°μ΄ν°λ² μ΄μ€λ κΈ°λ³Έμ μΌλ‘ λ°μ΄ν°λ₯Ό 2μ°¨μ ν ννλ‘ μ μ₯νκ³ κ΄λ¦¬
→ ν ννμ λ°μ΄ν° μ μ₯ 곡κ°μ ν μ΄λΈμ΄λΌκ³ ν¨
ν μ΄λΈμ 2μ°¨μ ννμ΄λ―λ‘ κ°λ‘μ€κ³Ό μΈλ‘μ€λ‘ ꡬμ±λλλ°, κ°λ‘μ€μ ν(row), μΈλ‘μ€μ μ΄(column)μ΄λΌ ν¨
ν
- μ μ₯νλ €λ νλμ κ°μ²΄λ₯Ό ꡬμ±νλ μ¬λ¬ κ°μ κ°λ‘λ‘ λμ΄λ¨λ¦° νν
μ΄
- μ μ₯νλ €λ λ°μ΄ν°λ₯Ό λννλ μ΄λ¦κ³Ό κ³΅ν΅ νΉμ±
- μ μ₯ μ 보μ μ’ λ₯(μλ£ν)κ³Ό μ μ₯ κ°λ₯ν κ°μ μ΅λ κΈΈμ΄ κ·Έλ¦¬κ³ κ°μ μ€λ³΅μ νμ©νμ§ μλ λ±μ μ μ₯ 쑰건과 λ²μλ₯Ό μ§μ ν μ μμ
β» μ¬λ¬ ν μ΄λΈμ ꡬμ±κ³Ό κ΄κ³λ₯Ό μ κ·μ νκ³ κ΄λ¦¬νλ κ²μ΄ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ ν΅μ¬
β νΉλ³ν μλ―Έλ₯Ό μ§λ μ΄, ν€(key)
ν€λ νλμ ν
μ΄λΈμ ꡬμ±νλ μ¬λ¬ μ΄ μ€μμ νΉλ³ν μλ―Έλ₯Ό μ§λ νλ λλ μ¬λ¬ μ΄μ μ‘°ν©μ μλ―Έν¨.
κΈ°λ³Έν€(PK, Primary Key)
μ¬λ¬ ν€ μ€ κ°μ₯ μ€μν ν€λ‘μ ν ν μ΄λΈ λ΄μμ μ€λ³΅λμ§ μλ κ°λ§ κ°μ§ μ μλ ν€
κΈ°λ³Έν€μ μμ±
1. ν μ΄λΈμ μ μ₯λ νμ μλ³ν μ μλ μ μΌν κ°μ΄μ΄μΌ ν¨
2. κ°μ μ€λ³΅μ΄ μμ΄μΌ ν¨
3. NULL κ°μ κ°μ§ μ μμ
보쑰ν€
보쑰ν€λ λ체ν€(alternate key)λΌκ³ λ λΆλ₯΄λ©° ν보ν€(candidate key)μ μν΄ μλ ν€
κ·Έλ¦¬κ³ νλ³΄ν€ μ€μμ κΈ°λ³Έν€λ‘ μ§μ λμ§ μμ μ΄μ λ§ν¨
β» ν보ν€λ κΈ°λ³Έν€κ° λ μ μλ λͺ¨λ ν€λ₯Ό μλ―Έν¨. μ¦, κΈ°λ³Έν€ μμ ν보ν€μ μν¨. μ΄ νλ³΄ν€ μ€ κΈ°λ³Έν€λ‘ μ§μ λμ§ μμ ν€λ₯Ό λ³΄μ‘°ν€ λλ λ체ν€λΌκ³ ν¨
μΈλν€(FK, Foreign Key)
νΉμ ν μ΄λΈμ ν¬ν¨λμ΄ μμΌλ©΄μ λ€λ₯Έ ν μ΄λΈμ κΈ°λ³Έν€λ‘ μ§μ λ ν€
μ€λ³΅ λ°μ΄ν° λ°μμ λ°©μ§νκΈ° μν΄ μ¬μ©
볡ν©ν€(composite key)
μ¬λ¬ μ΄μ μ‘°ν©νμ¬ κΈ°λ³Έν€ μν μ ν μ μκ² λ§λ ν€
π μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€
β μλ£ν
μ΄λ€ ννμ λ°μ΄ν°μΈμ§λ₯Ό λ§ν λ
μλ£νμ ν μ΄λΈμ ꡬμ±νλ μ΄μ μ§μ ν¨
νλμ μλ£νμ λ§μΆ° ν μ’ λ₯μ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ μλ£νμ μ€μΉΌλΌ(scalar)λΌκ³ ν¨
μλ£νμλ μ¬λ¬ μ’ λ₯κ° μμΌλ©° ν λ²μ μ¬λ¬ λ°μ΄ν°λ₯Ό μ μ₯ν μ μλ VARRAY, NESTED TABLE κ°μ 컬λ μ νλ μμΌλ, κ°μ₯ λ§μ΄ μ¬μ©νλ μλ£νμ VARCHAR2, DATE, NUMBERμ.
μλ£ν | μ€λͺ |
VARCHAR2(κΈΈμ΄) | 4000byteλ§νΌμ κ°λ³ κΈΈμ΄ λ¬Έμμ΄ λ°μ΄ν° μ μ₯(μ΅μ ν¬κΈ° 1byte) |
NUMBER(μ 체 μλ¦Ώμ, μμμ μ΄ν μλ¦Ώμ) | ±38μλ¦Ώμμ μ«μ μ μ₯ |
DATE | λ μ§ νμ μ μ₯. μΈκΈ°, μ°, μ, μΌ, μ, λΆ, μ΄ μ μ₯ κ°λ₯ |
CHAR(κΈΈμ΄) | 4000byteλ§νΌμ κ³ μ κΈΈμ΄ λ¬Έμμ΄ λ°μ΄ν° μ μ₯(μ΅μ ν¬κΈ° 1byte) |
NVARCHAR2(κΈΈμ΄) | 4000byteλ§νΌμ κ°λ³ κΈΈμ΄ κ΅κ°λ³ λ¬Έμ μΈνΈ λ°μ΄ν° μ μ₯(μ΅μ ν¬κΈ° 1byte) |
BLOB | μ΅λ ν¬κΈ° 4GBμ λμ©λ μ΄μ§ λ°μ΄ν° μ μ₯ |
CLOB | μ΅λ ν¬κΈ° 4GB λμ©λ ν μ€νΈ λ°μ΄ν° μ μ₯ |
BFILE | μ΅λ ν¬κΈ° 4GB λμ©λ μ΄μ§ λ°μ΄ν° νμΌ μ μ₯ |
β κ°μ²΄
κ°μ²΄λ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€ λ΄μμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ κ΄λ¦¬νκΈ° μν λ Όλ¦¬ ꡬ쑰λ₯Ό κ°μ§ κ΅¬μ± μμ
κ°μ²΄ | μ€λͺ |
ν μ΄λΈ(table) | λ°μ΄ν°λ₯Ό μ μ₯νλ μ₯μ |
μΈλ±μ€(index) | ν μ΄λΈμ κ²μ ν¨μ¨μ λμ΄κΈ° μν΄ μ¬μ© |
λ·°(view) | νλ λλ μ¬λ¬ κ°μ μ λ³λ λ°μ΄ν°λ₯Ό λ Όλ¦¬μ μΌλ‘ μ°κ²°νμ¬ νλμ ν μ΄λΈμ²λΌ μ¬μ©νκ² ν΄ μ€ |
μνμ€(sequence) | μΌλ ¨ λ²νΈλ₯Ό μμ± |
μλ Έλ(synonym) | μ€λΌν΄ κ°μ²΄μ λ³μΉμ μ§μ |
νλ‘μμ (procedure) | νλ‘κ·Έλλ° μ°μ° λ° κΈ°λ₯ μνμ΄ κ°λ₯ν¨(λ°νκ° μμ) |
ν¨μ(function) | νλ‘κ·Έλλ° μ°μ° λ° κΈ°λ₯ μνμ΄ κ°λ₯ν¨(λ°νκ° μμ) |
ν¨ν€μ§(package) | κ΄λ ¨ μλ νλ‘μμ μ ν¨μλ₯Ό λ³΄κ΄ |
νΈλ¦¬κ±°(trigger) | λ°μ΄ν° κ΄λ ¨ μμ μ μ°κ²° λ° λ°©μ§ κ΄λ ¨ κΈ°λ₯μ μ 곡 |
β PL/SQL
μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€λ₯Ό ν¬ν¨ν μ¬λ¬ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν΄ λ³΅μ‘ν κΈ°λ₯μ΄ νμν λ κΈ°μ‘΄ SQLλ§μΌλ‘ μ΄λ₯Ό ꡬννλ κ²μ λ€μ νκ³κ° μμ. λ°λΌμ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€λ λ°μ΄ν° κ΄λ¦¬λ₯Ό μν΄ λ³λμ νλ‘κ·Έλλ° μΈμ΄λ₯Ό μ 곡νλλ° μ΄λ₯Ό PL/SQLμ΄λΌκ³ ν¨. λ³΄ν΅ μ€λΌν΄ λ°μ΄ν°λ² μ΄μ€ νλ‘κ·Έλλ°μ΄λΌκ³ νλ©΄ SQLλ¬Έκ³Ό PL/SQLμ μ¬μ©νμ¬ νλ‘κ·Έλ¨μ μ μνλ κ²μ μλ―Έ. PL/SQLμ μ¬μ©νλ©΄ λ³μ, 쑰건문, λ°λ³΅λ¬Έ λ± νλ‘κ·Έλλ° μΈμ΄μμ μ 곡νλ μμλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν μ μμ
ν μ΄λΈκ³Ό ν, μ΄μ μλ―Έ
ν μ΄λΈ : 2μ°¨μ ν ννμ λ°μ΄ν° μ μ₯ 곡κ°
ν : ν μ΄λΈμμ νλμ κ°μ²΄λ₯Ό ꡬμ±νλ μ¬λ¬ κ°μ κ°λ‘λ‘ λμ΄λ¨λ¦° νν
μ΄ : μ μ₯νλ €λ λ°μ΄ν°λ₯Ό λννλ μ΄λ¦κ³Ό κ³΅ν΅ νΉμ±
κΈ°λ³Έν€, μΈλν€μ μλ―Έ
ν€ : νλμ ν μ΄λΈμ ꡬμ±νλ μ¬λ¬ μ΄ μ€μμ νΉλ³ν μλ―Έλ₯Ό μ§λ νλ λλ μ¬λ¬ μ΄μ μ‘°ν©
κΈ°λ³Έν€ : ν μ΄λΈμ μ μ₯λ νμ μλ³ν μ μλ μ μΌν κ°(μ€λ³΅λλ κ°κ³Ό NULLκ°μ κ°μ§ μ μμ)
μΈλν€ : νΉμ ν μ΄λΈμ ν¬ν¨λλ©΄μ λ€λ₯Έ ν μ΄λΈμ κΈ°λ³Έν€λ‘ μ§μ λ ν€
VARCHAR2, NUMBER, DATE μλ£ν μ΅νκΈ°
VARCHAR2 : 4000byte μ΄νμ λ¬Έμμ΄
NUMBER : ±38μλ¦Ώμμ μ«μ μ μ₯
DATE : λ μ§
'full stack > database' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Oracle Database] DDL - CREATE, ALTER (2023.03.24) (0) | 2023.03.24 |
---|---|
[Oracle Database] JOIN, GROUP BY, μ§κ³ ν¨μ, HAVING (2023.03.22~23) (0) | 2023.03.24 |
[Oracle Database] DML(Data Manipulation Language) (2023.03.23~24) (0) | 2023.03.24 |
[Oracle Database] μ€λΌν΄ ν¨μ (0) | 2023.03.22 |
[Oracle Database] SELECT - λ°μ΄ν° μ‘°ν, DISTINCT, AS / WHERE / AND, OR μ°μ°μ (0) | 2023.03.19 |