DrawingProcess
๋“œํ”„ DrawingProcess
DrawingProcess
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
ยซ   2025/07   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (971)
    • Profile & Branding (25)
      • Career (18)
    • IT Trends (254)
      • Conference, Faire (Experien.. (31)
      • News (187)
      • Youtube (19)
      • TED (8)
      • Web Page (2)
      • IT: Etc... (6)
    • Contents (98)
      • Book (67)
      • Lecture (31)
    • Project Process (95)
      • Ideation (0)
      • Study Report (35)
      • Challenge & Award (22)
      • 1Day1Process (5)
      • Making (5)
      • KRC-FTC (Team TC(5031, 5048.. (10)
      • GCP (GlobalCitizenProject) (15)
    • Study: ComputerScience(CS) (72)
      • CS: Basic (9)
      • CS: Database(SQL) (5)
      • CS: Network (14)
      • CS: OperatingSystem (3)
      • CS: Linux (39)
      • CS: Etc... (2)
    • Study: Software(SW) (95)
      • SW: Language (29)
      • SW: Algorithms (1)
      • SW: DataStructure & DesignP.. (1)
      • SW: Opensource (15)
      • SW: Error Bug Fix (43)
      • SW: Etc... (6)
    • Study: Artificial Intellige.. (150)
      • AI: Research (1)
      • AI: 2D Vision(Det, Seg, Tra.. (35)
      • AI: 3D Vision (71)
      • AI: MultiModal (3)
      • AI: SLAM (0)
      • AI: Light Weight(LW) (3)
      • AI: Data Pipeline (7)
      • AI: Machine Learning(ML) (1)
    • Study: Robotics(Robot) (33)
      • Robot: ROS(Robot Operating .. (9)
      • Robot: Positioning (8)
      • Robot: Planning & Control (7)
    • Study: DeveloperTools(DevTo.. (83)
      • DevTool: Git (12)
      • DevTool: CMake (13)
      • DevTool: NoSQL(Elastic, Mon.. (25)
      • DevTool: Container (17)
      • DevTool: IDE (11)
      • DevTool: CloudComputing (4)
    • ์ธ์ƒ์„ ์‚ด๋ฉด์„œ (65)
      • ๋‚˜์˜ ์ทจ๋ฏธ๋“ค (7)
      • ๋‚˜์˜ ์ƒ๊ฐ๋“ค (42)
      • ์—ฌํ–‰์„ ๋– ๋‚˜์ž~ (10)
      • ๋ถ„๊ธฐ๋ณ„ ํšŒ๊ณ  (6)

๊ฐœ๋ฐœ์ž ๋ช…์–ธ

โ€œ ๋งค์ฃผ ๋ชฉ์š”์ผ๋งˆ๋‹ค ๋‹น์‹ ์ด ํ•ญ์ƒ ํ•˜๋˜๋Œ€๋กœ ์‹ ๋ฐœ๋ˆ์„ ๋ฌถ์œผ๋ฉด ์‹ ๋ฐœ์ด ํญ๋ฐœํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด๋ผ.
์ปดํ“จํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์ผ์ด ํ•ญ์ƒ ์ผ์–ด๋‚˜๋Š”๋ฐ๋„ ์•„๋ฌด๋„ ๋ถˆํ‰ํ•  ์ƒ๊ฐ์„ ์•ˆ ํ•œ๋‹ค. โ€

- Jef Raskin

๋งฅ์˜ ์•„๋ฒ„์ง€ - ์• ํ”Œ์ปดํ“จํ„ฐ์˜ ๋งคํ‚จํ† ์‹œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋„

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
DrawingProcess

๋“œํ”„ DrawingProcess

Study: ComputerScience(CS)/CS: Database(SQL)

[DB] RDB ํŠธ๋žœ์žญ์…˜ (feat. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€)

2022. 11. 8. 12:51
๋ฐ˜์‘ํ˜•
๐Ÿ’ก ๋ณธ ๋ฌธ์„œ๋Š” 'RDB ํŠธ๋žœ์žญ์…˜'์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋†“์€ ๊ธ€์ž…๋‹ˆ๋‹ค.
RDB๋Š” ๊ด€๊ณ„๊ฐ€ ์ค‘์š”ํ•˜๊ธฐ์— ์ผ๋ จ์˜ ๊ณผ์ • ์ค‘ ์ผ๋ถ€๋งŒ ์„ฑ๊ณตํ•˜๋ฉด ์•ˆ๋˜๊ธฐ์— ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ด ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ ๋ฐ ๊ฒฉ๋ฆฌ์„ฑ์— ๋”ฐ๋ฅธ ๋ฌธ์ œ์  ๋“ฑ์„ ๋‹ค๋ฃจ๋ฉฐ ์‹ค์ œ ํŠธ๋žœ์žญ์…˜์„ ํ™œ์šฉํ•จ์— ๋„์›€๋ ๋งŒํ•œ ์ •๋ณด๋ฅผ ์ •๋ฆฌํ•˜์˜€์œผ๋‹ˆ ์ฐธ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

1. ํŠธ๋žœ์žญ์…˜

1.1 ํŠธ๋žœ์žญ์…˜์ด๋ž€?

RDB๋Š” ๊ด€๊ณ„๊ฐ€ ์ค‘์š”ํ•˜๊ธฐ์— ์ผ๋ จ์˜ ๊ณผ์ • ์ค‘ ์ผ๋ถ€๋งŒ ์„ฑ๊ณตํ•˜๋ฉด ์•ˆ๋˜๊ธฐ์— ๋ชจ๋‘ ์ ์šฉ(Commit)๋˜๊ฑฐ๋‚˜ ๋ชจ๋‘ ์ทจ์†Œ(Rollback)๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ๊ณผ์ •์„ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์ธ 'ํŠธ๋ Œ์žญ์…˜'์ด๋ผ๋Š” ๋‹จ์œ„๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ์˜ ๋ถ€์ •ํ•ฉ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŠธ๋ Œ์ ์…˜์˜ ์Šค์ผ€์ค„ ๊ด€๋ฆฌ๋ฅผ ์ž˜ ๋ชปํ•˜๋ฉด ๋ฐ๋“œ๋ฝ์— ๋น ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1.2 ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ

ACID (Atomicity, Consistency, Isolation, Durability)๋ผ ์นญํ•˜๋Š” 4๊ฐ€์ง€ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • Atomicity(์›์ž์„ฑ): ํŠธ๋žœ์žญ์…˜์€ ์ตœ์†Œ์˜ ์—…๋ฌด ๋‹จ์œ„๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ์ „ํ˜€ ์‹คํ–‰ํ•˜์ง€ ์•Š์•„์•ผ ํ•จ.
  • Consistency(์ผ๊ด€์„ ): ํŠธ๋žœ์žญ์…˜์ด ์ปค๋ฐ‹๋˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ฅผ ์ค€์ˆ˜ํ•ด์•ผ ํ•จ
  • Isolation(๊ฒฉ๋ฆฌ์„ฑ): ์‹คํ–‰ ์ค‘์ธ ํŠธ๋žœ์ ์…˜์˜ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํŠธ๋žœ์ ์…˜์ด ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Œ
  • Durability(์ง€์†์„ฑ): ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์‹œ์Šคํ…œ ์žฅ์• ์‹œ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒํƒœ๋กœ ๋ณต๊ตฌํ•จ.

ํŠธ๋žœ์žญ์…˜์€ ์›์ž์„ฑ, ์ผ๊ด€์„ฑ, ์ง€์†์„ฑ์„ ๋ณด์žฅํ•˜๋Š”๋ฐ ๋ฌธ์ œ๋Š” ๊ฒฉ๋ฆฌ์„ฑ์ž…๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜๊ฐ„์— ๊ฒฉ๋ฆฌ์„ฑ์„ ์™„๋ฒฝํžˆ ๋ณด์žฅํ•˜๋ ค๋ฉด ๋™์‹œ์— ์ฒ˜๋ฆฌ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ๊ฑฐ์˜ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰์„ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋ฉด ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋งค์šฐ ๋‚˜๋น ์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋กœ ์ธํ•ด ANSI ํ‘œ์ค€์€ ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ 4๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด ์ •์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

2.  ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(isolation level): ANSI ํ‘œ์ค€

2.1 ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€

ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level)์ด๋ž€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์ฒ˜๋ฆฌ๋  ๋•Œ, ํŠน์ • ํŠธ๋žœ์žญ์…˜์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ• ์ง€ ๋ง์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. 

๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ˆœ์„œ๋Œ€๋กœ READ UNCOMMITTED์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๊ฐ€์žฅ ๋‚ฎ๊ณ  SERIALIZABLE์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๊ฐ€์žฅ ๋†’์Šต๋‹ˆ๋‹ค.

READ UNCOMMITTED

  • ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ ์ปค๋ฐ‹ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผ ๊ฐ€๋Šฅ

READ COMMITTED

  • ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ COMMIT์ด ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋งŒ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • Update/Delete ๋ฅผ ํ•˜๊ธฐ ์ „์— ์ด์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ Undo ์˜์—ญ์— ๋ฐฑ์—…ํ•ด๋†“์•„ Commit ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•˜๋ฉด Undo ์˜์—ญ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ „๋‹ฌ
    • 1) ํŠธ๋žœ์žญ์…˜์˜ ๋กค๋ฐฑ ๋Œ€๋น„์šฉ
    • 2) ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋†’์€ ๋™์‹œ์„ฑ์„ ์ œ๊ณต
  • Oracle DBMS์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€

REPEATABLE READ

  • Undo ์˜์—ญ์— ๋ฐฑ์—…๋œ ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ๋™์ผํ•œ ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ๋Š” ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅ
  • MySQL์˜ InnoDB ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฉ๋ฆฌ ์ˆ˜์ค€

SERIALIZABLE

  • ํ•œ ํŠธ๋žœ์žญ์…˜์—์„œ ์ฝ๊ณ  ์“ฐ๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ๋Š” ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ
  • ๊ฐ€์žฅ ์—„๊ฒฉํ•œ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์œผ๋กœ ์™„๋ฒฝํ•œ ์ฝ๊ธฐ ์ผ๊ด€์„ฑ ๋ชจ๋“œ ์ œ๊ณต
  • ๋™์‹œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€๋ณด๋‹ค ํ˜„์ €ํžˆ ๋–จ์–ด์ง

2.2 ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์— ๋”ฐ๋ฅธ ๋ฌธ์ œ์ 

๊ฒฉ๋ฆฌ ์ˆ˜์ค€ DIRTY READ NON-REPEATABLE READ PHANTOM READ
READ UNCOMMITTED O O O
READ COMMITTED X O O
REPEATABLE READ X X O(InnoDB๋Š” ๋ฐœ์ƒ X)
SERIALIZABLE X X X

DIRTY READ

  • ํŠน์ • ํŠธ๋žœ์žญ์…˜์—์„œ ์ฒ˜๋ฆฌํ•œ ์ž‘์—…์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ํ˜„์ƒ

NON-REPEATABLE READ

  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜๋‚ด์—์„œ ๋™์ผํ•œ SELECT ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ ํ•ญ์ƒ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์žฅํ•ด์•ผ ํ•œ๋‹ค๋Š” "REPEATABLE READ" ์ •ํ•ฉ์„ฑ์— ์–ด๊ธ‹๋‚˜๊ฒŒ ๋จ

PHANTOM READ

  • ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์—์„œ ์ˆ˜ํ–‰ํ•œ ๋ณ€๊ฒฝ ์ž‘์—…์— ์˜ํ•ด ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋ณด์˜€๋‹ค๊ฐ€ ์•ˆ๋ณด์˜€๋‹ค๊ฐ€ ํ•˜๋Š” ํ˜„์ƒ

 

์ฐธ๊ณ 

  • [book] Real MySQL: http://www.yes24.com/Product/Goods/6960931
  • [Tistory] [MySQL] - ํŠธ๋žœ์žญ์…˜์˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Isolation level): https://zzang9ha.tistory.com/381
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Study: ComputerScience(CS) > CS: Database(SQL)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[DB] MySQL ์•„ํ‚คํ…์ฒ˜ (feat. Real MySQL)  (2) 2022.11.18
[DB] DB ๋ฐ์ดํ„ฐ dumpํ•˜๋Š” ๋ฐฉ๋ฒ• : MySQL ๋ฐ์ดํ„ฐ๋ฅผ export, import ํ•˜์ž! (feat. mysqldump)  (0) 2022.09.09
[DB] ์ปค๋„ฅ์…˜ ํ’€(DBCP)์ด๋ž€? DB Connection Pool  (0) 2022.08.22
[DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ์–ด์ •๋ฆฌ  (0) 2022.04.16
    'Study: ComputerScience(CS)/CS: Database(SQL)' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [DB] MySQL ์•„ํ‚คํ…์ฒ˜ (feat. Real MySQL)
    • [DB] DB ๋ฐ์ดํ„ฐ dumpํ•˜๋Š” ๋ฐฉ๋ฒ• : MySQL ๋ฐ์ดํ„ฐ๋ฅผ export, import ํ•˜์ž! (feat. mysqldump)
    • [DB] ์ปค๋„ฅ์…˜ ํ’€(DBCP)์ด๋ž€? DB Connection Pool
    • [DB] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ์–ด์ •๋ฆฌ
    DrawingProcess
    DrawingProcess
    ๊ณผ์ •์„ ๊ทธ๋ฆฌ์ž!

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”