Programing_Java

[Oracle] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๋ณธ๋ฌธ

๐Ÿ’พ DB_

[Oracle] ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

Joyfullyever 2025. 3. 13. 20:25

โœด๏ธŽ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ์ปดํ“จํ„ฐ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์„ ์ •์˜ํ•ด ๋†“์€ ๊ฐœ๋… ๋ชจํ˜•

: ๋Œ€ํ‘œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ → ๊ณ„์ธตํ˜•, ๋„คํŠธ์›Œํฌํ˜•, ๊ด€๊ณ„ํ˜•, ๊ฐ์ฒด ์ง€ํ–ฅํ˜• ๋“ฑ

 

โœด๏ธŽ ๊ณ„์ธตํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ๋‚˜๋ญ‡๊ฐ€์ง€ ํ˜•ํƒœ์˜ ํŠธ๋ฆฌ(Tree) ๊ตฌ์กฐ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ด€๋ จ์„ฑ์„ ๊ณ„์ธต๋ณ„๋กœ ๋‚˜๋ˆ„์–ด ๋ถ€๋ชจ ์ž์‹ ๊ฐ™์€ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ

: ์ผ๋Œ€๋‹ค(1:N) ๊ด€๊ณ„์˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•ด์•ผํ•จ

์ œ์•ฝ

→ ํ•˜๋‚˜์˜ ๋ถ€๋ชจ ๊ฐœ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ์ž์‹์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ฉด์— ์ž์‹ ๊ฐœ์ฒด๋Š” ์—ฌ๋Ÿฌ ๋ถ€๋ชจ ๊ฐœ์ฒด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

→ ์ผ๋Œ€๋‹ค ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ์—๋Š” ์•Œ๋งž์ง€๋งŒ ์ž์‹ ๊ฐœ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ๋ถ€๋ชจ๋ฅผ ๊ฐ€์ง„ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์Œ

 

โœด๏ธŽ ๋„คํŠธ์›Œํฌํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ๋งํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ผ๊ณ ๋„ ํ•จ

: ๊ทธ๋ž˜ํ”„(Graph) ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•จ

→ ๊ฐœ์ฒด ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋กœ ์—ฐ๊ฒฐํ•˜๋ฏ€๋กœ ์ž์‹ ๊ฐœ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ๋ถ€๋ชจ ๊ฐœ์ฒด๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ

 

โœด๏ธŽ ๊ฐ์ฒด ์ง€ํ–ฅํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋…๋ฆฝ๋œ ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ฉฐ ์ƒ์†, ์˜ค๋ฒ„๋ผ์ด๋“œ ๋“ฑ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉ ๊ฐ€๋Šฅ

 

โœด๏ธŽ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

: ํ˜„๋Œ€์— ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ”ํƒ•์ด ๋˜๋Š” ๋ชจ๋ธ

: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋‹ค๋ฅธ ๋ชจ๋ธ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ ๊ฐ„ ๊ด€๊ณ„(Relationship)์— ์ดˆ์ ์„ ๋‘ 

: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ๋Š” ๊ฐ ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ ํŠน์„ฑ๋งŒ์„ ๊ทœ์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ์„ ๋‚˜๋ˆ”

→ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ณ„๊ฐœ์˜ Relation์œผ๋กœ ์ •์˜ํ•œ ํ›„ ์‚ฌ์› ์ •๋ณด์— ์†Œ์†๋œ ๋ถ€์„œ๋ฅผ ์‹๋ณ„ํ•˜๋Š” '๋ถ€์„œ ์ฝ”๋“œ'๋ฅผ ํฌํ•จํ•˜์—ฌ ์‚ฌ์› ์ •๋ณด ๋ฐ์ดํ„ฐ์™€ ๋ถ€์„œ ์ •๋ณด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ

• ๋ฐ์ดํ„ฐ ๋ฌถ์Œ = ๊ฐœ์ฒด ์ง‘ํ•ฉ (Entity Set)์„ ์˜๋ฏธ.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ…Œ์ด๋ธ”(Table), ๋ฆด๋ ˆ์ด์…˜(Relation)์œผ๋กœ ํ‘œ๊ธฐํ•จ. ๋ฐ์ดํ„ฐ ๋ฌถ์Œ ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ๊ด€๊ณ„(Relationship)์ด๋ผ๊ณ  ํ•จ.

 

โœด๏ธŽ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ

์ด๋ฆ„ ์„ค๋ช…
๊ฐœ์ฒด (Entity) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐํ™”ํ•˜๋ ค๋Š” ์‚ฌ๋ฌผ, ๊ฐœ๋…์˜ ์ •๋ณด ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”(Table) ๊ฐœ๋…๊ณผ ๋Œ€์‘๋˜๋ฉฐ ํ…Œ์ด๋ธ”์€ ๋ฆด๋ ˆ์ด์…˜(Relation)์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ธฐ๋„ ํ•จ.
์†์„ฑ (Attribute) ๊ฐœ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ€์žฅ ์ž‘์€ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ์„œ ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜โˆ™ํŠน์„ฑโˆ™์ƒํƒœ ๋“ฑ์„ ์ •์˜ํ•จ.
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์—ด(Column) ๊ฐœ๋…๊ณผ ๋Œ€์‘๋จ.
๊ด€๊ณ„ (Relationship) ๊ฐœ์ฒด์™€ ๊ฐœ์ฒด ๋˜๋Š” ์†์„ฑ ๊ฐ„์˜ ์—ฐ๊ด€์„ฑ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์™ธ๋ž˜ํ‚ค(Foreign Key) ๋“ฑ์œผ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉ

• ์œ„ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ์„ฑ(Independency)๊ณผ ๋ฌด๊ฒฐ์„ฑ(Integrity)๊ณผ ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฐœ๋…๋“ค์„ ์ •์˜,