πŸš¦λ°μ΄ν„°λ² μ΄μŠ€

may_soouuΒ·2020λ…„ 9μ›” 3일
0

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

λͺ©λ‘ 보기
2/2

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

데이터λ₯Ό μ €μž₯ 및 λ³΄μ‘΄ν•˜λŠ” μ‹œμŠ€ν…œ

🌈 DBλ₯Ό μ™œ μ‚¬μš©ν•΄?????
: 데이터λ₯Ό μž₯κΈ°κ°„ λ™μ•ˆ μ €μž₯ν•˜κ³  λ³΄κ΄€ν•˜κΈ° μœ„ν•΄μ„œ μ‚¬μš©

 1) κ΄€κ³„ν˜•λ°μ΄ν„°λ² μ΄μŠ€(RDBMS)
 2) λΉ„κ΄€κ³„ν˜•λ°μ΄ν„°λ² μ΄μŠ€(NoSQL)
 

2. κ΄€κ³„ν˜•λ°μ΄ν„°λ² μ΄μŠ€

데이터λ₯Ό μ„œλ‘œ μƒν˜Έκ΄€λ €μ„±μ„ 가진 ν˜•νƒœλ‘œ ν‘œν˜„ν•œ 데이터

  • λͺ¨λ“  데이터듀은 ν…Œμ΄λΈ”λ‘œ κ΅¬μ„±λœλ‹€
  • 각 λ‘œμš°λŠ” 각자의 고유 ν‚€κ°€ μžˆλ‹€(κ³ μœ ν‚€ = Primary Key)
    이 PKλ₯Ό 톡해 ν•΄λ‹Ή 둜우λ₯Ό μ°Ύκ±°λ‚˜ μΈμš©ν•˜κ²Œλœλ‹€

ν…Œμ΄λΈ” μ—°κ²° 방법 3가지
1) one to one
2) one to many
3) many to many

2-1) one to one

ν…Œμ΄λΈ” A의 λ‘œμš°μ™€ ν…Œμ΄λΈ”B의 λ‘œμš°κ°€ μ •ν™•νžˆ μΌλŒ€μΌ 맀칭이 λ˜λŠ” 관계
ex. 이름 : 주민번호

2-2) one to many

ν…Œμ΄λΈ”A의 λ‘œμš°κ°€ ν…Œμ΄λΈ”B의 μ—¬λŸ¬ λ‘œμš°μ™€ 연결이 λ˜λŠ” 관계
ex. λΈ”λ‘œκ·Έ : 포슀트

2-3) many to many

ν…Œμ΄λΈ”A의 μ—¬λŸ¬ λ‘œμš°κ°€ ν…Œμ΄λΈ” B의 μ—¬λŸ¬ λ‘œμš°μ™€ 연결이 λ˜λŠ” 관계
ex. μž‘κ°€ : μ±…

μ΄λ ‡κ²Œ λ‚˜λˆ μ§„ μ—¬λŸ¬ ν…Œμ΄λΈ”μ„ μ—°κ²°ν•˜λŠ” 방법이 μ—¬λŸ¬κ°€μ§€ μžˆλ‹€

🌝 κ·Έλ ‡λ‹€λ©΄ !
ν…Œμ΄λΈ”μ€ μ™œ λ‚˜λˆ„μ–΄μ„œ μ €μž₯ν•˜κ³ , μ™œ μ—°κ²°ν• κΉŒ?

  • ν•˜λ‚˜μ˜ ν…Œμ΄λΈ”μ— μ „λΆ€ λ‹΄μœΌλ©΄ λ™μΌν•œ 정보듀이 μ €μž₯λ˜μ–΄ λΆˆν•„μš”ν•œ μš©λŸ‰ 차지λ₯Ό ν•œλ‹€
  • 잘λͺ»λœ 데이터가 μ €μž₯될 κ°€λŠ₯성이 λ†’λ‹€

κ·Έλž˜μ„œ!!
ν…Œμ΄λΈ”μ„ λ‚˜λˆ„κ³  μ—°κ²°ν•˜κ²Œ 되면,

  • μ€‘λ³΅λœ 데이터λ₯Ό μ €μž₯ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ’€ 더 λ””μŠ€ν¬λ₯Ό 효율적으둜 μ“Έ 수 있으며
  • μ„œλ‘œ 같은 데이터라도 λΆ€λΆ„μ μœΌλ‘œ ν‹€λ¦° 데이터가 μƒκΈ°λŠ” λ¬Έμ œκ°€ 없어진닀
    이것을 μ •κ·œν™”λΌκ³  ν•œλ‹€

ACID

(Atomicity, Consistency, Isolation, Durability)

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

  • νŠΈλž™μ μ…˜κ³Ό κ΄€λ ¨λœ μž‘μ—…λ“€μ΄ λΆ€λΆ„μ μœΌλ‘œ μ‹€ν–‰λ˜λ‹€κ°€ μ€‘λ‹¨λ˜μ§€ μ•ŠλŠ” 것을 보μž₯ν•œλ‹€
    μž‘μ—… λ‹¨μœ„λ₯Ό μΌλΆ€λΆ„λ§Œ μ‹€ν–‰ν•˜μ§€ μ•ŠλŠ”λ‹€

2. 일관성(Consistency)

  • νŠΈλžœμ μ…˜μ΄ μ‹€ν–‰λ˜λ©΄ 일관적인 DBμƒνƒœλ‘œ μœ μ§€ν•˜λŠ” 것이닀.

3. 고립성(Isolation)

  • νŠΈλžœμž­μ…˜μ„ μˆ˜ν–‰ μ‹œ λ‹€λ₯Έ νŠΈλžœμž­μ…˜μ˜ μ—°μ‚° μž‘μ—…μ΄ 끼어듀지 λͺ»ν•˜λ„둝 보μž₯ν•˜λŠ” 것.
  • νŠΈλžœμž­μ…˜ 밖에 μžˆλŠ” μ–΄λ–€ 연산도 쀑간 λ‹¨κ³„μ˜ 데이터λ₯Ό λ³Ό 수 μ—†λ‹€

4. 지속성(Durability)

  • μ„±κ³΅ν•œ νŠΈλžœμž­μ…˜μ€ μ˜μ›νžˆ λ°˜μ˜λ˜μ–΄μ•Ό ν•œλ‹€
  • μ‹œμŠ€ν…œ 문제, DB 일관성 체크 등을 ν•˜λ”λΌλ„ μœ μ§€λ˜μ–΄μ•Ό 함을 μ˜λ―Έν•œλ‹€

νŠΈλ Œμ μ…˜

  • 일련의 μž‘μ—…λ“€μ„ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ μœ λ‹›μœΌλ‘œ μ‹€ν–‰ν•˜λŠ” 것이닀

  • νŠΈλžœμž­μ…˜μ€ 일련의 μž‘μ—…λ“€μ΄ 마치 ν•˜λ‚˜μ˜ μž‘μ—…μ²˜λŸΌ μ·¨κΈ‰λ˜μ–΄μ„œ λͺ¨λ‘ λ‹€ μ„±κ³΅ν•˜κ±°λ‚˜ μ•„λ‹ˆλ©΄ λͺ¨λ‘ λ‹€ μ‹€νŒ¨ν•˜λŠ”κ±Έ 이야기 ν•œλ‹€.

  • 처리λ₯Ό μ§„ν–‰ν•˜λ‹€κ°€ μ€‘λ‹¨λ˜λ©΄ λ‘€λ°± ν›„ λ‹€μ‹œ 진행 / μ™„λ£Œλ˜λ©΄ 컀밋

SQL(RDBMS) VS NoSQL

SQL

  • μž₯점:
    • 데이터λ₯Ό 더 효율적이고 μ²΄κ³„μ μœΌλ‘œ μ €μž₯ 및 관리가 κ°€λŠ₯ν•˜λ‹€
    • 미리 μ €μž₯ν•˜λŠ” λ°μ΄ν„°λ“€μ˜ ꡬ쑰(ν…Œμ΄λΈ” μŠ€ν‚€λ§ˆ)λ₯Ό μ •μ˜ ν•¨μœΌλ‘œ λ°μ΄ν„°μ˜ 완전성이 보μž₯λœλ‹€.
    • νŠΈλžœμž­μ…˜(transaction)
    • μ •ν˜•ν™”λœ 데이터듀 그리고 λ°μ΄ν„°μ˜ 완전성이 μ€‘μš”ν•œ 데이터듀을 μ €μž₯ν•˜λŠ”λ° μœ λ¦¬ν•˜λ‹€.
      예) μ „μžμƒκ±°λž˜ 정보. 은행 κ³„μ’Œ 정보, 거래 정보 λ“±λ“±.
  • 단점:
    • ν…Œμ΄λΈ”μ„ 미리 μ •μ˜ν•΄μ•Ό ν•¨μœΌλ‘œ ν…Œμ΄λΈ” ꡬ쑰 λ³€ν™” 등에 덜 μœ μ—°ν•œλ‹€.
    • ν™•μž₯성이 쉽지 μ•Šλ‹€.
      • ν…Œμ΄λΈ” ꡬ쑰가 미리 μ •μ˜ λ˜μ–΄ μžˆλ‹€λ³΄λ‹ˆ λ‹¨μˆœνžˆ μ„œλ²„λ₯Ό λŠ˜λ¦¬λŠ”κ²ƒ 만으둜 ν™•μž₯ν•˜κΈ°κ°€ 쉽지 μ•Šκ³  μ„œλ²„μ˜ μ„±λŠ₯ μžμ²΄λ„ λ†’μ—¬μ•Ό ν•œλ‹€.
      • μ„œλ²„λ₯Ό λŠ˜λ €μ„œ λΆ„μ‚° μ €μž₯ ν•˜λŠ”κ²ƒλ„ 쉽지 μ•Šλ‹€.

NoSQL

  • μž₯점:
    • ν…Œμ΄ν„° ꡬ쑰λ₯Ό 미리 μ •μ˜ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ°μ΄ν„°μ˜ ꡬ쑰 변화에 μœ μ—°ν•˜λ‹€.
    • ν™•μž₯ν•˜κΈ°κ°€ 비ꡐ적 쉽닀 (κ·Έλƒ₯ μ„œλ²„ 수λ₯Ό 늘리면 됨(scale out))
    • λ°©λŒ€ν•œ μ–‘μ˜ 데이터λ₯Ό μ €μž₯ν•˜λŠ”λ° μœ λ¦¬ν•˜λ‹€.
    • 주둜 λΉ„μ •ν˜•ν™” 데이터 그리고 완전성이 μƒλŒ€μ μœΌλ‘œ 덜 μœ λ¦¬ν•œ 데이터λ₯Ό μ €μž₯ν•˜λŠ”λ° μœ λ¦¬ν•˜λ‹€.
      예) 둜그 데이타
  • 단점:
    • λ°μ΄ν„°μ˜ 완전성이 덜 보μž₯λœλ‹€.
    • νŠΈλžœμž­μ…˜μ΄ μ•ˆλ˜κ±°λ‚˜ 비ꡐ적 λΆˆμ•ˆμ •ν•˜λ‹€.
profile
back-end 개발자

0개의 λŒ“κΈ€