Relational Database

[Database] Relational database

Relation

์ˆ˜ํ•™์—์„œ ๋‚˜์˜จ ๊ฐœ๋…์œผ๋กœ, ์ด ๋‹จ์–ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ช‡๊ฐ€์ง€ ๋ฐฐ๊ฒฝ์ง€์‹์ด ํ•„์š”ํ•จ

set

  • ์„œ๋กœ ๋‹ค๋ฅธ elements๋ฅผ ๊ฐ€์ง€๋Š” collection

  • ํ•˜๋‚˜์˜ set์—์„œ elements์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Œ

  • ์˜ˆ) {1, 3, 11, 4, 7}

์ˆ˜ํ•™์—์„œ์˜ relation

  • ์—ฌ๋Ÿฌ๊ฐœ์˜ set์—์„œ ์š”์†Œ๋ฅผ ๊ณจ๋ผ์„œ ๋งŒ๋“  pair(list)๋“ค์˜ ์ง‘ํ•ฉ

  • ์นด๋ฅดํ…Œ์ง€์•ˆ ํ”„๋กœ๋•ํŠธ์˜(Cartesian product) ๋ถ€๋ถ„ ์ง‘ํ•ฉ

    • Cartesian product : ๊ฐ ์ง‘ํ•ฉ์—์„œ ์š”์†Œ ํ•˜๋‚˜์”ฉ ๋ฝ‘์•„์„œ ์Œ์„ ๋งŒ๋“œ๋Š”๋ฐ, ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ ์Œ์„ ๋ชจ์•„๋†“์€ ์ง‘ํ•ฉ์„ ์˜๋ฏธํ•จ

  • ๊ฐ๊ฐ์˜ pair(list)๋ฅผ ํŠœํ”Œ์ด๋ผ๊ณ  ํ•จ -> ํŠœํ”Œ๋“ค์˜ ์ง‘ํ•ฉ(set of tuple)์„ relation์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Œ

relational data model์—์„œ์˜ relation

  • set : ๋„๋ฉ”์ธ์„ ์˜๋ฏธํ•จ. element์˜ ์ง‘ํ•ฉ. ๋„๋ฉ”์ธ๋งˆ๋‹ค ์ด๋ฆ„์„ ์ˆ˜ ์žˆ์Œ

  • element (or value) : set ์•ˆ์— ์žˆ๋Š” ํ•œ๊ฐœ์˜ ๊ฐ’

  • set๋“ค์˜ ์ง‘ํ•ฉ์„ relation์ด๋ผ๊ณ  ํ•จ

relation ๋งŒ๋“œ๋Š” ๊ณผ์ •

  1. ๋„๋ฉ”์ธ ์ •์˜

    • ๊ฐ ์—ด์— ์–ด๋–ค ๊ฐ’(element, value)์ด ๋“ค์–ด์˜ฌ ๊ฒƒ์ธ์ง€์— ๋Œ€ํ•œ ์ •์˜

  2. Attribute ์ •์˜

    • ๊ฐ๊ฐ์˜ ๋„๋ฉ”์ธ์ด ์–ด๋–ค ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š”์ง€, ๊ทธ ์—ญํ• ์˜ ์ด๋ฆ„์„ ์ •์˜ํ•˜๋Š” ๊ฒƒ

    • ํ•œ ๋„๋ฉ”์ธ์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Œ

  3. ๊ฐ๊ฐ์˜ ๋„๋ฉ”์ธ์— ๊ฐ’์ด์žˆ์„ ๊ฒƒ์ด๊ณ , ๊ทธ ๊ฐ’๋“ค์˜ ์Œ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ํŠœํ”Œ์ด ์žˆ์Œ

  4. ์ด๋ฅผ ๊ฐ€์žฅ ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด table. ๊ทธ๋ž˜์„œ relation์ด table๋กœ ๋งŽ์ด ํ‘œํ˜„๋จ

    • ์ˆ˜ํ•™์  ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„

    • table๋กœ ํ‘œํ˜„

์šฉ์–ด ์ •๋ฆฌ

ํ‚ค์›Œ๋“œ
์„ค๋ช…

domain

set of atomic values

domain name

domain ์ด๋ฆ„

attribute

domain์ด relation์—์„œ ๋งก์€ ์—ญํ•  ์ด๋ฆ„

tuple

๊ฐ attribute์˜ ๊ฐ’์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฆฌ์ŠคํŠธ. ์ผ๋ถ€ ๊ฐ’์€ NULL์ผ ์ˆ˜ ์žˆ์Œ

relation

set of tuples (= table)

relation name

relation ์ด๋ฆ„

relation schema

  • relation์˜ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋ƒ„

  • relation ์ด๋ฆ„๊ณผ attributes๋ฆฌ์ŠคํŠธ๋กœ ํ‘œ๊ธฐ๋จ

  • ์˜ˆ) STUDENT(id, name, grade, major, phone_num, emer_phone_num)

  • attributes์™€ ๊ด€๋ จ๋œ constraints๋„ ํฌํ•จํ•จ (์œ„์˜ ์ •์˜ ์˜ˆ์—์„œ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„๋˜์ง„ ์•Š์ง€๋งŒ, schema์— ํฌํ•จ๋˜๋Š” ๋‚ด์šฉ์ž„)

degree of a relation

  • relation schema์—์„œ atrributes์˜ ๊ฐœ์ˆ˜

  • ์˜ˆ) STUDENT(id, name, grade, major, phone_num, emer_phone_num) -> degree 6

relation์˜ ๋‹ค๋ฅธ ์˜๋ฏธ : relation state

  • table ์ „์ฒด๋ฅผ relation์ด๋ผ๊ณ ๋„ ํ•˜๋Š”๋ฐ,

  • ํŠน์ • ์‹œ์ ์—์„œ tuples์˜ ์ง‘ํ•ฉ์„ relation ์ด๋ผ๊ณ  ํ•˜๊ธฐ๋„ ํ•จ(๋ฐ์ดํ„ฐ์— ํ•œ์ •ํ•ด์„œ ์˜๋ฏธํ•จ)

relational database

  • relational data mdoe์— ๊ธฐ๋ฐ˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์กฐํ™”ํ•œ database

  • relational database๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ relation์œผ๋กœ ๊ตฌ์„ฑ๋จ

  • relational database schema : relation schemas set + integrity constraints set

relaion์˜ ํŠน์ง•

  • ์ค‘๋ณต๋œ tuple์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ (relation์€ set of tuple์ด๊ธฐ ๋•Œ๋ฌธ์—). tuple์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐ’์ด ๋‹ค ๋™์ผํ•œ ๋˜๋‹ค๋ฅธ tuple์€ ์žˆ์„ ์ˆ˜ ์—†์Œ

  • relation์˜ tuple์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด attribute์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ์„ key๋กœ ์„ค์ •ํ•จ (id๋ผ๋Š” attribute๋ฅผ ๋‘ฌ์„œ ๊ฐ ํŠœํ”Œ์„ ์œ ๋‹ˆํฌํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•จ)

  • tuple๊ฐ„์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Œ. ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€Œ์–ด๋„ relation์˜ ์˜๋ฏธ๊ฐ€ ๋‹ฌ๋ผ์ง€๊ฑฐ๋‚˜ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์Œ

  • ํ•˜๋‚˜์˜ relation์—์„œ attribute์˜ ์ด๋ฆ„์€ ์ค‘๋ณต๋˜์ง€ ์•Š๊ณ , attribute์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Œ

  • attribute๋Š” atomic(์›์ž์ , ๋”์ด์ƒ ๋‚˜๋ˆ ์งˆ ์ˆ˜ ์—†๋Š”)ํ•ด์•ผ ํ•จ (composite or multivalued attribute๋Š” ํ—ˆ์šฉ ์•ˆ๋จ)

NULL์˜ ์˜๋ฏธ

  • ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š์Œ

  • ๊ฐ’์ด ์กด์žฌํ•˜๋‚˜ ์•„์ง ๊ทธ ๊ฐ’์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์ง€ ๋ชจ๋ฆ„

  • ํ•ด๋‹น ์‚ฌํ•ญ๊ณผ ๊ด€๋ จ์ด ์—†์Œ

Key

superkey

  • relation์—์„œ tuples๋ฅผ uniqueํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” attributes set

  • ์œ ๋‹ˆํฌํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” attributs set์ด๋ฉด ์–ด๋–ค ๋ฌถ์Œ์ด๋“  ๊ฐ€๋Šฅํ•จ. id ํ•˜๋‚˜๋งŒ ํ•ด๋„ ๋˜๊ณ , ๋ชจ๋“  attribute ์ „์ฒด๋ฅผ superkey๋กœ ํ•ด๋„ ๋จ

candidate key

  • superkey ์ค‘์— ์–ด๋А ํ•œ attribute๋ผ๋„ ์ œ๊ฑฐํ•˜๋ฉด uniqueํ•˜๊ฒŒ tuple์„ ์‹๋ณ„ํ•  ์ˆ˜ ์—†๋Š” ๊ฒƒ

  • key, minimal superkey ๋ผ๊ณ ๋„ ํ•จ

  • primary key๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๋“ค

primary key

  • relation์—์„œ tuples๋ฅผ uniqueํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์„ ํƒ๋œ candidate key

  • ๋ณดํ†ต์€ attribute ์ˆซ์ž๊ฐ€ ๋” ์ ์€ key๋ฅผ ์„ ํƒํ•จ

unique key

  • primary key๋กœ ์„ ํƒ๋˜์ง€ ๋ชปํ•œ candidate keys

  • alternate key

foreign key

  • ๋‹ค๋ฅธ relation์˜ PK(primary key)๋ฅผ ์ฐธ์กฐํ•˜๋Š” attributes set

Constraints

  • ์˜๋ฏธ : relational database์˜ relation๋“ค์ด ์–ธ์ œ๋‚˜ ํ•ญ์ƒ ์ง€์ผœ์ค˜์•ผ ํ•˜๋Š” ์ œ์•ฝ ์‚ฌํ•ญ

๋ถ„๋ฅ˜

implicit constraints

  • relational data model ์ž์ฒด๊ฐ€ ๊ฐ€์ง€๋Š” constraints

  • relation์€ ์ค‘๋ณต๋˜๋Š” tuple์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

  • relation ๋‚ด์—์„œ๋Š” ๊ฐ™์€ ์ด๋ฆ„์˜ attribute๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

schema-based constraints

  • ์ฃผ๋กœ DDL(sql ๋“ฑ)์„ ํ†ตํ•ด schema์— ์ง์ ‘ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๋Š” constraints

  • explicit constraints

schema-based constraints ์ข…๋ฅ˜

domain constraints

  • attribute์˜ value๋Š” ํ•ญ์ƒ attribute์˜ domain์— ์†ํ•œ value์—ฌ์•ผ ํ•จ

  • domain์— ์„ค์ •ํ•œ๊ฒŒ 1~4 ์‚ฌ์ด์˜ int๋ผ๋ฉด, ์•ŒํŒŒ๋ฒณ์ด๋‚˜ 4์ดˆ๊ณผ ์ˆซ์ž๋ฅผ value๋กœ ๋„ฃ์„ ์ˆ˜ ์—†์Œ

key constraints

  • ์„œ๋กœ ๋‹ค๋ฅธ tuple์€ ๊ฐ™์€ value์˜ key๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

  • key๋Š” uniqueํ•ด์•ผ ํ•จ

NULL value constraints

  • attribute๊ฐ€ NOT NULL๋กœ ๋ช…์‹œ๋๋‹ค๋ฉด NULL์„ ๊ฐ’์œผ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

  • NOT NULL๋กœ ๋ช…์‹œ๋๋‹ค๋ฉด ๊ทธ attribute์—๋Š” ๊ฐ’์„ ๊ผญ ๋ถ€์—ฌํ•ด์ค˜์•ผํ•จ

entity integrity constraint

  • primary key๋Š” value์— NULL์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

  • primary key๋Š” uniqueํ•œ ํŠœํ”Œ์„ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‚ค์ธ๋ฐ, NULL์ด๋ฉด ์•ˆ๋˜๊ฒ ์ง€!

referential integrity constraint

  • FK(foreign key)์™€ PK(primary key)๋Š” ๋„๋ฉ”์ธ์ด ๊ฐ™์•„์•ผํ•˜๊ณ 

  • PK์— ์—†๋Š” value๋ฅผ FK๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์—†์Œ

์œ„๋ฐ˜ํ•˜๋ฉด?

  • database system์—์„œ ์—๋Ÿฌ(exception)๋ฅผ ๋ฐ˜ํ™˜ํ•จ. ๋ฐฑ์—”๋“œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์—๋Ÿฌ ์ƒํ™ฉ ๋”ฐ๋ผ ํ•ธ๋“ค๋งํ•ด์ฃผ๋ฉด ๋จ

์ฐธ๊ณ 

์œ ํŠœ๋ธŒ ์‰ฌ์šด์ฝ”๋“œ

Last updated