πΎ[Database] DBMSμ κ°μ.
1οΈβ£ λ°μ΄ν°λ² μ΄μ€μ μ μμ νΉμ§.
- λ°μ΄ν°λ² μ΄μ€λ μ¬λ¬ μ¬μ©μλ μμ© νλ‘κ·Έλ¨μ΄ 곡μ νκ³ λμμ μ κ·Ό κ°λ₯ν βλ°μ΄ν°μ μ§ν©βμ΄λΌκ³ μ μν μ μμ΅λλ€.
- κ·Έλ¦¬κ³ DBMS(DataBase Management System)λ μ΄λ¬ν λ°μ΄ν°λ² μ΄μ€λ₯Ό κ΄λ¦¬.μ΄μνλ μννΈμ¨μ΄μ λλ€.
- μΌλ°μ μΌλ‘ μ¬μ©νλ MSμ μμ κ°μ νλ‘κ·Έλ¨μ λ°μ΄ν°μ μ§ν©μ λ€λ£¨κΈ° λλ¬Έμ DBMSμ λΉμ·ν΄ 보μ΄μ§λ§, λμ©λ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκ±°λ μ¬λ¬ λͺ μ μ¬μ©μκ° κ³΅μ νλ κ²μ μλλ―λ‘ DBMSλΌκ³ λΆλ₯΄μ§ μμ΅λλ€.
- λ°μ΄ν°λ² μ΄μ€λ βλ°μ΄ν°μ μ μ₯ 곡κ°β μ체λ₯Ό μλ―ΈνκΈ°λ ν©λλ€.
- MySQLμμλ λ°μ΄ν°λ² μ΄μ€λ₯Ό μλ£κ° μ μ₯λλ λμ€ν¬ 곡κ°(μ£Όλ‘ νμΌλ‘ ꡬμ±λ¨)μΌλ‘ μ·¨κΈν©λλ€.
- DBMSλ λ°μ΄ν°λ² μ΄μ€λ₯Ό κ΄λ¦¬νλ μν μ νλ μννΈμ¨μ΄μ λλ€.
- μ¬λ¬ μ¬μ©μλ μμ© νλ‘κ·Έλ¨μ DBMSκ° κ΄λ¦¬νλ λ°μ΄ν°μ λμμ μ μνμ¬ λ°μ΄ν°λ₯Ό 곡μ ν©λλ€.
- μ¦, DBMSμμλ λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ λ°μ΄ν°κ° μ§μ€ κ΄λ¦¬λ©λλ€.
DBMS λλ λ°μ΄ν°λ² μ΄μ€μ μ€μν νΉμ§.
-
λ°μ΄ν° 무결μ±.
- λ°μ΄ν°λ² μ΄μ€ μμ λ°μ΄ν°λ μ΄λ€ κ²½λ‘λ₯Ό ν΅ν΄ λ€μ΄μλ μ€λ₯κ° μμ΄μλ μ λλλ° μ΄λ₯Ό 무결μ±(Integrity)μ΄λΌκ³ ν©λλ€.
- 무결μ±μ μ§ν€κΈ° μν΄ λ°μ΄ν°λ² μ΄μ€λ μ μ½ μ‘°κ±΄(constraint)μ λ°λ¦
λλ€.
- μλ₯Ό λ€μ΄ νμ λ°μ΄ν°μμ λͺ¨λ νμμ νλ²μ΄ λ°λμ μμ΄μΌ νκ³ νλ²μ΄ μ€λ³΅λλ©΄ μ λλ€λ μ μ½ μ‘°κ±΄μ μκ°ν΄λ΄ μλ€.
- μ΄ μ μ½ μ‘°κ±΄μ μΆ©μ€ν μ§ν¨λ€λ©΄ νλ²μΌλ‘λ νμ λ°μ΄ν°μμ νμμ μ νν μ°Ύμ μ μμ΅λλ€.
- μ¦, νλ²μ 무결ν λ°μ΄ν°λ₯Ό 보μ₯νλ μμμ΄λ©°, μλ λ°κΈκΈ°λ‘ μ±μ μ¦λͺ μλ μ¬ν μ¦λͺ μλ₯Ό λ λΌ νλ²λ§ μ‘°νν΄λ μ νν μλ£λ₯Ό μΆλ ₯ν μ μμ΅λλ€.
-
λ°μ΄ν°μ λ
립μ±.
- λ°μ΄ν°λ² μ΄μ€μ ν¬κΈ°λ₯Ό λ³κ²½νκ±°λ λ°μ΄ν° νμΌμ μ μ₯μλ₯Ό λ³κ²½νλλΌλ κΈ°μ‘΄μ μμ±λ μμ© νλ‘κ·Έλ¨μ μ ν μν₯μ λ°μ§ μμ΅λλ€.
- μ¦ λ°μ΄ν°λ² μ΄μ€μ μμ© νλ‘κ·Έλ¨μ μλ‘ μμ‘΄μ μΈ κ΄κ³κ° μλλΌ λ
립μ μΈ κ΄κ³μ
λλ€.
- μλ₯Ό λ€μ΄ λ°μ΄ν°λ² μ΄μ€κ° μ μ₯λ λμ€ν¬κ° μκ²μΌλ‘ λ³κ²½λμ΄λ κΈ°μ‘΄μ μ¬μ©νλ μμ© νλ‘κ·Έλ¨μ μλ¬΄λ° λ³κ²½ μμ΄ κ³μ μ¬μ©ν μ μμ΅λλ€.
- μ¦ λ°μ΄ν°λ² μ΄μ€μ μμ© νλ‘κ·Έλ¨μ μλ‘ μμ‘΄μ μΈ κ΄κ³κ° μλλΌ λ
립μ μΈ κ΄κ³μ
λλ€.
- λ°μ΄ν°λ² μ΄μ€μ ν¬κΈ°λ₯Ό λ³κ²½νκ±°λ λ°μ΄ν° νμΌμ μ μ₯μλ₯Ό λ³κ²½νλλΌλ κΈ°μ‘΄μ μμ±λ μμ© νλ‘κ·Έλ¨μ μ ν μν₯μ λ°μ§ μμ΅λλ€.
-
보μ.
- λ°μ΄ν°λ² μ΄μ€ μμ λ°μ΄ν°λ μ무λ μ κ·Όν μ μλ κ²μ΄ μλλΌ λ°μ΄ν°λ₯Ό μμ ν μ¬λμ΄λ λ°μ΄ν°μ μ κ·Όμ΄ νκ°λ μ¬λλ§ μ κ·Όν μ μμ΅λλ€.
- λν κ°μ λ°μ΄ν°μ μ κ·Όν λλ μ¬μ©μμ κ³μ μ λ°λΌμ κ°κ° λ€λ₯Έ κΆνμ κ°μ΅λλ€.
- μ΅κ·Ό λ€μ΄ κ³ κ° μ 보 μ μΆ μ¬κ³ κ° λΉλ²νμ¬ λ³΄μ(Security)μ λ°μ΄ν°λ² μ΄μ€μμ λμ± μ€μν μ΄μκ° λκ³ μμ΅λλ€.
-
λ°μ΄ν° μ€λ³΅ μ΅μν.
- λ°μ΄ν°λ² μ΄μ€μμλ λμΌν λ°μ΄ν°κ° μ¬λ¬ κ΅°λ° μ€λ³΅ μ μ₯λλ κ²μ λ°©μ§ν©λλ€.
- νκ΅λ₯Ό μλ‘ λ€λ©΄, νμ μ 보λ₯Ό μ΄μ©νλ κ΅μ§μλ€(νμμ², κ΅λ¬΄μ², κ³Όμ¬λ¬΄μ€ λ±)μ΄ κ° μ§μλ§λ€ λ³λμ μμ νμΌλ‘ νμ μ 보λ₯Ό κ΄λ¦¬νλ©΄ ν λͺ μ νμ μ λ³΄κ° κ°κ°μ μμ νμΌμ μ€λ³΅ μ μ₯λ©λλ€.
- κ·Έλ¬λ λ°μ΄ν°λ² μ΄μ€μ ν΅ν©νμ¬ κ΄λ¦¬νλ©΄ νλμ ν μ΄λΈμ λ°μ΄ν°λ₯Ό μ μ₯ν ν μμ© νλ‘κ·Έλ¨λ§λ€ μ΄λ₯Ό 곡μ νμ¬ μ¬μ©ν μ μμ΄ λ°μ΄ν°μ μ€λ³΅μ μ΅μνν μ μμ΅λλ€.
- λ°μ΄ν°λ² μ΄μ€μμλ λμΌν λ°μ΄ν°κ° μ¬λ¬ κ΅°λ° μ€λ³΅ μ μ₯λλ κ²μ λ°©μ§ν©λλ€.
-
μμ© νλ‘κ·Έλ¨ μ μ₯ λ° μμ μ©μ΄.
- κΈ°μ‘΄ νμΌ μμ€ν μμλ κ°κ°μ νμΌ ν¬λ§·μ λ§μΆ° μμ© νλ‘κ·Έλ¨μ κ°λ°νμ΅λλ€.
- κ·Έλ¬λ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ΄μ©νλ©΄ ν΅μΌλ λ°©μμΌλ‘ μμ© νλ‘κ·Έλ¨μ μμ±ν μ μκ³ μ μ§.보μ λν μ½μ΅λλ€.
-
λ°μ΄ν°μ μμ μ± ν₯μ.
- λλΆλΆμ DBMSλ λ°μ΄ν° λ°±μ
/볡μ κΈ°λ₯μ μ 곡ν©λλ€.
- λ°λΌμ λ°μ΄ν°κ° μμλλ λ¬Έμ κ° λ°μνλλΌλ μλμ μνλ‘ λ³΅μ λλ 볡ꡬν μ μμ΅λλ€.
- λλΆλΆμ DBMSλ λ°μ΄ν° λ°±μ
/볡μ κΈ°λ₯μ μ 곡ν©λλ€.
2οΈβ£ DBMSμ λΆλ₯.
- DBMSλ ν¬κ² κ³μΈ΅ν(Hierarchical), λ§ν(network), κ΄κ³ν(relational), κ°μ²΄μ§ν₯ν(object-oriented), κ°μ²΄κ΄κ³ν(object-relational)μΌλ‘ λΆλ₯λ©λλ€.
- νμ¬λ κ΄κ³ν DBMS(Relational DBMS)κ° κ°μ₯ λ§μ΄ μ¬μ©λλ©°, μΌλΆ λ© ν°λ―Έλμ΄ λΆμΌμμλ κ°μ²΄μ§ν₯ν(object-oriented)λ κ°μ²΄κ΄κ³ν(object-relational) DBMSκ° νμ©λκΈ°λ ν©λλ€.
- MySQLμ λΉλ‘―ν΄ Oracle, DB2, SQL Server, Access λ±μ λͺ¨λ κ΄κ³ν DBMSμ λλ€.
κ³μΈ΅ν DBMS(Hierarchical DBMS)
- 1960λ λμ μ²μ λ±μ₯ν DBMS κ°λ μ λλ€.
- μ κ·Έλ¦Όμμ 보λ―μ΄ κ° κ³μΈ΅μ΄ νΈλ¦¬ ννλ₯Ό λ κ³ 1:N κ΄κ³λ₯Ό κ°μ΅λλ€.
- μλ₯Ό λ€μ΄ μ¬μ₯ 1λͺ μ λΆμ 3κ°κ° μ°κ²°λμ΄ μλ κ΅¬μ‘°κ° κ³μΈ΅ν ꡬ쑰μ λλ€.
- κ³μΈ΅ν DBMSλ ꡬμΆν ν ꡬ쑰λ₯Ό λ³κ²½νκΈ°κ° μλΉν κΉλ€λ‘κ³ , μ£Όμ΄μ§ μνμμ κ²μμ λΉ λ₯΄μ§λ§ μ κ·Όμ μ μ°μ±μ΄ λΆμ‘±νμ¬ μμ κ²μ μ μ΄λ €μμ΄ μλ κ²μ΄ λ¨μ μ λλ€.
λ§ν DBMS(Network DBMS)
- λ§ν DBMSλ κ³μΈ΅ν DBMSμ λ¬Έμ μ μ κ°μ νκΈ° μν΄ 1970λ λμ μμλμμ΅λλ€.
- λ§ν DBMSμμλ 1:1, 1:N, N:M(λ€λλ€) κ΄κ³κ° μ§μλμ΄ ν¨κ³Όμ μ΄κ³ λΉ λ₯Έ λ°μ΄ν° μΆμΆμ΄ κ°λ₯ν©λλ€.
- κ·Έλ¬λ κ³μΈ΅ν DBMSμ λ§μ°¬κ°μ§λ‘ λ§€μ° λ³΅μ‘ν λ΄λΆ ν¬μΈν°λ₯Ό μ¬μ©νκ³ νλ‘κ·Έλλ¨Έκ° λͺ¨λ ꡬ쑰λ₯Ό μ΄ν΄ν΄μΌλ§ νλ‘κ·Έλ¨μ μμ±ν μ μλ€λ λ¨μ μ΄ μ¬μ ν μ‘΄μ¬ν©λλ€.
κ΄κ³ν DBMS
- κ΄κ³ν DBMS(Relational DBMS)λ 1969λ μλκ±° F.μ½λ(Edgar F.Codd)κ° μν λͺ¨λΈμ κ·Όκ±°νμ¬ κ³ μνμ΅λλ€.
- κ΄κ³ν DBMSμ ν΅μ¬κ°λ μ βλ°μ΄ν°λ² μ΄μ€λ ν μ΄λΈ(table)μ΄λΌλ μ΅μ λ¨μλ‘ κ΅¬μ±λμ΄ μμΌλ©°, μ΄ ν μ΄λΈμ νλ μ΄μμ μ΄(Column)λ‘ κ΅¬μ±λμ΄ μλ€βλ κ²μ λλ€.
- κ΄κ³ν DBMSμμλ λͺ¨λ λ°μ΄ν°κ° ν μ΄λΈμ μ μ₯λ©λλ€.
- ν μ΄λΈμ΄λΌλ ꡬ쑰λ κ΄κ³ν DBMSμ κ°μ₯ κΈ°λ³Έμ μ΄κ³ μ€μν ꡬμ±μΌλ‘, ν μ΄λΈμ μ μ΄ν΄νλ©΄ κ΄κ³ν DBMSμ κΈ°λ³Έμ μΈ κ²μ μ΄ν΄νλ€κ³ λ§ν μ μμ΅λλ€.
- ν μ΄λΈμ λ°μ΄ν°λ₯Ό ν¨μ¨μ μΌλ‘ μ μ₯νκΈ° μν ꡬ쑰μ λλ€.
- κ΄κ³ν DBMSμμλ λ°μ΄ν°λ₯Ό νλκ° μλ μ¬λ¬ κ°μ ν
μ΄λΈμ λλμ΄ μ μ₯νλ―λ‘ λΆνμν 곡κ°μ λλΉλ₯Ό μ€μ΄κ³ λ°μ΄ν° μ μ₯μ ν¨μ¨μ±μ 보μ₯ν©λλ€.
- μ΄λ κ² λλ ν μ΄λΈμ κ΄κ³λ₯Ό κΈ°λ³Έν€(Primary Key, PK)μ μΈλν€(Foreign Key, FK)λ₯Ό μ¬μ©νμ¬ λ§ΊμμΌλ‘μ¨ λ ν μ΄λΈμ λΆλͺ¨μ μμ κ΄κ³λ‘ λ¬Άμ΅λλ€.
- κ·Έλ¦¬κ³ λΆλͺ¨μ μμ κ΄κ³λ‘ μ°κ²°λ ν μ΄λΈμ μλ‘ μ‘°ν©νμ¬ μνλ κ²°κ³Όλ₯Ό μ»μ μ μλλ°, μ΄λ SQL(Structured Query Language, ꡬ쑰νλ μ§μ μΈμ΄)μ μ‘°μΈ(join) κΈ°λ₯μ μ΄μ©ν©λλ€.
TIP: ν μ΄λΈμ 릴λ μ΄μ (Relation), μν°ν°(Entity) λ±μΌλ‘ λΆλ¦½λλ€.
- κ΄κ³ν DBMSλ λ€λ₯Έ DBMSμ λΉν΄ μ 무 λ³νμ λ°λΌ λ°λ‘ μμν μ μκ³ μ μ§.보μ μΈ‘λ©΄μμλ νΈλ¦¬νλ€λ νΉμ§μ΄ μμ΅λλ€.
- λν λμ©λ λ°μ΄ν°λ₯Ό 체κ³μ μΌλ‘ κ΄λ¦¬ν μ μκ³ λ°μ΄ν°μ 무결μ±λ μ 보μ₯λ©λλ€.
- λ°λΌμ λμμ μ κ·Όνλ μ¬λ¬ μμ© νλ‘κ·Έλ¨μ μ¬μ©ν λ κ΄κ³ν DBMSλ μ μ ν μ νμ΄ λ μ μμ΅λλ€.
- κ΄κ³ν DBMSμ λ¨μ μΌλ‘λ μμ€ν
μμμ λ§μ΄ μ°¨μ§νμ¬ μμ€ν
μ΄ μ λ°μ μΌλ‘ λλ €μ§λ€λ κ²μ κΌ½μ μ μμ΅λλ€.
- κ·Έλ¬λ μ΅κ·Όμλ νλμ¨μ΄μ κΈμν λ°μ μΌλ‘ μ΄λ¬ν λ¨μ μ΄ λ§μ΄ 보μλκ³ μμ΅λλ€.
3οΈβ£ SQLμ κ°μ
- SQLμ κ΄κ³ν λ°μ΄ν°λ² μ΄μ€μμ μ¬μ©λλ μΈμ΄λ‘ βμμ€νμβ λλ βμνβμ΄λΌκ³ μ½μ΅λλ€.
- κ΄κ³ν DBMS(κ·Έμ€μμλ MySQL)λ₯Ό λ°°μ°λ €λ©΄ SQLμ μ΅νλ κ²μ΄ νμμ λλ€.
- SQLμ λ°μ΄ν°λ² μ΄μ€λ₯Ό μ‘°μνλ βμΈμ΄βλ‘, μΌλ°μ μΈ νλ‘κ·Έλλ° μΈμ΄(C, C++, Java, C# λ±)μ λ€λ₯Έ νΉμ±μ κ°μ§κ³ μλ€.
SQLμ νΉμ§.
-
DBMS μ μ νμ¬μ λ
립μ μ
λλ€.
- λͺ¨λ DBMS μ μ νμ¬μ νμ€ SQLμ΄ κ³΅κ°λμ΄ κ° νμ¬λ μ΄ νμ€ SQLμ λ§μΆ° DBMSλ₯Ό κ°λ°ν©λλ€.
- λ°λΌμ SQLμ λλΆλΆμ DBMS μ νμμ 곡ν΅μ μΌλ‘ νΈνλ©λλ€.
-
λ€λ₯Έ μμ€ν
μΌλ‘μ μ΄μμ±μ΄ μ’μ΅λλ€.
- SQLμ μλ²μ©, κ°μΈμ©, ν΄λμ© μ₯λΉ λ± μ΄μλλ DBMSλ§λ€ μνΈ νΈνμ±μ΄ λ°μ΄λ©λλ€.
- ν μμ€ν μμ μ¬μ©νλ SQLμ λ€λ₯Έ μμ€ν μΌλ‘ μ΄μνλ λ° ν° λ¬Έμ κ° μμ΅λλ€.
-
νμ€μ΄ κ³μ λ°μ ν©λλ€.
- SQLμ SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011 λ±μΌλ‘ κ°μ λ νμ€μμ΄ κ³μ λ°νλμμΌλ©°, μ§κΈλ κ°μ λ μμ΄ κΎΈμ€ν μ°κ΅¬λκ³ μμ΅λλ€.
-
λνμ μΈμ΄μ
λλ€.
- κΈ°μ‘΄ νλ‘κ·Έλλ° μΈμ΄λ νλ‘κ·Έλ¨ μμ±, μ»΄νμΌ λ° λλ²κΉ , μ€ν κ³Όμ μ κ±°μ³μΌλ§ κ·Έ κ²°κ³Όλ₯Ό νμΈν μ μμ§λ§ SQLμ λ°λ‘ μ§μνκ³ κ²°κ³Όλ₯Ό μ»λ λνμ μΈμ΄μ λλ€.
-
ν΄λΌμ΄μΈνΈ/μλ² κ΅¬μ‘°λ₯Ό μ§μν©λλ€.
- SQLμ λΆμ°ν κ΅¬μ‘°μΈ ν΄λΌμ΄μΈνΈ/μλ² κ΅¬μ‘°λ₯Ό μ§μν©λλ€.
- ν΄λΌμ΄μΈνΈμμ μ§μλ₯Ό νλ©΄ μλ²μμ κ·Έ μ§μλ₯Ό λ°μ μ²λ¦¬νμ¬ ν΄λΌμ΄μΈνΈμ μ λ¬νλ ꡬ쑰μ λλ€.
- SQLμ μ¬μ©ν λ μ£Όμν μ μ, λͺ¨λ DBMS μ νμ SQL λ¬Έμ΄ μλ²½νκ² λμΌνμ§λ μλ€λ κ²μ λλ€.
- λ§μ νμ¬κ° λλλ‘ νμ€ SQLμ μ€μνλ €κ³ λ Έλ ₯νμ§λ§ κ° νμ¬μ DBMSλ§λ€ νΉμ§μ΄ μκΈ° λλ¬Έμ νμ€μ μΌλ‘ μμ ν ν΅μΌλκΈ°λ μ΄λ ΅μ΅λλ€.
- κ° νμ¬λ κ°κΈμ νμ€ SQLμ μ§ν€λ©΄μλ μμ μ μ μΆ€μ νΉνλ SQLμ μ¬μ©ν©λλ€.
- μ΄λ₯Ό μ€λΌν°μμλ PL/SQL, SQL Serverμμλ T-SQLμ΄λΌ λΆλ₯΄κ³ MySQLμμλ κ·Έλ₯ SQLμ΄λΌ μΌμ»«μ΅λλ€.
- μ κ·Έλ¦Όκ³Ό κ°μ΄ κ° νμ¬μ μ νμ λͺ¨λ νμ€ SQLμ 곡ν΅μΌλ‘ μ¬μ©νλ©΄μ μκΈ° μ νμ νΉμ±μ λ§μΆ νΈνλμ§ μλ SQL λ¬Έλ μ¬μ©ν©λλ€.