[Database] Relational Model
๐ Relational Model Concepts
-
Relation
์งํฉ์ ๋ฒ ์ด์ค๋ก ํ ์ํ์ ์ธ ๊ฐ๋ ์ผ๋ก, table๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค.
table์ฒ๋ผ ์ฌ๋ฌ row์ column์ ๊ฐ์ง๊ณ ์๋๋ฐ ์ด๋, row๋ฅผ tuple, column์ attribute๋ผ๊ณ ๋ถ๋ฅธ๋ค.
relation์ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ key๋ฅผ ๊ฐ์ง๊ณ , ์ ํฉํ key๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์์์ key๋ฅผ ์ถ๊ฐํ ์ ์๋๋ฐ ์ด๊ฒ์ surrogate key(or artificial key) ๋ผ๊ณ ๋ถ๋ฅธ๋ค. -
Schema
R(A_1, A_2, โฆ , A_n)
R : relation ์ด๋ฆ
A_1, A_2, โฆ , A_n : attribute ๋ฆฌ์คํธ
degree of relation R : R์ attribute ์ -
Tuple
๊ฐ๋ค์ด ์ ๋ ฌ๋ ์งํฉ์ผ๋ก <โฆ> ๋ด๋ถ์ ํํ๋๋ค.
ํํ์ ๊ฐ๋ค์ ์๋ง์ domain์ผ๋ก๋ถํฐ ๋์์ผ ํ๋ค.
attribute์ ์์๋ ๋ฌด์กฐ๊ฑด ์ง์ผ์ ธ์ผ ํ์ง๋ง, tuple์ ์์๋ ์ค์ํ์ง ์๋ค.
tuple์ ๋ชจ๋ ๊ฐ๋ค์ atomic ํด์ผ ํ๋ค. (Composite or multi-valued attribute๋ ์๋จ)NULL values in certain tuples
- Unknown : ์์ง ๋ชจ๋ฅด๋ ๊ฒฝ์ฐ
- Not available : ์์ง ํด๋นํ๋ ๊ฐ์ด ์๋ ๊ฒฝ์ฐ (ex. ํด๋ํฐ์ด ์์ด์ ์์ง ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ)
- Inapplicable : ์ ์ฉ๋์ง ์๋ ๊ฒฝ์ฐ (ex. ์ฑ๋ณ์ ๋ฐ๋ผ ์ ์ฉ์ด ๋์ง ์๋ ํญ๋ชฉ์ด ์์ ์ ์์)
-
Domain
atomicํ ๊ฐ์ ์งํฉ์ผ๋ก, ํด๋น attribute๊ฐ ๊ฐ์ ธ์ผ ๋๋ ๊ฐ๋ค์ ํ์ ์ ๋ํ๋ธ๋ค.
ex) ํ๊ตญ ํฐ ๋ฒํธ์ ๊ฒฝ์ฐ์๋, 01X-XXXX-XXXX ๊ณผ ๊ฐ์ ํ์ -
State
attribute๋ค๋ง๋ค domain์ ๋ฐ์นด๋ฅดํธ ๊ณฑ(Cartesian product) ์ค ๋ถ๋ถ์งํฉ์ผ๋ก,
attribute๋ค์ด ๊ฐ์ง ์ ์๋ ๊ฐ๋ค ์ค ์ค์ ๋ก ๊ฐ์ง๊ณ ์๋ ๊ฐ๋ค์ ์งํฉ์ ์๋ฏธํ๋ค.
๐จ Constraints
DB ๋ฌด๊ฒฐ์ฑ์ ์งํค๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์กฐ๊ฑด์ผ๋ก ํฌ๊ฒ ๋ค์๊ณผ ๊ฐ์ด 3๊ฐ์ง์ ์ ์ฝ์กฐ๊ฑด๋ค์ด ์๋ค.
1. Inherent or Implicit constraints
: data model ์ค์ค๋ก ๊ฐ์ง๋ ์ ์ฝ์กฐ๊ฑด
2. Schema-based or Explicit constraints
: data model schema ์์ฒด์ ์ง์ ์ ์ผ๋ก ๋ช ์๋์ด ์๋ ์ ์ฝ์กฐ๊ฑด
3. Application-based or Semantic constraints
: data model๊ณผ ์๊ด์์ด application ํ๋ก๊ทธ๋จ์์ ๊ฐ์ ๋์ด์ผ ํ๋ ์ ์ฝ์กฐ๊ฑด
=> application program์ ๋ช
์ธํ๋ฉฐ, TRIGGER๋ ASSERTION์ ์ฌ์ฉํด์ ํด๊ฒฐ
์ด ์ค Relational model์์์ ์ ์ฝ์กฐ๊ฑด๋ค์ ๋ ๋ฒ์งธ ์ ์ฝ์กฐ๊ฑด์ ํด๋นํ๋ค.
๐จ Relational Integrity Constraints
1. Key constraints (Unique constraints)
: relation์์ ๋ชจ๋ tuple๋ค์ ์๋ก ์ ์ผํ๊ฒ ๊ตฌ๋ณ๋์ด์ผ ํ๋ค.
Super Key
์์ฑ๋ค์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ํค๋ก, ์ ์ผ์ฑ์ ๋ง์กฑ
์ด ์ค, ์ต์์ฑ์ ๋ง์กฑํ๋ ๊ฒ์ด KeyCandidate Key
ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ์์ฑ๋ค์ ๋ถ๋ถ์งํฉ
๋ชจ๋ relation์ ๋ฐ๋์ ํ๋ ์ด์์ ํ๋ณดํค๋ฅผ ๊ฐ์ ธ์ผ ํจPrimary Key
ํ๋ณดํค ์ค์์ ์ ํํ ์ฃผ ํค (๋๋จธ์ง๋ unique key)
Null ๊ฐ์ ๊ฐ์ง ์ ์๊ณ , ๋์ผํ ๊ฐ์ด ์ค๋ณต ์ ์ฅ๋ ์ ์์
2. Entity integrity constraints (์ํฐํฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด)
: primary key๋ NULL ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
3. Refrential integrity constraints (์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด)
: foreign key์ ๊ฐ์ ์ฐธ์กฐํ๊ณ ์๋ relation์ primary key์ ์กด์ฌํ๋ ๊ฐ๋ง ๊ฐ๋ฅ
๐งต Integrity violation ํด๊ฒฐ ๋ฐฉ๋ฒ
1. Cancel the operation
: RESTRICT or REJECT ์ต์ ์ ์ฌ์ฉํด์ violation์ ์ผ์ผํค๋ operation์ ๋ฐ๋ก ์ทจ์์ํค๋ ๋ฐฉ๋ฒ
2. Operation ์ํํ๊ณ ๋์, ์ฌ์ฉ์์๊ฒ violation ์๋ ค์ฃผ๋ ๋ฐฉ๋ฒ
: ๊ถ์ฅํ์ง ์์.
3. violation์ ํด๊ฒฐํ๋๋ก ์ถ๊ฐ์ ์ธ update trigger
: CASCADE, SET NULL or SET DEFAULT ์ต์ ์ฌ์ฉ
4. ์ฌ์ฉ์ ์ง์ error-correction ์คํ
: ํ๋ก๊ทธ๋จ์ด ๋ฏธ๋ฆฌ ์ง์ ๋์ด ์์ด์ผ ํจ