DB

5์žฅ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๋‹ฌํŒฝ์ด._. 2021. 3. 17. 04:28

reference: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐœ๋ก  2ํŒ


01. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฐœ๋…

๊ฐœ๋…์  ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

ํ•˜๋‚˜์˜ ๊ฐœ์ฒด์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์— ์ €์žฅ

01-1. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ์šฉ์–ด

  • ๋ฆด๋ ˆ์ด์…˜(relation)
    • ํ•˜๋‚˜์˜ ๊ฐœ์ฒด์— ๊ด€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์› ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋กœ ์ €์žฅํ•œ ๊ฒƒ
    • ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ ํ•˜๋‚˜์˜ ํŒŒ์ผ(file)์— ๋Œ€์‘
  • ์†์„ฑ(attribute)
    • ๋ฆด๋ ˆ์ด์…˜์˜ ์—ด, ์• ํŠธ๋ฆฌ๋ทฐํŠธ
    • ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ **ํ•„๋“œ(field)**์— ๋Œ€์‘
  • ํˆฌํ”Œ(tuple)
    • ๋ฆด๋ ˆ์ด์…˜์˜ ํ–‰
    • ํŒŒ์ผ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ **๋ ˆ์ฝ”๋“œ(record)**์— ๋Œ€์‘
  • ๋„๋ฉ”์ธ(domain)
    • ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  (์›์ž) ๊ฐ’์˜ ์ง‘ํ•ฉ (๋‹ค์ค‘ ๊ฐ’ ์†์„ฑ X)
    • ์†์„ฑ ๊ฐ’์„ ์ž…๋ ฅ ๋ฐ ์ˆ˜์ •ํ•  ๋•Œ ์ ํ•ฉ์„ฑ ํŒ๋‹จ์˜ ๊ธฐ์ค€์ด ๋จ (์ž…๋ ฅ ์ œ์•ฝ)
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์†์„ฑ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ์ •์˜
    • ๋‚ด๊ฐ€ ์ง์ ‘ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ex) grade = {vip, gold, silver, bronze}
  • ๋„(null)
    • ์†์„ฑ ๊ฐ’์„ ์•„์ง ๋ชจ๋ฅด๊ฑฐ๋‚˜ ํ•ด๋‹น๋˜๋Š” ๊ฐ’์ด ์—†์Œ์„ ํ‘œํ˜„
    • DB๋งˆ๋‹ค ํ‘œํ˜„๋ฒ•์ด ๋‹ค๋ฆ„
    • ๊ณต๋ฐฑ, 0๊ณผ๋Š” ๋‹ค๋ฅธ ์˜๋ฏธ
  • ์ฐจ์ˆ˜(degree)
    • ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์†์„ฑ์˜ ์ „์ฒด ๊ฐœ์ˆ˜
    • ์ •์ ์ธ ํŠน์ง•
  • ์นด๋””๋„๋ฆฌํ‹ฐ(cardicality)
    • ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ํˆฌํ”Œ์˜ ์ „์ฒด ๊ฐœ์ˆ˜
    • ๋™์ ์ธ ํŠน์ง•

01-2. ๋ฆด๋ ˆ์ด์…˜์˜ ๊ตฌ์„ฑ

  • ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ(relation schema)
    • ๋ฆด๋ ˆ์ด์…˜์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ
    • ๋ฆด๋ ˆ์ด์…˜์˜ ์ด๋ฆ„๊ณผ ๋ฆด๋ ˆ์ด์…˜์— ํฌํ•จ๋œ ๋ชจ๋“  ์†์„ฑ ์ด๋ฆ„์œผ๋กœ ์ •์˜
    • ์˜ˆ) ๊ณ ๊ฐ(๊ณ ๊ฐ์•„์ด๋””, ๊ณ ๊ฐ์ด๋ฆ„, ๋‚˜์ด, ๋“ฑ๊ธ‰, ์ง์—…, ์ ๋ฆฝ๊ธˆ)
    • ๋ฆด๋ ˆ์ด์…˜ ๋‚ดํฌ(relation intension)๋ผ๊ณ ๋„ ํ•จ
    • DD(definite)L๋กœ ์‹คํ–‰๋จ.
    • ์ •์ ์ธ ํŠน์ง•์ด ์žˆ์Œ
  • ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค(relation instance)
    • ์–ด๋А ํ•œ ์‹œ์ ์— ๋ฆด๋ ˆ์ด์…˜์— ์กด์žฌํ•˜๋Š” ํˆฌํ”Œ๋“ค์˜ ์ง‘ํ•ฉ
    • ๋ฆด๋ ˆ์ด์…˜ ์™ธ์—ฐ(relation extension)์ด๋ผ๊ณ ๋„ ํ•จ
    • DM(manipulate)L๋กœ ์‹คํ–‰๋จ.
    • ๋™์ ์ธ ํŠน์ง•์ด ์žˆ์Œ

01-3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์„ฑ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ(database schema)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ „์ฒด ๊ตฌ์กฐ
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ์˜ ๋ชจ์Œ
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค(database instance)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค์˜ ๋ชจ์Œ

01-4. ๋ฆด๋ ˆ์ด์…˜์˜ ํŠน์„ฑ

โœ“ ์ˆ˜ํ•™์˜ ์ง‘ํ•ฉ๊ณผ ์•„์ฃผ ๋น„์Šทํ•˜๋‹ค.

  • ํˆฌํ”Œ์˜ ์œ ์ผ์„ฑ: ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ๋™์ผํ•œ ํˆฌํ”Œ์ด ์กด์žฌํ•  ์ˆ˜ ์—†๋‹ค. key ์†์„ฑ์„ ํ†ตํ•ด ๊ตฌ๋ณ„ํ•œ๋‹ค.
  • ํˆฌํ”Œ์˜ ๋ฌด์ˆœ์„œ: ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ํˆฌํ”Œ ์‚ฌ์ด์˜ ์ˆœ์„œ๋Š” ๋ฌด์˜๋ฏธํ•˜๋‹ค. ๊ทธ๋ƒฅ insert ๋œ ์ˆœ์„œ๋กœ ๋ณด์ผ ๋ฟ์ด๋‹ค.
  • ์†์„ฑ์˜ ๋ฌด์ˆœ์„œ: ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์†์„ฑ ์‚ฌ์ด์˜ ์ˆœ์„œ๋Š” ๋ฌด์˜๋ฏธํ•˜๋‹ค. ์†์„ฑ ๊ฐ’์— ์ ‘๊ทผํ•  ๋•Œ ์†์„œ์œผ์ด ์œ„์น˜๋กœ ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ์†์„ฑ์˜ ์ด๋ฆ„์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ์†์„ฑ์˜ ์›์ž์„ฑ: ์†์„ฑ ๊ฐ’์œผ๋กœ ์›์ž ๊ฐ’๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ๋” ๋ถ„ํ•ดํ•  ์ˆ˜ ์—†์Œ
    • ๋‹ค์ค‘๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ.

01-5. ํ‚ค

๋ฆด๋ ˆ์ด์…˜์—์„œ ํˆฌํ”Œ๋“ค์„ ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ

  • ํ‚ค์˜ ํŠน์„ฑ
    • ์œ ์ผ์„ฑ(uniqueness): ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๋ชจ๋“  ํˆฌํ”Œ์€ ์„œ๋กœ ๋‹ค๋ฅธ ํ‚ค ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•จ
    • ์ตœ์†Œ์„ฑ(minimality): ๊ผญ ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋“ค๋กœ๋งŒ ํ‚ค๋ฅผ ๊ตฌ์„ฑ
  • ํ‚ค์˜ ์ข…๋ฅ˜
    • ์Šˆํผํ‚ค(super key)
      • ์œ ์ผ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ
      • ์˜ˆ) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ์Šˆํผํ‚ค : ๊ณ ๊ฐ์•„์ด๋””, (๊ณ ๊ฐ์•„์ด๋””, ๊ณ ๊ฐ์ด๋ฆ„), (๊ณ ๊ฐ์ด๋ฆ„, ์ฃผ์†Œ) ๋“ฑ
    • ํ›„๋ณดํ‚ค(candidate key)
      • ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ
      • ์˜ˆ) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ํ›„๋ณดํ‚ค : ๊ณ ๊ฐ์•„์ด๋””, (๊ณ ๊ฐ์ด๋ฆ„, ์ฃผ์†Œ) ๋“ฑ
    • ๊ธฐ๋ณธํ‚ค(primary key)
      • ํ›„๋ณดํ‚ค ์ค‘์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒํ•œ ํ‚ค
      • ์˜ˆ) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค : ๊ณ ๊ฐ์•„์ด๋””
    • ๋Œ€์ฒดํ‚ค(alternate key)
      • ๊ธฐ๋ณธํ‚ค๋กœ ์„ ํƒ๋˜์ง€ ๋ชปํ•œ ํ›„๋ณดํ‚ค
      • ์˜ˆ) ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๋Œ€์ฒดํ‚ค : (๊ณ ๊ฐ์ด๋ฆ„, ์ฃผ์†Œ)
    • ์™ธ๋ž˜ํ‚ค(foreign key)
      • ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค(๋Œ€์ฒดํ‚ค)๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ ๋˜๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ
      • ๋ฆด๋ ˆ์ด์…˜๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
        • ์ฐธ์กฐํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ : ์™ธ๋ž˜ํ‚ค๋ฅผ ๊ฐ€์ง„ ๋ฆด๋ ˆ์ด์…˜
        • ์ฐธ์กฐ๋˜๋Š” ๋ฆด๋ ˆ์ด์…˜ : ์™ธ๋ž˜ํ‚ค๊ฐ€ ์ฐธ์กฐํ•˜๋Š” ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ฐ€์ง„ ๋ฆด๋ ˆ์ด์…˜
      • ์™ธ๋ž˜ํ‚ค ์†์„ฑ๊ณผ ๊ทธ๊ฒƒ์ด ์ฐธ์กฐํ•˜๋Š” ๊ธฐ๋ณธํ‚ค ์†์„ฑ์˜ ์ด๋ฆ„์€ ๋‹ฌ๋ผ๋„ ๋˜์ง€๋งŒ ๋„๋ฉ”์ธ์€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.
      • ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์™ธ๋ž˜ํ‚ค๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•  ์ˆ˜๋„ ์žˆ๊ณ  ์™ธ๋ž˜ํ‚ค๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ๋˜ํ•œ ์™ธ๋ž˜ํ‚ค๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
      • ๊ฐ™์€ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์™ธ๋ž˜ํ‚ค๋„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. (์ˆœํ™˜ ๊ด€๊ณ„)
      • ์™ธ๋ž˜ํ‚ค ์†์„ฑ์€ ๋„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜๋„ ์žˆ๋‹ค.

์ •๋ฆฌ


02. ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์ œ์•ฝ

๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(integrity constraint)

  • ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ณ  ์ผ๊ด€๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ทœ์น™
  • ๋ฌด๊ฒฐ์„ฑ: ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•จ์ด ์—†๋Š” ์ƒํƒœ, ์ฆ‰ ์ •ํ™•ํ•˜๊ณ  ์œ ํšจํ•˜๊ฒŒ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(entity integrity constraint)
    • ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ชจ๋“  ์†์„ฑ์€ ๋„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋Š” ๊ทœ์น™
    • DBMS๋Š” ๊ธฐ๋ณธํ‚ค ์ง€์ •์„ ํ•œ ์†์„ฑ์— ๋„ ๊ฐ’์„ ๋„ฃ์œผ๋ ค ํ•˜๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค.
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด(referential integrity constraint)
    • ์™ธ๋ž˜ํ‚ค๋Š” ์ฐธ์กฐํ•  ์ˆ˜ ์—†๋Š” ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋Š” ๊ทœ์น™
    • ex)๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํ•จ ใ…ก> DBMS๊ฐ€ ์ฐธ์กฐ๋ฅผ ๋ง‰์Œ
    •  
    • ํ•˜์ง€๋งŒ ์™ธ๋ž˜ํ‚ค ์†์„ฑ์ด null ๊ฐ’์„ ๊ฐ€์ง„๋‹ค๊ณ  ํ•ด์„œ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ์œ„๋ฐ˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ณ ๊ฐœ ๋ฆด๋ ˆ์ด์…˜์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ณ ๊ฐ์ด ์ฃผ๋ฌธํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ธฐ์—” ์–ด๋ ค์›€์ด ์žˆ๋‹ค. ๊ทธ์ € ์†์„ฑ ๊ฐ’์ด ๋ˆ„๊ตฐ์ง€ ๋ชจ๋ฅผ ๋ฟ์ด๋‹ค.
๋Œ“๊ธ€์ˆ˜0