๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ์ธ ๊ณต๋ถ€/DB

๊ด€๊ณ„ ๋ชจ๋ธ์˜ ๋ฆด๋ ˆ์ด์…˜๊ณผ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด

by syLim___ 2024. 11. 7.
728x90

โœ… ๊ด€๊ณ„ ๋ชจ๋ธ

- ๊ด€๊ณ„ ๋ชจ๋ธ์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ๋กœ ๋ฆด๋ ˆ์ด์…˜(Relation)์— ์˜ํ•ด ํ‘œํ˜„๋œ๋‹ค.

- ๋ฆด๋ ˆ์ด์…˜์€ ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ์™€ ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

๐Ÿ“Œ ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ

- ์˜์–ด๋กœ '๊ฐœ์š”,๊ธฐ๋ณธ ํ‹€' ์ด๋ผ๋Š” ๋œป์ด๋‹ค.

- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์Šคํ‚ค๋งˆ๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ์™€ ์ œ์•ฝ์กฐ๊ฑด์— ๊ด€ํ•œ ์ „๋ฐ˜์ ์ธ ๋ช…์„ธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

- ์ฆ‰ ๊ฐœ์ฒด(entity)์™€ ๊ฐœ์ฒด์˜ ์†์„ฑ(attribute), ๊ฐœ์ฒด ๊ด€์˜ ๊ด€๊ณ„(relation), ์ œ์•ฝ์กฐ๊ฑด(constraint)๋“ค์„ ๋ช…์„ธ์— ๋งž๊ฒŒ ๊ธฐ์ˆ ํ•œ ๊ฒƒ์ด๋‹ค.

- ๊ด€๊ณ„๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์—์„œ ์Šคํ‚ค๋งˆ๋Š” ๋ฆด๋ ˆ์ด์…˜ ์ด๋ฆ„, ์†์„ฑ(attribute) ์ด๋ฆ„, ๊ฐ ์†์„ฑ์˜ ๋„๋ฉ”์ธ ์ด๋ฆ„์„ ๋ช…์„ธํ•œ๋‹ค.

๐Ÿฃ ๋„๋ฉ”์ธ์ด๋ž€?
- ํ•˜๋‚˜์˜ ์†์„ฑ(attribute)์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋™์ผํ•œ ์œ ํ˜•์˜ ์›์ž๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
- ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๊ด€์ ์—์„œ "ํ•„๋“œ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…"์„ ์˜๋ฏธํ•œ๋‹ค.

 

 

- ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ ์ •์˜ ์˜ˆ์‹œ:

 

๐Ÿ“Œ ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค

- ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ํ…Œ์ด๋ธ”

- ์ฆ‰, ํŠœํ”Œ(tuple)์˜ ์ง‘ํ•ฉ ์ด๋‹ค. (ํŠœํ”Œ ๋Œ€์‹  ๋ ˆ์ฝ”๋“œ(record) ๋˜๋Š” ๊ฐœ์ฒด(entity)๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.)

 

- ํŠœํ”Œ(tuple)์ด๋ž€, ์Šคํ‚ค๋งˆ์—์„œ ์ •์˜๋œ ์†์„ฑ๋“ค๋กœ ๊ตฌ์„ฑ๋œ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋ฌถ์Œ์ด๋‹ค. ์ฆ‰ ํ…Œ์ด๋ธ”์˜ ํ–‰(row)์— ํ•ด๋‹นํ•œ๋‹ค.

 

- ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค์˜ tuple ์ˆ˜๋ฅผ ์นด๋””๋„๋ฆฌํ‹ฐ(cardinality)๋ผ๊ณ  ํ•˜๊ณ , attribute ์ˆ˜๋ฅผ ์ฐจ์ˆ˜(degree)๋ผ๊ณ  ํ•œ๋‹ค.

    (์นด๋””๋„๋ฆฌํ‹ฐ๋ผ๋Š” ๊ฐœ๋…์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค. ์ฟผ๋ฆฌ ์ตœ์ ํ™”ํ•  ๋•Œ cardinality estimate๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ํ•œ๋‹ค!)

 

- ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค์—์„œ tuple์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

 

- ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค๋Š” ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ์— ์ •์˜๋œ ๋ช…์„ธ๋ฅผ ๋ฐ˜๋“œ์‹œ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค.

 

๐Ÿ“Œ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Relational database)

- ์„œ๋กœ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜ ์ด๋ฆ„์„ ๊ฐ€์ง„ ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค๋“ค์˜ ๋ชจ์ž„์„ ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ผ๊ณ  ํ•œ๋‹ค.

- ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์†ํ•œ ๋ชจ๋“  ๋ฆด๋ ˆ์ด์…˜์˜ ์Šคํ‚ค๋งˆ ์ง‘ํ•ฉ์„ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ๋ผ๊ณ  ํ•œ๋‹ค.

 

 

โœ… ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด (Integrigy Constraint)

 

์ €์žฅ๋œ ์ •๋ณด์˜ ํ’ˆ์งˆ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ’ˆ์งˆ์ด ๊ฒฐ์ •๋œ๋‹ค.

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ๋–จ์–ด์ง€๋ฉด "๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•œ ์˜์‚ฌ๊ฒฐ์ •"์ด๋ผ๋Š” ๋ชฉ์ ์„ ์ด๋ฃฐ ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ DBMS๋Š” ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ˆ˜๋‹จ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์ด ๋†’๋‹ค๋Š” ๊ฒƒ์€, ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ™•ํ•˜๊ณ , ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

RDB์—์„œ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ์ง€์ผœ์•ผ ํ•œ๋‹ค.

RDB์—์„œ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์— ๋ช…์„ธ๋˜์–ด ์žˆ๋Š” ์ œ์•ฝ์กฐ๊ฑด์„ ๋งํ•œ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์— ๋ช…์„ธ๋œ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ๋ชจ๋‘ ์ง€ํ‚ค๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ legalํ•œ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ํ•˜๊ณ ,

DBMS๋Š” ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ๊ฐ•์ œํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ legalํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค.

 

์ฆ‰ DBMS๋Š” ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ์œ„๋ฐ˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์‹œ๋„ํ•˜๋Š” ๋ช…๋ น์€ ์ฆ‰์‹œ ๊ฑฐ๋ถ€ํ•œ๋‹ค.

 

 

๋ฌด๊ฒฐ์„ฑ์—๋Š” ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ, ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ์ด ์žˆ๋‹ค.

 

๐Ÿ“Œ ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ

- ํ•˜๋‚˜์˜ ๊ฐœ์ฒด(tuple)๋Š” ๊ฐ™์€ ๋ฆด๋ ˆ์ด์…˜์˜ ๋‹ค๋ฅธ tuple๋“ค๊ณผ ๋ช…ํ™•ํžˆ ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•œ๋‹ค.

- ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ "ํ‚ค ์ œ์•ฝ์กฐ๊ฑด"์„ ์‚ฌ์šฉํ•œ๋‹ค.

- ๊ทธ๋Ÿฌ๋ ค๋ฉด ๋ฆด๋ ˆ์ด์…˜์˜ ์†์„ฑ๋“ค์˜ ์ตœ์†Œ ๋ถ€๋ถ„์ง‘ํ•ฉ์ธ ํ‚ค๊ฐ€ ๊ฐ tuple์— ๋Œ€ํ•œ ๊ณ ์œ  ์‹๋ณ„์ž๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค.

- ์ฆ‰ key๋Š” ํ•˜๋‚˜์˜ tuple์„ ์‹๋ณ„ํ•˜๋Š” ์†์„ฑ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด๋‹ค.

 

๐Ÿ“Œ ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ

- ์ฐธ์กฐ ๊ด€๊ณ„์— ์žˆ๋Š” ๋‘ ๋ฆด๋ ˆ์ด์…˜์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ์ผ๊ด€๋œ ๊ฐ’์œผ๋กœ ์œ ์ง€๋˜์–ด์•ผ ํ•œ๋‹ค.

- ์ฆ‰, ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋  ๊ฒฝ์šฐ, ์ฐธ์กฐ ๊ด€๊ณ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋˜ํ•œ ์ˆ˜์ •๋˜๊ฑฐ๋‚˜ ์‚ญ์ œ๋˜์–ด์•ผ ํ•œ๋‹ค.

- ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ "์™ธ๋ž˜ํ‚ค ์ œ์•ฝ์กฐ๊ฑด"์„ ์‚ฌ์šฉํ•œ๋‹ค.

- ์™ธ๋ž˜ํ‚ค๋ž€, ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์˜ ํ‚ค ์ค‘์—์„œ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ tuple์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์ด๋‹ค.

   - ์ด ์™ธ๋ž˜ํ‚ค๋ฅผ ์ด์šฉํ•ด์„œ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์˜ tuple์—์„œ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ tuple์„ ์ฐธ์กฐํ•œ๋‹ค.

 

 

๐Ÿ“Œ ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ

- ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ ์†์„ฑ์˜ ํ•„๋“œ์—๋Š” ์ผ๊ด€๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์†์„ฑ ํ•„๋“œ์— ์ง€์ •๋œ ํ˜•์‹ ์™ธ์˜ ๋ฐ์ดํ„ฐ๋Š” ์ €์žฅ๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค.

- ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ค๊ธฐ ์œ„ํ•ด์„œ "๋„๋ฉ”์ธ ์ œ์•ฝ์กฐ๊ฑด"์„ ์‚ฌ์šฉํ•œ๋‹ค.

728x90