[DATABASE] Outline

์„ฑ์žฅ์ผ๊ธฐยท2024๋…„ 6์›” 29์ผ

[SWCAMP] DB

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

Data & Information

Data

๐Ÿ’ก ๊ด€์ฐฐ์˜ ๊ฒฐ๊ณผ. ์ •๋Ÿ‰์  ํ˜น์€ ์ •์„ฑ์  ์‹ค์ œ ๊ฐ’
ex) 2024๋…„ ์ „์„ธ์‚ฌ๊ธฐ ํ”ผํ•ด์ž ์ˆ˜: 5000๋ช…

Information

๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌ๋œ ๊ฒƒ
ex) ์ตœ๊ทผ ์ „์„ธ์‚ฌ๊ธฐ ํ”ผํ•ด์ž ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ์ถ”์„ธ์ด๋‹ค.

Database

๐Ÿ’ก ํ•œ ์กฐ์ง์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ์‘์šฉ ์‹œ์Šคํ…œ์—์„œ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์œผ๊ณ , ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์†Œํ™”ํ•˜์—ฌ ๊ตฌ์กฐ์ ์œผ๋กœ ํ†ตํ•ฉ/์ €์žฅํ•ด ๋†“์€ ๊ฒƒ.
๊ตฌ์กฐํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ปดํ“จํ„ฐ์—์„œ ์‰ฝ๊ฒŒ ์ ‘๊ทผ, ๊ด€๋ฆฌ, ์—…๋ฐ์ดํŠธ ๊ฐ€๋Šฅ.

DATA ์ •์˜

  1. ์šด์˜ ๋ฐ์ดํ„ฐ(Operational Data): ์กฐ์ง์˜ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
  2. ๊ณต์šฉ ๋ฐ์ดํ„ฐ(Shared Data): ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
  3. ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ(Integrated Data): ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ํ˜„์ƒ ์ œ๊ฑฐ
  4. ์ €์žฅ ๋ฐ์ดํ„ฐ(Stored Data): ์ปดํ“จํ„ฐ ์ €์žฅ ์žฅ์น˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ

    ์ €์žฅ ๋ฐ์ดํ„ฐ -> ์˜์†์„ฑ ๋ฐ์ดํ„ฐ: ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(SSD, HDD)์— ์ €์ง•๋˜๋Š” ๋ฐ์ดํ„ฐ

Database ํŠน์ง•

  1. ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ(Real Time Accessibility): ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ ์š”์ฒญ ์‹œ, ์‹ค์‹œ๊ฐ„์œผ๋กœ ๊ฒฐ๊ณผ ์ œ๊ณต.
  2. ๊ณ„์†์ ์ธ ๋ณ€ํ™”(Continuous Change): ๋ฐ์ดํ„ฐ ๊ฐ’์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๊ณ„์† ๋ฐ”๋€œ.
  3. ๋™์‹œ ๊ณต์œ (Concurrent Sharing): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—…๋ฌด ๋˜๋Š” ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์‹œ ๊ณต์œ ๋จ.
  4. ๋‚ด์šฉ์— ๋”ฐ๋ฅธ ์ฐธ์กฐ(Reference By Content): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์œ„์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฐธ์กฐ๋จ.

DBMS
(Database Management System)

DBMS

๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœ, ์กฐ์ž‘, ์ •์˜, ์ œ์–ด ๋“ฑ์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ „์šฉ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ๋“ค

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์†Œํ†ตํ•˜๋Š” ๋งค๊ฐœ์ฒด

DBMS์˜ ๊ธฐ๋Šฅ

์ฃผ์š” ๊ธฐ๋Šฅ๋‚ด์šฉ
๋ฐ์ดํ„ฐ ์ถ”์ถœ
(Retrieval)
์‚ฌ์šฉ์ž๊ฐ€ ์กฐํšŒํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜น์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœ
๋ฐ์ดํ„ฐ ์กฐ์ž‘
(Manipulation)
๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด(์‘์šฉ ํ”„๋กœ๊ทธ๋žจ)๊ฐ€ ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ์ž‘์—…์„ ์ง€์›
๋ฐ์ดํ„ฐ ์ •์˜
(Definition)
๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰
๋ฐ์ดํ„ฐ ์ œ์–ด
(Control)
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉฐ ์ ‘๊ทผ์„ ์ œ์–ด
๋ฐฑ์—…๊ณผ ํšŒ๋ณต, ๋™์‹œ์„ฑ ์ œ์–ด ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ง€์›

DBMS์˜ ์‚ฌ์šฉ ์ด์ 

์ฃผ์š” ์ด์ ๋‚ด์šฉ
๋ฐ์ดํ„ฐ ์ค‘๋ณต
์ตœ์†Œํ™”
๋ฐ์ดํ„ฐ์™€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋ถ„๋ฆฌ์‹œ์ผœ, ์ƒํ˜ธ ์˜ํ–ฅ์„ ์ค„์ผ ์ˆ˜ ์žˆ์Œ.
์ฟผ๋ฆฌ ์–ธ์–ดDBMS๋Š” SQL(Structured Query Language)๊ณผ ๊ฐ™์€ ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ์ œ๊ณต,
๋ณต์žกํ•œ ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰๊ฐ€๋Šฅ.
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑDBMS๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ์ œ์•ฝ ์กฐ๊ฑด๊ณผ ๊ทœ์น™์„ ์„ค์ • ๊ฐ€๋Šฅ.
์ด๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ์˜ ํ’ˆ์งˆ๊ณผ ์ •ํ™•์„ฑ์„ ๋ณด์žฅ.
๋ฐ์ดํ„ฐ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌDBMS๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฐฑ์—…๊ณผ ๋ณต๊ตฌ๋ฅผ ์ง€์›.
์‹œ์Šคํ…œ ์žฅ์• ๋‚˜ ๋ฐ์ดํ„ฐ ์†์ƒ ์‹œ์—๋„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์› ๊ฐ€๋Šฅ.
ํ‘œ์ค€ํ™”DBMS๋Š” ํ‘œ์ค€ํ™”๋œ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ.
๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ์™€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์ด ์ผ๊ด„์ . ๋”ฐ๋ผ์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ๋ฐ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ด.

DBMS์˜ ์ข…๋ฅ˜์™€ ํŠน์ง•

SQL ServerOracleMySQLMariaDBDB2SQLite
์ œ์กฐ์‚ฌMSOracleOracleMariaDB์žฌ๋‹จIBMD.Richard Hipp
(์˜คํ”ˆ์†Œ์Šค)
๊ธฐ๋ฐ˜
์šด์˜์ฒด์ œ
์œˆ๋„์šฐ์œˆ๋„์šฐ
์œ ๋‹‰์Šค
๋ฆฌ๋ˆ…์Šค
์œˆ๋„์šฐ
์œ ๋‹‰์Šค
๋ฆฌ๋ˆ…์Šค
์œˆ๋„์šฐ
์œ ๋‹‰์Šค
๋ฆฌ๋ˆ…์Šค
์œ ๋‹‰์Šค๋ชจ๋ฐ”์ผOS
(์•ˆ๋“œ๋กœ์ด๋“œ,
IOS ๋“ฑ)
์šฉ๋„์œˆ๋„์šฐ๊ธฐ๋ฐ˜
๊ธฐ์—…์šฉ
๋Œ€์šฉ๋Ÿ‰
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์†Œ์šฉ๋Ÿ‰
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
์†Œ์šฉ๋Ÿ‰
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋Œ€์šฉ๋Ÿ‰
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
๋ชจ๋ฐ”์ผ์ „์šฉ
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

Database์˜ ๋ณ€์ฒœ ๊ณผ์ •

  • ํŒŒ์ผ์‹œ์Šคํ…œ(File System)

    • ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์ €์žฅ
    • ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐฉ์‹
      • ๐Ÿ‘: ๋ณต์žกํ•˜์ง€ ์•Š์Œ
      • ๐Ÿ‘Ž: ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ ๋ถ€์กฑ
  • ๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Hierarchical Data Model)

    • ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ„์ธต์  ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ์กฐ์งํ™”
    • ๊ฐ ๋ ˆ๋ฒจ์˜ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์€ ์ƒ์œ„ ๋ ˆ๋ฒจ์˜ ํ•˜๋‚˜์˜ ํ•ญ๋ชฉ์— ์—ฐ๊ฒฐ.
    • ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
    • ์ฃผ๋กœ ๋ฌธ์„œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด๋‚˜ XML ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ
  • ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Network Data Model)

    • ๊ณ„์ธต ๋ชจ๋ธ๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์ด ์—ฌ๋Ÿฌ ์ƒ์œ„ ํ•ญ๋ชฉ๊ณผ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ์–ด ๋ณต์žกํ•œ ๊ด€๊ณ„์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฐ ์ ํ•ฉ
    • ๊ฐ ๋…ธ๋“œ๋Š” ์—ฌ๋Ÿฌ ๋ถ€๋ชจ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์–ด ๋” ์œ ์—ฐํ•œ ๊ด€๊ณ„ ํ‘œํ˜„์ด ๊ฐ€๋Šฅ
  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Relational Data Model)

    • ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ(ํ–‰๊ณผ ์—ด๋กœ ๊ตฌ์„ฑ)
    • ์„œ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ํ‚ค๋ฅผ ํ†ตํ•ด ์ •์˜
    • ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์™€ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์„ ์šฉ์ดํ•˜๊ฒŒ ํ•จ
  • ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Object Data Model)

    • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๊ฐœ๋…์„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์— ์ ์šฉ
    • ๋ฐ์ดํ„ฐ์— ์—ฐ๊ด€๋œ ๋™์ž‘์„ ๊ฐ์ฒด๋กœ ์บก์Аํ™”ํ•˜๊ณ  ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ์ƒ์†, ๋‹คํ˜•์„ฑ ๋“ฑ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋…์„ ์ง€์›ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋” ์ž์—ฐ์Šค๋Ÿฌ์šด ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.
  • ๊ฐ์ฒด-๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(Object-Relational Data Model)

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

Database์˜ ์œ ํ˜•

๊ณ„์ธตํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค vs ๋„คํŠธ์›Œํฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๊ณ„์ธตํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Hierarchical Database)

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

  • ๐Ÿ‘:

    • ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋Š” ์ง๊ด€์ ์ด๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€.
    • ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์— ์˜ํ•œ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์ด ๋น ๋ฆ„.
  • ๐Ÿ‘Ž:

    • ๋ณต์žกํ•œ ๋งŽ์€ many to many ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›€.
    • ์œ ์—ฐ์„ฑ์ด ๋ถ€์กฑ, ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์–ด๋ ค์›€.

๋„คํŠธ์›Œํฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Network Database)

๐Ÿ’ก ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง. ๊ฐ ๋…ธ๋“œ๋Š” ์—ฌ๋Ÿฌ ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์–ด, ๊ณ„์ธตํ˜•๋ณด๋‹ค ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ ๊ฐ€๋Šฅ.
๋ฐ์ดํ„ฐ๋Š” "์ฃผ์ธ-๋ฉค๋ฒ„" ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ์—ฐ๊ฒฐ๋จ.
ํŠนํžˆ ์ด๋Š” ๋งŽ์€ M:N ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ ํ•ฉ.

  • ๐Ÿ‘:

    • ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ ๊ฐ€๋Šฅ.
    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ํšจ๊ณผ์ .
  • ๐Ÿ‘Ž:

    • ๊ตฌ์กฐ๊ฐ€ ๋ณต์žก. ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์›€.
    • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰ ๋ฐ ๊ด€๋ฆฌ์— ๋†’์€ ์ˆ˜์ค€์˜ ์ฒ˜๋ฆฌ๋Šฅ๋ ฅ์ด ํ•„์š”.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS, Relational Database Management System)

๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋กœ ์ €์žฅ. ๊ฐ ํ…Œ์ด๋ธ”์€ ํ–‰(๋ ˆ์ฝ”๋“œ)๊ณผ ์—ด(ํ•„๋“œ)๋กœ ๊ตฌ์„ฑ. ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ๊ณตํ†ต ํ•„๋“œ๋ฅผ ํ†ตํ•ด ํ˜•์„ฑ.
SQL(Structured Query Language)์€ RDBMS์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๊ณ  ์ฟผ๋ฆฌํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด๋กœ ์—„๊ฒฉํ•œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ทœ์น™์„ ๊ฐ€์ง.
ACID(Atomicity, Consistency, Isolation, Durability) ํŠธ๋žœ์žญ์…˜ ์†์„ฑ์„ ์ง€์›.

Atomicity(์›์ž์„ฑ)
: ํŠธ๋žœ์žญ์…˜ ๋‚ด์˜ ๋ชจ๋“  ์—ฐ์‚ฐ์€ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ๊ฐ„์ฃผ๋˜์–ด์•ผ ํ•œ๋‹ค.
Consistency(์ผ๊ด€์„ฑ)
: ํŠธ๋žœ์žญ์…˜์˜ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๊ด€๋œ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค. (๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด์„ ๋งŒ์กฑํ•จ์„ ๋ณด์ฆ)
Isolation(๊ณ ๋ฆฝ์„ฑ)
: ๋™์‹œ์— ์‹คํ–‰๋˜๋Š” ์—ฌ๋Ÿฌ ํŠธ๋žœ์žญ์…˜์ด ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•ด์„œ ๋™์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.
Durability(์ง€์†์„ฑ)
: ํŠธ๋ž™์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์‹œ์Šคํ…œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋˜์–ด์•ผํ•œ๋‹ค.(์ปค๋ฐ‹ ๋˜๋ฉด ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅ๋จ์„ ๋ณด์ฆ)

  • ๐Ÿ‘:
    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๋Š”๋ฐ ํšจ๊ณผ์ .
    • ๊ฐ•๋ ฅํ•œ ์ฟผ๋ฆฌ ์–ธ์–ด(SQL)๋กœ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ๊ฐ€๋Šฅ.
    • ๋ฐ์ดํ„ฐ์˜ ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ์ค‘๋ณต์„ฑ์„ ์ตœ์†Œํ™”.
  • ๐Ÿ‘Ž:
    • ๋ณต์žกํ•œ ๊ฐ์ฒด ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ํ•œ๊ณ„.
    • ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ์ด ์–ด๋ ต๊ณ  ๋น„์šฉ์ด ๋งŽ์ด ๋“ฆ.

๊ฐ์ฒด-๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(ORDBMS, Object-Relational Database Management System)

๐Ÿ’ก ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜์—ฌ ๊ฐ์ฒด ์ง€ํ–ฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ง€์›.
์ด๋ฅผ ํ†ตํ•ด ORDBMS๋Š” ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…(์˜ˆ: ๋ฐฐ์—ด, ๋”•์…”๋„ˆ๋ฆฌ ๋“ฑ)๊ณผ ๋ฉ”์†Œ๋“œ, ์ƒ์† ๋“ฑ์˜ ๊ฐ์ฒด ์ง€ํ–ฅ ๊ธฐ๋Šฅ์„ ํ™œ์šฉ ๊ฐ€๋Šฅ.
ORDBMS๋Š” RDBMS์˜ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ์™€ SQL์˜ ๊ฐ•๋ ฅํ•œ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•˜๋ฉด์„œ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์œ ์—ฐ์„ฑ๊ณผ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ํŠน์ง•.

  • ๐Ÿ‘:
    • ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…๊ณผ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง€์›.
    • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ•๋ ฅํ•œ ์ฟผ๋ฆฌ ๊ธฐ๋Šฅ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€.
  • ๐Ÿ‘Ž:
    • ๊ตฌํ˜„์ด ๋ณต์žกํ•˜๋ฉฐ, ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ต๋‹ค.
    • ๋ชจ๋“  ์ƒํ™ฉ์— ์ ํ•ฉํ•œ ์†”๋ฃจ์…˜์€ ์•„๋‹ˆ๋ฏ€๋กœ ์ผ๋ฐ˜์ ์ธ ์—…๋ฌด์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—๋Š” RDBMS๊ฐ€ ๋” ์ ํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.
      -> ์‚ฌ์‹ค ํ˜„์žฌ๋Š” ORDBM๊ณผ RDBM์„ ๊ตฌ๋ถ„ํ•˜๋Š” ํฐ ์˜๋ฏธ๋Š” ์—†๋‹ค.

profile
์—”์ง€๋‹ˆ์–ด๋กœ์˜ ์„ฑ์žฅ์ผ์ง€

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