๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Database System

[CS] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ(1/2)

by The Future Engineer, Lucy 2024. 11. 7.
728x90
๋ฐ˜์‘ํ˜•

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€?

  • ์ผ์ •ํ•œ ๊ทœ์น™, ํ˜น์€ ๊ทœ์•ฝ์„ ํ†ตํ•ด ๊ตฌ์กฐํ™”๋˜์–ด ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ.
  • ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ œ์–ด, ๊ด€๋ฆฌํ•˜๋Š” ํ†ตํ•ฉ ์‹œ์Šคํ…œ์„ DBMS๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ํŠน์ • DBMS๋งˆ๋‹ค ์ •์˜๋œ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ํ†ตํ•ด ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ์กฐํšŒ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ๊ณผ ๋™์‹œ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅ.

์—”ํ„ฐํ‹ฐ

  • ์—”ํ„ฐํ‹ฐ๋Š” ์‚ฌ๋žŒ, ์žฅ์†Œ, ๋ฌผ๊ฑด, ์‚ฌ๊ฑด, ๊ฐœ๋… ๋“ฑ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†์„ฑ์„ ์ง€๋‹Œ ๋ช…์‚ฌ๋ฅผ ์˜๋ฏธ.

์•ฝํ•œ ์—”ํ„ฐํ‹ฐ์™€ ๊ฐ•ํ•œ ์—”ํ„ฐํ‹ฐ

  • A๊ฐ€ ํ˜ผ์ž์„œ๋Š” ์กด์žฌํ•˜์ง€ ๋ชปํ•˜๊ณ  B์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ข…์„์ ์ด๋ผ๋ฉด A๋Š” ์•ฝํ•œ ์—”ํ„ฐํ‹ฐ B๋Š” ๊ฐ•ํ•œ ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋จ.

๋ฆด๋ ˆ์ด์…˜

  • ๋ฆด๋ ˆ์ด์…˜์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ •๋ณด๋ฅผ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„.
  • ์—”ํ„ฐํ‹ฐ์— ๊ด€ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฆด๋ ˆ์ด์…˜ ํ•˜๋‚˜์— ๋‹ด์•„์„œ ๊ด€๋ฆฌํ•จ.

ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋ ‰์…˜

  • ๋ฆด๋ ˆ์ด์…˜์€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ํ…Œ์ด๋ธ”์ด๋ผ๊ณ  ํ•˜๋ฉฐ, NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ํ•จ.
  • ๋Œ€ํ‘œ์ ์ธ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MySQL์˜ ๊ตฌ์กฐ๋Š” ๋ ˆ์ฝ”๋“œ-ํ…Œ์ด๋ธ”-๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๋ฃจ์–ด์ง.
    ๋ ˆ์ฝ”๋“œ๊ฐ€ ์Œ“์—ฌ์„œ ํ…Œ์ด๋ธ”์ด ๋˜๊ณ  ํ…Œ์ด๋ธ”์ด ์Œ“์—ฌ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋˜๋Š” ๊ฒƒ.
  • ๋Œ€ํ‘œ์ ์ธ MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋Š” ๋„ํ๋จผํŠธ-์ปฌ๋ ‰์…˜-๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ์ด๋ฃจ์–ด์ง.

์†์„ฑ

  • ์†์„ฑ์€ ๋ฆด๋ ˆ์ด์…˜์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ตฌ์ฒด์ ์ด๋ฉฐ ๊ณ ์œ ํ•œ ์ด๋ฆ„์„ ๊ฐ–๋Š” ์ •๋ณด.
  • ์„œ๋น„์Šค์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋Š” ์†์„ฑ๋“ค๋งŒ ์—”ํ„ฐํ‹ฐ์˜ ์†์„ฑ์ด ๋จ.

๋„๋ฉ”์ธ

  • ๋ฆด๋ ˆ์ด์…˜์— ํฌํ•จ๋œ ๊ฐ๊ฐ์˜ ์†์„ฑ๋“ค์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ.

ํ•„๋“œ์™€ ๋ ˆ์ฝ”๋“œ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํ•„๋“œ์™€ ๋ ˆ์ฝ”๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ํšŒ์›์ด๋ž€ ์—”ํ„ฐํ‹ฐ๋Š” member๋ผ๋Š” ํ…Œ์ด๋ธ”๋กœ ์†์„ฑ์ธ ์ด๋ฆ„, ์•„์ด๋”” ๋“ฑ์„ ๊ฐ€์ง€๋ฉฐ name, ID ๋“ฑ์„ ํ•„๋“œ๋กœ ๊ฐ€์ง.
    ๊ทธ๋ฆฌ๊ณ  ์ด ํ…Œ์ด๋ธ”์— ์Œ“์ด๋Š” ํ–‰ ๋‹จ์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ ˆ์ฝ”๋“œ ํ˜น์€ ํŠœํ”Œ์ด๋ผ๊ณ  ํ•จ.

ํ•„๋“œ ํƒ€์ž…

  • ํ•„๋“œ๋Š” ํƒ€์ž…์„ ๊ฐ–์Œ. ์ˆซ์ž ํƒ€์ž…, ๋‚ ์งœ ํƒ€์ž…, ๋ฌธ์ž ํƒ€์ž… ๋“ฑ ์—ฌ๋Ÿฌ ํƒ€์ž…์ด ์žˆ์Œ.
  • ํƒ€์ž…์€ DBMS๋งˆ๋‹ค ๋‹ค๋ฆ„. MySQL ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด
    ์ˆซ์ž ํƒ€์ž…์€ TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT ๋“ฑ์ด ์žˆ์Œ.
    ๋‚ ์งœ ํƒ€์ž…์€ DATE, DATETIME, TIMESTAMP ๋“ฑ์ด ์žˆ์Œ.
    ๋ฌธ์ž ํƒ€์ž…์€ CHAR, VARCHAR, TEXT, BLOB, ENUM, SET์ด ์žˆ์Œ.

๊ด€๊ณ„

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹˜. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์žˆ๊ณ  ์ด๋Ÿฌํ•œ ํ…Œ์ด๋ธ”์€ ์„œ๋กœ์˜ ๊ด€๊ณ„๊ฐ€ ์ •์˜๋จ.

1:1 ๊ด€๊ณ„

  • 1:1 ๊ด€๊ณ„๋Š” ํ…Œ์ด๋ธ”์„ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋ˆ  ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ฆ.

1:N ๊ด€๊ณ„

  • ํ•œ ๊ฐœ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๋งŽ์€ ๊ฐœ์ฒด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ด€๊ณ„.

1๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„๊ฐ€ ๋ฐ˜๋“œ์‹œ ์กด์žฌ

  • ์˜ˆ๋ฅผ ๋“ค์–ด ์œ ์ €๊ฐ€ ๋ฐ˜๋“œ์‹œ ๋ฌผ๊ฑด์„ ์‚ฌ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌ.

1๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„๊ฐ€ ์กด์žฌ.

  • ์˜ˆ๋ฅผ ๋“ค์–ด ์œ ์ €๊ฐ€ ๋ฌผ๊ฑด์„ ์ƒ€์„ ์ˆ˜๋„ ์žˆ๊ณ , ์•ˆ ์ƒ€์„ ์ˆ˜๋„ ์žˆ์Œ.

N:M ๊ด€๊ณ„

  • N:M์€ ํ…Œ์ด๋ธ” ๋‘ ๊ฐœ๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐํ•ด์„œ ๊ตฌ์ถ•ํ•˜์ง€๋Š” ์•Š๊ณ , 1:N, 1:M์ด๋ผ๋Š” ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š” ํ…Œ์ด๋ธ” ๋‘ ๊ฐœ๋กœ ๋‚˜๋ˆ ์„œ ์„ค์ •.


ํ‚ค

  • ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์กฐ๊ธˆ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๊ณ  ํ…Œ์ด๋ธ” ์ž์ฒด์˜ ์ธ๋ฑ์Šค๋ฅผ ์œ„ํ•ด ์„ค์ •๋œ ์žฅ์น˜๋กœ ๊ธฐ๋ณธํ‚ค, ์™ธ๋ž˜ํ‚ค, ํ›„๋ณดํ‚ค, ์Šˆํผํ‚ค, ๋Œ€์ฒดํ‚ค๊ฐ€ ์žˆ์Œ.

๊ธฐ๋ณธํ‚ค(PK, Primary Key)

  • ์œ ์ผ์„ฑ๊ด€ ์ตœ์†Œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ํ‚ค
  • ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์ค‘ ๊ณ ์œ ํ•˜๊ฒŒ ์กด์žฌํ•˜๋Š” ์†์„ฑ์ด๋ฉฐ ๊ธฐ๋ณธํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ค‘๋ณต๋˜์–ด์„œ๋Š” ์•ˆ ๋จ.
  • ๊ธฐ๋ณธํ‚ค๋Š” ์ž์—ฐํ‚ค ๋˜๋Š” ์ธ์กฐํ‚ค ์ค‘์— ๊ณจ๋ผ ์„ค์ •.
์ž์—ฐํ‚ค
  • ์ค‘๋ณต๋œ ๊ฐ’๋“ค์„ ์ œ์™ธํ•˜๋ฉฐ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์ž์—ฐ์“ฐ๋ ˆ ๋ฝ‘๋‹ค๊ฐ€ ๋‚˜์˜ค๋Š” ํ‚ค๋ฅผ ์ž์—ฐํ‚ค๋ผ๊ณ  ํ•จ.
  • ์ž์—ฐํ‚ค๋Š” ์–ธ์  ๊ฐ€๋Š” ๋ณ€ํ•˜๋Š” ์†์„ฑ์„ ์ง€๋‹˜.
์ธ์กฐํ‚ค
  • ์ธ์œ„์ ์œผ๋กœ ์•„์ด๋””๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด์„œ ๊ณ ์œ  ์‹๋ณ„์ž๊ฐ€ ์ƒ๊น€. ์ด๋ ‡๊ฒŒ ์ธ์œ„์ ์œผ๋กœ ์ƒ์„ฑํ•œ ํ‚ค๋ฅผ ์ธ์กฐํ‚ค๋ผ๊ณ  ํ•จ.
  • ์ž์—ฐํ‚ค์™€๋Š” ๋Œ€์กฐ์ ์œผ๋กœ ๋ณ€ํ•˜์ง€ ์•Š์Œ.
  • ๋ณดํ†ต ๊ธฐ๋ณธํ‚ค๋Š” ์ธ์กฐํ‚ค๋กœ ์„ค์ •.

์™ธ๋ž˜ํ‚ค(FK, Foreign Key)

  • ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ทธ๋Œ€๋กœ ์ฐธ์กฐํ•˜๋Š” ๊ฐ’์œผ๋กœ ๊ฐœ์ฒด์™€์˜ ๊ด€๊ณ„๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.
  • ์™ธ๋ž˜ํ‚ค๋Š” ์ค‘๋ณต๋  ์ˆ˜ ์žˆ์Œ.

ํ›„๋ณดํ‚ค(Candidate Key)

  • ๊ธฐ๋ณธํ‚ค๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด๋“ค์ด๋ฉฐ ์œ ์ผ์„ฑ๊ณผ ์ตœ์†Œ์„ฑ์„ ๋™์‹œ์— ๋งŒ์กฑํ•˜๋Š” ํ‚ค

๋Œ€์ฒดํ‚ค(Alternate Key)

  • ํ›„๋ณดํ‚ค๊ฐ€ ๋‘ ๊ฐœ ์ด์ƒ์ผ ๊ฒฝ์šฐ ์–ด๋Š ํ•˜๋‚˜๋ฅผ ๊ธฐ๋ณธํ‚ค๋กœ ์ง€์ •ํ•˜๊ณ  ๋‚จ์€ ํ›„๋ณดํ‚ค๋“ค์„ ๋งํ•จ.

์Šˆํผํ‚ค(Super Key)

  • ๊ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผ์„ฑ์„ ๊ฐ–์ถ˜ ํ‚ค
728x90
๋ฐ˜์‘ํ˜•

'Computer Science > Database System' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[CS] ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ(2/2)  (3) 2024.11.15