Skip to content

Latest commit

Β 

History

History
86 lines (51 loc) Β· 4.25 KB

Database.md

File metadata and controls

86 lines (51 loc) Β· 4.25 KB

λ°μ΄ν„°λ² μ΄μŠ€

λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ‚¬μš© 이유

λ°μ΄ν„°λ² μ΄μŠ€ 쑴재 μ΄μ „μ—λŠ” 파일 μ‹œμŠ€ν…œμ„ μ΄μš©ν•˜μ—¬ 데이터λ₯Ό κ΄€λ¦¬ν•˜μ˜€λ‹€. (ν˜„μž¬λ„ λΆ€λΆ„μ μœΌλ‘œ μ‚¬μš©μ€‘)

파일 μ‹œμŠ€ν…œ

파일 μ‹œμŠ€ν…œμ΄λž€ μ»΄ν“¨ν„°μ—μ„œ νŒŒμΌμ΄λ‚˜ 자료λ₯Ό μ‰½κ²Œ 발견 및 μ ‘κ·Όν•  수 μžˆλ„λ‘ 보관 λ˜λŠ” μ‘°μ§ν•˜λŠ” 체제λ₯Ό κ°€λ¦¬ν‚€λŠ” 말이닀.

λŒ€λΆ€λΆ„μ˜ νŒŒμΌμ‹œμŠ€ν…œμ˜ 경우 각 μ‘μš© ν”„λ‘œκ·Έλž¨λ§ˆλ‹€ ν•˜λ‚˜μ˜ 데이터 νŒŒμΌμ„ μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ €μž₯ν•œλ‹€. μ΄λ‘œλΆ€ν„° λ°œμƒν•  수 μžˆλŠ” 문제점이 2κ°€μ§€ μžˆλ‹€.

  1. λ°μ΄ν„°μ˜ 쒅속 문제 (Data Depedency)

μ‘μš© ν”„λ‘œκ·Έλž¨κ³Ό 데이터 μ‚¬μ΄μ˜ μƒν˜Έ 의쑴 κ΄€κ³„λ‘œ 인해 데이터λ₯Ό μ €μž₯ν•œ 파일 ꡬ쑰가 λ³€κ²½λ˜λ©΄ μ‘μš© ν”„λ‘œκ·Έλž¨λ„ 이에 맞게 λ³€κ²½ν•΄μ•Ό ν•œλ‹€.

  1. λ°μ΄ν„°μ˜ 쀑볡 문제 (Data Redundancy)

각 μ‘μš©ν”„λ‘œκ·Έλž¨λ§ˆλ‹€ λ…λ¦½λœ 데이터 νŒŒμΌμ„ κ°–κΈ° λ•Œλ¬Έμ— ν•œ μ‹œμŠ€ν…œμ˜ 데이터가 쀑볡 μ €μž₯λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•œλ‹€.

파일 μ‹œμŠ€ν…œμ˜ 데이터 μ€‘λ³΅μœΌλ‘œ μΈν•œ λ¬Έμ œμ μ€ 크게 4κ°€μ§€κ°€ μžˆλ‹€.

  1. λ°μ΄ν„°μ˜ 일관성

데이터가 μ€‘λ³΅λ˜λ©΄ λͺ¨λ‘ ν•˜λ‚˜μ˜ μ‚¬μ‹€λ§Œμ„ λ‚˜νƒ€λ‚΄λ„λ‘ 일관성을 μœ μ§€ν•˜λŠ”κ²Œ μ–΄λ €μ›Œ λΉ„νš¨μœ¨μ μ΄λ‹€.

  1. λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„±

데이터가 μ€‘λ³΅λ˜λ©΄ λͺ¨λ‘ λ˜‘κ°™μ€ μˆ˜μ€€μ˜ λ³΄μ•ˆμ„ μœ μ§€ν•˜κΈ° μ–΄λ ΅λ‹€. (μ—¬κΈ°μ„œ λ³΄μ•ˆμ€ μΈκ°€λ˜μ§€ μ•Šμ€ 변경에 λŒ€ν•œ λ°μ΄ν„°μ˜ 무결성 μœ μ§€λ₯Ό λ§ν•œλ‹€)

  1. λ°μ΄ν„°μ˜ κ²½μ œμ„±

데이터가 μ€‘λ³΅λ˜λ©΄ 좔가적인 μ €μž₯곡간이 ν•„μš”ν•΄ λΉ„μš©μ΄ λŠ˜μ–΄λ‚œλ‹€

  1. λ°μ΄ν„°μ˜ νš¨μœ¨μ„±

ν•˜λ‚˜μ˜ 데이터 νŒŒμΌμ„ μ—¬λŸ¬ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ μ‚¬μš©ν•˜λ”λΌλ„, ν•˜λ‚˜μ˜ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ 데이터 νŒŒμΌμ— μ ‘κ·Όν•˜λŠ” λ™μ•ˆμ— λ‹€λ₯Έ μ‘μš© ν”„λ‘œκ·Έλž¨μ€ ν•΄λ‹Ή 데이터 νŒŒμΌμ— μ ‘κ·Όν•  수 μ—†λ‹€.

파일 μ‹œμŠ€ν…œμ˜ 단점을 κ·Ήλ³΅ν•˜μ—¬ μ—¬λŸ¬ μ‘μš©ν”„λ‘œκ·Έλž¨μ—μ„œ 데이터λ₯Ό κ³΅μœ ν•˜κΈ° μœ„ν•΄ λ°μ΄ν„°λ² μ΄μŠ€κ°€ λ“±μž₯ν•˜κ²Œ λ˜μ—ˆλ‹€.

λ°μ΄ν„°λ² μ΄μŠ€

λ°μ΄ν„°λ² μ΄μŠ€λž€ νŠΉμ • 데이터 쑰직을 μ—¬λŸ¬ μ‘μš© ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•˜κΈ° μœ„ν•΄, μ΅œμ†Œν•œμ˜ μ€‘λ³΅μœΌλ‘œ 톡합(intergrated), μ €μž₯(stored)된 운영(operation) λ°μ΄ν„°μ˜ 집합이닀.

파일 μ‹œμŠ€ν…œκ³Ό λ°μ΄ν„°λ² μ΄μŠ€ 비ꡐ

파일 μ‹œμŠ€ν…œ λ°μ΄ν„°λ² μ΄μŠ€
데이터λ₯Ό μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•˜μ§€ λͺ»ν•œλ‹€ 데이터λ₯Ό μ—¬λŸ¬ ν”„λ‘œκ·Έλž¨μ΄ κ³΅μœ ν•  수 μžˆλ‹€
λ°μ΄ν„°μ˜ 쀑볡이 λ°œμƒν•œλ‹€ λ°μ΄ν„°μ˜ 쀑볡을 μ΅œμ†Œν™”ν•œλ‹€
데이터 무결성 보μž₯이 μ–΄λ ΅λ‹€ 데이터 무결성을 보μž₯ν•œλ‹€

νŠΉμ§•

  1. λ°μ΄ν„°μ˜ 독립성

    • 물리적인 독립성
      • λ°μ΄ν„°λ² μ΄μŠ€μ˜ ꡬ쑰λ₯Ό λ³€κ²½(크기 λ³€κ²½, 파일 μΆ”κ°€)ν•˜λ”λΌλ„ κ΄€λ ¨λœ μ‘μš© ν”„λ‘œκ·Έλž¨μ„ μˆ˜μ •ν•  ν•„μš”μ—†λ‹€.
    • 논리적인 독립성
      • λ°μ΄ν„°λ² μ΄μŠ€λŠ” 논리적인 ꡬ쑰둜 λ‹€μ–‘ν•œ μ‘μš© ν”„λ‘œκ·Έλž¨μ˜ 논리적인 μš”κ΅¬λ₯Ό λ§Œμ‘±μ‹œν‚¨λ‹€.
  2. λ°μ΄ν„°μ˜ 무결성 데이터 μœ νš¨μ„± κ²€μ‚¬λΌλŠ” 잘λͺ»λœ λ°μ΄ν„°μ˜ λ°œμƒ κ°€λŠ₯성을 λ°©μ§€ν•˜λŠ” κΈ°λŠ₯을 톡해 λ°μ΄ν„°μ˜ 무결성을 κ΅¬ν˜„ν•œλ‹€.

  3. λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„±

λ°μ΄ν„°μ˜ λ³΄μ•ˆμ„ μœ„ν•΄ μΈκ°€λœ μ‚¬μš©μžλ“€λ§Œ λ°μ΄ν„°λ² μ΄μŠ€, λ°μ΄ν„°λ² μ΄μŠ€ 속 μžμ›μ— μ ‘κ·Όν•  수 μžˆλ„λ‘ 계정 관리 및 μ ‘κ·Ό κΆŒν•œμ„ μ„€μ •ν•œλ‹€.

  1. λ°μ΄ν„°μ˜ 일관성

μ„œλ‘œ μ—°κ΄€λœ 정보λ₯Ό 논리적인 ꡬ쑰둜 κ΄€λ¦¬ν•œλ‹€. 이둜써 일뢀 λ°μ΄ν„°λ§Œ λ³€κ²½λ˜μ–΄ λ‚˜λ¨Έμ§€ 데이터와 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 경우λ₯Ό λ°°μ œν•  수 μžˆλ‹€.

  1. 데이터 쀑볡 μ΅œμ†Œν™”

데이터λ₯Ό ν†΅ν•©ν•΄μ„œ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— 데이터 쀑볡과 이와 νŒŒμƒλœ 문제λ₯Ό ν•΄κ²°ν•  수 μžˆλ‹€.

key

keyλž€ κ²€μƒ‰μ΄λ‚˜ μ •λ ¬μ‹œμ— Tuple을 ꡬ뢄할 수 μžˆλŠ” 기쀀이 λ˜λŠ” Attributeλ₯Ό μ˜λ―Έν•œλ‹€.

  • μŠˆνΌν‚€ = μœ μΌμ„± λ§Œμ‘±ν•˜λŠ” ν‚€

  • 후보킀 = μŠˆνΌν‚€ + μ΅œμ†Œμ„± λ§Œμ‘±ν•˜λŠ” ν‚€

  • κΈ°λ³Έν‚€ = 후보킀 쀑 μ„ νƒλœ ν‚€ = μœ μΌμ„± + μ΅œμ†Œμ„± + not null = νŠΉμ • λ ˆμ½”λ“œ ꡬ뢄가λŠ₯

  • λŒ€μ²΄ν‚€ = 후보킀 - κΈ°λ³Έν‚€ = λ‚˜λ¨Έμ§€ ν‚€λ“€

  • 볡합킀 = ν•œκ°œ μ΄μƒμ˜ 속성을 ν¬ν•¨ν•˜λŠ” ν‚€

  • μ™Έλž˜ν‚€ = ν•œν…Œμ΄λΈ”μ—μ„œ λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ λ ˆμ½”λ“œλ₯Ό μ°Έμ‘°ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” ν‚€