ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Database] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?
    ๐Ÿ’ปProgramming/Database 2023. 10. 9. 11:05

    ๋™์•„๋ฆฌ ์Šคํ„ฐ๋””์—์„œ ERD๋ฅผ ์„ค๊ณ„ํ•ด๋ณด๋Š”๊ฒŒ ๊ณผ์ œ์ธ๋ฐ, ๊ทธ ๊น€์— ์ €๋ฒˆ ํ•™๊ธฐ์— ํ•™๊ต ์ˆ˜์—…์œผ๋กœ ๋“ค์—ˆ๋˜ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. 

    ๐Ÿ”— ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ํŠน์„ฑ

    • ์ˆ˜ํ•™์—์„œ์˜ ๋ฆด๋ ˆ์ด์…˜(relation)๊ณผ ์ง‘ํ•ฉ(set)์˜ ์ด๋ก ์— ๊ธฐ์ดˆ
    • ์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ์ž๋Š” ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ƒ๊ฐํ•˜์ง€๋งŒ, ํ†ต์ƒ์ ์ธ ํ…Œ์ด๋ธ”์˜ ๊ฐœ๋…๊ณผ๋Š” ๋‹ค๋ฅด๋‹ค. 
    • ํ…Œ์ด๋ธ”์˜ ์—ด(column)์€ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ "์• ํŠธ๋ฆฌ๋ทฐํŠธ"์—ญํ• ์„ ํ•œ๋‹ค.
    • ํ…Œ์ด๋ธ”์˜ ํ–‰(row)์€ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ "ํŠœํ”Œ" ์—ญํ• ์„ ํ•œ๋‹ค. 

    ๐Ÿ“ํ•™์ƒ ํ…Œ์ด๋ธ”: ๋ฆด๋ ˆ์ด์…˜

    ํ•™๋ฒˆ(Sno) ์ด๋ฆ„(Sname) ํ•™๋…„(Year) ํ•™๊ณผ(Dept)
    100 ๋…ธ์˜์‹ฌ 2 ์†Œํ”„ํŠธ์›จ์–ด์œตํ•ฉํ•™๊ณผ
    200 ๋…ธ๋ด‰๊ตฌ 1 ํ†ต๊ณ„ํ•™๊ณผ
    • ์—ฌ๊ธฐ์„œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋Š” ํ•™๋ฒˆ, ์ด๋ฆ„, ํ•™๋…„, ํ•™๊ณผ์ด๊ณ , ํŠœํ”Œ์€ (100, ๋…ธ์˜์‹ฌ, 2, ์†Œํ”„ํŠธ์›จ์–ด์œตํ•ฉํ•™๊ณผ)์™€ (200, ๋…ธ๋ด‰๊ตฌ, 1, ํ†ต๊ณ„ํ•™๊ณผ)๋ผ๊ณ  ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. 

    ๐Ÿ”— ์• ํŠธ๋ฆฌ๋ทฐํŠธ์™€ ๋„๋ฉ”์ธ

    ๐Ÿ“ ๋„๋ฉ”์ธ(domain)

    : ์• ํŠธ๋ฆฌ๋ทฐํŠธ๊ฐ€ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’(value)๋“ค์˜ ์ง‘ํ•ฉ *์‰ฝ๊ฒŒ ์ดํ•ดํ•˜์ž๋ฉด ๋ฒ”์œ„๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ex. ํ•™๋ฒˆ: 10์ž๋ฆฌ ์ž์—ฐ์ˆ˜๋งŒ ๊ฐ€๋Šฅ

    ๐Ÿ“์• ํŠธ๋ฆฌ๋ทฐํŠธ(attribute)

    : ๋„๋ฉ”์ธ์˜ ์—ญํ• (role) ์ด๋ฆ„์ด๋‹ค. ํ•œ ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์—์„œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ด๋ฆ„๋“ค์€ ๋ชจ๋‘ ๋‹ฌ๋ผ์•ผํ•œ๋‹ค. 

    ๐Ÿ“๋‹จ์ˆœ ๋„๋ฉ”์ธ(simple domain)

    : ๋‹จ์ˆœ ์• ํŠธ๋ฆฌ๋ทฐํŠธ - ์›์ž๊ฐ’(๋”์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋‹ค)

    ๐Ÿ“๋ณตํ•ฉ ๋„๋ฉ”์ธ(composite domain)

    : ๋ณตํ•ฉ ์• ํŠธ๋ฆฌ๋ทฐํŠธ - ๋ณตํ•ฉ ๊ฐ’ ex. ์—ฐ, ์›”, ์ผ


    ๐Ÿ”— ๋ฆด๋ ˆ์ด์…˜์˜ ํŠน์„ฑ

    ๐Ÿ“1. ํŠœํ”Œ์˜ ์œ ์ผ์„ฑ

    • ๋ฆด๋ ˆ์ด์…˜์˜ ํŠœํ”Œ๋“ค์˜ "์ง‘ํ•ฉ"์œผ๋กœ ๊ฐ™์€ ํŠœํ”Œ์ด ์ค‘๋ณต๋˜์–ด ๋‘ ๊ฐœ ์ด์ƒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. → ํŠœํ”Œ๋“ค ์ค‘์—์„œ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ํ•˜๋‚˜์˜ ํŠœํ”Œ์„ ์ฐพ๊ณ  ์‹ถ์„๋•Œ ๊ทธ ํŠœํ”Œ์€ ๋”ฑ ํ•œ๊ฐœ์ด์–ด์•ผ๋งŒ ํ•œ๋‹ค.

    ๐Ÿ“2. ํŠœํ”Œ์˜ ๋ฌด์ˆœ์„œ์„ฑ

    • ํŠœํ”Œ์€ ์ˆœ์„œ๊ฐ€ ์—†๋‹ค. → ์šฐ๋ฆฌ๋Š” ์›ํ•˜๋Š” ํŠœํ”Œ์„ ์ˆœ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. 

    ๐Ÿ“3. ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ๋ฌด์ˆœ์„œ์„ฑ

    •  ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋“ค์˜ "์ง‘ํ•ฉ"์ด๋ฏ€๋กœ, ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋„ ์ˆœ์„œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. → ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์œ„์˜ ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ ํ•œ ํ•™์ƒ์˜ ํ•™๋…„์„ ์ฐพ์„ ๋•Œ ๊ทธ ํ•™์ƒ์˜ ์„ธ ๋ฒˆ์งธ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋ฅผ ์ฐพ์œผ๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ  ํ•™์ƒ์˜ Year์„ ์ฐพ์•„๋‹ฌ๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. → ์ˆœ์„œ์˜ ๋ฌด์˜๋ฏธ

    ๐Ÿ“4. ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์›์ž์„ฑ

    • ์• ํŠธ๋ฆฌ๋ทฐํŠธ ๊ฐ’์€ ์›์ž ๊ฐ’์œผ๋กœ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„ํ•ด๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. 
    • null ๊ฐ’๋„ ์›์ž ๊ฐ’์œผ๋กœ ์ทจ๊ธ‰ํ•œ๋‹ค.
    • ์•„๊นŒ ์œ„์—์„œ ๋งํ–ˆ๋˜ ๋ณตํ•ฉ ๋„๋ฉ”์ธ์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ—ˆ์šฉ๋  ์ˆ˜ ์—†๋‹ค. 

    ๐Ÿ”— ๋ฐ์ดํƒ€๋ฒ ์ด์Šค ํ‚ค

    ๐Ÿ“ํ‚ค(key)

    • ๊ฐ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ "์ง‘ํ•ฉ"

    ๐Ÿ“ํ›„๋ณดํ‚ค

    • ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ง‘ํ•ฉ์œผ๋กœ์„œ ๋‹ค์Œ ๋‘ ์„ฑ์งˆ์„ ๋งŒ์กฑํ•œ๋‹ค.

    1. ์œ ์ผ์„ฑ(uniqueness)

    : ๊ฐ ํŠœํ”Œ๋“ค์€ ์œ ์ผํ•˜๋‹ค.(ํŠœํ”Œ์•ˆ์˜ ๊ฐ’๋“ค์ด ๋ชจ๋‘ ๋‹ฌ๋ผ์•ผํ•จ)

    2. ์ตœ์†Œ์„ฑ(minimality)

    : ํ›„๋ณดํ‚ค๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ง‘ํ•ฉ์œผ๋กœ์„œ ๊ฐ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์• ํŠธ๋ฆฌ๋ทฐํŠธ๋งŒ ํฌํ•จํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

    ex. ์œ„์˜ ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ {ํ•™๋ฒˆ, ์ด๋ฆ„}์˜ ์ง‘ํ•ฉ์€ ์œ ์ผ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ ์ตœ์†Œ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  {ํ•™๋ฒˆ}์˜ ์ง‘ํ•ฉ์€ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋ชจ๋‘ ๋งŒ์กฑ์‹œํ‚จ๋‹ค. 

    ๐Ÿ“์Šˆํผํ‚ค

    : ์œ ์ผ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ ์ตœ์†Œ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€ ์•Š๋Š” ์• ํŠธ๋ฆฌ๋ทฐํŠธ์˜ ์ง‘ํ•ฉ. ์•„๊นŒ ๋งํ•œ ์˜ˆ์—์„œ {ํ•™๋ฒˆ, ์ด๋ฆ„} ์ง‘ํ•ฉ์ด ์ด ๊ฒฝ์šฐ์— ํ•ด๋‹นํ•œ๋‹ค.

    ๐Ÿ“๊ธฐ๋ณธ ํ‚ค

    : ํ›„๋ณด ํ‚ค ์ค‘์—์„œ ์ง€์ •๋œ ํ•˜๋‚˜์˜ ํ‚ค๋กœ DBA๊ฐ€ ์ง€์ •ํ•œ๋‹ค. ๊ฐ ํŠœํ”Œ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํ‚ค ๊ฐ’์€ ํ•ญ์ƒ ์œ ํšจํ•œ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค. → null ๊ฐ’์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค. 

    ๐Ÿ“๋Œ€์ฒด ํ‚ค

    : ํ›„๋ณดํ‚ค ์ค‘์—์„œ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ํ›„๋ณดํ‚ค(์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ›„๋ณดํ‚ค ์ค‘์— DBA์˜ ์„ ํƒ์„ ๋ฐ›์€ ํ‚ค๊ฐ€ ๊ธฐ๋ณธ ํ‚ค์ด๊ณ , ์„ ํƒ๋ฐ›์ง€ ๋ชปํ•œ ๋‚˜๋จธ์ง€ ํ‚ค๊ฐ€ ๋Œ€์ฒดํ‚ค๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.)

    ๐Ÿ“์™ธ๋ž˜ ํ‚ค(foreign key)

    : ๋ฆด๋ ˆ์ด์…˜ R์˜ ์• ํŠธ๋ฆฌ๋ทฐํŠธ ์ง‘ํ•ฉ์ธ FK๊ฐ€ ๋ฆด๋ ˆ์ด์…˜ S์˜ ๊ธฐ๋ณธ ํ‚ค ์ผ๋•Œ ์ด FK๋Š” R์˜ ์™ธ๋ž˜ ํ‚ค์ด๋‹ค. FK์˜ ๋„๋ฉ”์ธ๊ณผ S์˜ ๊ธฐ๋ณธ ํ‚ค์˜ ๋„๋ฉ”์ธ์€ ๊ฐ™์•„์•ผ ํ•˜๊ณ , FK์˜ ๊ฐ’์€ S์— ์กด์žฌํ•˜๋Š” ๊ฐ’์ด๊ฑฐ๋‚˜ null๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.(FK์˜ ๊ฐ’์ด S์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๋ฌด๊ฒฐ์„ฑ์ด ๊นจ์ง„๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.) R์„ ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜(referencting relation), S๋ฅผ ํ”ผ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜(referenced relation)์ด๋ผ๊ณ  ํ•œ๋‹ค. → ๋ฆด๋ ˆ์ด์…˜ R์€ FK๋ฅผ ํ†ตํ•ด ๋ฆด๋ ˆ์ด์…˜ S๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. 


    ๐Ÿ”— ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ(Integrity Constraints)

    ๐Ÿ“1. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ(entity integrity) 

    : ๊ธฐ๋ณธ ํ‚ค ๊ฐ’์€ ์–ธ์ œ ์–ด๋Š ๋•Œ๊ณ  null ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค. 

    ๐Ÿ“2. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ(referential integrity)

    : ์™ธ๋ž˜ ํ‚ค ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ํ”ผ์ฐธ์กฐ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธ ํ‚ค ๊ฐ’์ด๊ฑฐ๋‚˜ null์ด๋‹ค. 

     

    * ์ด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒํƒœ(์–ด๋Š ํ•œ ์‹œ์ ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๊ฐ’)๊ฐ€ ํ•ญ์ƒ ๋งŒ์กฑ์‹œ์ผœ์•ผ ๋  ์ œ์•ฝ์กฐ๊ฑด์ด๋‹ค. 

     


    ๐Ÿ”— ๋‹ค์Œ ๊ธ€

    https://suucong.tistory.com/33

     

    [Database] ERD๋ฅผ ์„ค๊ณ„ํ•ด๋ณด์ž!(1. ๊ฐœ๋…์  ๋ชจ๋ธ๋ง)

    ERD์— ๋Œ€ํ•ด์„œ ์–˜๊ธฐํ•˜๊ธฐ ์ „์— ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์•„๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. https://suucong.tistory.com/32 [Database] ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€? ๋™์•„๋ฆฌ ์Šคํ„ฐ๋””์—์„œ ERD๋ฅผ ์„ค๊ณ„ํ•ด๋ณด๋Š”๊ฒŒ ๊ณผ์ œ์ธ๋ฐ, ๊ทธ ๊น€์— ์ €๋ฒˆ

    suucong.tistory.com

     

Designed by Tistory.