πŸ“ƒ λ°μ΄ν„°λ² μ΄μŠ€ κ°œλ…

JeongMinΒ·2023λ…„ 7μ›” 28일
0
post-thumbnail

파일 μ‹œμŠ€ν…œ

  • 파일 μ‹œμŠ€ν…œμ€ 각각의 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μžμ‹ μ˜ 데이터λ₯Ό 파일 ν˜•νƒœλ‘œ λ³„λ„λ‘œ κ΄€λ¦¬ν•˜κ³  파일 μ€‘μ‹¬μ˜ 데이터 처리 μ‹œμŠ€ν…œμ΄λ‹€.

DBMS

  • 데이터 베이슀λ₯Ό κ΄€λ¦¬ν•˜κ³  μš΄μ˜ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό DBMS(Database Management System)라고 ν•œλ‹€.

파일 μ‹œμŠ€ν…œκ³Ό DBMS의 차이점

쀑볡성, 일관성

  • 파일 μ‹œμŠ€ν…œμ€ νŒŒμΌμ„ λ”°λ‘œ 관리해 쀑볡성이 μ‘΄μž¬ν•˜κ³  일관성이 보μž₯λ˜μ§€ μ•ŠλŠ” λ°˜λ©΄μ— DBMSλŠ” ν•˜λ‚˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€μ— ν†΅ν•©ν•˜μ—¬ λ°μ΄ν„°μ˜ 쀑볡을 μ΅œμ†Œν™”ν•˜κ³  일관성이 보μž₯λœλ‹€.

쒅속성, 독립성

  • 파일 μ‹œμŠ€ν…œμ€ 데이터(파일)와 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ 쒅속관계에 μžˆμ–΄ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ λ³€κ²½ν•˜λ €λ©΄ νŒŒμΌμ„ λ³€κ²½ν•΄μ•Ό ν•˜κ³  νŒŒμΌμ„ λ³€κ²½ν•˜λ©΄ μ‘μš©ν”„λ‘œκ·Έλž¨μ„ λ³€κ²½ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ™μ‹œμ„±

  • 파일 μ‹œμŠ€ν…œμ€ λ™μΌν•œ 파일 두 개 μ΄μƒμ˜ ν”„λ‘œκ·Έλž¨μ΄ λ™μ‹œμ— μ ‘κ·Όν•  수 μ—†μ§€λ§Œ DBMSλŠ” λ™μΌν•œ 데이터에 λ‹€μˆ˜ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ ‘κ·Όν•  수 μžˆλ‹€.

λ³΄μ•ˆμ„±

  • 파일 μ‹œμŠ€ν…œμ€ 데이터가 μ €μž₯λ˜μ–΄ μžˆλŠ” νŒŒμΌμ€ μ‘μš© ν”„λ‘œκ·Έλž¨ 없이도 νŒŒμΌμ„ μ—΄ 수 μžˆλŠ” λ°˜λ©΄μ— DBMSλŠ” μ‚¬μš©μžλ“€λ§ˆλ‹€ λΆ€μ—¬ν•΄μ£ΌλŠ” 각 ν…Œμ΄λΈ”μ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ΄ μžˆμ–΄ λ³΄μ•ˆμ„±μ΄ 보μž₯λœλ‹€.

νšŒλ³΅μ„±

  • 파일 μ‹œμŠ€ν…œμ€ μ‘μš© ν”„λ‘œκ·Έλž¨μ—μ„œ 파일 λ‚΄μ˜ 데이터λ₯Ό μˆ˜μ •ν•˜λŠ” 도쀑 κ°•μ œλ‘œ 파일이 λ‹«νžˆλŠ” 사고가 μžˆμ„ λ•Œ 데이터λ₯Ό λ³΅κ΅¬ν•˜λŠ” κΈ°λŠ₯이 μ—†λŠ” λ°˜λ©΄μ— DBMSλŠ” μž₯μ•  λ°œμƒ μ‹œ 데이터λ₯Ό 볡ꡬ할 수 μžˆλŠ” 회볡 기법이 μžˆλ‹€.

ꡬ쑰적 차이

  • 파일 μ‹œμŠ€ν…œμ€ νŠΉμ •ν•œ ꡬ쑰가 μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ” λ°˜λ©΄μ— DBMSλŠ” ν…Œμ΄λΈ” ν˜•νƒœλ‘œ μ €μž₯λœλ‹€.

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

  • μ‹€μ‹œκ°„ μ ‘κ·Όμ„± : μ‚¬μš©μžμ˜ μ§ˆμ˜μ— λŒ€ν•˜μ—¬ 즉각적인 μ²˜λ¦¬μ™€ 응닡이 이루어진닀.
  • 계속적인 λ³€ν™” : 생성, μˆ˜μ •, μ‚­μ œλ₯Ό ν†΅ν•˜μ—¬ 항상 μ΅œμ‹ μ˜ 데이터λ₯Ό μœ μ§€ν•¨
  • λ™μ‹œ 곡유 : μ‚¬μš©μžλ“€μ΄ μ›ν•˜λŠ” 데이터λ₯Ό λ™μ‹œμ— κ³΅μœ ν•  수 있음
  • λ‚΄μš©μ— λ”°λ₯Έ μ°Έμ‘° : μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 데이터λ₯Ό μ£Όμ†Œκ°€ μ•„λ‹Œ λ‚΄μš©μ— 따라 μ°Έμ‘°ν•  수 있음
  • μ‘μš© ν”„λ‘œκ·Έλž¨κ³Ό λ°μ΄ν„°λ² μ΄μŠ€λŠ” λ…λ¦½λ˜μ–΄ μžˆμœΌλ―€λ‘œ, λ°μ΄ν„°μ˜ 논리적 ꡬ쑰와 μ‘μš© ν”„λ‘œκ·Έλž¨μ€ λ³„κ°œλ‘œ λ™μž‘ν•œλ‹€.

DBMSλž€?

  • DBMS(Database Management System)λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— μ ‘κ·Όν•˜μ—¬ λ°μ΄ν„°λ² μ΄μŠ€ μ •μ˜, μ‘°μž‘, μ œμ–΄ λ“± λ°μ΄ν„°λ² μ΄μŠ€ 관리λ₯Ό μ§€μ›ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λœ»ν•œλ‹€.

μŠ€ν‚€λ§ˆμ™€ μŠ€ν‚€λ§ˆ 3계측

μŠ€ν‚€λ§ˆ

  • μŠ€ν‚€λ§ˆλŠ” DB의 ꡬ쑰와 μ œμ•½ 쑰건에 κ΄€ν•œ μ „λ°˜μ μΈ λͺ…μ„Έλ₯Ό μ •μ˜ν•œ 메타 데이터(λ‹€λ₯Έ 데이터λ₯Ό μ„€λͺ…ν•΄ μ£ΌλŠ” 데이터)의 집합이닀.
  • μŠ€ν‚€λ§ˆλŠ” 데이터 사전(Data Dictionary)에 μ €μž₯λœλ‹€.
  • 개체의 νŠΉμ„±μ„ λ‚˜νƒ€λ‚΄λŠ” 속성(Attribute)κ³Ό μ†μ„±λ“€μ˜ μ§‘ν•©μœΌλ‘œ 이루어진 개체(Entity), 개체 사이에 μ‘΄μž¬ν•˜λŠ” 관계(Relation)에 λŒ€ν•œ μ •μ˜μ™€ μ œμ•½ 쑰건을 κΈ°μˆ ν•œ 것이닀.

μ™ΈλΆ€ μŠ€ν‚€λ§ˆ(External Schema) = μ‚¬μš©μž λ·°

  • κ°œλ³„ μ‚¬μš©μžλ“€μ˜ μž…μž₯μ—μ„œ 데이터 베이슀의 논리적 ꡬ쑰λ₯Ό μ •μ˜ν•œ 것이닀.
  • λ™μΌν•œ 데이터에 λŒ€ν•΄ μ„œλ‘œ λ‹€λ₯Έ 관점을 μ •μ˜ν•  수 μžˆλ„λ‘ ν—ˆμš©ν•œλ‹€.
  • ν•˜λ‚˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€ μ‹œμŠ€ν…œμ—λŠ” μ—¬λŸ¬ 개의 μ™ΈλΆ€ μŠ€ν‚€λ§ˆκ°€ 쑴재 κ°€λŠ₯ν•˜λ©°, ν•˜λ‚˜μ˜ μ™ΈλΆ€ μŠ€ν‚€λ§ˆλ₯Ό μ—¬λŸ¬ 개의 μ‘μš© ν”„λ‘œκ·Έλž¨μ΄λ‚˜ μ‚¬μš©μžκ°€ κ³΅μš©ν•  수 μžˆλ‹€.
  • 일반 μ‚¬μš©μžλŠ” μ§ˆμ˜μ–΄(SQL)을 μ΄μš©ν•˜μ—¬ DBλ₯Ό μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€.

κ°œλ… μŠ€ν‚€λ§ˆ(Conceptual Schema) = μ „μ œμ μΈ λ·°

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 전체 쑰직에 λŒ€ν•œ 논리적인 ꡬ쑰둜, 물리적인 κ΅¬ν˜„μ€ κ³ λ €ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • 각 λ°μ΄ν„°λ² μ΄μŠ€μ—λŠ” ν•œ 개의 κ°œλ… μŠ€ν‚€λ§ˆλ§Œ μ‘΄μž¬ν•œλ‹€.
  • 개체 κ°„μ˜ 관계 및 무결성 μ œμ•½ 쑰건에 λŒ€ν•œ λͺ…μ„Έλ₯Ό μ •μ˜ν•œλ‹€.
  • λ°μ΄ν„°λ² μ΄μŠ€ νŒŒμΌμ— μ €μž₯λ˜λŠ” λ°μ΄ν„°μ˜ ν˜•νƒœλ₯Ό λ‚˜νƒ€λ‚Έλ‹€.
  • κΈ°κ΄€μ΄λ‚˜ 쑰직체의 κ΄€μ μ—μ„œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ •μ˜ν•œ 것이며 λ°μ΄λ²„λ² μ΄μŠ€ κ΄€λ¦¬μžμ— μ˜ν•΄ κ΅¬μ„±λœλ‹€.

λ‚΄λΆ€ μŠ€ν‚€λ§ˆ(Internal Schema) = μ €μž₯ μŠ€ν‚€λ§ˆ

  • 물리적 μ €μž₯μž₯치의 μž…μž₯μ—μ„œ λ³Έ λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰이닀.
  • κ°œλ… μŠ€ν‚€λ§ˆλ₯Ό λ””μŠ€ν¬ κΈ°μ–΅μž₯μΉ˜μ— 물리적으둜 κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 방법을 κΈ°μˆ ν•œ 것이닀.
  • μ €μž₯될 데이터 ν•­λͺ©μ˜ λ‚΄λΆ€ λ ˆμ½”λ“œ ν˜•μ‹, 물리적 μˆœμ„œ 등을 λ‚˜νƒ€λ‚Έλ‹€.
  • μ‹œμŠ€ν…œ ν”„λ‘œκ·Έλž˜λ¨Έλ‚˜ μ‹œμŠ€ν…œ μ„€κ³„μžκ°€ λ³΄λŠ” 관점이 μŠ€ν‚€λ§ˆμ΄λ‹€.

데이터 독립성

  • λ°μ΄ν„°λ² μ΄μŠ€ λ‚΄μ˜ 데이터, μ‚¬μš©μž 및 μ‘μš© ν”„λ‘œκ·Έλž¨, λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ €μž₯ ꡬ쑰가 μ„œλ‘œ 영ν–₯을 받지 μ•ŠλŠ” μ„±μ§ˆμ„ μ˜λ―Έν•œλ‹€.
  • 논리적 독립성은 κ°œλ… μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„, μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ— 영ν–₯을 주지 μ•ŠλŠ”λ‹€.
  • 물리적 독립성은 λ‚΄λΆ€ μŠ€ν‚€λ§ˆκ°€ λ³€κ²½λ˜μ–΄λ„, κ°œλ… μŠ€ν‚€λ§ˆλ‚˜ μ™ΈλΆ€ μŠ€ν‚€λ§ˆμ— 영ν–₯을 주지 μ•ŠλŠ”λ‹€.

RDBMS(κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μ‹œμŠ€ν…œ)

  • RDBMSλŠ” κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ €μž₯, 관리, μ‘°μž‘ν•  수 μžˆλŠ” μ†Œν”„νŠΈμ›¨μ–΄λ‹€.
  • λͺ¨λ“  데이터λ₯Ό 2차원 ν…Œμ΄λΈ”λ‘œ ν‘œν˜„ν•˜κ³  ν…Œμ΄λΈ”λ“€ 간에 관계λ₯Ό μ„€μ •ν•˜μ—¬ 데이터λ₯Ό κ΅¬μ„±ν•œλ‹€.
  • μ •κ·œν™”λ₯Ό 톡해 λ°μ΄ν„°μ˜ 쀑볡성을 μ΅œμ†Œν™”ν•˜μ—¬ νŠΈλžœμž­μ…˜μ„ μˆ˜ν–‰ν•˜λŠ” 것이 λ”μš± 쉽닀.

λ λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆ

  • λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆ(Relation Schema)λŠ” λ¦΄λ ˆμ΄μ…˜(ν…Œμ΄λΈ”)에 μ–΄λ–€ 정보가 담길지 속성을 μ •μ˜ν•œ 것이닀. ν•΄λ‹Ή λ¦΄λ ˆμ΄μ…˜μ˜ μ—΄(Column)에 λŒ€ν•œ ꡬ쑰와 μ œμ•½μ‘°κ±΄μ„ λͺ…μ‹œν•œλ‹€.

λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€

  • λ¦΄λ ˆμ΄μ…˜ μΈμŠ€ν„΄μŠ€(Relation Instance)λŠ” λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ— μ €μž₯된 λ°μ΄ν„°μ˜ 집합이닀. 각 행은 λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ— μ •μ˜λœ 속성듀에 λŒ€ν•œ μ‹€μ œ 값듀을 ν¬ν•¨ν•œλ‹€.

차수

  • λ¦΄λ ˆμ΄μ…˜μ˜ 차수(Degree)λŠ” 속성(λ¦΄λ ˆμ΄μ…˜ μŠ€ν‚€λ§ˆμ˜ μ—΄)의 총 개수λ₯Ό μ˜λ―Έν•œλ‹€.

카디널리티

  • 카디널리티(Cardinality)λŠ” νŠœν”Œ(λ¦΄λ ˆμ΄μ…˜μ˜ ν–‰)의 총 개수λ₯Ό μ˜λ―Έν•œλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€ ν‚€(Key)

슈퍼 ν‚€(Super Key)

  • λ¦΄λ ˆμ΄μ…˜μ—μ„œ νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” 값이면 λͺ¨λ‘ μŠˆνΌν‚€κ°€ 될 수 μžˆλ‹€.
  • μœ μΌμ„±μ€ λ§Œμ‘±ν•˜μ§€λ§Œ μ΅œμ†Œμ„±μ€ λ§Œμ‘±ν•˜μ§€ λͺ»ν•œλ‹€.

후보 ν‚€(Candidate Key)

  • ν›„λ³΄ν‚€λŠ” κΈ°λ³ΈκΈ°κ°€ 될 수 μžˆλŠ” ν›„λ³΄λ‘œ λ¦΄λ ˆμ΄μ…˜μ—μ„œ 각 νŠœν”Œμ„ μœ μΌν•˜κ²Œ 식별할 수 μžˆλŠ” μ†μ„±λ“€μ˜ 집합이닀.
    λ‹€λ₯Έ 데이터와 쀑볡이 μžˆμ–΄μ„  μ•ˆλœλ‹€.
  • μœ μΌμ„±κ³Ό μ΅œμ†Œμ„±μ„ λ§Œμ‘±ν•œλ‹€.

κΈ°λ³Έ ν‚€(Primary key)

  • κΈ°λ³Έ ν‚€λ₯Ό μ„€μ •ν•˜λ©΄ λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ μ™Έλž˜ν‚€μ™€ 관계λ₯Ό λ§Ίκ³  μƒν˜Έμž‘μš©μ„ ν•  수 μžˆλ‹€.
  • λ¦΄λ ˆμ΄μ…˜μ„ λŒ€ν‘œν•˜λŠ” 킀이며 μ–΄λ–€ 후보킀λ₯Ό κΈ°λ³Έν‚€λ‘œ μ§€μ •ν•˜λŠ”μ§€λŠ” λ°μ΄ν„°λ² μ΄μŠ€ κ΄€λ¦¬μžλ‚˜ μ„€κ³„μžκ°€ μ •ν•œλ‹€.
  • κΈ°λ³Έ ν‚€λ₯Ό μ •ν•  λ•Œ λ¦΄λ ˆμ΄μ…˜ λ‚΄ νŠœν”Œμ„ 식별할 수 μžˆλŠ” κ³ μœ ν•œ 값을 κ°€μ Έμ•Ό ν•˜κ³  NULL값은 ν—ˆμš©λ˜μ§€ μ•ŠμœΌλ©° ν‚€λŠ” λ³€ν•˜μ§€ μ•Šμ•„μ•Ό ν•˜κ³  μ΅œλŒ€ν•œ 적은 수의 속성을 가진 것이 μ’‹λ‹€.

μ™Έλž˜ ν‚€(Foreign key)

  • λ‹€λ₯Έ λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έν‚€λ₯Ό κ·ΈλŒ€λ‘œ μ°Έμ‘°ν•˜λŠ” μ†μ„±μ˜ 집합이 μ™Έλž˜ ν‚€λ‹€.

λŒ€μ²΄ ν‚€(Alternate key)

  • λŒ€μ²΄ ν‚€λŠ” κΈ°λ³Έ ν‚€λ‘œ μ„ νƒλ˜μ§€ λͺ»ν•œ 후보 킀듀이닀.

무결성 μ œμ•½μ‘°κ±΄

  • λ°μ΄ν„°λ² μ΄μŠ€μ˜ 무결성(일관성)을 보μž₯ν•˜κΈ° μœ„ν•΄ μ €μž₯, μ‚­μ œ, μˆ˜μ • 등을 μ œμ•½ν•˜κΈ° μœ„ν•œ 쑰건을 λœ»ν•œλ‹€.

개체의 무결성

  • 각 λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έ ν‚€λ₯Ό κ΅¬μ„±ν•˜λŠ” 속성은 NULLμ΄λ‚˜ μ€‘λ³΅λœ 값을 κ°€μ§ˆ 수 μ—†λ‹€.

참쑰의 무결성

  • μ™Έλž˜ ν‚€ 값은 NULLμ΄λ‚˜ μ°Έμ‘°ν•˜λŠ” λ¦΄λ ˆμ΄μ…˜μ˜ κΈ°λ³Έ ν‚€ κ°’κ³Ό 동일해야 ν•œλ‹€.

도메인 무결성

  • μ†μ„±λ“€μ˜ 값은 μ •μ˜λœ 도메인에 μ†ν•œ 값이어야 ν•œλ‹€.

My SQL

  • κ°€μž₯ 많이 μ‚¬μš©λ˜λŠ” μ˜€ν”ˆμ†ŒμŠ€ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμž…λ‹ˆλ‹€.
  • 닀쀑 μ‚¬μš©μžμ™€ 닀쀑 μŠ€λ ˆλ“œλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.
  • C, C++, JAVA, PHP λ“± μ—¬λŸ¬ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄λ₯Ό μœ„ν•œ λ‹€μ–‘ν•œ APIλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • μœ λ‹‰μŠ€, λ¦¬λˆ…μŠ€, μœˆλ„μš° λ“± λ‹€μ–‘ν•œ μš΄μ˜μ²΄μ œμ—μ„œ μ‚¬μš© κ°€λŠ₯ν•˜λ©° μ›Ή κ°œλ°œμ— 자주 μ‚¬μš©λ©λ‹ˆλ‹€.
  • ν‘œμ€€ SQL ν˜•μ‹μ„ μ‚¬μš©ν•©λ‹ˆλ‹€.

1개의 λŒ“κΈ€

comment-user-thumbnail
2023λ…„ 7μ›” 28일

쒋은 κΈ€ κ°μ‚¬ν•©λ‹ˆλ‹€.

λ‹΅κΈ€ 달기