TIL 5. Database

rachel's blogΒ·2021λ…„ 10μ›” 12일
1

TIL

λͺ©λ‘ 보기
5/14
post-thumbnail

1. Database(DB)

πŸ’‘ Data?

  • 컴퓨터 μ•ˆμ— κΈ°λ‘λ˜μ–΄ μžˆλŠ” 숫자(0,1,0,1..)
  • "μ •λ¦¬λœ" λ°μ΄ν„°λ“€μ˜ 집합을 λ°μ΄ν„°λ² μ΄μŠ€λΌκ³  함

πŸ’‘ Web System λ‚΄μ˜ λ°μ΄ν„°λ² μ΄μŠ€

λͺ¨λ“  데이터λ₯Ό μ €μž₯ν•˜κ³ , ν•„μš”ν•œ 데이터λ₯Ό μš”μ²­ν–ˆμ„ λ•Œ κ·Έ λ°μ΄ν„°λ§Œ μ‘λ‹΅ν•΄μ„œ 보내 쀄 수 μžˆλŠ” μ‹œμŠ€ν…œμ„ μ˜λ―Έν•œλ‹€. (μ €μž₯μ†Œ λŠλ‚Œ)

2. DBMS

Database Management System, DBMS
λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄
μ €μž₯μž₯치 λ‚΄ μ €μž₯된 데이터 집합인 DBμ™€λŠ” λ‹€λ₯Έ κ°œλ…

ν•˜λ“œμ— μ €μž₯λ˜μ–΄μžˆλŠ” DBλ₯Ό κΊΌλ‚΄μ™€μ£ΌλŠ” 역할을 ν•˜λŠ” μ†Œν”„νŠΈμ›¨μ–΄~

πŸ’‘ Database와 DBMSλ₯Ό μ‚¬μš©ν•˜λŠ” 이유
1. 데이터 보쑴
ν”„λ‘œκ·Έλž¨ μ‹€ν–‰μ‹œ λ©”λͺ¨λ¦¬λ‘œ μ˜¬λΌκ°€λŠ”λ°, λ©”λͺ¨λ¦¬λŠ” μΌμ‹œμ μΈ μ €μž₯μ†Œμ΄λ‹€.
전원 ON/OFFν•˜λ©΄ 데이터가 사라져 버린닀.(νœ˜λ°œμ„±)
λ”°λΌμ„œ DB에 μ €μž₯ν•΄μ„œ λΉ„νœ˜λ°œμ„± λ©”λͺ¨λ¦¬λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•¨!
2. 체계적 관리
λ°©λŒ€ν•œ μ–‘μ˜ Dataλ₯Ό κΊΌλ‚΄μ™€μ„œ κ°€κ³΅ν•˜κΈ° μœ„ν•΄μ„œ μ •λ¦¬ν•΄λ‘λŠ” λͺ©μ μ΄λ‹€.
λ”°λΌμ„œ, μ‚¬μš©μžμΉœν™”μ μ΄κ²Œ 데이터λ₯Ό λΆˆλŸ¬μ˜€λŠ” μž₯점이 μžˆλ‹€.
3. 생산성
데이터λ₯Ό 읽고, μ“°κ³ , μΆ”κ°€, μ‚­μ œν•˜λŠ” λͺ¨λ“  κΈ°λŠ₯을 μ œκ³΅ν•΄μ€€λ‹€.
λ”°λΌμ„œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©ν•˜κΈ°λ§Œ ν•˜λ©΄ DBλ₯Ό κ΄€λ¦¬ν•˜κΈ° νŽΈν•˜λ‹€.
πŸ‘‡
μ‹œμŠ€ν…œ κ°œλ°œκ³Όμ •μ—μ„œμ˜ 생산성 ν–₯상
(Read, Create, Delete, Update)

  • 볡수의 μœ μ € μš”μ²­ λŒ€μ‘
  • λŒ€μš©λŸ‰ 데이터 μ €μž₯
  • 고속 검색
  • κΈ°λŠ₯ ν™•μž₯의 μœ μ—°ν•¨

5. μ‹ λ’°μ„±
ν•˜λ“œμ›¨μ–΄ μ—¬λŸ¬ λŒ€λ‘œ κ΅¬μ„±ν•˜μ—¬ 신뒰성을 λ†’μ΄λŠ” λ™μ‹œμ— μ„±λŠ₯ ν–₯상 도λͺ¨

  • ν™•μž₯μ„±
  • λΆ€ν•˜ λΆ„μ‚°
  • 데이터 μΆ”μΆœ
  • 데이터 λ¦¬μŠ€ν† μ–΄
    => 생산성 ν–₯상과 κΈ°λŠ₯μ„±, μ‹ λ’°μ„± 확보에 μžˆλ‹€.

3. RDBMS

κ΄€κ³„ν˜• 데이터 베이슀

  • ν–‰κ³Ό 열을 가지고 ν‘œ ν˜•μ‹ 데이터λ₯Ό μ €μžν•˜λŠ” ν˜•νƒœμ˜ λ°μ΄ν„°λ² μ΄μŠ€
  • ν‘œ ν˜•μ‹ : 2차원 데이터(μ—‘μ…€ μ‹œνŠΈ)
  • κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œλŠ” ν‘œλ₯Ό μ €μž₯ν•΄μ„œ 각각의 ν…Œμ΄λΈ”μ— naming을 ν•΄μ„œ κ΄€λ¦¬ν•œλ‹€.
  • MySQL,Oracle

3-1.

1. λͺ¨λ“  데이터듀은 2차원 ν…Œμ΄λΈ”λ‘œ ν‘œν˜„ν•  수 μžˆλ‹€.

λ°μ΄ν„°μ˜ μ’…λ₯˜μ™€ νƒ€μž…μ„ μ§€μ •ν•˜κ³  ν…Œμ΄λΈ”μ— λŒ€μž…ν•œλ‹€.

  • Column(μ—΄) : μ»¬λŸΌμ€ ν…Œμ΄λΈ”μ˜ 각 ν•­λͺ©μ„ 의미 (ex. id, μ±… 제λͺ©, μž‘κ°€, μΆœνŒμ‚¬, 가격)
  • Row(ν–‰): 각 ν•­λͺ©λ“€μ˜ μ‹€μ œ κ°’
    (ex. 갈맀기의 꿈, λ¦¬μ²˜λ“œ 바크, λ‚˜λ¬΄μ˜†μ˜μž, 11,520)

2. ν…Œμ΄λΈ”μ˜ 각 ν–‰(row)λŠ” 고유 ν‚€(Primary kEY)κ°€ μžˆλ‹€.

  • 각 rowλŠ” μ€‘λ³΅λ˜μ§€ μ•ŠλŠ” μœ μΌν•œ λ°μ΄ν„°λ‘œ κ³ μœ ν•œ 번호λ₯Ό 가지고 μžˆμ–΄ 데이터 μ‹λ³„μ‹œ μœ μš©ν•˜λ‹€.

3. 각각의 ν…Œμ΄λΈ”μ€ μ„œλ‘œ μƒν˜Έ 관련성을 가지고 μ„œλ‘œ 연결될 수 μžˆλ‹€.

  • "κ΄€κ³„ν˜•" λ°μ΄ν„°λ² μ΄μŠ€λΌλŠ” μ˜λ―ΈλŠ” DBλ₯Ό κ΅¬μ„±ν•˜κ³  μžˆλŠ” ν…Œμ΄λΈ”μ΄ μ„œλ‘œ μƒν˜Έκ΄€λ ¨μ„±μ„ 가지고 μ—°κ²°λœλ‹€.
    -각각의 ν…Œμ΄λΈ”λ“€μ€ μ™„μ „νžˆ 독립적이지 μ•Šκ³ ,
    ν…Œμ΄λΈ” A와 ν…Œμ΄λΈ” Bκ°€ μ„œλ‘œ μ—°κ΄€λœ μ‚¬μ΄λΌλŠ” 뜻
    (독립적일 μˆ˜λ„ 있음 : νšŒμ›κ°€μž…μ‹œ 성별정보?)

3-2. κ΄€κ³„μ˜ μœ ν˜•

One to One

: ν•˜λ‚˜μ˜ A(User) ν…Œμ΄λΈ” λ°μ΄ν„°λŠ” μ˜€λ‘œμ§€ ν•˜λ‚˜μ˜ B ν…Œμ΄λΈ” 데이터(Identification num)와 μ—°κ²°
primary key : user-id
foreign key(μ°Έμ‘°ν‚€) : user-id
=> Identification numbers ν…Œμ΄λΈ”μ˜ user-id μ»¬λŸΌμ€ Users ν…Œμ΄λΈ”μ˜ id(pk)λ₯Ό μ°Έμ‘°ν•œλ‹€.

One to Many

: ν•˜λ‚˜μ˜ A ν…Œμ΄λΈ” λ°μ΄ν„°λŠ” B ν…Œμ΄λΈ”μ˜ μ—¬λŸ¬λ°μ΄ν„°μ™€ μ—°κ²°

Petsν…Œμ΄λΈ”μ˜ user-id μ»¬λŸΌμ€ Users ν…Œμ΄λΈ”μ˜ id(pk)λ₯Ό μ°Έμ‘°ν•œλ‹€.

Many to Many

: ν•˜λ‚˜μ˜ A ν…Œμ΄λΈ” λ°μ΄ν„°λŠ” B ν…Œμ΄λΈ”μ˜ μ—¬λŸ¬ 데이터와 μ—°κ²°

πŸ‘‰ ν•œ μ»¬λŸΌμ—λŠ” ν•˜λ‚˜μ˜ κ°’λ§Œ λ“€μ–΄κ°€μ•Ό ν•œλ‹€.
λ”°λΌμ„œ, μ•„λž˜μ™€ 같이 ν…Œμ΄λΈ”μ„ λ³€κ²½ν•΄λ³΄μž

❗ 문제점이 λ°œμƒν•œλ‹€!!
λ°μ΄ν„°μ˜ 쀑볡 : μ‹ λ’°μ„± μ €ν•˜

이λ₯Ό ν•΄κ²°ν•˜κ³ μž μ€‘κ°„ν…Œμ΄λΈ”μ΄ λ‚˜μ˜¨λ‹€.

πŸ‘‡

  • ν•œμ»¬λŸΌμ— ν•œ 데이터 쑴재
  • μ€‘λ³΅λ˜μ§€ μ•ŠμŒ
  • μ€‘κ°„ν…Œμ΄λΈ”λ§ŒμœΌλ‘œλ„ 데이터 식별이 κ°€λŠ₯ν•˜λ‹€
  • ν…Œμ΄λΈ” authors와 ν…Œμ΄λΈ” booksλŠ” μ„œλ‘œ λ‹€λŒ€λ‹€ 관계이닀.

3-3. ACID

Atomicity(μ›μžμ„±)

Consistency(일관성)

Isolation(고립성)

Durability(지속성)

πŸ“ŒνŠΈλžœμž­μ…˜(Transaction)

  • ACIDλ₯Ό 보μž₯ν•˜λ©΄μ„œ 일련의 μž‘μ—…μ΄ ν•˜λ‚˜μ˜ μž‘μ—…μ²˜λŸΌ μ·¨κΈ‰λ˜μ–΄ λͺ¨λ‘ 성곡 OR λͺ¨λ‘ μ‹€νŒ¨ν•˜λŠ” 것
profile
λΈ”λ‘œκ·Έ 이전 : https://rachelslab.tistory.com/

0개의 λŒ“κΈ€