๐Ÿ’ฝ Database ์ •๋ฆฌํ•ด๋ณด์žฅ๊ณ 

ํ—ˆ์ •์›ยท2021๋…„ 2์›” 23์ผ
0
post-thumbnail

1. Database

Database ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด ๋‘๋Š” ๊ณณ์ด๋‹ค. ์ง„์งœ ๋ง ๊ทธ๋Œ€๋กœ data ์˜ base ์ธ ๊ฒƒ์ด๋‹ค.

์—„์ฒญ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ๊ธฐ๊ฐ„ ๊ด€๋ฆฌํ•˜๋ ค๋ฉด ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•œ๋ฐ ์ด๋ฅผ *DBMS, ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ด๊ฒƒ๋„ ์ดํ•ด๊ฐ€ ์‰ฝ๋‹ค. ์ด๋ฅผ ํ†ต์นญํ•˜์—ฌ ์šฐ๋ฆฌ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์ด๋‹ค.


DBMS, ์ฆ‰ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (RDBMS) ์™€ ๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ€ ์žˆ๋‹ค. ๋จผ์ € ์‚ดํŽด๋ณผ ๊ฒƒ์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ด๊ณ  ๋น„๊ด€๊ณ„ํ˜•์€ ๋‚˜์ค‘์— ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด์ž.

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

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” 2์ฐจ์› ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ์ €์žฅ ๋˜์–ด์žˆ๋‹ค. ํ…Œ์ด๋ธ”์„ ์ƒ๊ฐํ•˜๋ฉด ์—ด ๊ณผ ํ–‰์œผ๋กœ ์กด์žฌํ•˜๋Š”๋ฐ ๊ฐ ํ–‰ ๋“ค์ด ํ‚ค๋กœ ์„ค์ •๋˜๊ณ  ์—ด ์€ ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค.

์œ„์— ํ‘œ๋ฅผ ๋ณด๋ฉด ๋นจ๊ฐ„์ƒ‰ ์•ˆ์— ๋“ค์–ด๊ฐ„ ๊ฒƒ์ด ์—ด, ์ฆ‰ ์ œ๋ชฉ์ด์ž key ์ด๋‹ค. ํŒŒ๋ž€์ƒ‰์€ ํ‚ค์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ Primary Key ์ค„์—ฌ์„œ PK ์ด๋‹ค. ๋ชจ๋“  ํ…Œ์ด๋ธ”์€ ์ด PK๋ฅผ ๊ฐ€์ง€๋Š”๋ฐ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์ด ์—†์–ด์„œ ์ด๊ฒƒ์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ  ์ „๋‹ฌํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ํ†ต์นญ ๊ธฐ๋ณธํ‚ค ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

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

๊ด€๊ณ„๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š”๋ฐ ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค. One to One, One to Many, Many to Many.

1. One to One

์œ„ ๋‘๊ฐœ ํ…Œ์ด๋ธ”์€ ์ผ ๋Œ€ ์ผ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. user_profile ํ…Œ์ด๋ธ” ์˜ User_pk ์—ด ์€ User ํ…Œ์ด๋ธ”์˜ pk ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค. ์ฆ‰ User_pk ๋Š” foreign key (fk) ์™ธ๋ž˜ํ‚ค ์ด๋‹ค.

๊ฐ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๋ณด๋ฉด ๋ณต์žกํ•ด๋ณด์ด๋‹ˆ ํ…Œ์ด๋ธ”์˜ ์—ด ๋งŒ ๋ณด์—ฌ์ง€๊ฒŒ ํ•ด์„œ ๋น„๊ตํ•˜๋ฉด

์ด๋ ‡๊ฒŒ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ ๋Œ€ ์ผ ๊ด€๊ณ„์—์„œ๋Š” ์ฐธ์กฐํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰ ๊ฐœ์ˆ˜๋Š” ์ฐธ์กฐ ๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰ ๊ฐœ์ˆ˜์™€ ๋™์ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ User_pk ๋Š” ๊ฒน์น˜์ง€ ์•Š๊ฒŒ๋ฉ๋‹ˆ๋‹ค.

2. One to Many

์ผ ๋Œ€ ์ผ ๊ด€๊ณ„์—์„œ ์ฐธ์กฐ ํ•˜๋Š” ํ…Œ์ด๋ธ”๊ณผ ์ฐธ์กฐ ๋‹นํ•˜๋Š” ํ…Œ์ด๋ธ”์˜ ํ–‰ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•˜๋‹ค๋ฉด ์ผ ๋Œ€ ๋‹ค ๊ด€๊ณ„์—์„œ๋Š” ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ‘œ๋ฅผ ๋ณด๋ฉด์„œ ํ™•์ธํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์ž˜ ๊ฐ‘๋‹ˆ๋‹ค.

์œ„์˜ ๊ทธ๋ฆผ์„ ๋ง๋กœ ์„ค๋ช…ํ•˜๋ฉด customer ํ…Œ์ด๋ธ”๊ณผ order ํ…Œ์ด๋ธ”์€ ์ผ ๋Œ€ ๋‹ค ๊ด€๊ณ„์ž…๋‹ˆ๋‹ค. order ํ…Œ์ด๋ธ”์˜ customer_pk ์—ด์€ customer ํ…Œ์ด๋ธ”์˜ pk ์—ด์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€๋Š” ์ผ ๋Œ€ ์ผ ๊ด€๊ณ„์™€ ๋™์ผํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ํ—ˆ์ •์› ์ด๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์€ customer ํ…Œ์ด๋ธ”์—์„œ pk = 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์‚ฌ๋žŒ์ด ๋–ก๋ณถ์ด์™€ ํ”ผ์ž, ์น˜ํ‚จ์„ ์ฃผ๋ฌธํ–ˆ๋‹ค๊ณ  ํ•˜๋ฉด order ํ…Œ์ด๋ธ”์˜ customer_pk ์—ด์˜ ๋ฐ์ดํ„ฐ ๊ฐ’์€ 1 ์ด ์—ฌ๋Ÿฌ ํ–‰ ์ƒ๊ธธ ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์„ ํ’€์–ด ๋ณด๋ฉด ์ด๋ ‡์Šต๋‹ˆ๋‹ค.

์ด ๋‘ ํ…Œ์ด๋ธ”์˜ ๊ด€๊ณ„๋ฅผ ์„ค๋ช…ํ•  ๋•Œ customer ํ…Œ์ด๋ธ”์ด ์ผ ( 1 ), order ํ…Œ์ด๋ธ”์ด ๋‹ค ( N ) ์˜ ๊ด€๊ณ„์— ์žˆ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. Many to Many

๋งŒ์•ฝ ์ „๊ณต์„œ์ ์„ ์ถœ๊ฐ„ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ์ฑ…์„ ํ˜ผ์ž ๋งŒ๋“œ๋Š”๊ฑด ์–ด๋ ค์šด ์ผ์ธ๋ฐ, ์ „๊ณต์„œ์ ์€ ๋”์šฑ ํž˜๋“ค๊ธฐ ๋•Œ๋ฌธ์— ๋งŽ์€ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ์ง‘ํ•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋•Œ ํ…Œ์ด๋ธ”์„ ์‚ดํŽด๋ณด๋ฉด

books ํ…Œ์ด๋ธ”์˜ name ์—ด ์—๋Š” ๊ฐ’์ด ์ค‘๋ณต๋˜์–ด ๋“ค์–ด ์žˆ๋Š”๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ•˜๋‚˜์˜ pk ํ–‰์€ ๋‘๊ฐœ์˜ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. ๋ฐ์ดํ„ฐ์˜ ๊ฐ’์„ ๋ช…ํ™•ํžˆ ์ž‘์„ฑํ•ด์•ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์„ ๋” ์ž‘์„ฑํ•ด์„œ ๋‹ค ๋Œ€ ๋‹ค ๊ด€๊ณ„์˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋ณด์ž.

๋ณด์ด๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ authors_books ํ…Œ์ด๋ธ”์€ authors ํ…Œ์ด๋ธ”์˜ pk ๋ฅผ ์ฐธ์กฐ ํ•˜๋ฉด์„œ books ํ…Œ์ด๋ธ”์˜ pk ๋„ ์ฐธ์กฐ ํ•˜๊ณ  ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉด ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํŽธ๋ฆฌํ•˜๋ฉด์„œ ์ˆ˜์ •๋„ ์›ํ™œํ•ด ์ง„๋‹ค. ๊ฐ ํ…Œ์ด๋ธ”์„ ๊ฐ„๋‹จํžˆ ๋งŒ๋“ค์–ด์„œ ๊ธฐ๋ณธํ‚ค์™€ ์™ธ๋ž˜ํ‚ค๋ฅผ ์‚ดํŽด๋ณด๋ฉด

authors_books ํ…Œ์ด๋ธ”์€ ๋‹ค ๋Œ€ ๋‹ค ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. author_pk ์—ด ์€ authors ํ…Œ์ด๋ธ”์˜ pk ์—ด์„ ์ฐธ์กฐ ํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์™ธ๋ž˜ํ‚ค์ด๊ณ  book_pk ์—ด ์€ books ํ…Œ์ด๋ธ”์˜ pk ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์œผ๋ฏ€๋กœ ์™ธ๋ž˜ํ‚ค์ด๋‹ค.

์—ฌ๊ธฐ๊นŒ์ง€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ธ๊ฐ€์ง€ ๊ด€๊ณ„๋ฅผ ์•Œ์•„๋ดค๋‹ค. ๋‹ค์Œ์—๋Š” ์ด๋Ÿฐ ๋ฐฉ์‹์„ ์ด์šฉํ•ด์„œ ์‹ค์ œ ์›นํŽ˜์ด์ง€์˜ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณด๋Š” ํฌ์ŠคํŒ…์„ ํ•˜๊ฒ ๋‹ค!!

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