Home > Backend > DB > πŸ’Ύ[Database] λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ§•.

πŸ’Ύ[Database] λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ§•.
Database

πŸ’Ύ[Database] λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ§•.

1️⃣ λ°μ΄ν„°λ² μ΄μŠ€ : μ—¬λŸ¬ μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•˜κ³  λ™μ‹œμ— μ ‘κ·Ό κ°€λŠ₯ν•œ β€˜λ°μ΄ν„°μ˜ 집합’ 이라고 μ •μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2️⃣ DBMS(DataBase Management System) : β€˜λ°μ΄ν„°λ² μ΄μŠ€β€™λ₯Ό β€˜κ΄€λ¦¬,μš΄μ˜ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄β€™ μž…λ‹ˆλ‹€.

πŸ™‹β€β™‚οΈ λ°μ΄ν„°λ² μ΄μŠ€

β€˜λ°μ΄ν„° μ €μž₯ 곡간’ 자체λ₯Ό μ˜λ―Έν•˜κΈ°λ„ ν•©λ‹ˆλ‹€.

DBMS 쀑 ν•˜λ‚˜μΈ MySQLμ—μ„œλŠ” β€˜λ°μ΄ν„°λ² μ΄μŠ€β€™λ₯Ό β€˜μžλ£Œκ°€ μ €μž₯λ˜λŠ” λ””μŠ€ν¬ 곡간(주둜 파일둜 ꡬ성됨)β€™μœΌλ‘œ μ·¨κΈ‰ν•©λ‹ˆλ‹€.

μœ„ 그림은 λ°μ΄ν„°λ² μ΄μŠ€, DBMS, μ‚¬μš©μž, μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 관계λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.

μœ„ κ·Έλ¦Όμ—μ„œ 보듯이 DBMSλŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄μž…λ‹ˆλ‹€.

μ—¬λŸ¬ μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ DBMSκ°€ κ΄€λ¦¬ν•˜λŠ” 데이터에 λ™μ‹œμ— μ ‘μ†ν•˜μ—¬ 데이터λ₯Ό κ³΅μœ ν•©λ‹ˆλ‹€.

πŸ‘‰ 즉, DBMSμ—μ„œλŠ” λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ μ‚¬μš©λ˜λŠ” 데이터가 집쀑 κ΄€λ¦¬λ©λ‹ˆλ‹€.

πŸ™‹β€β™‚οΈ λ°μ΄ν„°λ² μ΄μŠ€μ™€ DBMS

λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό DBMS와 ν˜Όμš©ν•΄μ„œ 같은 μš©μ–΄μ²˜λŸΌ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ ν”νžˆ μžˆμŠ΅λ‹ˆλ‹€.
λ°”λΌλ³΄λŠ” μ‹œκ°μ— 따라 κ·Έλ ‡κ²Œ μ‚¬μš©ν•˜λŠ” 것이 ν‹€λ¦° 것은 μ•„λ‹ˆμ§€λ§Œ
μ €λŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό β€˜λ°μ΄ν„°μ˜ 집합’ λ˜λŠ” β€˜λ°μ΄ν„°μ˜ μ €μž₯ κ³΅κ°„β€™μœΌλ‘œ 보고,
DBMSλŠ” λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μš΄μ˜ν•˜λŠ” β€˜μ†Œν”„νŠΈμ›¨μ–΄β€™λΌλŠ” 의미둜 κ³΅λΆ€ν•˜κ² μŠ΅λ‹ˆλ‹€.

DBMSμ—λŠ” MySQL 외에도 λ§Žμ€ μ’…λ₯˜μ˜ ν”„λ‘œκ·Έλž¨μ΄ μžˆμŠ΅λ‹ˆλ‹€.

  • MySQL
  • MariaDB
  • PostgreSQL
  • Oracle
  • SQL Server
  • DB2
  • Access
  • SQLite
  • …

πŸ™‹β€β™‚οΈ μœ„ λͺ…μ‹œλœ λ¦¬μŠ€νŠΈλŠ” 2018λ…„ κΈ°μ€€ 많이 μ‚¬μš©λ˜λŠ” DBMSμž…λ‹ˆλ‹€.

3️⃣ DBMS λ˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ˜ λͺ‡ 가지 μ€‘μš”ν•œ νŠΉμ§•.

  • πŸ‘‰ 데이터 무결성
    • λ°μ΄ν„°λ² μ΄μŠ€ μ•ˆμ˜ λ°μ΄ν„°λŠ” μ–΄λ–€ 경둜λ₯Ό 톡해 λ“€μ–΄μ™”λ“  였λ₯˜κ°€ μžˆμ–΄μ„œλŠ” μ•ˆ λ˜λŠ”λ° 이λ₯Ό 무결성(Integrity)이라고 ν•©λ‹ˆλ‹€.
    • 무결성을 지킀기 μœ„ν•΄ λ°μ΄ν„°λ² μ΄μŠ€λŠ” μ œμ•½ 쑰건(constraint)을 λ”°λ¦…λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄ 학생 λ°μ΄ν„°μ—μ„œ λͺ¨λ“  학생은 ν•™λ²ˆμ΄ λ°˜λ“œμ‹œ μžˆμ–΄μ•Ό ν•˜κ³  ν•™λ²ˆμ΄ μ€‘λ³΅λ˜λ©΄ μ•ˆ λœλ‹€λŠ” μ œμ•½ 쑰건을 μƒκ°ν•΄λ΄…μ‹œλ‹€.
      • 이 μ œμ•½ 쑰건을 μΆ©μ‹€νžˆ 지킨닀면 ν•™λ²ˆμœΌλ‘œλ„ ν•™λ²ˆμœΌλ‘œλ„ 학생 λ°μ΄ν„°μ—μ„œ 학생을 μ •ν™•νžˆ 찾을 수 μžˆμŠ΅λ‹ˆλ‹€.
        • 즉, ν•™λ²ˆμ€ λ¬΄κ²°ν•œ 데이터λ₯Ό 보μž₯ν•˜λŠ” μš”μ†Œμ΄λ©°, μžλ™ λ°œκΈ‰κΈ°λ‘œ 성적 증λͺ…μ„œλ‚˜ μž¬ν•™ 증λͺ…μ„œλ₯Ό λ—„ λ–Ό ν•™λ²ˆλ§Œ μ‘°νšŒν•΄λ„ μ •ν™•ν•œ 자료λ₯Ό 쀄λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ‘‰ λ°μ΄ν„°μ˜ 독립성
    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 크기λ₯Ό λ³€κ²½ν•˜κ±°λ‚˜ 데이터 파일의 μ €μž₯μ†Œλ₯Ό λ³€κ²½ν•˜λ”λΌλ„ 기쑴에 μž‘μ„±λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ „ν˜€ 영ν–₯을 받지 μ•ŠμŠ΅λ‹ˆλ‹€.
      • 즉 λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ„œλ‘œ 의쑴적인 관계가 μ•„λ‹ˆλΌ 독립적인 κ΄€κ³„μž…λ‹ˆλ‹€.
        • 예λ₯Ό λ“€μ–΄ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ €μž₯된 λ””μŠ€ν¬κ°€ μƒˆκ²ƒμœΌλ‘œ λ³€κ²½λ˜μ–΄λ„ 기쑴에 μ‚¬μš©ν•˜λ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ•„λ¬΄λŸ° λ³€κ²½ 없이 계속 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ‘‰ λ³΄μ•ˆ
    • λ°μ΄ν„°λ² μ΄μŠ€ μ•ˆμ— λ°μ΄ν„°λŠ” μ•„λ¬΄λ‚˜ μ ‘κ·Όν•  수 μžˆλŠ” 것이 μ•„λ‹ˆλΌ 데이터λ₯Ό μ†Œμœ ν•œ μ‚¬λžŒμ΄λ‚˜ 데이터에 접근이 ν—ˆκ°€λœ μ‚¬λžŒλ§Œ μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.
    • λ˜ν•œ, 같은 데이터에 μ ‘κ·Όν•  λ•Œλ„ μ‚¬μš©μžμ˜ 계정에 λ”°λΌμ„œ 각각 λ‹€λ₯Έ κΆŒν•œμ„ κ°–μŠ΅λ‹ˆλ‹€.
    • 졜근 λ“€μ–΄ 고객 정보 유좜 사고가 λΉˆλ²ˆν•˜μ—¬ λ³΄μ•ˆ(Security)은 λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ”μš± μ€‘μš”ν•œ μ΄μŠˆκ°€ 되고 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ‘‰ 데이터 쀑볡 μ΅œμ†Œν™”
    • λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” λ™μΌν•œ 데이터가 μ—¬λŸ¬ ꡰ데 쀑볡 μ €μž₯λ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€.
      • 학ꡐλ₯Ό 예둜 λ“€λ©΄, 학생 정보λ₯Ό μ΄μš©ν•˜λŠ” ꡐ직원듀(ν•™μƒμ²˜, ꡐ무처, 과사무싀 λ“±)이 각 μ§μ›λ§ˆλ‹€ λ³„λ„μ˜ μ—‘μ…€ 파일둜 학생 정보λ₯Ό κ΄€λ¦¬ν•˜λ©΄ ν•œ λͺ…μ˜ 학생 정보가 각각의 μ—‘μ…€ νŒŒμΌμ— 쀑볡 μ €μž₯λ©λ‹ˆλ‹€.
      • κ·ΈλŸ¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€μ— ν†΅ν•©ν•˜μ—¬ κ΄€λ¦¬ν•˜λ©΄ ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— 데이터λ₯Ό μ €μž₯ν•œ ν›„ μ‘μš© ν”„λ‘œκ·Έλž¨λ§ˆλ‹€ 이λ₯Ό κ³΅μœ ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆμ–΄ λ°μ΄ν„°μ˜ 쀑볡을 μ΅œμ†Œν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • πŸ‘‰ μ‘μš© ν”„λ‘œκ·Έλž¨ μ œμž‘ 및 μˆ˜μ • 용이
    • κΈ°μ‘΄ 파일 μ‹œμŠ€ν…œμ—μ„œλŠ” 각각의 파일 포맷에 맞좰 μ‘μš© ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν–ˆμŠ΅λ‹ˆλ‹€.
    • κ·ΈλŸ¬λ‚˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ΄μš©ν•˜λ©΄ ν†΅μΌλœ λ°©μ‹μœΌλ‘œ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 있고 μœ μ§€,보수 λ˜ν•œ μ‰½μŠ΅λ‹ˆλ‹€.
  • πŸ‘‰ λ°μ΄ν„°μ˜ μ•ˆμ „μ„± ν–₯상
    • λŒ€λΆ€λΆ„μ˜ DBMSλŠ” λ°μ΄ν„°μ˜ λ°±μ—…/볡원 κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€.
    • λ”°λΌμ„œ 데이터가 μ†μƒλ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•˜λ”λΌλ„ μ›λž˜μ˜ μƒνƒœλ‘œ 볡원 λ˜λŠ” 볡ꡬ할 수 μžˆμŠ΅λ‹ˆλ‹€.