๐Ÿ’ป/CS

[DB] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

ruhz 2020. 10. 28. 02:53

0. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง(data modeling)
  - ํ˜„์‹ค ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํ“จํ„ฐ ์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์˜ฎ๊ธฐ๋Š” ๋ณ€ํ™˜(์ถ”์ƒํ™”) ๊ณผ์ •
  - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์˜ ํ•ต์‹ฌ ๊ณผ์ •
  - ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ  ์ถ”์ถœํ•˜์—ฌ ๊ฐœ๋…์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„
  - ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ๊ฐœ๋…์  ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ DB์— ์ €์žฅํ•  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ(data model)
  - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ฒฐ๊ณผ๋ฌผ์„ ํ‘œํ˜„ํ•˜๋Š” ๋„๊ตฌ
  - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ์—ฐ์‚ฐ, ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ์„ ํฌํ•จ
  - ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(ex. ๊ฐœ์ฒด-๊ด€๊ณ„ ๋ชจ๋ธ)
  - ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(ex. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ)

 

 

 

1. ๊ฐœ์ฒด-๊ด€๊ณ„ ๋ชจ๋ธ

๊ฐœ์ฒด-๊ด€๊ณ„ ๋ชจ๋ธ(E-R model)
  - ๊ฐœ์ฒด์™€ ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ด์šฉํ•ด ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ๊ฐœ๋…์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„
  - ํ•ต์‹ฌ ์š”์†Œ : ๊ฐœ์ฒด, ์†์„ฑ, ๊ด€๊ณ„
  - ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ๊ฐœ์ฒด-๊ด€๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ(E-R diagram)์ด๋ผ๊ณ  ํ•จ

 

๊ฐœ์ฒด(entity)
  - ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ์กฐ์ง์„ ์šด์˜ํ•˜๋Š” ๋ฐ์— ๊ผญ ํ•„์š”ํ•œ ์‚ฌ๋žŒ์ด๋‚˜ ์‚ฌ๋ฌผ๊ณผ ๊ฐ™์ด ๊ตฌ๋ณ„๋˜๋Š” ๋ชจ๋“  ๊ฒƒ
  - ์ €์žฅํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž‡๋Š” ์‚ฌ๋žŒ์ด๋‚˜ ์‚ฌ๋ฌผ, ๊ฐœ๋… ์‚ฌ๊ฑด ๋“ฑ
  - ๋‹ค๋ฅธ ๊ฐœ์ฒด์™€ ๊ตฌ๋ณ„๋˜๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์†์„ฑ์„ ํ•˜๋‚˜ ์ด์ƒ ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  ex. ํ•™๊ต์— ํ•„์š”ํ•œ ๊ฐœ์ฒด : ํ•™๊ณผ (ํ•™๊ณผ์˜ ์†์„ฑ : ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด๊ณตํ•™๊ณผ, ์ปดํ“จํ„ฐ๊ณตํ•™๊ณผ ๋“ฑ)

 

๊ฐœ์ฒด์˜ ์†์„ฑ, ํƒ€์ž…, ์ธ์Šคํ„ด์Šค, ์ง‘ํ•ฉ
  - ์†์„ฑ : ๊ฐœ์ฒด๋‚˜ ๊ด€๊ณ„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ณ ์œ ์˜ ํŠน์„ฑ, ์˜๋ฏธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ€์žฅ ๋…ผ๋ฆฌ์  ๋‹จ์œ„
    โ€ป ์†์„ฑ์˜ ๋ถ„๋ฅ˜

      - ๋‹จ์ผ๊ฐ’ ์†์„ฑ / ๋‹ค์ค‘๊ฐ’ ์†์„ฑ (์†์„ฑ ๊ฐ’์˜ ๊ฐœ์ˆ˜๋กœ ๋ถ„๋ฅ˜)
      - ๋‹จ์ˆœ ์†์„ฑ / ๋ณตํ•ฉ ์†์„ฑ (์˜๋ฏธ์˜ ๋ถ„ํ•ด ๊ฐ€๋Šฅ์„ฑ)
      - ์œ ๋„ ์†์„ฑ (๊ธฐ์กด ์†์„ฑ๊ฐ’์—์„œ ์œ ๋„)
  - ํƒ€์ž… : ๊ฐœ์ฒด๋ฅผ ๊ณ ์œ ์˜ ์ด๋ฆ„๊ณผ ์†์„ฑ๋“ค๋กœ ์ •์˜ํ•œ ๊ฒƒ
  - ์ธ์Šคํ„ด์Šค : ๊ฐœ์ฒด์˜ ์†์„ฑ์ด ์‹ค์ œ ๊ฐ’์„ ๊ฐ€์ง์œผ๋กœ์จ ์‹ค์ œํ™”๋œ ๊ฐœ์ฒด
  - ์ง‘ํ•ฉ : ํŠน์ • ๊ฐœ์ฒด ํƒ€์ž…์— ๋Œ€ํ•œ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ

 

 

๊ฐœ์ฒด์˜ ์†์„ฑ

๋‹จ์ˆœ ์†์„ฑ
(simple attribute) 
์˜๋ฏธ๋ฅผ ๋”๋Š” ๋ถ„ํ•ดํ•  ์ˆ˜ ์—†๋Š” ์†์„ฑ (ex. ์ฑ… ๊ฐœ์ฒด์˜ ์ด๋ฆ„, ๊ฐ€๊ฒฉ)
๋ณตํ•ฉ ์†์„ฑ
(composite attribute)
์˜๋ฏธ๋ฅผ ๋ถ„ํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ (ex. ์ฃผ์†Œใ…ก๋„, ์‹œ, ๋™, ์ƒ์ผใ…ก๋…„, ์›”, ์ผ)
์œ ๋„ ์†์„ฑ
(derived attribute)
๊ธฐ์กด์˜ ๋‹ค๋ฅธ ์†์„ฑ์˜ ๊ฐ’์—์„œ ์œ ๋„๋˜์–ด ๊ฒฐ์ •(๋ณ„๋„๋กœ ์ €์žฅX)  (ex. ์ƒ์ผ >>>์œ ๋„>>> ๋‚˜์ด)
๋„ ์†์„ฑ
(null attribute) 
๋„ ๊ฐ’(๋ฏธ๊ฒฐ์ •์ด๊ฑฐ๋‚˜ ๋ชจ๋ฅด๊ฑฐ๋‚˜, ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’. ๊ณต๋ฐฑ, 0๊ณผ ๋‹ค๋ฅธ ์˜๋ฏธ)์ด ํ—ˆ์šฉ (ex. ์‹œํ—˜๋“ฑ๊ธ‰)
ํ‚ค ์†์„ฑ
(key attribute)
๊ฐ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„
(๋ชจ๋“  ์ธ์Šคํ„ด์Šค ๋“ค์ด ๋‹ฌ๋ผ์•ผํ•จ)ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ

(ex. ๊ณ ๊ฐ ๊ฐœ์ฒด์˜ ID์†์„ฑ)

 

 

๊ด€๊ณ„(relationship)
  - ๊ฐœ์ฒด์™€ ๊ฐœ์ฒด๊ฐ€ ๋งบ๊ณ  ์žˆ๋Š” ์˜๋ฏธ์žˆ๋Š” ์—ฐ๊ด€์„ฑ, ๋Œ€์‘๊ด€๊ณ„(mappping) (ex. ๊ณ ๊ฐ ๊ฐœ์ฒด, ์ฑ… ๊ฐœ์ฒด ใ…ก ๊ณ ๊ฐ์€ ์ฑ…์„ ๊ตฌ๋งค)
  - ๋งคํ•‘ ์นด๋””๋„๋ฆฌํ‹ฐ : ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๋‘ ๊ฐœ์ฒด ์ง‘ํ•ฉ์—์„œ, ๊ฐ ์ธ์Šคํ„ด์Šค ๋‹น ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ์ƒ๋Œ€ ๊ฐœ์ฒด ์ง‘ํ•ฉ์˜ ์ธ์Šคํ„ด์Šค ๊ฐœ์ˆ˜
    โ€ป ๊ด€๊ณ„์˜ ๋ถ„๋ฅ˜
      - ์ˆœํ™˜(1์ง„) ๊ด€๊ณ„ / ์ดํ•ญ(2์ง„) ๊ด€๊ณ„ / ์‚ผํ•ญ(3์ง„) ๊ด€๊ณ„ ใ…ก ๊ด€๊ณ„์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐœ์ฒด 'ํƒ€์ž…'์˜ ์ˆ˜ ๊ธฐ์ค€
      - 1 : 1 ๊ด€๊ณ„ / 1: n ๊ด€๊ณ„ / n : m ๊ด€๊ณ„ ใ…ก '๋งคํ•‘ ์นด๋””๋„๋ฆฌํ‹ฐ' ๊ธฐ์ค€

 

๊ด€๊ณ„์˜ ํŠน์ง•(์ฐธ์—ฌํŠน์„ฑ)
  - ํ•„์ˆ˜์  ์ฐธ์—ฌ(์ „์ฒด ์ฐธ์—ฌ)ใ…ก๋ชจ๋“  ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ด€๊ณ„์— ๋ฐ˜๋“œ์‹œ ์ฐธ์—ฌ (ex. ๋ชจ๋“  ๊ณ ๊ฐ์ด ๋ฐ˜๋“œ์‹œ ์ฑ… ๊ตฌ๋งค)
  - ์„ ํƒ์  ์ฐธ์—ฌ(๋ถ€๋ถ„ ์ฐธ์—ฌ)ใ…ก๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค ์ค‘ ์ผ๋ถ€๋งŒ ๊ด€๊ณ„์— ์ฐธ์—ฌํ•ด๋„ ๋จ (ex. ๊ณ ๊ฐ์ด ๊ตฌ๋งคํ•˜์ง€ ์•Š์€ ์ฑ… ์กด์žฌ)

 

๊ด€๊ณ„์˜ ํŠน์ง•(์ข…์†์„ฑ)
  - ์•ฝํ•œ ๊ฐœ์ฒด : ๋‹ค๋ฅธ ๊ฐœ์ฒด์˜ ์กด์žฌ ์—ฌ๋ถ€์— ์˜์กด์ (ex. ์ง์› ใ…ก ๋ถ€์–‘๊ฐ€์กฑ์˜ ๊ด€๊ณ„ ์ค‘ ๋ถ€์–‘๊ฐ€์กฑ)
  - ๊ฐ•ํ•œ ๊ฐœ์ฒด : ๋‹ค๋ฅธ ๊ฐœ์ฒด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •, ๋ณดํ†ต ์•ฝํ•œ ๊ฐœ์ฒด์™€ ์ผ๋Œ€๋‹ค(1:n) ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ , ์•ฝํ•œ ๊ฐœ์ฒด๋Š” ํ•„์ˆ˜์ ์ฐธ์—ฌ
  - ์•ฝํ•œ ๊ฐœ์ฒด๋Š” ๊ฐ•ํ•œ ๊ฐœ์ฒด์˜ ํ‚ค๋ฅผ ํฌํ•จํ•˜์—ฌ ํ‚ค๋ฅผ ๊ตฌ์„ฑ

 

E-R ๋‹ค์ด์–ด๊ทธ๋žจ
  - ์‚ฌ๊ฐํ˜• : ๊ฐœ์ฒด  //์ด์ค‘์‚ฌ๊ฐํ˜•์€ ์•ฝํ•œ ๊ฐœ์ฒด, 
  - ๋งˆ๋ฆ„๋ชจ : ๊ด€๊ณ„  //์ด์ค‘๋งˆ๋ฆ„๋ชจ๋Š” ์•ฝํ•œ๊ฐœ์ฒด์™€ ๊ฐ•ํ•œ๊ฐœ์ฒด์˜ ๊ด€๊ณ„
  - ํƒ€์› : ์†์„ฑ  //์ ์„ ํƒ€์›์€ ์œ ๋„ ์†์„ฑ, ์ด์ค‘ํƒ€์›์€ ๋‹ค์ค‘๊ฐ’ ์†์„ฑ, ๋ฐ‘์ค„์€ ํ‚ค ์†์„ฑ
  - ๋งํฌ(์—ฐ๊ฒฐ์„ ) : ๊ฐ ์š”์†Œ๋ฅผ ์—ฐ๊ฒฐ  //์ด์ค‘์—ฐ๊ฒฐ์€ (ํ•„์ˆ˜์  ์ฐธ์—ฌ)
  - ๋ ˆ์ด๋ธ” : 1:1, 1:N, N:M์˜ ๊ด€๊ณ„๋ฅผ ํ‘œ๊ธฐ

 

IE ํ‘œ๊ธฐ๋ฒ•
  - ๊ตฌ์ฒด์ ์ธ ๊ด€๊ณ„๋ฅผ ๋„ํ˜•์ด ์•„๋‹Œ, ์„ ์— ๋ณ€ํ™”
  --- : ๋น„์‹๋ณ„์ž ๊ด€๊ณ„(๊ฐ•ํ•œ ๊ด€๊ณ„, ๋ถ€๋ชจ ๊ฐœ์ฒด์˜ ํ‚ค๊ฐ€ ์ผ๋ฐ˜ ์†์„ฑ์œผ๋กœ ํฌํ•จ๋˜๋Š” ๊ด€๊ณ„)
  ใ…ก  : ์‹๋ณ„์ž ๊ด€๊ณ„(์•ฝํ•œ ๊ด€๊ณ„, ๋ถ€๋ชจ ๊ฐœ์ฒด์˜ ํ‚ค๊ฐ€ ์ฃผ์‹๋ณ„์ž๋กœ ํฌํ•จ๋˜๋Š” ๊ด€๊ณ„)
  -< : ์ผ๋Œ€๋‹ค
  -ใ…‡ : 0(์„ ํƒ์ฐธ์—ฌ), ์ตœ์†Œ ์ฐธ์—ฌ๊ฐ€ 0์ผ ๊ฒฝ์šฐ
  -+  : 1(ํ•„์ˆ˜์ฐธ์—ฌ), ์ตœ์†Œ ์ฐธ์—ฌ๊ฐ€ 1์ผ ๊ฒฝ์šฐ

 

 

 

2. ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
  - E-R ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅํ•  ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ(์Šคํ‚ค๋งˆ, schema)
  - ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋“ฑ

 

๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(related data model)
  - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๊ฐ€ 2D ํ…Œ์ด๋ธ”(table) ํ˜•ํƒœ
  - ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

 

๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(hierarchial data model)
  - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๊ฐ€ ํŠธ๋ฆฌ(tree) ํ˜•ํƒœ
  - ๋ฃจํŠธ ์—ญํ• ์„ ํ•˜๋Š” ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜๊ณ  ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ
  - ๊ฐœ์ฒด ๊ฐ„์— ์ƒํ•˜ ๊ด€๊ณ„๊ฐ€ ์„ฑ๋ฆฝ(๋ถ€๋ชจ/์ž์‹, ๋ถ€๋ชจ-์ž์‹์€ 1:n๊ด€๊ณ„๋งŒ ํ—ˆ์šฉ)
  - ๋‹ค๋Œ€๋‹ค(n:m)์„ ์ง์ ‘ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ
  - ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ์–ด๋ ค์›€
  - ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ๊ฒ€์ƒ‰์ด ์‰ฝ์ง€ ์•Š์Œ

 

๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(network data model)
  - ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๊ฐ€ ๊ทธ๋ž˜ํ”„(graph) ํ˜•ํƒœ
  - ๊ฐœ์ฒด ๊ฐ„์— ์˜ค๋„ˆ/๋ฉค๋ฒ„ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง(1:n๊ด€๊ณ„๋งŒ ํ—ˆ์šฉ)
  - ๋‘ ๊ฐœ์ฒด ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์–ด, ๊ด€๊ณ„๋ฅผ ์ด๋ฆ„์œผ๋กœ ๊ตฌ๋ณ„
  - ๋‹ค๋Œ€๋‹ค(n:m)์„ ์ง์ ‘ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ
  - ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ๊ฒ€์ƒ‰์ด ์‰ฝ์ง€ ์•Š์Œ