๐Ÿ”— 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๋“ค์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค ์ค‘ ์‹ค์ œ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•œ๋‹ค.

relation-term.jpg


๐Ÿšจ 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

    ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ‚ค๋กœ, ์œ ์ผ์„ฑ์„ ๋งŒ์กฑ
    ์ด ์ค‘, ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ๊ฒƒ์ด Key
  • Candidate 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 ์‹คํ–‰

: ํ”„๋กœ๊ทธ๋žจ์ด ๋ฏธ๋ฆฌ ์ง€์ •๋˜์–ด ์žˆ์–ด์•ผ ํ•จ