Relational Data Model
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ๋
๊ด๊ณ๋ชจ๋ธ ์ฉ์ด
- ํ โ ํํ
- ์ด โ ์ ํธ๋ฆฌ๋ทฐํธ
- ํ
์ด๋ธ โ ๋ฆด๋ ์ด์
- ํ
์ด๋ธ์ ์ํ ๊ฐ์ฒด โ๊ด๊ณโ์ ๊ตฌ์ฒด์ ์ธ ์ธ์คํด์ค
- ๋๋ฉ์ธ(domain)
- ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ๊ฐ์ง ์ ์๋ ๊ฐ(value)๋ค์ ์งํฉ
- ๋จ์๋๋ฉ์ธ(simpledomain) โ ๋จ์ ์ ํธ๋ฆฌ๋ทฐํธ : ์์๊ฐ
- ๋ณตํฉ ๋๋ฉ์ธ (composite domain) โ ๋ณตํฉ ์ ํธ๋ฆฌ๋ทฐํธ : ๋ณตํฉ๊ฐ
- ์ฐ, ์, ์ผ โ ๋ ์ง:<์ฐ,์,์ผ>
๊ด๊ณ๋ชจ๋ธ์ ๊ตฌ์ฑ
- ๊ด๊ณ๋ชจ๋ธ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฆด๋ ์ด์
(ํ
์ด๋ธ)๋ค์ ๋ชจ์์ผ๋ก ํํ๋จ
- ๋ฆด๋ ์ด์
์ ํํ(ํ, ๋ ์ฝ๋)๋ค์ ์งํฉ์ผ๋ก ํํ๋จ
- ํํ์ ์ ํธ๋ฆฌ๋ทฐํธ(์ปฌ๋ผ, ํ๋, ํน์ ์์ฑ)๋ค๋ก ๊ตฌ์ฑ๋จ
- ์ผ๋ฐ์ ์ผ๋ก ER ๋ชจ๋ธ๋ง ์ดํ์ ๊ด๊ณ ๋ชจ๋ธ๋ก ๋ณํ
- ํ
์ด๋ธ: ์ํฐํฐ ํ์
(ํน์ ๋ค์น ์ ํธ๋ฆฌ๋ทฐํธ ๋๋ ๊ด๊ณ ํ์
)
- ํ: ์ํฐํฐ ํน์ ๊ด๊ณ์ ํด๋นํ๋ ์ฌ์ค(์ธ์คํด์ค)์ ํํํจ
- ์ด: ์ ํธ๋ฆฌ๋ทฐํธ๋ค์ ํ์ํจ
Relation์ ํน์ฑ๋ค
- ํํ์ ๋ฌด์์์ฑ
- ๋ฆด๋ ์ด์
์ ํํ๋ค์ ์งํฉ์ผ๋ก ์ ์๋จ
- ์งํฉ์์ ์์์ ์์๊ฐ ๋ฌด์๋ฏธํ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํํ์ ์์ ์ญ์ ์๋ฏธ๊ฐ ์์
- ์ ํธ๋ฆฌ๋ทฐํธ์ ์์์ฑ(atomic)
- ํํ ๋ด์ ๊ฐ ๊ฐ์ ๋ ์ด์ ๋๋ ์ ์๋ ์์๊ฐ(atomic value)๋ค์
- ๊ฐ์ ์ ์ ์๊ฑฐ๋ ํด๋น๋๋ ๊ฐ์ด ์์ ๋์๋ NULL ์ด๋ผ๋ ํน์ ๊ฐ์ ์ฌ์ฉํจ. NULL๋ atomic์ผ๋ก ์ทจ๊ธ
- ๋(NULL)
- โ์ ์ฉํ ์ ์์(inapplicable)โ์ด๋ผ๋ ์๋ฏธ
- โ์๋ ค์ง์ง ์์(unknown)โ์ ์๋ฏธ
๊ด๊ณํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ์ฝ์กฐ๊ฑด (constraint)
- ์ ์ฝ์กฐ๊ฑด์ ๋ชจ๋ ๋ฆด๋ ์ด์
์ธ์คํด์ค๋ค์ด ๋ง์กฑํด์ผ ํ๋ ์กฐ๊ฑด์
- ์คํค๋ง ๊ธฐ๋ฐ ์ ์ฝ์กฐ๊ฑด: ๋ฐ์ดํฐ ๋ชจ๋ธ ์คํค๋ง์์ DDL์ ํตํด ์ง์ ํํ ๊ฐ๋ฅํ ์กฐ๊ฑด
- (1) ๋๋ฉ์ธ ์ ์ฝ ์กฐ๊ฑด(domain constraints)
- (2) ํค ์ ์ฝ์กฐ๊ฑด(key constraints)
- (3) ๋์ ๋ํ ์ ์ฝ์กฐ๊ฑด(constraints on NULLs)
- (4) ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(entity integrity constraints)
- (5) ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(referential integrity constraints)
(1) ๋๋ฉ์ธ ์ ์ฝ ์กฐ๊ฑด(domain constraints)
- ๊ฐ ์ ํธ๋ฆฌ๋ทฐํธ A์ ๊ฐ์ ๋ฐ๋์ A์ ๋๋ฉ์ธ dom(A)์ ์ํ๋ ์์๊ฐ์ด์ด์ผ ํจ
VARCHAR
ํ์ผ๋ก ์ ์ธ๋ Name ๋ณ์์๋ ์ ์ํ Integer
๊ฐ์ด ์ฌ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๋ฏธ
(2) ํค ์ ์ฝ์กฐ๊ฑด(key constraints)
- ํค : ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์ ํธ๋ฆฌ๋ทฐํธ ์งํฉ
- ๋ฆด๋ ์ด์
์ ํํ์ ์งํฉ์ผ๋ก ์ ์๋๋ฏ๋ก, ๋ชจ๋ ์์๋ ์ค๋ณต๋์ด์๋ ์ ๋จ
- ์ด๋ค ๋ ํํ๋ ๋ฆด๋ ์ด์
์ ๋ชจ๋ ์ ํธ๋ฆฌ๋ทฐํธ์ ๋ํด ๊ฐ์ ๊ฐ๋ค์ ์กฐํฉ์ ๊ฐ์ง ์ ์์
- ์ํผ ํค (super key)
- ์ ์ผ์ฑ(uniqueness)์ ๋ง์กฑํ์ง๋ง ์ต์์ฑ(minimality)์ด ๋ง์กฑ๋๋ ์๋ ์ ํธ๋ฆฌ๋ทฐํธ์ ์งํฉ
- ํค(key)๋ฅผ ํฌํจํ๋ ๋ชจ๋ ์์ฑ์ ์งํฉ
- ๊ธฐ๋ณธ ํค (primary key)
- ํ๋ณด ํค(candidate key) ์ค์์ ๋ฐ์ดํ๋ฒ ์ด์ค ์ค๊ณ์๊ฐ ์ง์ ํ ํ๋์ ํค
- ๊ฐ ํํ์ ๋ํ ๊ธฐ๋ณธํค ๊ฐ์ ํญ์ ์ ํจ(no NULL value)
- ๋์ฒด ํค (alternate key)
- ํ๋ณดํค ์ค์ ๊ธฐ๋ณธํค๋ฅผ ์ ์ธํ ๋๋จธ์ง ํ๋ณดํค
- ์ํผํค(superkey), ํ๋ณดํค(candidate key), ๊ธฐ๋ณธํค(PK, primary key)
- ํํ์ ์๋ณํ ์ ์์ผ๋ฉด ๋ชจ๋ ์ํผํค๊ฐ ๋ ์ ์์
(3) NULL์ ๋ํ ์ ์ฝ์กฐ๊ฑด(constraints on NULLs)
- ์ ํธ๋ฆฌ๋ทฐํธ ๊ฐ์ผ๋ก ๋์ ํ์ฉํ์ง ์๋ ๊ฒฝ์ฐ, ์ ํธ๋ฆฌ๋ทฐํธ๋ ๋์ ๊ฐ์ง ์ ์์
(4) ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(entity integrity constraints)
- ์ฝ์
: ๊ธฐ๋ณธํค ๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฝ์
์ด ๊ธ์ง๋จ
- ์์ : ๊ธฐ๋ณธํค ๊ฐ์ด ๊ฐ๊ฑฐ๋ NULL๋ก๋ ์์ ์ด ๊ธ์ง๋จ
- ์ญ์ : ํน๋ณํ ํ์ธ์ด ํ์ํ์ง ์์ผ๋ฉฐ ์ฆ์ ์ํํจ
(5) ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด(referential integrity constraints)
- ํ ๋ฆด๋ ์ด์
์ ์๋ ํํ์ด ๋ค๋ฅธ ๋ฆด๋ ์ด์
์ ์๋ ํํ์ ์ฐธ์กฐํ๋ ค๋ฉด ๋ฐ๋์ ์ฐธ์กฐ๋๋ ํํ์ด ๊ทธ ๋ฆด๋ ์ด์
๋ด์ ์กด์ฌํด์ผ ํจ
- ํ๋์ ๋ฆด๋ ์ด์
R์์ ์์ฑ F์ ๊ฐ์ผ๋ก ๋ค๋ฅธ ๋ฆด๋ ์ด์
S์ ๊ธฐ๋ณธํค P๊ฐ์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ์ R๊ณผ S๋ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ ์กฐ๊ฑด์ ๊ฐ์ง๋ค๊ณ ํจ (F๋ NULL์ ๊ฐ์ง ์ ์์)
- t1[F] = t2[P]์ด๋ฉด R์ ํํ t1์ด S์ ํํ t2๋ฅผ ์ฐธ์กฐ(reference)ํ๋ค๊ณ ํ๋ฉฐ, F๋ฅผ ์ธ๋ํค(foreign key)๋ผ๊ณ ๋ถ๋ฆ
- R์ ์ฐธ์กฐํ(referencing) ๋ฆด๋ ์ด์
, S๋ฅผ ์ฐธ์กฐ๋(referenced) ๋ฆด๋ ์ด์
์ด๋ผ๊ณ ๋ถ๋ฆ
- ๋ค๋ฅธ ์ ์ฝ์กฐ๊ฑด๊ณผ ๋ฌ๋ฆฌ ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ์ ๋ ๋ฆด๋ ์ด์
์ ๋ํ ์ ์ฝ์กฐ๊ฑด์
- ๋ถ๋ชจ๋ฆด๋ ์ด์
์ ์ฝ์
- ์ ์์ ์ผ๋ก ์งํ๋จ
- ์์๋ฆด๋ ์ด์
์ ์ฝ์
- ์ฐธ์กฐ๋ฐ๋ ํ
์ด๋ธ์ ์ธ๋ํค ๊ฐ์ด ์์ผ๋ฏ๋ก ์ฝ์
๊ธ์ง
- ๋ถ๋ชจ๋ฆด๋ ์ด์
์ ์ญ์
- ์ฐธ์กฐํ๋ ํ
์ด๋ธ์ ๊ฐ์ด ์ญ์ ํ ์ ์์ด์ ๊ธ์งํ๊ฑฐ๋ ์ถ๊ฐ์์
์ด ํ์
- ์์๋ฆด๋ ์ด์
์ ์ญ์
- ์์
- ์ญ์ ์ ์ฝ์
์ ์ฐ์ ์ํ์ผ๋ก ๊ฐ ์ญ์ ์ ์ฝ์
์ ์ ์ฝ์ ๊ณ ๋ คํ์ฌ ์งํ๋จ
Source
- Fundamentals of Database Systems 6th Edition by Ramez Elmasri, Shamkant B. Navathe.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
(Database System Concepts) 6th Edition by Abranham Silberschatz, Henry F.Korth, S.Sudarchan, ๊นํ์ฃผ ์ญ.