๐Ÿ’ก Database - ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(1:1 / 1:N / N:N)

Hi! I'm JENNIEยท2022๋…„ 6์›” 27์ผ
0

TIL : ๊ธฐ๋ก

๋ชฉ๋ก ๋ณด๊ธฐ
4/16
post-thumbnail

1. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

: ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์— ์ €์žฅ๋œ ์ •๋ณด๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ชจ์•„ ๋†“์€ ์ง‘ํ•ฉ

โœ…ย ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ์˜ค๋žœ๊ธฐ๊ฐ„ ์ €์žฅ ๋ฐ ๋ณด์กดํ•˜๊ธฐ ์œ„ํ•ด
  • ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด โ†’ ์ฒด๊ณ„์ ์ด์ง€ ์•Š์œผ๋ฉด ๊ทธ์ € ์ชผ๊ฐ€๋ฆฌ์— ๋ถˆ๊ณผํ•จ

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” 2์ฐจ์› ํ…Œ์ด๋ธ”(table)๋กœ ํ‘œํ˜„

2. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDBMS)

= Realtional DataBase Management System ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

  • โ†“ Column (์—ด)ย : ์ปฌ๋Ÿผ์€ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ•ญ๋ชฉ (id,ย ์ฑ… ์ œ๋ชฉ,ย ์ž‘๊ฐ€,ย ์ถœํŒ์‚ฌ,ย ๊ฐ€๊ฒฉ)์„ ์˜๋ฏธํ•œ๋‹ค.
  • โ†’ Row (ํ–‰)ย : ๋กœ์šฐ๋Š” ๊ฐ ํ•ญ๋ชฉ๋“ค์˜ ์‹ค์ œ ๊ฐ’์ž…๋‹ˆ๋‹ค. 2๋ฒˆ ํ–‰์„ ๋ณด๋ฉด,ย ๊ฐˆ๋งค๊ธฐ์˜ ๊ฟˆ,ย ๋ฆฌ์ฒ˜๋“œ ๋ฐ”ํฌ,ย ๋‚˜๋ฌด์˜†์˜์ž,ย 11,520ย ์ด๋ผ๋Š” ์‹ค์ œ ๊ฐ’์ด ์žˆ๋‹ค.

โœ…ย Primary Key

: ๊ฐ Row(ํ–‰)์ด ๊ฐ€์ง„ ๊ณ ์œ ํ•œ ํ‚ค๊ฐ’

3. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDBMS) - ์ƒํ˜ธ๊ด€๋ จ์„ฑ

1. One to One (์ผ๋Œ€์ผ๊ด€๊ณ„)

: ์„œ๋กœ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ…Œ์ด๋ธ”๋งŒ 1:1๋กœ ์—ฐ๊ฒฐ

ex) ๋‚˜ - ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ

๐Ÿ’ก Table A โ†”ย Table B

โœ…ย Foreign Key

: ์ฐธ์กฐ ํ‚ค๊ฐ’. ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ํ‚ค.

2. One to Many (์ผ๋Œ€๋‹ค๊ด€๊ณ„)

ex) ๋‚˜ - ๋ฆฌ๋ทฐ / ๋‚˜ - ๋ธ”๋กœ๊ทธํฌ์ŠคํŒ…

๐Ÿ’ก Table A โ†’ Table B ์—ฌ๋Ÿฌ๊ฐœ

ํ•ญ์ƒ Many(๋‹ค) side์— FK๊ฐ€ ๋‹ฌ๋ ค์žˆ๋‹ค

๐Ÿ“Œ
1:1ย ์€ ๋‘ ํ…Œ์ด๋ธ”์ด ์„œ๋กœ๊ฐ€ ์„œ๋กœ์˜ ์˜ค๋กœ์ง€ ํ•œ ๋กœ์šฐ์—๋งŒ ์—ฐ๊ฒฐ.
1:Nย ์€ ํ•œ ํ…Œ์ด๋ธ”์˜ ๋กœ์šฐ ํ•˜๋‚˜์— ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋กœ์šฐ ์—ฌ๋Ÿฌ๊ฐœ๊ฐ€ ์—ฐ๊ฒฐ.

3. Many to Many (๋‹ค๋Œ€๋‹ค๊ด€๊ณ„)

ex) ์ž‘๊ฐ€ - ์—ฌ๋Ÿฌ ์ฑ… / ์ฑ… - ์ž‘๊ฐ€ ์—ฌ๋Ÿฌ๋ช…

๐Ÿ’ก Table A โ†’ Table B ์—ฌ๋Ÿฌ๊ฐœ / Table B โ†’ Table A ์—ฌ๋Ÿฌ๊ฐœ


์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ? โ†’ Foreign Key(FK)๋กœ ์—ฐ๊ฒฐ!!!!โญ๏ธ

  • ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ์œผ๋กœ ๋””์Šคํฌ๋ฅผ ๋” ํšจ์œจ์ ์œผ๋กœ ์“ฐ๊ณ ,
  • ๋˜ํ•œ ์„œ๋กœ ๊ฐ™์€ ๋ฐ์ดํ„ฐ์ด์ง€๋งŒ ๋ถ€๋ถ„์ ์œผ๋กœ๋งŒ ๋‚ด์šฉ์ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์–ด์ง„๋‹ค.
    โžช ์ด๊ฒƒ์„ย normalization(์ •๊ทœํ™”) ๋ผ๊ณ  ํ•œ๋‹ค.

Assignment - ์Šคํƒ€๋ฒ…์Šค ์‚ฌ์ดํŠธ โ€˜์Œ๋ฃŒโ€™ ํŽ˜์ด์ง€ ๋ชจ๋ธ๋ง

  • ํ…Œ์ด๋ธ”์„ ์„ธ๋ถ„ํ™”ํ•˜๋ฉด?

: โ€˜์œ ์ง€๋ณด์ˆ˜โ€™ ์ธก๋ฉด์—์„œ๋Š” ํšจ์œจ์ ์ด์ง€๋งŒ, โ€˜์†๋„, ๋น„์šฉ' ์ธก๋ฉด์—์„œ๋Š” ๋น„ํšจ์œจ์ ์ผ ์ˆ˜ ์žˆ๋‹ค.

์ •๋‹ต์€ ์—†๋‹ค! ์ƒํ™ฉ์— ๋งž๊ฒŒ ๋ชจ๋ธ๋งํ•˜๋ฉด ๋œ๋‹ค!๐Ÿ’ช๐Ÿป ํ™•์žฅ์„ฑ์„ ํ•ญ์ƒ ์ƒ๊ฐํ•˜๊ณ  ๊ณ ๋ฏผํ•ด๋ณด๊ธฐ โญ๏ธ

profile
Front-End Developer

0๊ฐœ์˜ ๋Œ“๊ธ€