Skip to content

Latest commit

ย 

History

History
343 lines (181 loc) ยท 14.3 KB

Database.md

File metadata and controls

343 lines (181 loc) ยท 14.3 KB

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์‚ฌ์šฉ ์ด์œ 
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์‚ฌ์šฉ ์ด์œ 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์กด์žฌ ์ด์ „์—๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜์˜€๋‹ค. (ํ˜„์žฌ๋„ ๋ถ€๋ถ„์ ์œผ๋กœ ์‚ฌ์šฉ์ค‘)

## ํŒŒ์ผ ์‹œ์Šคํ…œ

ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋ž€ ์ปดํ“จํ„ฐ์—์„œย ํŒŒ์ผ์ด๋‚˜ ์ž๋ฃŒ๋ฅผ ์‰ฝ๊ฒŒ ๋ฐœ๊ฒฌ ๋ฐ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด๊ด€ ๋˜๋Š” ์กฐ์งํ•˜๋Š” ์ฒด์ œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ง์ด๋‹ค

  • ํฌ๊ธฐ๊ฐ€ ์ผ์ •ํ•œ ๋ธ”๋ก๋“ค์˜ ๋ฐฐ์—ด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ž๋ฃŒ ๋ณด๊ด€ ์žฅ์น˜ ์œ„์— ์ƒ์„ฑ๋˜๊ณ , ์ด๋ผํ•œ ๋ฐฐ์—ด๋“ค์„ ์กฐ์ž‘ํ•˜์—ฌ ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.
    • ์–ด๋А ๋ถ€๋ถ„์ด ํŒŒ์ผ์ด๊ณ  ๊ณต๋ฐฑ์ธ์ง€ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์— ํ‘œ์‹œํ•ด๋‘”๋‹ค.
  • ์ž๋ฃŒ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ , ๋ธ”๋ก ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์ผ์ •ํ•œ ๋‹จ์œ„์— ์ƒˆ๊ฒจ๋„ฃ๋Š”๋‹ค. (ํด๋Ÿฌ์Šคํ„ฐ ๋˜๋Š” ๋ธ”๋ก์ด ํŒŒ์ผ ํ•˜๋‚˜๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ๋””์Šคํฌ์˜ ์ตœ์†Œ ๊ณต๊ฐ„์ด๋‹ค)

ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ 

242FD43D5785D03A20.png

๋Œ€๋ถ€๋ถ„์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๊ฐ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ์ด๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์ ์ด 2๊ฐ€์ง€ ์žˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ์˜ ์ข…์† ๋ฌธ์ œ (Data Depedency)

    ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์˜ ์ƒํ˜ธ ์˜์กด ๊ด€๊ณ„๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ํŒŒ์ผ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋„ ์ด์— ๋งž๊ฒŒ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค.

  2. ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ๋ฌธ์ œ (Data Redundancy)

    ๊ฐ ์‘์šฉํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ๋…๋ฆฝ๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๊ฐ–๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต ์ €์žฅ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.


ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฐ์ดํ„ฐ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ๋ฌธ์ œ์ ์€ ํฌ๊ฒŒ 4๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค.

  1. ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ

    ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ๋ชจ๋‘ ํ•˜๋‚˜์˜ ์‚ฌ์‹ค๋งŒ์„ ๋‚˜ํƒ€๋‚ด๋„๋ก ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๊ฒŒ ์–ด๋ ค์›Œ ๋น„ํšจ์œจ์ ์ด๋‹ค.

  2. ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ฑ

    ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ๋ชจ๋‘ ๋˜‘๊ฐ™์€ ์ˆ˜์ค€์˜ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. (์—ฌ๊ธฐ์„œ ๋ณด์•ˆ์€ ์ธ๊ฐ€๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๋ฅผ ๋งํ•œ๋‹ค)

  3. ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์ œ์„ฑ

    ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜๋ฉด ์ถ”๊ฐ€์ ์ธ ์ €์žฅ๊ณต๊ฐ„์ด ํ•„์š”ํ•ด ๋น„์šฉ์ด ๋Š˜์–ด๋‚œ๋‹ค

  4. ๋ฐ์ดํ„ฐ์˜ ํšจ์œจ์„ฑ

    ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๋”๋ผ๋„, ํ•˜๋‚˜์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๋™์•ˆ์— ๋‹ค๋ฅธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค.

ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜์—ฌ ์—ฌ๋Ÿฌ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋“ฑ์žฅํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€ ํŠน์ • ๋ฐ์ดํ„ฐ ์กฐ์ง์„ ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด, ์ตœ์†Œํ•œ์˜ ์ค‘๋ณต์œผ๋กœ ํ†ตํ•ฉ(intergrated), ์ €์žฅ(stored)๋œ ์šด์˜(operation) ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์ด๋‹ค.

  • ํ†ตํ•ฉ๋œ ๋ฐ์ดํ„ฐ

    ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ณ  ํ†ต์ œํ•˜์—ฌ ์˜๋„์ ์ธ ์ค‘๋ณต์„ ํŒŒ์•…ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜๋‹ค

  • ๊ณต์œ  ๋ฐ์ดํ„ฐ

    ์—ฌ๋Ÿฌ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต๋™์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค


ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋น„๊ต

ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ํ•˜์ง€ ๋ชปํ•œ๋‹ค ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋žจ์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋‹ค
๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•œ๋‹ค ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•œ๋‹ค
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ์ด ์–ด๋ ต๋‹ค ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค

## ํŠน์ง•

  1. ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ์„ฑ

    • ๋ฌผ๋ฆฌ์ ์ธ ๋…๋ฆฝ์„ฑ

      ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝ(ํฌ๊ธฐ ๋ณ€๊ฒฝ, ํŒŒ์ผ ์ถ”๊ฐ€)ํ•˜๋”๋ผ๋„ ๊ด€๋ จ๋œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ˆ˜์ •ํ•  ํ•„์š”์—†๋‹ค.

    • ๋…ผ๋ฆฌ์ ์ธ ๋…๋ฆฝ์„ฑ

      ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ๋‹ค์–‘ํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋…ผ๋ฆฌ์ ์ธ ์š”๊ตฌ๋ฅผ ๋งŒ์กฑ์‹œํ‚จ๋‹ค.

  2. ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ

    ๋ฐ์ดํ„ฐ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ผ๋Š” ์ž˜๋ชป๋œ ๋ฐ์ดํ„ฐ์˜ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

  3. ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ฑ

    ๋ฐ์ดํ„ฐ์˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž๋“ค๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์† ์ž์›์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ณ„์ • ๊ด€๋ฆฌ ๋ฐ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•œ๋‹ค.

  4. ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ

    ์„œ๋กœ ์—ฐ๊ด€๋œ ์ •๋ณด๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋กœ์จ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ๋ณ€๊ฒฝ๋˜์–ด ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ฐฐ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.

  5. ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ตœ์†Œํ™”

    ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ์ค‘๋ณต๊ณผ ์ด์™€ ํŒŒ์ƒ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.


## ์šฉ์–ด

  1. Table

    Row(ํ–‰)๊ณผ Colum(์—ด)๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ด๋‹ค.

    • RDB์—์„œ๋Š” Table์— ํŠน๋ณ„ํ•œ ์ œ์•ฝ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•œ Relation์„ ์‚ฌ์šฉํ•œ๋‹ค.
  2. Relation

    img1.daumcdn.jpg

    Relation์€ Table์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋‹ค.

    • Tuple(๊ฐ€๋กœ ํ–‰)๊ณผ Attribute(์†์„ฑ)์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋‹ค.

    Relation์˜ ์กฐ๊ฑด

    1. ๋ชจ๋“  ๊ฐ’์€ ์œ ์ผํ•˜๋‹ค
    2. ํ•˜๋‚˜์˜ Relation์—์„œ ์ค‘๋ณต๋˜๋Š” Tuple์ด ์กด์žฌํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
      • ์ค‘๋ณต๋˜๋Š” Tuple์ด ์žˆ์œผ๋ฉด Table์ด์ง€๋งŒ Relation์ด ์•„๋‹ˆ๋‹ค.
  3. Row (ํ–‰)

    ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ๊ฐ€๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ด๋‹ค.

    • RDB์—์„œ Tuple ๋˜๋Š” Record๋ผ๊ณ  ์นญํ•œ๋‹ค
  4. Colum (์—ด)

    ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค ์ค‘ ์„ธ๋กœ๋กœ ๋ฌถ์€ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ด๋‹ค.

    • RDB์—์„œ Attribute๋ผ๊ณ  ์นญํ•œ๋‹ค
    • ์ผ๋ฐ˜์ ์ธ Colum์€ Attribute๋ฅผ ์˜๋ฏธํ•˜๊ณ , Colum์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ’๋“ค์„ Domain์ด๋ผ ํ•œ๋‹ค
  5. Domain

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ Field์— ์ฑ„์›Œ์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ์ด๋‹ค.

  6. Schema

    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋ฅผ ์ „๋ฐ˜์ ์œผ๋กœ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์ด๋‹ค.

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ ํฌ๊ธฐ, ํ‚ค, ๋ ˆ์ฝ”๋“œ ๊ฐ„์˜ ๊ด€๊ณ„ ๋“ฑ์„ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค.
    • ์‚ฌ์šฉ์ž ๊ด€์ ์— ๋”ฐ๋ผ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ, ๊ฐœ๋… ์Šคํ‚ค๋งˆ, ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ๋ถ„ํ•œ๋‹ค.
      • DBMS๋Š” ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์— ๋ช…์„ธ๋œ ์‚ฌ์šฉ์ž ์š”๊ตฌ๋ฅผ โ†’ ๊ฐœ๋… ์Šคํ‚ค๋งˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์ด๋ฅผ ๋‹ค์‹œ โ†’ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

    img1.daumcdn.jpg

    1. ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ

      ์‚ฌ์šฉ์ž ์ž…์žฅ์—์„œ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ์ด๋‹ค.

    2. ๊ฐœ๋… ์Šคํ‚ค๋งˆ

      ์กฐ์ง์ฒด ์ „์ฒด๋ฅผ ๊ด€์žฅํ•˜๋Š” ์ž…์žฅ์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •์˜ํ•œ ์Šคํ‚ค๋งˆ์ด๋‹ค

    3. ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ

      ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ์žฅ์น˜์— ์ €์žฅ๋  ์ง€์— ๋Œ€ํ•œ ๋ช…์„ธ์ด๋‹ค.


## key

key๋ž€ ๊ฒ€์ƒ‰์ด๋‚˜ ์ •๋ ฌ์‹œ์— Tuple์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” Attribute๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

  1. ์Šˆํผํ‚ค

    ์Šˆํผํ‚ค๋Š” ์œ ์ผ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ๋“ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋‹ค.

    • ์˜ˆ๋ฅผ๋“ค์–ด ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ์ „์ฒด ์†์„ฑ๋“ค์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ธ {ํ•™์ƒ๋ฒˆํ˜ธ, ํ•™๊ณผ์ด๋ฆ„}์ด ์Šˆํผํ‚ค์ด๋‹ค.
  2. ํ›„๋ณดํ‚ค

    ํ›„๋ณดํ‚ค๋Š” ์Šˆํผํ‚ค๋“ค ์ค‘์—์„œ ์ตœ์†Œ์„ฑ๊นŒ์ง€ ๋งŒ์กฑํ•˜๋Š” ํ‚ค์ด๋‹ค.

    • ํ›„๋ณดํ‚ค๋Š” ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๋“ค์ด๋ฉฐ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•œ๋‹ค.
      • ์œ ์ผ์„ฑ : ๋ชจ๋“  ๋ ˆ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ์†์„ฑ์— ์ค‘๋ณต๋œ ๊ฐ’์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์†์„ฑ
      • ์ตœ์†Œ์„ฑ : ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋“ค๋กœ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์†์„ฑ
  3. ๊ธฐ๋ณธํ‚ค

    ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ›„๋ณดํ‚ค ์ค‘ ์„ ํƒ๋œ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž์ด๋‹ค

    • ํ‚ค๋ณธํ‚ค๋„ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, null ๊ฐ’์ด ๋  ์ˆ˜ ์—†๋‹ค

    ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์†์„ฑ์œผ๋กœ ๊ฐ’์ด ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์†์„ฑ์„ ์„ ํƒํ•ด์•ผํ•œ๋‹ค.

    • ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ๋œ ํ•„๋“œ๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ์—…๋ฐ์ดํŠธ ๋ ๋•Œ๋งˆ๋‹ค ์œ ์ผ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ , null ๊ฐ’์ด ์•„๋‹Œ์ง€ ๊ฒ€์‚ฌํ•ด์•ผ ํ•œ๋‹ค.

    ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์†์„ฑ์œผ๋กœ ๋‹จ์ˆœํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์†์„ฑ์„ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค

    • ๋ณต์žกํ•œ ๊ฐ’์„ ๊ฐ€์ง€๋Š” ์†์„ฑ์˜ ๊ฒฝ์šฐ, ๊ธฐ๋ณธํ‚ค๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋น„์šฉ์ด ์†Œ๋ชจ๋œ๋‹ค
  4. ๋Œ€์ฒดํ‚ค

    ํ›„๋ณด ํ‚ค ์ค‘์—์„œ ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ๋œ๊ฒƒ๋“ค์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ‚ค์ด๋‹ค

    • ํ›„๋ณดํ‚ค - ๊ธฐ๋ณธํ‚ค = ๋Œ€์ฒดํ‚ค
  5. ๋ณตํ•ฉํ‚ค

    ํ•œ๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์„ ํฌํ•จํ•˜๋Š” ํ‚ค์ด๋‹ค.

  6. ์™ธ๋ž˜ํ‚ค

    ํ•œ ํ…Œ์ด๋ธ”์—์„œ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์ด๋‹ค.

์Šˆํผํ‚ค = ์œ ์ผ์„ฑ ๋งŒ์กฑํ•˜๋Š” ํ‚ค

ํ›„๋ณดํ‚ค = ์Šˆํผํ‚ค + ์ตœ์†Œ์„ฑ ๋งŒ์กฑํ•˜๋Š” ํ‚ค

๊ธฐ๋ณธํ‚ค = ํ›„๋ณดํ‚ค ์ค‘ ์„ ํƒ๋œ ํ‚ค = ์œ ์ผ์„ฑ + ์ตœ์†Œ์„ฑ + not null = ํŠน์ • ๋ ˆ์ฝ”๋“œ ๊ตฌ๋ถ„๊ฐ€๋Šฅ

๋Œ€์ฒดํ‚ค = ํ›„๋ณดํ‚ค - ๊ธฐ๋ณธํ‚ค = ๋‚˜๋จธ์ง€ ํ‚ค๋“ค


## ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋””์Šคํฌ I/O

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ ์ด์Šˆ๋Š” ๋””์Šคํฌ I/O ๋ฅผ ์–ด๋–ป๊ฒŒ ์ค„์ด๋А๋ƒ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค.

  • ๋””์Šคํฌ I/O๋ž€

    ์ฝ์–ด์•ผํ•  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋œ ์œ„์น˜๋กœ ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ์˜ ์›ํŒ์„ ๋Œ๋ ค ๋””์Šคํฌ ํ—ค๋”๋ฅผ ์ด๋™์‹œ์ผœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • I/O๋ž€

    Input & Output (์ž…์ถœ๋ ฅ)์˜ ์ค„์ž„๋ง๋กœ ์ปดํ“จํ„ฐ ๋ฐ ์ฃผ๋ณ€ ์žฅ์น˜์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ํ˜น์€ ์žฅ์น˜ ๋ฅผ ์ผ์ปซ๋Š” ๋ง์ด๋‹ค. (ํ”„๋กœ์„ธ์„œ, ๋ฉ”๋ชจ๋ฆฌ, ํ™•์žฅ ์Šฌ๋กฏ, ๋งˆ๋”๋ณด๋“œ ๋“ฑ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋ฐ์ดํ„ฐ ์ „์†ก๋„ I/O์— ์†ํ•œ๋‹ค.)


์ˆœ์ฐจ I/O & ๋žœ๋ค I/O

์ˆœ์ฐจ IO๋ž€ ์‹œ์ž‘ ์œ„์น˜๋กœ ์ด๋™ํ•˜์—ฌ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ธ์ ‘ํ•œ ํŽ˜์ด์ง€๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ์ฝ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

  • ํฐ ์ฒ˜๋ฆฌ๋Ÿ‰(Throughtput)์„ ๊ฐ–๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • ์ˆœ์ฐจ IO๋กœ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„  Full Scan ๋ฐฉ์‹์„ ์ด์šฉํ•ด์•ผํ•œ๋‹ค.
    • Full Table Scan์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค

๋žœ๋ค IO๋ž€ ๋””์Šคํฌ์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์— ํฉ์–ด์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ์ธ์ ‘ํ•˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฝํžˆ๋ฏ€๋กœ ๋””์Šคํฌ ํ—ค๋“œ๋ฅผ ๋ฌด์ž‘์œ„(Random)๋กœ ์›€์ง์ธ๋‹ค. ์ด๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๋ฅผ ์•ผ๊ธฐํ•œ๋‹ค.
  • Index Range Scan์— ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ IO ์ž‘์—…์ด ๋žœ๋ค IO๋กœ ์ด๋ค„์ง„๋‹ค

์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ๋ชจ๋“  I/O๋ฅผ ์ˆœ์ฐจI/O๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ๋žœ๋ค ์—‘์„ธ์Šค๊ฐ€ ์ตœ์†Œํ™”๋˜๋„๋ก ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. (ํ•˜๋‚˜์˜ ๋””์Šคํฌ์— ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ ๋””์Šคํฌ์— ์ ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋งคํ•‘)


๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ €์žฅ์†Œ ์„ค๊ณ„๋ฐฉ๋ฒ• : ์ˆœ์ฐจ I/O & ๋žœ๋ค I/O

์ˆœ์ฐจ I/O ๋ฐ ๋žœ๋ค I/O์˜ ์ฃผ์š” ํŠน์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ์ตœ๋Œ€ ์ˆœ์ฐจ I/O๊ฐ€ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Disk ์ €์žฅ์†Œ๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

SQL Server์—์„œ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ๋Š” ์ˆœ์ฐจ I/O์˜ ์ฃผ์š”ํ•œ ์˜ˆ์‹œ์ด๋‹ค. ๋งŽ์ด ์‚ฌ์šฉํ•œ ๋กœ๊ทธ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋””์Šคํฌ์— ์ €์žฅํ•˜๊ณ , ๊ธฐ๋ณธ ๋กœ๊ทธ ํŒŒ์ผ์„ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•˜๋„๋ก ๊ถŒ์žฅ๋œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ˆœ์ฐจ I/O๋ฅผ ํ†ตํ•ด ํฐ ์ฒ˜๋ฆฌ๋Ÿ‰์„ ๊ฐ–๊ธฐ ์œ„ํ•จ์ด๋‹ค.

๋งŒ์•ฝ ์—ฌ๋Ÿฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ๋””์Šคํฌ์— ์ €์žฅํ•˜๋ฉด ์—‘์„ธ์Šค ์œ ํ˜•์ด ์ˆœ์ฐจI/O์—์„œ โ†’ ๋žœ๋คI/O๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.


์˜ˆ์‹œ

121974741-074d0a80-cdbb-11eb-921d-c296934315a3.png

์ˆœ์ฐจ IO๋Š” ์—ฐ์†๋œ 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ ์ฝœ์„ ํ•œ๋ฒˆ๋งŒ ์š”์ฒญํ•˜์ง€๋งŒ, ๋žœ๋ค IO๋Š” 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๊ธฐ ์œ„ํ•ด 3๋ฒˆ์˜ ์‹œ์Šคํ…œ ์ฝœ์„ ์š”์ฒญํ•œ๋‹ค.

  • ๋””์Šคํฌ์— ๊ธฐ๋กํ•  ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์—์„œ ์ˆœ์ฐจ IO๋Š” ๋””์Šคํฌ ํ—ค๋“œ๋ฅผ 1๋ฒˆ ์›€์ง์ด๊ณ , ๋žœ๋ค IO๋Š” 3๋ฒˆ ์›€์ง์ธ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋””์Šคํฌ ํ—ค๋”์˜ ์ด๋™ ์‹œ๊ฐ„์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค. ์ฆ‰, ๋””์Šคํฌ์˜ ์„ฑ๋Šฅ์€ ๋””์Šคํฌ ํ—ค๋”์˜ ์œ„์น˜์— ์ƒ๊ด€์—†์ด ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ์— ๊ธฐ๋กํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.

  • ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ˆœ์ฐจ I/O ๊ฐ€ ๋žœ๋ค I/O ๋ณด๋‹ค ๋น ๋ฅผ ์ˆ˜ ๋ฐ–์— ์—†๋‹ค.

๋žœ๋ค I/O

ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ I/O ์ž‘์—…์ด ๋žœ๋ค I/O๋กœ ์ด๋ค„์ง„๋‹ค.

  • โ€œ๋žœ๋ค I/O ๋ฅผ ์ˆœ์ฐจ I/O ๋กœ ๋ฐ”๊ฟ”์„œ ์‹คํ–‰ํ•  ์ˆ˜๋Š” ์—†์„๊นŒ?โ€ ๋ผ๋Š” ์ƒ๊ฐ์—์„œ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ ํŠœ๋‹ ์˜ ๋ชฉ์ ์€ ๋žœ๋ค I/O ์ž์ฒด๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด๋‹ค
    • ๋žœ๋ค I/O ์ž์ฒด๋ฅผ ์ค„์ธ๋‹ค๋Š” ์˜๋ฏธ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๊ผญ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ฝ๋„๋ก ์ฟผ๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋Œ€๋ถ€๋ถ„ ๋ฐ์ดํ„ฐ๋ฅผ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ฝ๊ณ  ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๋žœ๋ค IO์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด ์žˆ๋‹ค. (MySQL์—์„œ๋Š” InnoDB ๋ฒ„ํผ ํ’€ ๊ธฐ๋Šฅ์œผ๋กœ ๋žœ๋ค IO์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ธ๋‹ค)


์ฐธ๊ณ 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

ํŒŒ์ผ์‹œ์Šคํ…œ, ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ 

DB์šฉ์–ด , DB key, ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ธ๋ฑ์Šค, ์œ ๋‹ˆํฌ ์ธ๋ฑ์Šค, ์™ธ๋ž˜ ํ‚ค.md

์ˆœ์ฐจ I/O ๋žœ๋ค I/O

์ˆœ์ฐจ io ๋žœ๋ค io

๋ฉด์ ‘ ์˜ˆ์ƒ ์งˆ๋ฌธ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๊ฐ€ ๋ฌด์—‡์ด๋‚˜์š”?

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ‚ค์˜ ์ข…๋ฅ˜์™€ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”

์ˆœ์ฐจ I/O์™€ ๋žœ๋ค I/O์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”