Database

simยท2023๋…„ 7์›” 18์ผ

์ƒˆ์‹น ๋ฐฑ์—”๋“œ ๊ณผ์ •

๋ชฉ๋ก ๋ณด๊ธฐ
1/24

๐Ÿ’พDatabase System

  • ๊ฐ ์กฐ์ง์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„์„œ ํ†ตํ•ฉํ•˜๊ณ  ์„œ๋กœ ๊ณต์œ ํ•˜์—ฌ ์ƒ๊ธฐ๋Š” ์žฅ์ ์„ ์ด์šฉํ•˜๋Š” ์‹œ์Šคํ…œ

๐Ÿ“Ž๊ตฌ์„ฑ

1) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS) : ์‚ฌ์šฉ์ž์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ์†Œํ”„ํŠธ์›จ์–ด
2) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Database) : ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ปดํ“จํ„ฐ ๋‚ด๋ถ€์˜ ํ•˜๋“œ๋””์Šคํฌ์— ์ €์žฅ
3) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Data Model) : ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ธฐ๋ฒ•(์„ค๊ณ„๋„๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •)

<ํŒŒ์ผ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ vs. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ>

<DBMS ๊ณผ์ • ๊ทธ๋ฆผ>

๐Ÿ’พ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ด€๋ฆฌ์‹œ์Šคํ…œ(DBMS)

๐Ÿ“Ž๊ธฐ๋Šฅ

  1. ์ •์˜ ๊ธฐ๋Šฅ(definition) : ๋ฐ์ดํ„ฐ์˜ ํ˜•ํƒœ, ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ €์žฅ์— ๊ด€ํ•œ ๋‚ด์šฉ ์ •์˜
  2. ์กฐ์ž‘ ๊ธฐ๋Šฅ(manipulation) : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์— ๋”ฐ๋ผ ๊ฒ€์ƒ‰, ๊ฐฑ์‹ , ์‚ฝ์ž…, ์‚ญ์ œ ๋“ฑ์„ ์ง€์›
  3. ์ œ์–ด ๊ธฐ๋Šฅ(control) : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ •ํ™•์„ฑ๊ณผ ์•ˆ์ „์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ (๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, ๋ณด์•ˆ, ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ ์ œ์–ด)

๐Ÿ—จ๏ธ๋ฐ์ดํ„ฐ ์–ธ์–ด

1) DDL (Data Definition Language) ๋ฐ์ดํ„ฐ ์ •์˜์–ด <-- DB ์„ค๊ณ„์ž
2) DML (Data Manipulation language) ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด <-- ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ(application programmer)
3) DCL (Data Control Language) ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด <--DB๊ด€๋ฆฌ์ž (DBA)

โ“‚๏ธMetadata

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ์ดํ„ฐ
    ex. System metadata(critical in a DBMS), Business metadata (critical in a data warehouse)

๐Ÿ’พ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Relational DataBase)

๐Ÿ“Ž๋ฆด๋ ˆ์ด์…˜

  • ๋ฆด๋ ˆ์ด์…˜(ํ…Œ์ด๋ธ”)์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๋“ค์˜ ์ง‘ํ•ฉ
  • ๋ฆด๋ ˆ์ด์…˜ = ํ–‰(row)& ์—ด(column)๋กœ ๊ตฌ์„ฑ๋œ 2์ฐจ์› ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ
  1. ์Šคํ‚ค๋งˆ : ๊ฐ ํ•ญ๋ชฉ์„ ์ •์˜ํ•˜์—ฌ ๋งŒ๋“  ํ…Œ์ด๋ธ”์˜ ํ‹€/ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ œ์•ฝ์กฐ๊ฑด์„ ์ •์˜ํ•œ ๊ฒƒ (ex. ํ•™์ƒ = ์ด๋ฆ„, ํ•™๋ฒˆ, ํ•™๊ณผ, ์ถœ์ƒ๋…„๋„)
  • ์š”์†Œ : ์†์„ฑ(attribute), ๋„๋ฉ”์ธ(domain), ์ฐจ์ˆ˜(degree)
    1) ์†์„ฑ(attribute) : ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ ์—ด(column)์— ๋ถ€์—ฌ๋œ ์ด๋ฆ„
    2) ๋„๋ฉ”์ธ(domain) : ์†์„ฑ ํ•˜๋‚˜๊ฐ€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ (ex. ์„ฑ๋ณ„ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์€ '๋‚จ' ๋˜๋Š” '์—ฌ')
    3) ์ฐจ์ˆ˜(degree) : ํŠœํ”Œ์„ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์˜ ๊ฐœ์ˆ˜.
  1. ์ธ์Šคํ„ด์Šค : ์ •์˜๋œ ์Šคํ‚ค๋งˆ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‹ค์ œ๋กœ ์ €์žฅ๋œ ๊ฐ’.
  • ์š”์†Œ : ํˆฌํ”Œ(tuple), ์นด๋””๋‚ ๋ฆฌํ‹ฐ(cardinality)
    1) ํŠœํ”Œ(tuple) : ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ ํ–‰. ํŠœํ”Œ ํ˜น์€ ๋ ˆ์ฝ”๋“œ๋ผ๊ณ  ํ•จ.
    2) ์นด๋””๋‚ ๋ฆฌํ‹ฐ(cardinality) : ํŠœํ”Œ์˜ ๊ฐœ์ˆ˜
    * ๋„(null) : ์†์„ฑ ๊ฐ’์ด ์ •ํ•ด์ง€์ง€ ์•Š์•˜๊ฑฐ๋‚˜ ์—†๋Š” ๊ฒฝ์šฐ์˜ ๊ฐ’ (unknown data)


  1. ๋ฆด๋ ˆ์ด์…˜์˜ ํŠน์ง•
    1) ์†์„ฑ์€ ๋‹จ์ผ ๊ฐ’์„ ๊ฐ€์ง. ๋„๋ฉ”์ธ์— ์ •์˜๋œ ๊ฐ’๋งŒ์„ ๊ฐ€์ง.
    2) ์†์„ฑ์€ ํ•œ ๋ฆด๋ ˆ์ด์…˜์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ€์ง.
    3) ํ•œ ์†์„ฑ์˜ ๊ฐ’์€ ๋ชจ๋‘ ๊ฐ™์€ ๋„๋ฉ”์ธ ๊ฐ’์„ ๊ฐ€์ง.
    4) ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์˜ ์ค‘๋ณต๋œ ํŠœํ”Œ์€ ํ—ˆ์šฉX.

  2. ํ‚ค(key) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์†์„ฑ ๋ชจ์ž„.
    1) ํ›„๋ณด ํ‚ค (candidate key): ๊ฐ ํŠœํ”Œ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์†Œํ•œ์˜ ์†์„ฑ๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ‚ค
    2) ๊ธฐ๋ณธ ํ‚ค (primary key) : ํ›„๋ณด ํ‚ค๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์ผ ๋•Œ ๋Œ€ํ‘œ๋กœ ์‚ผ์„ ํ‚ค. (NULL๊ฐ’ ํ—ˆ์šฉX)
    3) ๋Œ€์ฒด ํ‚ค (alternate key) : ๊ธฐ๋ณธ ํ‚ค ์•„๋‹Œ ํ›„๋ณดํ‚ค
    4) ๋Œ€๋ฆฌ ํ‚ค (surrogate key) / ์ธ์กฐ ํ‚ค (artificial key) : ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ๋ณด์•ˆ์„ ์š”ํ•˜๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋ณต์žกํ•˜๊ฑฐ๋‚˜, ๋งˆ๋•…ํ•œ ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ์—†์„ ๋•Œ๋Š” ์ผ๋ จ ๋ฒˆํ˜ธ ๊ฐ™์€ ๊ฐ€์ƒ์˜ ์†์„ฑ์„ ๋งŒ๋“ค์–ด ๊ธฐ๋ณธ ํ‚ค๋กœ ์‚ผ๋Š” ๊ฒฝ์šฐ.
    5) ์™ธ๋ž˜ ํ‚ค (foreign key) : ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋ฉฐ ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ‚ค. (NULL ๊ฐ’๊ณผ ์ค‘๋ณต ๊ฐ’ ํ—ˆ์šฉ/ ์ž๊ธฐ ์ž์‹ ์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์™ธ๋ž˜ ํ‚ค๋„ ๊ฐ€๋Šฅ)

* sql(Structured Query Language) : ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(RDBMS)์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ํŠน์ˆ˜ ๋ชฉ์ ์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด.

๐Ÿ“Ž๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ, ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ

  • DB์ƒํƒœ๊ฐ€ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š” ์กฐ๊ฑด์œผ๋กœ DB ๊ฐฑ์‹  ์‹œ ๋งˆ๋‹ค DBMS๊ฐ€ ์ž๋™๊ฒ€์‚ฌ
    1) ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ๊ฐ ์†์„ฑ์˜ ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ๋„๋ฉ”์ธ์— ์ง€์ •๋œ ๊ฐ’๋งŒ ๊ฐ€์ ธ์•ผํ•จ.(์†์„ฑ์˜ ๊ธฐ๋ณธ ๊ฐ’, ๋ฐ์ดํ„ฐ ํ˜•์‹, ๋„ ๊ฐ’์˜ ํ—ˆ์šฉ ์—ฌ๋ถ€, ์ฒดํฌ ๋“ฑ์„ ์ง€์ •)
    2) ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์–ด๋–ค ์†์„ฑ๋„ ๋„ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์œผ๋ฉฐ, ์˜ค์ง ํ•˜๋‚˜์ด ๊ฐ’๋งŒ ์กด์žฌ
    3) ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ ์กฐ๊ฑด : ์ž์‹ ๋ฆด๋ ˆ์ด์…˜์˜ ์™ธ๋ž˜ ํ‚ค์˜ ๊ฐ’์€ ์ฐธ์กฐ๋œ ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธ ํ‚ค ๊ฐ’๊ณผ ๊ฐ™์•„์•ผ ํ•จ. ์ž์‹ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜์˜ ์ œ์•ฝ์„ ๋ฐ›์Œ.

๐Ÿ“Ž๊ด€๊ณ„๋Œ€์ˆ˜ (Relational Algebra)

: ๋ฆด๋ ˆ์ด์…˜์—์„œ ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์ˆ˜ํ•™์˜ ๋Œ€์ˆ˜์™€ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜์—ฌ ์งˆ์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ์–ธ์–ด
1) ์ง‘ํ•ฉ ์—ฐ์‚ฐ (set operations) : ๋ฆด๋ ˆ์ด์…˜์„ ํ–‰์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋ณด๊ณ  ์ ์šฉ. -> ํ•ฉ์ง‘ํ•ฉ(union), ๊ต์ง‘ํ•ฉ(intersection), ์ฐจ์ง‘ํ•ฉ(difference), ์นดํ‹ฐ์…˜ ํ”„๋กœ๋•ํŠธ(cartesian product)

  • ํ•ฉ์ง‘ํ•ฉ : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฆด๋ ˆ์ด์…˜์„ ๋ฐ˜ํ™˜ํ•จ. (์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆœ์„œ์™€ ๋„๋ฉ”์ธ์„ ๊ฐ€์ ธ์•ผ ํ•จ)
  • ๊ต์ง‘ํ•ฉ : ํ•ฉ๋ณ‘ ๊ฐ€๋Šฅํ•œ ๋‘ ๋ฆด๋ ˆ์ด์…˜์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋ฉฐ, ๋‘ ๋ฆด๋ ˆ์ด์…˜์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํˆฌํ”Œ์„ ๋ฐ˜ํ™˜ํ•จ.
  • ์ฐจ์ง‘ํ•ฉ : ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์†ํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ๋ฆด๋ ˆ์ด์…˜์—๋Š” ์†ํ•˜์ง€ ์•Š๋Š” ํŠœํ”Œ์„ ๋ฐ˜ํ™˜ํ•จ.
  • ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ (cartesian product) : ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜ / ํ•œ ๋ฆด๋ ˆ์ด์…˜์— ์†ํ•œ ๋ชจ๋“  ๊ฐ ํ–‰๋“ค์„ ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๋ชจ๋“  ํ–‰๊ณผ ์—ฐ๊ฒฐ์‹œํ‚จ ๊ฒฐ๊ณผ ํ–‰์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“ค์–ด ๋ƒ„.

2) ๊ด€๊ณ„ ์—ฐ์‚ฐ (relational operations) : ๋ฆด๋ ˆ์ด์…˜์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน๋ณ„ํžˆ ๊ฐœ๋ฐœ๋œ ๊ด€๊ณ„ ์—ฐ์‚ฐ -> select, project, join

  • ์„ ํƒ์—ฐ์‚ฐ(selection) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์‹(predicate)์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰๋“ค์„ ์„ ํƒํ•˜๋Š” ์—ฐ์‚ฐ.(์ˆ˜ํ‰์  ๋ถ€๋ถ„์ง‘ํ•ฉ)
  • ์ถ”์ถœ์—ฐ์‚ฐ(projection) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ํŠน์ • ์†์„ฑ(column)์„ ์„ ํƒํ•˜๋Š” ์—ฐ์‚ฐ. (์ˆ˜์ง์  ๋ถ€๋ถ„์ง‘ํ•ฉ)
  • ์กฐ์ธ์—ฐ์‚ฐ(join) : ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์—์„œ ํŠน์ • ์—ด ๊ฐ’ ๊ฐ„์˜ ๋น„๊ต ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ–‰๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์—ฐ์‚ฐ. ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜์„ ์—ฐ๊ฒฐํ•˜๋Š” ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ์™€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Šซ ์•ต์„ ์„ ํƒํ•˜๋Š” ์„ ํƒ์—ฐ์‚ฐ์˜ ๊ฒฐํ•ฉ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.

๐Ÿ’พ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ๊ณผ์ •์—์„œ ์ปดํ“จํ„ฐ์— ์ €์žฅํ•  ๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ
: ๋ชจ๋ธ์€ ํ˜„์‹ค์„ธ๊ณ„์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์ธ์‹์„ ํ‘œํ˜„ - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณผ์ •์€ ์ด ์ธ์‹์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ณผ์ • - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณผ์ •์—์„œ ๊ด€์ ์„ ์„ ์ •ํ•˜๊ณ , ์ถ”์ƒํ™” ํ•˜๋Š” ์ผ์„ ํ•จ

1. ๊ฐœ๋…์  ๋ชจ๋ธ๋ง (conceptual data model) : ํ˜„์‹ค ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ๊ฐœ์ฒด(entity)๋“ค ์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•  ๋Œ€์ƒ๋“ค์„ ์ถ”์ถœ -> ์ด๋ฅผ ์ถ”์ƒํ™” ์‹œํ‚จ ๊ฐœ๋…์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ •. (์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘&๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ์—…๋ฌด์˜ ํ•ต์‹ฌ๊ฐœ๋… ๊ตฌ๋ถ„, ์ „์ฒด์  ๋ผˆ๋Œ€ ๋งŒ๋“œ๋Š” ๊ณผ์ •) (ex. E-R Model)
2. ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง (logical data model) : ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ปดํ“จํ„ฐ(DBMS)๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜. ๊ฐœ๋…์  ๋ชจ๋ธ๋ง์—์„œ ๋งŒ๋“  ERD๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” DBMS์— ๋งž๊ฒŒ ๋งคํ•‘ํ•˜์—ฌ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •.

๐Ÿ™ŒEntity-Relationship Model (E-R Model)

: ์„ธ์ƒ์˜ ์‚ฌ๋ฌผ์„ ๊ฐœ์ฒด(entity)์™€ ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„(relationship)๋กœ ํ‘œํ˜„.

๊ตฌ์„ฑ์š”์†Œ

  1. Entity ๊ฐœ์ฒด : ์—…๋ฌด์˜ ๋Œ€์ƒ์œผ๋กœ์„œ ์•Œ ํ•„์š”๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ณด๊ด€ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ์ค‘์š”ํ•œ ์ •๋ณด. (๋ช…์‚ฌํ˜•/ ์‚ฌ๋ฌผ์˜ ๋ฒ”์ฃผ๋‚˜ ์œ ํ˜•)/ ์—ฌ๋Ÿฌ ๊ฐœ์˜ occurrence๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ./ ์ด๋ฆ„์€ ๋‹จ์ˆ˜ํ˜•์˜ ์œ ์ผํ•œ ์ด๋ฆ„ ์‚ฌ์šฉ, ๋Œ€๋ฌธ์ž ์‚ฌ์šฉ.
  2. Attribute ์†์„ฑ : entity๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์ •๋ณด. ์—”ํ‹ฐํ‹ฐ๋ฅผ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜ ๊ณ„๋Ÿ‰ํ™”์‹œํ‚ค๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ. (์—”ํ‹ฐํ‹ฐ ์ง์› - ์†์„ฑ ์‚ฌ๋ฒˆ, ์ด๋ฆ„, ์ง๊ธ‰ ๋“ฑ๋“ฑ)/ ๋‹จ์ˆ˜ํ˜•, ์†Œ๋ฌธ์ž/ ํ•„์š”ํ•œ ์†์„ฑ '*', ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 'o' ๋ถ™์ด๊ธฐ.
  3. Relationship ๊ด€๊ณ„ : entity๊ฐ„์˜ ๊ด€๊ณ„. ์—…๋ฌด์—์„œ ์š”๊ตฌ๋˜๋Š” ์ •๋ณด๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ์—…๋ฌด๊ทœ์น™.
  4. UID unique identifiers : ์—”ํ‹ฐํ‹ฐ์˜ ๊ฐ occurrence๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ์ด๋‚˜ ๊ด€๊ณ„์˜ ์กฐํ•ฉ. '#'๋ถ™์—ฌ์ฃผ๊ธฐ, secondary UID๋Š” '(#)' ๋ถ™์ด๊ธฐ.


  • Each EMPLOYEE must be assigned to one and only one DEPARTMENT.
  • Each DEPARTMENT may be composed of one or more EMPLOYEEs.

โ€ข Many-to-One (M : 1) : ๊ณ ๊ฐ๊ณผ ์˜์—…์‚ฌ์›, ๋ถ€์„œ์™€ ์ง์›
โ€ข Many-to-Many (M : M) : ํ™˜์ž์™€ ๊ฐ„ํ˜ธ์‚ฌ, ์ฃผ๋ฌธ๊ณผ ์ƒํ’ˆ, ํ•™์ƒ๊ณผ ์ˆ˜๊ฐ•๊ณผ๋ชฉ
โ€ข One-to-One (1 : 1) : ์ž์ „๊ฑฐ์™€ ์ž์ „๊ฑฐ ์„ ์ˆ˜, ์‹ ๋ž‘๊ณผ ์‹ ๋ถ€
โ€ข Resolving Many-to-Many relationships : ๋‘๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ ์‚ฌ์ด์— ๋˜ ํ•˜๋‚˜์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ•˜๋‚˜์˜ M:M relationship์„ ๋‘ ๊ฐœ์˜ M:1 relationship์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Œ.
โ€ข Intersection Entity : M:M -> M:1 ์ „ํ™˜๊ณผ์ •์—์„œ ์ƒˆ๋กœ์ด ์ถ”๊ฐ€๋˜๋Š” ์—”ํ‹ฐํ‹ฐ. Intersection entity์˜ UID๋Š” ์ข…์ข… ์›๋ž˜์˜ ์—”ํ‹ฐํ‹ฐ๋“ค์˜ UID๋“ค๋กœ ๊ตฌ์„ฑ๋จ. >> ์ด๋Ÿฐ ๊ฒฝ์šฐ relationship์„ ๋‚˜ํƒ€๋‚ด๋Š” ์„ ์— UID bar๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„.

profile
sim

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 18์ผ

์ •๋ง ์ข‹์€ ์ •๋ณด ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ