TIL

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database)

rachel_13 2022. 7. 18. 22:17

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 ๋ชจ๋‘ ์‹คํŒจํ•˜๋Š” ๊ฒƒ

'TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋”(DOM) - 2ํƒ„  (0) 2022.07.18
๋”(DOM) 1ํƒ„  (0) 2022.07.18
๋ฆฌ๋ˆ…์Šค(Linux) & ํ„ฐ๋ฏธ๋„(Terminal)  (0) 2022.07.18
ํ•จ์ˆ˜ scope์™€ ๋ณ€์ˆ˜์˜ ์ข…๋ฅ˜(var, let, const)  (0) 2022.07.18
๊ฐœ๋ฐœ์ž ๋„๊ตฌ  (0) 2022.07.18