Home > Archive > Database > πŸ’Ύ[Database] DBMS의 λΆ„λ₯˜

πŸ’Ύ[Database] DBMS의 λΆ„λ₯˜
Database

DBMS의 λΆ„λ₯˜.

β€œDBMS” λŠ” 크게 κ³„μΈ΅ν˜•(hierarchical), λ§ν˜•(network), κ΄€κ³„ν˜•(relational), 객체지ν–₯ν˜•(object-oriented), κ°μ²΄κ΄€κ³„ν˜•(object-relational) 으둜 λΆ„λ₯˜λ©λ‹ˆλ‹€.

  • β€œκ³„μΈ΅ν˜•(Hierachical) DBMS”
    • 1960λ…„λŒ€μ— 처음 λ“±μž₯ν•œ DBMS κ°œλ…μž…λ‹ˆλ‹€.
    • μ•„λž˜ κ·Έλ¦Όμ—μ„œ 보듯이 각 계측이 트리 ν˜•νƒœλ₯Ό 띠고 1:N 관계λ₯Ό κ°–μŠ΅λ‹ˆλ‹€.
      • 예λ₯Ό λ“€μ–΄ 사μž₯ 1λͺ…에 λΆ€μ„œ 3κ°œκ°€ μ—°κ²°λ˜μ–΄ μžˆλŠ” ꡬ쑰가 κ³„μΈ΅ν˜• κ΅¬μ‘°μž…λ‹ˆλ‹€.
    • κ³„μΈ΅ν˜• DBMSλŠ” κ΅¬μΆ•ν•œ ν›„ ꡬ쑰λ₯Ό λ³€κ²½ν•˜κΈ°κ°€ μƒλ‹Ήνžˆ κΉŒλ‹€λ‘­μŠ΅λ‹ˆλ‹€.
    • μ£Όμ–΄μ§„ μƒνƒœμ—μ„œ 검색은 λΉ λ₯΄λ‚˜ μ ‘κ·Όμ˜ μœ μ—°μ„±μ΄ λΆ€μ‘±ν•˜μ—¬ μž„μ˜ 검색 μ‹œ 어렀움이 μžˆλŠ” 것이 λ‹¨μ μž…λ‹ˆλ‹€.

  • β€œλ§ν˜•(network) DBMS”
    • κ³„μΈ΅ν˜•(Hierachical) DBMS의 λ¬Έμ œμ μ„ κ°œμ„ ν•˜κΈ° μœ„ν•΄ 1970λ…„λŒ€μ— μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
    • 1:1, 1:N, N:M(λ‹€λŒ€λ‹€) 관계가 μ§€μ›λ˜μ–΄ 효과적이고 λΉ λ₯Έ 데이터 μΆ”μΆœμ΄ κ°€λŠ₯ν•©λ‹ˆλ‹€.
    • κ·ΈλŸ¬λ‚˜ 맀우 λ³΅μž‘ν•œ λ‚΄λΆ€ 포인터λ₯Ό μ‚¬μš©ν•˜κ³  ν”„λ‘œκ·Έλž˜λ¨Έκ°€ λͺ¨λ“  ꡬ쑰λ₯Ό μ΄ν•΄ν•΄μ•Όλ§Œ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•  수 μžˆλ‹€λŠ” 단점이 μ—¬μ „νžˆ μ‘΄μž¬ν•©λ‹ˆλ‹€.

  • κ΄€κ³„ν˜•(Relational) DBMS
    • 1969λ…„ μ—λ“œκ±° F.μ½”λ“œ(Edgar F. Codd)κ°€ μˆ˜ν•™ λͺ¨λΈμ— κ·Όκ±°ν•˜μ—¬ κ³ μ•ˆν–ˆμŠ΅λ‹ˆλ‹€.
    • κ΄€κ³„ν˜•(Relational) DBMS의 핡심 κ°œλ…μ€ β€˜λ°μ΄ν„°λ² μ΄μŠ€λŠ” ν…Œμ΄λΈ”(table)β€™μ΄λΌλŠ” μ΅œμ†Œ λ‹¨μœ„λ‘œ κ΅¬μ„±λ˜μ–΄ 있으며, 이 ν…Œμ΄λΈ”μ€ ν•˜λ‚˜ μ΄μƒμ˜ μ—΄λ‘œ κ΅¬μ„±λ˜μ–΄ μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
    • κ΄€κ³„ν˜• DBMSμ—μ„œλŠ” λͺ¨λ“  데이터가 ν…Œμ΄λΈ”μ— μ €μž₯λ©λ‹ˆλ‹€.
      • ν…Œμ΄λΈ”μ΄λΌλŠ” κ΅¬μ‘°λŠ” κ΄€κ³„ν˜• DBMS의 κ°€μž₯ 기본적이고 μ€‘μš”ν•œ κ΅¬μ„±μœΌλ‘œ, ν…Œμ΄λΈ”μ„ 잘 μ΄ν•΄ν•˜λ©΄ κ΄€κ³„ν˜• DBMS의 기본적인 것을 μ΄ν•΄ν–ˆλ‹€κ³  말할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • ν…Œμ΄λΈ”μ€ 데이터λ₯Ό 효율적으둜 μ €μž₯ν•˜κΈ° μœ„ν•œ κ΅¬μ‘°μž…λ‹ˆλ‹€.
    • κ΄€κ³„ν˜• DBMSμ—μ„œλŠ” 데이터λ₯Ό ν•˜λ‚˜κ°€ μ•„λ‹Œ μ—¬λŸ¬ 개의 ν…Œμ΄λΈ”μ— λ‚˜λˆ„μ–΄ μ €μž₯ν•˜λ―€λ‘œ λΆˆν•„μš”ν•œ κ³΅κ°„μ˜ λ‚­λΉ„λ₯Ό 쀄이고 데이터 μ €μž₯의 νš¨μœ¨μ„±μ„ 보μž₯ν•©λ‹ˆλ‹€.
      • μ΄λ ‡κ²Œ λ‚˜λ‰œ ν…Œμ΄λΈ”μ˜ 관계λ₯Ό β€œκΈ°λ³Έν‚€(Primary Key, PK)” 와 β€œμ™Έλž˜ν‚€(Foreign Key, FK)” λ₯Ό μ‚¬μš©ν•˜μ—¬ 맺음으둜써 두 ν…Œμ΄λΈ”μ„ λΆ€λͺ¨μ™€ μžμ‹ κ΄€κ³„λ‘œ λ¬ΆμŠ΅λ‹ˆλ‹€.
      • 그리고 λΆ€λͺ¨μ™€ μžμ‹ κ΄€κ³„λ‘œ μ—°κ²°λœ ν…Œμ΄λΈ”μ„ μ„œλ‘œ μ‘°ν•©ν•˜μ—¬ μ›ν•˜λŠ” κ²°κ³Όλ₯Ό 얻을 수 μžˆμŠ΅λ‹ˆλ‹€.
        • 이 λ•Œ β€œSQL(Structured Query Language, κ΅¬μ‘°ν™”λœ 질의 μ–Έμ–΄)” 의 쑰인(join) κΈ°λŠ₯을 μ΄μš©ν•©λ‹ˆλ‹€.

ν…Œμ΄λΈ”μ€ λ¦΄λ ˆμ΄μ…˜(relation), μ—”ν‹°ν‹°(entity) λ“±μœΌλ‘œλ„ λΆˆλ¦½λ‹ˆλ‹€.

  • κ΄€κ³„ν˜• DBMSλŠ” λ‹€λ₯Έ DBMS에 λΉ„ν•΄ 업무 변화에 따라 λ°”λ‘œ μˆœμ‘ν•  수 있고 μœ μ§€οΉ’λ³΄μˆ˜ μΈ‘λ©΄μ—μ„œλ„ νŽΈλ¦¬ν•˜λ‹€λŠ” νŠΉμ§•μ΄ μžˆμŠ΅λ‹ˆλ‹€.
    • λ˜ν•œ λŒ€μš©λŸ‰ 데이터λ₯Ό μ²΄κ³„μ μœΌλ‘œ 관리할 수 있고 λ°μ΄ν„°μ˜ 무결성도 잘 보μž₯λ©λ‹ˆλ‹€.
    • λ”°λΌμ„œ λ™μ‹œμ— 데이터에 μ ‘κ·Όν•˜λŠ” μ—¬λŸ¬ μ‘μš© ν”„λ‘œκ·Έλž˜λ°μ„ μ‚¬μš©ν•  λ•Œ κ΄€κ³„ν˜• DBMSλŠ” μ μ ˆν•œ 선택이 될 수 μžˆμŠ΅λ‹ˆλ‹€.
  • κ΄€κ³„ν˜• DBMS의 λ‹¨μ μœΌλ‘œλŠ” μ‹œμŠ€ν…œ μžμ›μ„ 많이 μ°¨μ§€ν•˜μ—¬ μ‹œμŠ€ν…œμ΄ μ „λ°˜μ μœΌλ‘œ λŠλ €μ§„λ‹€λŠ” 것을 꼽을 수 μžˆμŠ΅λ‹ˆλ‹€.
    • κ·ΈλŸ¬λ‚˜ μ΅œκ·Όμ—λŠ” ν•˜λ“œμ›¨μ–΄μ˜ κΈ‰μ†ν•œ λ°œμ „μœΌλ‘œ μ΄λŸ¬ν•œ 단점이 많이 λ³΄μ™„λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.