DB(Database)/Basic Concept

[DB] 데이터, λ°μ΄ν„°λ² μ΄μŠ€λž€?

탱저 2021. 1. 14. 21:44

1μž₯. λ°μ΄ν„°λ² μ΄μŠ€ κΈ°λ³Έ κ°œλ…

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν•„μš”μ„±
  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ„±
  • 데이터와 λ°μ΄ν„°λ² μ΄μŠ€

λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜μ™€ νŠΉμ§•

  • 데이터와 정보
    • 데이터: ν˜„μ‹€ μ„Έκ³„μ—μ„œ λ‹¨μˆœνžˆ κ΄€μ°°ν•˜κ±°λ‚˜ μΈ‘μ •ν•˜μ—¬ μˆ˜μ§‘ν•œ μ‚¬μ‹€μ΄λ‚˜ κ°’
    • 정보(information): μ˜μ‚¬ 결정에 μœ μš©ν•˜κ²Œ ν™œμš©λ  수 μžˆλ„λ‘ 데이터 μ²˜λ¦¬ν•œ κ²°κ³Όλ¬Ό
    • μ›μœ μ™€ κ°€κ³΅μš°μœ λ‘œ λΉ„μœ  κ°€λŠ₯ (μ›μœ : 데이터, 가곡 우유: 정보)
  • μ •λ³΄μ²˜λ¦¬
    • λ°μ΄ν„°μ—μ„œ 정보λ₯Ό μΆ”μΆœν•˜λŠ” κ³Όμ •, 방법
    • 상황에 맞게 해석해 의미 μžˆλŠ” κ²°κ³Ό λ„μΆœ
  • 정보 μ‹œμŠ€ν…œ
    • 쑰직 μš΄μ˜μ— ν•„μš”ν•œ 데이터λ₯Ό μˆ˜μ§‘ν•΄ μ €μž₯ν•΄ λ‘μ—ˆλ‹€κ°€ ν•„μš”ν•  λ•Œ μœ μš©ν•œ 정보λ₯Ό λ§Œλ“€μ–΄ μ£ΌλŠ” μˆ˜λ‹¨

  • λ°μ΄ν„°λ² μ΄μŠ€
    • 정보 μ‹œμŠ€ν…œ μ•ˆμ—μ„œ 데이터 μ €μž₯ν•˜κ³  μžˆλ‹€κ°€ ν•„μš”ν•  λ•Œ μ œκ³΅ν•˜λŠ” μ—­ν•  λ‹΄λ‹Ή
    • μ—¬λŸ¬ μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν†΅ν•©ν•΄μ„œ μ €μž₯ν•œ 운영 λ°μ΄ν„°μ˜ 집합
    • λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ •μ˜
      • 톡합 데이터: μ΅œμ†Œμ˜ 쀑볡과 ν†΅μ œ κ°€λŠ₯ν•œ μ€‘λ³΅λ§Œ ν—ˆμš©ν•œ 데이터
      • μ €μž₯ 데이터: 컴퓨터가 μ ‘κ·Όν•  수 μžˆλŠ” 맀체에 μ €μž₯된 데이터
      • 곡유 데이터: μ—¬λŸ¬ μ‚¬μš©μžκ°€ ν•¨κ»˜ μ†Œμœ ν•˜κ³  μ΄μš©ν•  수 μžˆλŠ” 곡유 데이터 (μ‚¬μš© λͺ©μ  λ‹€λ₯Έ μ‚¬μš©μžλ“€ μ „λΆ€ κ³ λ €ν•΄ DB ꡬ성해야함.)
      • 운영 데이터: 쑰직의 μ£Όμš” κΈ°λŠ₯ μˆ˜ν–‰ μœ„ν•΄ μ§€μ†μ μœΌλ‘œ κΌ­ ν•„μš”ν•œ 데이터
    • λ°μ΄ν„°μ˜ μ €μž₯ 곡간 κ·Έ 자체

β€» 데이터 베이슀의 κ°œλ…μ€ 사싀 μˆ˜ν•™μžκ°€ λ§Œλ“€μ–΄ λ‚Έ κ°œλ…μœΌλ‘œ, 집합과 κ°œλ…μ΄ μœ μ‚¬ν•˜λ‹€.

β€» 집합: μˆœμ„œλ₯Ό κ³ λ €ν•˜μ§€ μ•Šμ€ μœ μΌν•œ μ›μ†Œλ“€μ˜ λͺ¨μž„, λ°μ΄ν„°λ² μ΄μŠ€: μœ μΌν•œ Dataλ“€μ˜ 집합

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ νŠΉμ§•
    • λ°μ΄ν„°μ˜ 무결성: 였λ₯˜κ°€ μžˆμ–΄μ„œλŠ” μ•ˆλ¨
    • λ°μ΄ν„°μ˜ 독립성: λ°μ΄ν„°λ² μ΄μŠ€μ™€ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ μ„œλ‘œ 의쑴적인 관계 X --> 독립적 관계 + μƒν˜Έλ³΄μ™„μ  관계
    • λ³΄μ•ˆ: μ ‘κ·Ό ν—ˆκ°€λœ μ‚¬λžŒλ§Œ μ ‘κ·Ό κ°€λŠ₯
    • 데이터 쀑볡 μ΅œμ†Œν™”: μ—¬λŸ¬ ꡰ데 쀑볡 μ €μž₯λ˜λŠ” 것 방지
    • μ‘μš© ν”„λ‘œκ·Έλž¨ μ œμž‘ 및 μˆ˜μ • 용이: λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ΄μš©ν•˜λ©΄ ν†΅μΌλœ λ°©μ‹μœΌλ‘œ μ‘μš© ν”„λ‘œκ·Έλž¨ μž‘μ„± κ°€λŠ₯ + μœ μ§€ 지, 보수 쉬움
    • λ°μ΄ν„°μ˜ μ•ˆμ „μ„± ν–₯상: 데이터 μ†μƒλ˜λ”λΌλ„ μ›λž˜μ˜ μƒνƒœλ‘œ 볡원 λ˜λŠ” 볡ꡬ κ°€λŠ₯
      • μ„œλ²„κ°€ κ³ μž₯λ‚˜λ©΄ λ―ΈλŸ¬μ„œλ²„ μ‚¬μš©ν•˜λŠ” λ“±...
    • μ‹€μ‹œκ°„ μ ‘κ·Ό: μ‚¬μš©μžμ˜ 데이터 μš”κ΅¬μ— μ‹€μ‹œκ°„μœΌλ‘œ 응닡 (dynamicν•œ νŠΉμ„± 보μž₯ν•΄μ€˜μ•Όν•¨)
    • 계속 λ³€ν™”: λ°μ΄ν„°μ˜ 계속적인 μ‚½μž…(insert), μ‚­μ œ(delete), μˆ˜μ •(update) 톡해 ν˜„μž¬μ˜ μ •ν™•ν•œ 데이터 μœ μ§€
    • λ™μ‹œ 곡유: μ„œλ‘œ λ‹€λ₯Έ λ°μ΄ν„°μ˜ λ™μ‹œ μ‚¬μš© 뿐만 μ•„λ‹ˆλΌ 같은 λ°μ΄ν„°μ˜ λ™μ‹œ μ‚¬μš©λ„ 지원
    • λ‚΄μš© 기반 μ°Έμ‘°: 데이터가 μ €μž₯된 μ£Όμ†Œλ‚˜ μœ„μΉ˜κ°€ μ•„λ‹Œ!!! λ‚΄μš©(κ°’)으둜 μ°Έμ‘°
  • λ°μ΄ν„°μ˜ λΆ„λ₯˜
    • μ •ν˜• 데이터
      • κ΅¬μ‘°ν™”λœ 데이터, 즉 미리 정해진 ꡬ쑰(schema)에 따라 μ €μž₯된 데이터
      • ex) μ—‘μ…€μ˜ μŠ€ν”„λ ˆλ“œμ‹œνŠΈ, 관계 λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”

    • λ°˜μ •ν˜• 데이터
      • ꡬ쑰에 따라 μ €μž₯된 λ°μ΄ν„°μ΄μ§€λ§Œ, 데이터 λ‚΄μš© μ•ˆμ— ꡬ쑰에 λŒ€ν•œ μ„€λͺ…이 ν•¨κ»˜ 쑴재
      • ꡬ쑰 νŒŒμ•…ν•˜λŠ” νŒŒμ‹±(parsing) κ³Όμ • ν•„μš”
      • 보톡 파일 ν˜•νƒœλ‘œ μ €μž₯
      • ex) HTML, XML, JSON λ¬Έμ„œ, μ›Ή 둜그, μ„Όμ„œ 데이터

    • λΉ„μ •ν˜• 데이터
      • 정해진 ꡬ쑰가 없이 μ €μž₯된 데이터
      • ex) μ†Œμ…œ λ°μ΄ν„°μ˜ ν…μŠ€νŠΈ, μ˜μƒ, 이미지, μ›Œλ“œ, PDF λ¬Έμ„œ λ“±μ˜ λ©€ν‹°λ―Έλ””μ–΄ 데이터

    • (λ°μ΄ν„°μ˜ μœ ν˜• λ³„λ‘œ λ‹€λ₯΄κ²Œ 닀뀄야함)


  • DBMS(Database Management System)
    • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 관리, μš΄μ˜ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄
    • μ‚¬μš©μžλ‚˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ DBMSκ°€ κ΄€λ¦¬ν•˜λŠ” 데이터에 λ™μ‹œμ— 접속해 데이터 곡유
    • MySQL, MariaDB, PostgreSQL, Oracle λ“±

  • DBMS의 λΆ„λ₯˜
DBMS λΆ„λ₯˜ νŠΉμ§• 단점
κ³„μΈ΅ν˜• DBMS - 각 계측이 트리 ν˜•νƒœ
- μ΄ˆμ°½κΈ°μ— 많이 μ‚¬μš©λμ—ˆμŒ
- ν•œ 번 ꡬ좕 μ‹œ ꡬ쑰 λ³€κ²½ κΉŒλ‹€λ‘œμ›€
- μ ‘κ·Όμ˜ μœ μ—°μ„± λΆ€μ‘±, μž„μ˜ 검색 μ‹œ 어렀움
λ§ν˜• DBMS - 포인터 μ‚¬μš©μœΌλ‘œ 효과적이고 λΉ λ₯Έ 데이터 μΆ”μΆœ κ°€λŠ₯(포인터: μ €μž₯ μ£Όμ†Œ λ‹΄κ³  있음) - 맀우 λ³΅μž‘ν•œ λ‚΄λΆ€ 포인터 μ‚¬μš©
- λͺ¨λ“  ꡬ쑰λ₯Ό 이해해야 ν”„λ‘œκ·Έλž¨ μž‘μ„± κ°€λŠ₯
κ΄€κ³„ν˜• DMBS - λͺ¨λ“  데이터λ₯Ό ν…Œμ΄λΈ”μ— μ €μž₯
- ν…Œμ΄λΈ” κ°„μ˜ 관계: κΈ°λ³ΈκΈ°(PK)와 μ™Έλž˜ν‚€(FK)둜 λΆ€λͺ¨ μžμ‹ 관계
- μœ μ§€, 보수 μΈ‘λ©΄μ—μ„œλ„ 편리
- λŒ€μš©λŸ‰ 데이터λ₯Ό μ²΄κ³„μ μœΌλ‘œ 관리가λŠ₯
- PK μ‚¬μš©μœΌλ‘œ 데이터 무결성 잘 보μž₯됨
- μ‹œμŠ€ν…œ μžμ›μ„ 많이 차지해 μ‹œμŠ€ν…œμ΄ μ „λ°˜μ μœΌλ‘œ 느렀질 μˆ˜λ„ μžˆμœΌλ‚˜ μš”μƒŒ HW μ’‹μ•„μ Έμ„œ 단점도 μ•„λ‹˜
  • SQL
    • λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‘°μž‘ν•˜λŠ” μ–Έμ–΄ + 관계 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μœ„ν•œ ν‘œμ€€ μ§ˆμ˜μ–΄
    • λ‹€λ₯Έ μ‹œμŠ€ν…œμœΌλ‘œμ˜ 이식성이 μ’‹μŒ (ex: python λ“±)
    • ν΄λΌμ΄μ–ΈνŠΈ/μ„œλ²„ ꡬ쑰
    • λΉ„μ ˆμ°¨μ  λ°μ΄ν„° μ–Έμ–΄
    • λŒ€ν™”μ‹ SQL: DBMS에 직접 μ ‘κ·Όν•΄ 질의λ₯Ό μž‘μ„±ν•΄ μ‹€ν–‰
    • μ‚½μž… SQL: ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ‘œ μž‘μ„±λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ— μ‚½μž…
728x90