ํฌ์ŠคํŠธ

๐ŸŒš DB, DB ์„ค๊ณ„ ๊ณผ๋ชฉ

  • DB, DataBase
    • ๋ฐฉ์ •๋ฆฌ๋ฅผ ์™œ ํ• ๊นŒ : ์ž˜ ์ฐพ์„๋ ค๊ณ ! (์ž˜ ๋ณด๊ด€ํ•˜๋ ค๊ณ ๊ฐ€ ์•„๋‹ˆ๋ผ)
    • ๋ฐ์ดํ„ฐ๋„ ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ฐพ์„ ๋•Œ ์ฒœ๋ฐฐ ๋‚ซ๋‹ค
    • ์ œ๋ชฉ (๋ฌธ์ž์—ด)๋กœ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ถ„๋ฅ˜๋กœ ์ฐพ๋Š” ๊ฒŒ ๋น ๋ฅด๋‹ค

    • No Index : ์ „๋ถ€ ๋‹ค ๋’ค์ง„๋‹ค
    • SQL : ์ •ํ˜•ํ™”, ๋Œ€๊ธฐ์—…, ์‹ค์ˆ˜๋ฅผ ์ ˆ๋Œ€๋กœ ํ•˜๋ฉด ์•ˆ๋  ๋•Œ
    • NoSQL : ๋น„์ •ํ˜•ํ™”, ์•ž์œผ๋กœ ๋ญ”๊ฐ€ ๋งŽ์ด ๋ฐ”๋€” ๋•Œ

  • WHAT
    • DB, DBMS, Data Model (Kind), DB System
    • DB ๊ฐœ๋… (4), ํŠน์ง• (4)
    • File System VS DB (๋ฐ์ดํ„ฐ ์ ‘๊ทผ ๋ฐฉ๋ฒ• ๋“ฑ)
    • 3๋‹จ๊ณ„ ๊ตฌ์กฐ, ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ
    • 2-Tier, 3-Tier

์—”ํ„ฐํ”„๋ผ์ด์ฆˆ?
ํฌํƒˆ?

DB : ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ ์ €์žฅ, ์ €์žฅ๋ฌผ, ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์ฒด
DB ์‹œ์Šคํ…œ : ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณผ์ •/์ฒด๊ณ„, DB ์ƒ์‚ฐ ๊ณต์žฅ

์•„์›ƒ๋ผ์ธ์„ ๋ณด์ž

ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ DBMS์˜ ์ฐจ์ด

DB ์‹œ์Šคํ…œ์˜ ์ปดํฌ๋„ŒํŠธ๋“ค

์‚ฌ๋žŒ,์ด DBMS,๋กœ ๋ฐ์ดํ„ฐ,๋ฅผ DB,๋กœ


๋ฐ์ดํ„ฐ : ๊ฐ€๊ณต์ด ์•ˆ๋œ ์œ ๋ฌดํ˜•์˜ SMT

  • ๊ด€์ฐฐ์˜ ๊ฒฐ๊ณผ๋กœ ๋‚˜ํƒ€๋‚œ ์ •๋Ÿ‰์ (ํฌ๊ธฐ๊ฐ€ ์กด์žฌ) ํ˜น์€ ์ •์„ฑ์ ์ธ(๊ฐ’์œผ๋กœ ์ธก์ •๋˜์ง€ ์•Š๋Š” : ์ž˜ํ•œ๋‹ค, ๋ชปํ•œ๋‹ค) ์‹ค์ œ ๊ฐ’
  • ์‚ฌ์‹ค(facts, ์ •์„ฑ์ )์ด๋‚˜ ๊ฐ’(values: ์ˆ˜์น˜(์ˆซ์ž), ์ŠคํŠธ๋ง etc., ์ •๋Ÿ‰์ )

์ •๋ณด : ๊ฐ€๊ณต๋œ ๋ฐ์ดํ„ฐ

  • ๋ฐ์ดํ„ฐ์— ์˜๋ฏธ๋ฅผ ๋ถ€์—ฌํ•œ ๊ฒƒ
  • ์˜์‚ฌ๊ฒฐ์ •์„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ํ•ด์„์ด๋‚˜ ๋ฐ์ดํ„ฐ ์ƒํ˜ธ๊ฐ„์˜ ๊ด€๊ณ„

์ง€์‹ : ์ •๋ณด๋ฅผ ํ™œ์šฉํ•˜์—ฌ

  • ์‚ฌ๋ฌผ์ด๋‚˜ ํ˜„์ƒ์— ๋Œ€ํ•œ ์ดํ•ด

๋ฐ์ดํ„ฐ != ์ •๋ณด
๋‹จ์ˆœ ์ˆซ์ž 3๊ฐœ๋ฅผ ๊ทธ๋ƒฅ ๋ณผ ๋•Œ์™€ 3 ์‚ฌ์ด์ฆˆ๋ผ๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๋ณผ ๋•Œ์˜ ์ฐจ์ด

์ •๋ณด์ฒ˜๋ฆฌ, ์ž๋ฃŒ์ฒ˜๋ฆฌ : ์ •๋ณด์ถ”์ถœ๋ฐฉ๋ฒ•

DB :
์กฐ์ง์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ๋…ผ๋ฆฌ์ ์œผ๋กœ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„ ๊ตฌ์กฐ์ ์œผ๋กœ ํ†ตํ•ฉํ•ด ๋†“์€ ๊ฒƒ


๊ตฌ์ถ•์ด ์‰ฌ์›€

  • ๊ณต๋ฃก DB
    • ๊ฒ€์ƒ‰์ด ๋งŽ์ง€ ์•Š์•„ DB๋ฅผ ๊ตฌ์ถ•ํ•  ํ•„์š” ์—†์Œ
    • ๋ณด์กด๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์— ๊ตฌ์ถ•
  • ๋„์„œ
    • ์‚ฌ์šฉ์ž ์ˆ˜ ๋ณดํ†ต
    • ๊ฒ€์ƒ‰์€ ๋งŽ์ง€๋งŒ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ์€ ์ ์Œ
  • ๋น„ํ–‰๊ธฐ ์˜ˆ์•ฝ
    • ์˜ˆ์•ฝ ๋ณ€๊ฒฝ/์ทจ์†Œ ๋“ฑ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์€ ๋งŽ์ง€๋งŒ ๊ฒ€์ƒ‰์€ ์ ์Œ
    • ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰ ๋ฐ ๋ณ€๊ฒฝ์ด ์ค‘์š”ํ•จ
  • ์ฆ๊ถŒ
    • ์‚ฌ์šฉ์ž ์ˆ˜ ๋งŽ์Œ
    • ๊ฒ€์ƒ‰๋„ ๋งŽ๊ณ  ๊ฑฐ๋ž˜๋กœ ์ธํ•œ ๋ณ€๊ฒฝ๋„ ๋งŽ์Œ

๊ตฌ์ถ•์ด ์–ด๋ ค์›€


DB

ํ•œ ์กฐ์ง(enterprise)์˜ ์—ฌ๋Ÿฌ ์‘์šฉ ์‹œ์Šคํ…œ๋“ค์ด
๊ณต์šฉ(shared)ํ•˜๊ธฐ ์œ„ํ•ด
ํ†ตํ•ฉ(integrated), ์ €์žฅ(stored)ํ•œ
์šด์˜ ๋ฐ์ดํ„ฐ(operational data)์˜ ์ง‘ํ•ฉ


DB ๊ฐœ๋…

  • ํ†ตํ•ฉ๋œ ๋ฐ์ดํ„ฐ, Integrated data
    • ๋ฐ์ดํ„ฐ ํ†ตํ•ฉ โ†’ ๋ฐ์ดํ„ฐ ์ค‘๋ณต ์ตœ์†Œํ™”, Minimal Redundancy
    • ์™œ Why?
      • ์ค‘๋ณต์œผ๋กœ ์ธํ•œ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ํ˜„์ƒ์„ ์—†์•ฐ, Controlled Redundancy
  • ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ, Stored Data
    • ๋ฌธ์„œ X, ์ปดํ“จํ„ฐ ์ €์žฅ์žฅ์น˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ (๋””์Šคํฌ, ํ…Œ์ดํ”„)
  • ์šด์˜ ๋ฐ์ดํ„ฐ Operational Data
    • ์กฐ์ง์˜ ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ
    • ์—…๋ฌด๋ฅผ ์œ„ํ•œ ๊ฒ€์ƒ‰์„ ํ•  ๋ชฉ์ ์œผ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ
  • ๊ณต์šฉ ๋ฐ์ดํ„ฐ Shared Data
    • ํ•œ ์‚ฌ๋žŒ/์—…๋ฌด๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ผ, ๊ณต๋™์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ

๊ฐ์ž ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์ž‘์—…ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ,
์ด๋Ÿฐ ๊ณตํ†ต ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉ Integrate ํ•ด์„œ ํ•˜๋‚˜๋กœ ์ •๋ฆฌ = DB ์„ค๊ณ„

์ตœ์ข…์ ์œผ๋กœ DBMS๋ฅผ ํ†ตํ•ด ํ†ตํ•ฉ DB ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ
DB = ์šด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ €์žฅํ•˜๋ฉฐ ๊ณต์šฉ์œผ๋กœ ์‚ฌ์šฉ๋จ


DB ํŠน์ง•

  • ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ, Realtime Accessibility
    • ์‹ค์‹œ๊ฐ„ ์„œ๋น„์Šค
    • ๋ฐ์ดํ„ฐ ์š”์ฒญ ์‹œ ์ˆ˜ ์ดˆ๋‚ด์— ๊ฒฐ๊ณผ๋ฅผ ์„œ๋น„์Šค
  • ๊ณ„์†์ ์ธ ๋ณ€ํ™”, Continuous Change
    • DB์— ์ €์žฅ๋œ ๋‚ด์šฉ์€ ์–ด๋Š ํ•œ ์ˆœ๊ฐ„์˜ ์ƒํƒœ
    • ๋ฐ์ดํ„ฐ ๊ฐ’์€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ํ•ญ์ƒ ๋ฐ”๋€œ : ๋™์ (dynamic) ํŠน์„ฑ
    • DB๋Š” CRUD๋ฅผ ํ†ตํ•˜์—ฌ ๋ฐ”๋€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ €์žฅ
  • ๋™์‹œ ๊ณต์œ , Concurrent Sharing
    • DB๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์—…๋ฌด/์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๋™์‹œ์— ๊ณต์œ ๋จ
    • ๋™์‹œ(Concurrent)๋Š” ๋ณ‘ํ–‰์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ, DB์— ์ ‘๊ทผํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ๋‹ค๋Š” ์˜๋ฏธ
  • ๋‚ด์šฉ์— ๋”ฐ๋ฅธ ์ฐธ์กฐ, Reference By Content
    • DB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ์ฐธ์กฐ๋จ
      • @ ๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ํฌ์ธํ„ฐ๋ฅผ ์”€

DB ์‹œ์Šคํ…œ์˜ ๊ตฌ์„ฑ

  • DB ์‹œ์Šคํ…œ
    • DB - ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋‘” ํ† ๋Œ€
    • DBMS - ์‚ฌ์šฉ์ž์™€ DB๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” SW
    • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ธฐ๋ฒ•์— ๊ด€ํ•œ ๋‚ด์šฉ, DBMS์˜ ์ฒญ์‚ฌ์ง„

  • ํด๋ผ์ด์–ธํŠธ โ†’ ์„œ๋ฒ„ { Apache โ†’ PHP (PHP ํ•ด์„๊ธฐ) = WAS โ†’ MySQL } โ†’ DB

  • ๋ถ„์‚ฐ DB ์‹œ์Šคํ…œ

    • ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ์œ„์น˜์— ์ €์žฅ๋œ DB
    • ๋Œ€๊ทœ๋ชจ์˜ ์‘์šฉ ์‹œ์Šคํ…œ์— ์‚ฌ์šฉ๋จ
    • Distributed Database Types: two types
      • Homogenous :
        • A network of Identical Databases stored on multiple sites
      • Heterogeneous :
        • Different schemas, OS, DDBMS (Distributed ~), and different data models

  • WAS
    • Web Application Server
  • IPO
    • Input Process Output
  • Host Language
    • ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— SQL๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ์–ธ์–ด์˜ ์žฅ์ ์„ ์‚ด๋ฆผ
    • = ์‚ฝ์ž… ํ”„๋กœ๊ทธ๋ž˜๋ฐ Embedded

  • SQL, Standard Query Language
    • DDL, Data Definition Language, ๋ฐ์ดํ„ฐ ์ •์˜์–ด
      • DB์— ์ €์žฅ๋œ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ •์˜
      • CREATE, ALTER, DROP
    • DML, Data Manipulation Language, ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด
      • ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰, ๋ณ€๊ฒฝ(์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •)์— ์‚ฌ์šฉ
      • SELECT, INSERT, DELETE, UPDATE
    • DCL, Data Control Language, ๋ฐ์ดํ„ฐ ์ œ์–ด์–ด
      • ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๊ถŒํ•œ ๊ด€๋ฆฌ ๋“ฑ
      • GRANT, REVOKE
  • Query, ์งˆ์˜๋ฌธ
    • SELECT
    • FROM
    • WHERE
  • DBA, DB Administrator

  • DBMS์˜ ๊ธฐ๋Šฅ
    • ๋ฐ์ดํ„ฐ ์ •์˜, Data Definition
      • ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ •์˜, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์‚ญ์ œ ๋ฐ ๋ณ€๊ฒฝ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰
    • ๋ฐ์ดํ„ฐ ์กฐ์ž‘, Data Manipulation
      • ๋ฐ์ดํ„ฐ ์กฐ์ž‘ SW(APP)๊ฐ€ ์š”์ฒญํ•˜๋Š” ๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ ์ž‘์—… ์ง€์›
    • ๋ฐ์ดํ„ฐ ์ถ”์ถœ, Data Retrieval
      • ์‚ฌ์šฉ์ž ์กฐํšŒ ๋ฐ์ดํ„ฐ, APP ๋ฐ์ดํ„ฐ ์ถ”์ถœ
    • ๋ฐ์ดํ„ฐ ์ œ์–ด, Data Control
      • DB ์‚ฌ์šฉ์ž ์ƒ์„ฑ, ๋ชจ๋‹ˆํ„ฐ๋ง, ์ ‘๊ทผ ์ œ์–ด
      • ๋ฐฑ์—…๊ณผ ํšŒ๋ณต, ๋™์‹œ์„ฑ ์ œ์–ด ๋“ฑ์˜ ๊ธฐ๋Šฅ ์ง€์›
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ (Like E-R ๋ชจ๋ธ)
      • ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ดํ•ด๋ฅผ ์ถ”์ƒ์  ๊ฐœ๋…์œผ๋กœ
    • ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ (์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ผ ํ•œ๋‹ค๋ฉด)
      • ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ปดํ“จํ„ฐ ๋…ผ๋ฆฌํ™”
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • ๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ Hierarchical Data Model
      • ํŒŒ์ผ ์‹œ์Šคํ…œ์ด๋‚˜ ์œ ๋‹ˆํ‹ฐ ์˜ค๋ธŒ์ ํŠธ Hierarchy ๊ฐ™์ด, ๋ถ€๋ชจ:์ž์‹ 1:N ๊ด€๊ณ„
    • ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ Network Data Model
      • ๋งํ˜•
    • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ Relational Data Model
    • ๊ฐ์ฒด(์ง€ํ–ฅํ˜•) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ Object(-Oriented) Data Model
      • ๊ฐ์ฒด ์ง€ํ–ฅ ๊ฐœ๋…์„ ์™„์ „ํžˆ DB์— ์ ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€ ์•Š์Œ, ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ์ ์ฐจ ํ™•์žฅ๋˜์–ด ๊ฐ€๋Š” ์ค‘
    • ๊ฐ์ฒดใ…ก๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ Objectใ…กRelational Data Model
  • ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„ ํ‘œํ˜„
    • ํฌ์ธํ„ฐ ์‚ฌ์šฉ : ๊ณ„์ธต ๋ฐ์ดํ„ฐ ๋ชจ๋ธ, ๋„คํŠธ์›Œํฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • ์†์„ฑ ๊ฐ’ ์‚ฌ์šฉ : ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • ๊ฐ์ฒด ์‹๋ณ„์ž ์‚ฌ์šฉ : ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
  • @ ๊ฐ์ฒด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ vs ๊ด€๊ณ„ ๋ชจ๋ธ
    • Class vs Relation/Table
    • Object/Object Instance vs Tuple/Record
    • Variable vs Attribute/Column
    • Method vs Stored Procedure
  • @ DBMS Schemas
    • Client : External Level/View Level
    • Server : Conceptual Level/Internal Level
    • DB : Internal Level

3๋‹จ๊ณ„ DB ๊ตฌ์กฐ, 3-Layer DB Architecture

Schema : ์กฐ์ง, ๊ตฌ์กฐ (๊ทธ๋ฆฌ์Šค์–ด)
ER = Entity Elation Model

์™ธ๋ถ€, ๊ฐœ๋…, ๋‚ด๋ถ€
์™ธ๋ถ€-๊ฐœ๋…, ๊ฐœ๋…-๋‚ด๋ถ€ ์‚ฌ์ด ๋งคํ•‘

Mapping ๋งคํ•‘ = ์‚ฌ์ƒ
์ƒํ˜ธ ๋…๋ฆฝ์ ์ธ ๊ฐœ๋…์„ ์—ฐ๊ฒฐ์‹œ์ผœ์ฃผ๋Š” ๋‹ค๋ฆฌ

  • ์™ธ๋ถ€ ๋‹จ๊ณ„ External Level
    • DB๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” User View (User, ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ)
    • ์ „์ฒด DB ์ค‘์—์„œ ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ถ€๋ถ„์„ ์˜๋ฏธ
    • 1 DB : N * External View (Sub Schema)
    • View ๊ฐœ๋… (#๊ตฌํ˜„์ด ์•„๋‹˜)

๊ฐ™์€ DB๋ฅผ ์“ฐ๋”๋ผ๋„,
๊ธฐ๋Šฅ๋งˆ๋‹ค ๋‹ค๋ฃจ๋Š” ๋ฐ์ดํ„ฐ, ๋ฐ์ดํ„ฐ ๊ด€๊ณ„๋Š” ๋‹ค๋ฅด๋‹ˆ๊นŒ

  • ์™ธ๋ถ€/๊ฐœ๋… ๋งคํ•‘
    • ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐœ๋… ์Šคํ‚ค๋งˆ์™€ ์–ด๋Š ๋ถ€๋ถ„์— ํ•ด๋‹น๋˜๋Š”์ง€ ๋Œ€์‘์‹œํ‚ด

์™ธ๋ถ€ ์Šคํ‚ค๋งˆ ๋ญ‰ํƒฑ์ด = ๊ฐœ๋… ์Šคํ‚ค๋งˆ
์™ธ๋ถ€ ์Šคํ‚ค๋งˆ = ๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ Logical Part

  • ๊ฐœ๋… ๋‹จ๊ณ„ Conceptual Level
    • ์ „์ฒด DB์˜ ์ •์˜
    • 1 DB : 1 Conceptual Schema
    • ๋ฐ์ดํ„ฐ๊ณผ ๊ด€๊ณ„, ์ œ์•ฝ์‚ฌํ•ญ, ๋ฌด๊ฒฐ์„ฑ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ํฌํ•จ๋จ
  • ๊ฐœ๋…/๋‚ด๋ถ€ ๋งคํ•‘
    • ๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ์˜ ๋ฌผ๋ฆฌ์  ์žฅ์น˜ ์–ด๋””์— ์–ด๋–ค ๋ฐฉ๋ฒ•์œผ๋กœ ์ €์žฅ๋˜๋Š”์ง€ ๋Œ€์‘์‹œํ‚ด
  • ๋‚ด๋ถ€ ๋‹จ๊ณ„ Internal Level
    • ๋ฌผ๋ฆฌ์  ์ €์žฅ์žฅ์น˜์— DB๊ฐ€ ์‹ค์ œ๋กœ ์ €์žฅ๋˜๋Š” ๋ฐฉ๋ฒ•์˜ ํ‘œํ˜„
    • 1 DB : 1 Internal Schema
    • ์ธ๋ฑ์Šค, ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ์˜ ๋ฐฐ์น˜ ๋ฐฉ๋ฒ•, ๋ฐ์ดํ„ฐ ์••์ถ• ๋“ฑ์— ๊ด€ํ•œ ์‚ฌํ•ญ์ด ํฌํ•จ๋จ

๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ

ํ•˜์œ„ ๋‹จ๊ณ„์˜ ๋‚ด์šฉ์„ ์ถ”์ƒํ™”
์ƒ์œ„ ๋‹จ๊ณ„์— ์„ธ๋ถ€ ์‚ฌํ•ญ ์ˆจ๊น€

ํŠน์ • ๋‹จ๊ณ„ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„
๋‹ค๋ฅธ ๋‹จ๊ณ„ ๊ตฌ์กฐ์— ์ƒํ˜ธ๊ฐ„์„ญ์—†๋„๋ก

๋‚ด๋ถ€ ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„,
๋ฐ์ดํ„ฐ๋Š” ๊ธฐ์กด ๊ทธ๋Œ€๋กœ ๋‚ด๋ ค์˜ฌ ๋•Œ
๋ฌธ์ œ ์—†์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋„๋ก ?

  • ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ, Logical Data Independence
    • ์™ธ๋ถ€/๊ฐœ๋… ์‚ฌ์ด์˜ ๋…๋ฆฝ์„ฑ
    • ๊ฐœ๋… ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์—๋Š” ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ์ง€์›
    • ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์˜ํ–ฅ์ด ์—†๋„๋ก ํ•˜๋Š” ๊ฐœ๋…
    • I.E. ๊ฐœ๋… ์Šคํ‚ค๋งˆ์™€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ
      • ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ์ง์ ‘ ๋‹ค๋ฃจ๋Š” ํ…Œ์ด๋ธ”์ด ์•„๋‹ˆ๋ฉด ์˜ํ–ฅ์ด ์—†์Œ
  • ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ, Physical Data Independence
    • ๊ฐœ๋…/๋‚ด๋ถ€ ์‚ฌ์ด์˜ ๋…๋ฆฝ์„ฑ
    • ์ €์žฅ์žฅ์น˜ ๊ตฌ์กฐ ๋ณ€๊ฒฝ๊ณผ ๊ฐ™์ด ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๊ฐœ๋… ์Šคํ‚ค๋งˆ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ์ง€์›
    • ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ๋ณด๋‹ค ๊ตฌํ˜„ํ•˜๊ธฐ ์‰ฌ์›€
    • I.E. ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•˜์—ฌ ๋ฌผ๋ฆฌ์  ์ €์žฅ ์žฅ์น˜๋ฅผ ์žฌ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ
      • ๊ฐœ๋…/์™ธ๋ถ€(APP) ์Šคํ‚ค๋งˆ์— ์˜ํ–ฅ์ด ์—†์Œ

๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๋ฆด๋ ˆ์ด์…˜ Relation
๊ด€๊ณ„ Relationship
์ด์™ธ ๊ทธ๋Œ€๋กœ ๋ฒˆ์—ญ, Relation = ๊ด€๊ณ„

  • ๋ฆด๋ ˆ์ด์…˜ Relation
    • ํ–‰์—ด ํ…Œ์ด๋ธ”
    • ๋‘ ์ง‘ํ•ฉ์˜ ์›์†Œ๋ผ๋ฆฌ ๊ด€๋ จ์‹œํ‚จ๋‹ค๋Š” ์ˆ˜ํ•™ ์šฉ์–ด
      • ์œ ์‚ฌํ•œ ๋Œ€์ƒ๋“ค์„ ๊ด€๋ จ์‹œํ‚ค๋Š” ์„ฑ์งˆ๋“ค์˜ ํŠน์ • ์กฐํ•ฉ
    • ๊ด€๊ณ„ ํ‘œ๊ธฐ : R
    • ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๋ฐฉ๋ฒ• โ†’ ์ง‘ํ•ฉ ์—ฐ์‚ฐ - ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ
    • ๊ฐ ์ง‘ํ•ฉ ์š”์†Œ ํ•˜๋‚˜๊ฐ€ ์„œ๋กœ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ , ๊ด€๊ณ„๊ฐ€ ๋ชจ์—ฌ ๋ฆด๋ ˆ์ด์…˜
  • ๊ด€๊ณ„ Relationship
    • ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์—์„œ ์ƒ์„ฑ๋˜๋Š” ๊ด€๊ณ„
      • ์ด๋Ÿฐ ๊ด€๊ณ„๊ฐ€ ๋ชจ์—ฌ ๋ฆด๋ ˆ์ด์…˜
    • ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„
      • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ํŠน์ง•
  • ๋ฆด๋ ˆ์ด์…˜ ๊ตฌ์„ฑ
    • ์Šคํ‚ค๋งˆ Schema, ๋‚ดํฌ
      • ๋ฆด๋ ˆ์ด์…˜์ด ์–ด๋–ค ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š”์ง€
      • ํ…Œ์ด๋ธ”์˜ ์ฒซ ํ–‰, ํ—ค๋” Header
      • ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง•์„ ๋‚˜ํƒ€๋‚ด๋Š” ์†์„ฑ, ์ž๋ฃŒ ํƒ€์ž… ๋“ฑ
    • ์ธ์Šคํ„ด์Šค Instance, ์™ธ์—ฐ
      • ์Šคํ‚ค๋งˆ์— ๊ธฐ๋ฐ˜, ์‹ค์ œ๋กœ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ
  • ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ
    • ์†์„ฑ Attribute : ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ์˜ ์—ด Column
    • ๋„๋ฉ”์ธ : ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ์ง‘ํ•ฉ
    • ์ฐจ์ˆ˜ : ์†์„ฑ์˜ ๊ฐœ์ˆ˜

๋ฆด๋ ˆ์ด์…˜ ์ด๋ฆ„ (์†์„ฑ 1, )
๋ฆด๋ ˆ์ด์…˜ ์ด๋ฆ„ (์†์„ฑ 1 : ๋„๋ฉ”์ธ 1, โ€ฆ )

๊ด€๊ณ„ DB ์Šคํ‚ค๋งˆ = ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ ์ง‘ํ•ฉ

  • ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค
    • ํŠœํ”Œ Tuple : ๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค์˜ ํ–‰ Row
    • ์นด๋””๋„๋ฆฌํ‹ฐ Cardinality : ํŠœํ”Œ์˜ ์ˆ˜
  • ๋ฆด๋ ˆ์ด์…˜ โ‰“ ํ…Œ์ด๋ธ”
    • ๋ฆด๋ ˆ์ด์…˜ : ์ฃผ๋กœ ๊ตฌ์กฐ๋ฅผ ๊ฐ•์กฐ
      • ์ˆ˜ํ•™ ์ง‘ํ•ฉ ์ด๋ก ์— ๊ธฐ์ดˆ, ์†์„ฑ/์ธ์Šคํ„ด์Šค์˜ ์ค‘๋ณต ํ—ˆ์šฉ X
    • ํ…Œ์ด๋ธ” : ์ฃผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ•์กฐ
  • ๋ฆด๋ ˆ์ด์…˜ ํŠน์ง•
    • ์†์„ฑ์€ ๋‹จ์ผ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค
      • ์—ฌ๋Ÿฌ ๊ฐ’์„ ๊ฐ€์งˆ ๊ฒฝ์šฐ, ํŠœํ”Œ์„ ํ•˜๋‚˜ ๋” ๋งŒ๋“ค์–ด ์†์„ฑ์˜ ๊ฐ’์ด ๋‹จ์ผ ๊ฐ’์ด ๋˜๋„๋ก
    • ์†์„ฑ์€ ์„œ๋กœ ๋‹ค๋ฅธ ์ด๋ฆ„์„ ๊ฐ€์ง„๋‹ค
    • ํ•œ ์†์„ฑ์˜ ๊ฐ’์€ ๋ชจ๋‘ ๊ฐ™์€ ๋„๋ฉ”์ธ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค
    • ์†์„ฑ์˜ ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค, ๋‹ฌ๋ผ๋„ ๊ฐ™์€ ๋ฆด๋ ˆ์ด์…˜ ์Šคํฌ๋งˆ
    • ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์˜ ์ค‘๋ณต๋œ ํŠœํ”Œ์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค
    • ํŠœํ”Œ์˜ ์ˆœ์„œ๋Š” ์ƒ๊ด€์—†๋‹ค, ๋‹ฌ๋ผ๋„ ๊ฐ™์€ ๋ฆด๋ ˆ์ด์…˜
  • ์ œ์•ฝ์กฐ๊ฑด Constraints
    • ๊ฐ ๋ฆด๋ ˆ์ด์…˜์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ฐ’์ด ๊ฐ€์ ธ์•ผ ํ•˜๋Š” ์ œ์•ฝ
    • Like ๋‚˜์ด > 0
  • ๊ด€๊ณ„์—ฐ์‚ฐ
    • ๋ฆด๋ ˆ์ด์…˜์„ ๋‹ค๋ฃจ๋Š” ์—ฐ์‚ฐ ๊ทœ์น™
    • I.E. ์ฃผ๋ฌธ, ๊ณ ๊ฐ ๋ฆด๋ ˆ์ด์…˜์„ ์กฐ์ž‘ํ•˜์—ฌ ํŠน์ • ๊ณ ๊ฐ์˜ ์ฃผ๋ฌธ ๋‚ด์—ญ ๊ฒ€์ƒ‰
  • @ ๊ด€๊ณ„๋Œ€์ˆ˜

  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ
    • ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์› ํ…Œ์ด๋ธ” ํ˜•ํƒœ = ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ํ‘œํ˜„
    • ๋ฆด๋ ˆ์ด์…˜์— ๋Œ€ํ•œ ์ œ์•ฝ์กฐ๊ฑด, ๊ด€๊ณ„ ์—ฐ์‚ฐ์„ ์œ„ํ•œ ๊ด€๊ณ„๋Œ€์ˆ˜ Relation Algebra ์ •์˜
      • ๋ฆด๋ ˆ์ด์…˜ ์ƒ์„ฑ, ๊ด€๋ฆฌ, ์ œ์•ฝ์กฐ๊ฑด ํ‘œํ˜„, ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์—ฐ์‚ฐ ๋ชจ๋‘ SQL๋กœ

Key


  • Key
    • ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„
    • ํŠน์ • ํŠœํ”Œ ์‹๋ณ„ ์‹œ ์‚ฌ์šฉํ•˜๋Š” ์†์„ฑ, ์†์„ฑ ์ง‘ํ•ฉ
    • ํ‚ค๊ฐ€ ๋˜๋Š” ์†์„ฑ (ํ˜น์€ ์†์„ฑ์˜ ์ง‘ํ•ฉ)์€ ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ๋‹ฌ๋ผ์„œ ํŠœํ”Œ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ
      • ๋ฆด๋ ˆ์ด์…˜ ์ค‘๋ณต๋œ ํŠœํ”Œ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์†์„ฑ๋“ค ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์€ ๊ฐ’์ด ๋‹ฌ๋ผ์•ผ
    • ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ๋„ ์‚ฌ์šฉ
  • Super Key
    • ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ•˜๋‚˜์˜ ์†์„ฑ, ์†์„ฑ ์ง‘ํ•ฉ
  • Composite Key, ๋ณตํ•ฉํ‚ค = ์†์„ฑ ์ง‘ํ•ฉ Key
    • Like (์ฃผ๋ฏผ๋ฒˆํ˜ธ, ์ด๋ฆ„)
      • Super Key๊ฐ€ ์•„๋‹Œ ์†์„ฑ์ด ํฌํ•จ๋˜์–ด, Super Key๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค

์ด๋•Œ,
ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์ด ๋งŽ์œผ๋ฉด
๊ด€๊ณ„ ํ‘œํ˜„์ด ๋ณต์žกํ•ด์ง, ์‚ฌ์šฉํ•˜๊ธฐ ๋ถˆํŽธ

  • Candidate Key ํ›„๋ณดํ‚ค
    • ํŠœํ”Œ์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์†์„ฑ์˜ ์ตœ์†Œ ์ง‘ํ•ฉ

(์ฃผ๋ฏผ๋ฒˆํ˜ธ, ์ด๋ฆ„) VS ์ฃผ๋ฏผ๋ฒˆํ˜ธ

  • PK, Primary Key ๊ธฐ๋ณธํ‚ค
    • ์—ฌ๋Ÿฌ ํ›„๋ณดํ‚ค ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ์ •ํ•˜์—ฌ ๋Œ€ํ‘œ๋กœ ์‚ผ๋Š” ํ‚ค
  • PK ์ œ์•ฝ ์กฐ๊ฑด
    • ๋ฆด๋ ˆ์ด์…˜ ๋‚ด ํŠœํ”Œ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์•ผ
    • NULL ๊ฐ’ X
    • ํ‚ค ๊ฐ’์˜ ๋ณ€๋™์ด ์ผ์–ด๋‚˜์ง€ ์•Š์•„์•ผ
    • ์ตœ๋Œ€ํ•œ ์ ์€ ์ˆ˜์˜ ์†์„ฑ์„ ๊ฐ€์ง„ ๊ฒƒ์ด๋ผ์•ผ
    • ํ–ฅํ›„ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ์žˆ์–ด์„œ ๋ฌธ์ œ ๋ฐœ์ƒ ์†Œ์ง€์•ผ ์—†์–ด์•ผ
      • Like ์ฃผ๋ฏผ๋ฒˆํ˜ธ, ๊ฐœ์ธ์ •๋ณด ์ด์Šˆ

๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ, PK๋Š” ๋ฐ‘์ค„์„ ๊ทธ์–ด ํ‘œ์‹œ

  • Surrogate Key ๋Œ€๋ฆฌํ‚ค, Artificial Key ์ธ์กฐํ‚ค
    • ์ผ๋ จ๋ฒˆํ˜ธ ๊ฐ™์€ ๊ฐ€์ƒ์˜ ์†์„ฑ
    • ์™œ Why?
      • PK๊ฐ€ ๋ณด์•ˆ์„ ์š”๊ตฌ or ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ๋ณต์žก or ๋งˆ๋•…ํ•œ PK๊ฐ€ ์—†์Œ
  • Alternate Key ๋Œ€์ฒดํ‚ค
    • PK๊ฐ€ ์•„๋‹Œ ํ›„๋ณดํ‚ค
  • FK, Foreign Key ์™ธ๋ž˜ํ‚ค
    • ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ
  • FK ์ œ์•ฝ ์กฐ๊ฑด
    • ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„
    • ๋‹ค๋ฅธ ๋ฆด๋ ˆ์ด์…˜์˜ PK๋ฅผ ์ฐธ์กฐํ•˜๋Š” ์†์„ฑ
    • ์ฐธ๊ณ ํ•˜๊ณ (FK) ์ฐธ์กฐ๋˜๋Š”(PK) ์–‘์ชฝ ๋ฆด๋ ˆ์ด์…˜์˜ ๋„๋ฉ”์ธ์€ ๋™์ผ
    • ์ฐธ์กฐ๋˜๋Š”(PK) ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜๋ฉด ์ฐธ์กฐํ•˜๋Š”(FK) ๊ฐ’๋„ ๋ณ€๊ฒฝ
    • NULL ๊ฐ’๊ณผ ์ค‘๋ณต ๊ฐ’ ๋“ฑ์ด ํ—ˆ์šฉ
    • ์ž๊ธฐ ์ž์‹ ์˜ PK๋ฅผ ์ฐธ์กฐํ•˜๋Š” FK๋„ ๊ฐ€๋Šฅ
    • FK๊ฐ€ ๊ธฐ๋ณธํ‚ค์˜ ์ผ๋ถ€๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ
  • Super Key
    • Candidate Key
      • Primary Key
      • Alternate Key
    • Some Super Keyโ€ฆ

๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด


  • ์™œ Why
    • ๋ฐ์ดํ„ฐ๋Š” ๊ฒฐํ•จ์ด ์—†๊ณ , ์งˆ์˜์— ๋Œ€ํ•ด ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋‹ต์„ ์ œ๊ณตํ•ด์•ผ
    • ๋ฐ์ดํ„ฐ ์‹ ๋ขฐ๋„ ์œ ์ง€
      • ์ผ๊ด€์„ฑ ์œ ์ง€, ์ค‘๋ณต ์ œ๊ฑฐ ๋“ฑ

So,
๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ Integrity ์œ ์ง€๋˜๋ ค๋ฉด
๋ฐ์ดํ„ฐ ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ • ์‹œ ์ œ์•ฝ์กฐ๊ฑด์ด ๋”ฐ๋ฆ„

์ผ์ผ์ด ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ,
DBMS๊ฐ€ ์ฒ˜๋ฆฌํ•ด์ค€๋‹ค๋ฉด

  • @ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด
    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ Data Integrity
    • DB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์™„์ „์„ฑ, ์ผ๊ด€์„ฑ, ์ •ํ™•์„ฑ ์ง€ํ‚ค๋Š” ๊ฒƒ
    • ์›๋ณธ ๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ/ํŒŒ๊ดด ์—†์ด ๋ณด์กด๋˜๋Š” ํŠน์„ฑ์„ ๋‚ดํฌ
    • ALCOA
      • Attributable ์™„์ „ํ•˜๊ณ  ์ผ๊ด€๋˜๋ฉฐ ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋Š” ์ถœ์ฒ˜๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ
      • Legible ์ฝ์„ ์ˆ˜ ์žˆ๊ณ 
      • Contemporaneously Recorded ๋™์‹œ์— ๊ธฐ๋ก๋˜์–ด์•ผ ํ•˜๋ฉฐ
      • Original or a True copy ์›๋ณธ ๋˜๋Š” ์ง„์ •ํ•œ ์‚ฌ๋ณธ์ด์—ฌ์•ผ ํ•˜๋ฉฐ
      • Accurate ์ •ํ™•ํ•ด์•ผ ํ•จ
  • ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด, Domain Integrity Constraint
    • = ๋„๋ฉ”์ธ ์ œ์•ฝ, Domain Constraint
    • ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์˜ ํŠœํ”Œ๋“ค์ด ๊ฐ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์— ์ง€์ •๋œ ๊ฐ’๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด
    • SQL ๋ฌธ์—์„œ ๋ฐ์ดํ„ฐ ํ˜•์‹ Type, ๋„ Null/NotNull, ๊ธฐ๋ณธ๊ฐ’ Default, ์ฒดํฌ Check ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •
  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด, Entity Integrity Constraint
    • = ๊ธฐ๋ณธํ‚ค ์ œ์•ฝ, Primary Key Constraint
    • ๊ธฐ๋ณธํ‚ค๋Š” NULL ๊ฐ’์„ ๊ฐ€์ ธ์„œ๋Š” ์•ˆ๋˜๋ฉฐ ๋ฆด๋ ˆ์ด์…˜ ๋‚ด์— ์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด, Referential Integrity Constraint
    • = ์™ธ๋ž˜ํ‚ค ์ œ์•ฝ, Foreign Key Constraint
    • ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ์ฐธ์กฐ ๊ด€๊ณ„๋ฅผ ์„ ์–ธํ•˜๋Š” ์ œ์•ฝ์กฐ๊ฑด
      • ์ฐธ์กฐ๋˜๋Š” Referred ๋ฆด๋ ˆ์ด์…˜ : Parent
      • ์ฐธ์กฐํ•˜๋Š” Refer ๋ฆด๋ ˆ์ด์…˜ : Child
    • ์ž์‹ ์™ธ๋ž˜ ํ‚ค๋Š” ๋ถ€๋ชจ ๊ธฐ๋ณธํ‚ค์™€ ๋„๋ฉ”์ธ์ด ๋™์ผํ•ด์•ผ ํ•จ
    • ์ž์‹์˜ ๊ฐ’์ด ๋ณ€๊ฒฝ๋  ๋•Œ ๋ถ€๋ชจ์˜ ์ œ์•ฝ์„ ๋ฐ›๋Š”๋‹ค๋Š” ๊ฒƒ
  • UNIQUE ์ œ์•ฝ์กฐ๊ฑด (์œ ์ผ์„ฑ, ๊ณ ์œ ์„ฑ ์ œ์•ฝ์กฐ๊ฑด)
    • ์†์„ฑ ๋ชจ๋“  ๊ฐ’๋“ค์— ์ค‘๋ณต X
  • ์‚ฌ์šฉ์ž ์ •์˜ ๋ฌด๊ฒฐ์„ฑ
    • ํŠธ๋ฆฌ๊ฑฐ (Event) ๋ฐ ์ €์žฅ ํ”„๋กœ์‹œ์ € (Call) ๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„
    • ์‚ฌ์šฉ์ž ์ •์˜ ์ œ์•ฝ ์กฐ๊ฑด
      • I.E. ์ง์›์˜ ID๊ฐ€ ํ•ญ์ƒ AfterAcademy์™€ ๊ฐ™์€ ํŠน์ • ๋ฌธ์ž๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๊ทธ ๋’ค์— ์ˆซ์ž๊ฐ€ ์™€์•ผ ํ•œ๋‹ค

๋ฆด๋ ˆ์ด์…˜์€ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ ์ œ์•ฝ์กฐ๊ฑด์— ์œ„๋ฐฐ๋  ์ˆ˜ ์žˆ์Œ
โ†’ ์ œ์•ฝ์กฐ๊ฑด ์ค€์ˆ˜์—ฌ๋ถ€๋Š” ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์‹œ ๋งˆ๋‹ค ํ™•์ธ

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์ˆ˜ํ–‰
    • ์‚ฝ์ž… : PK ๊ฐ’์ด ์ค‘๋ณต๋˜๋ฉด, NULL์ด๋ฉด ๊ธˆ์ง€
    • ์ˆ˜์ • : PK ๊ฐ’์ด ์ค‘๋ณต๋˜๋ฉด, NULL์ด๋ฉด ๊ธˆ์ง€
    • ์‚ญ์ œ : ์ฆ‰์‹œ ์ˆ˜ํ–‰ (์ฐธ์กฐ ์ค‘์ด ์•„๋‹ˆ๋ผ๋ฉด)
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์ˆ˜ํ–‰
    • ์‚ฝ์ž…
      1. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ํ™•์ธ
      2. FK๊ฐ€ ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜์— ์กด์žฌํ•˜๋Š” PK๋กœ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
        • FK๊ฐ€ NULL์ด๋ผ๋ฉด NULL ํ—ˆ์šฉ ํ™•์ธ
    • ์‚ญ์ œ
      • ์ž์‹ ๋ฆด๋ ˆ์ด์…˜ : ์ฆ‰์‹œ ์ˆ˜ํ–‰
      • ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜
        • ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ฆด๋ ˆ์ด์…˜์ด ์žˆ๋Š”์ง€ ํ™•์ธ
        • ๋งŒ์•ฝ ์กด์žฌํ•œ๋‹ค๋ฉด (์˜ต์…˜)
          • RESTRICTED : ์ฆ‰์‹œ ์ž‘์—…์„ ์ค‘์ง€
          • CASCADE : ์ž์‹ ๋ฆด๋ ˆ์ด์…˜์˜ ๊ด€๋ จ ํŠœํ”Œ์„ ์‚ญ์ œ
          • DEFAULT : ์ดˆ๊ธฐ์— ์„ค์ •๋œ ์–ด๋–ค ๊ฐ’์œผ๋กœ ์„ค์ •
          • NULL : NULL ๊ฐ’์œผ๋กœ ์„ค์ •
    • ์ˆ˜์ •
      • ์‚ญ์ œ์™€ ์‚ฝ์ž… ๋ช…๋ น ์—ฐ์† ์ˆ˜ํ–‰๋จ
      • ๋ถ€๋ชจ ๋ฆด๋ ˆ์ด์…˜์˜ ์ˆ˜์ •์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ
        • ์‚ญ์ œ ์˜ต์…˜์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋œ ํ›„ ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋ฉด ๋‹ค์‹œ ์‚ฝ์ž… ์ œ์•ฝ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋จ

๊ด€๊ณ„๋Œ€์ˆ˜


๋ฆด๋ ˆ์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด

  • ๊ด€๊ณ„์—ฐ์‚ฐ
    • ๋ฆด๋ ˆ์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ
    • ๊ด€๊ณ„๋Œ€์ˆ˜, ๊ด€๊ณ„ํ•ด์„ ์–ธ์–ด๋ฅผ ํ†ตํ•ด

๊ด€๊ณ„๋Œ€์ˆ˜ : ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”์ง€์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์ ˆ์ฐจ๋ฅผ ๋ช…์‹œํ•˜๋Š” ์ ˆ์ฐจ์ ์ธ ์–ธ์–ด
๊ด€๊ณ„ํ•ด์„ : ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”์ง€๋งŒ ๋ช…์‹œํ•˜๋Š” ๋น„์ ˆ์ฐจ์ /์„ ์–ธ์ ์ธ ์–ธ์–ด
=> Relationally complete ์‹ค์ œ ๋™์ผํ•œ ํ‘œํ˜„ ๋Šฅ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

  • ๊ด€๊ณ„๋Œ€์ˆ˜, Relational Algebra (์„ ์ˆ ์  ๊ณ„์‚ฐ)
    • ์งˆ์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ ํ•˜๋Š” ์ ˆ์ฐจ์  ์–ธ์–ด
    • ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฆด๋ ˆ์ด์…˜์„, ๊ฒฐ๊ณผ ๋ฆด๋ ˆ์ด์…˜์ด ๋‚˜์˜ค๊ธฐ ๊นŒ์ง€์˜ ์ฒ˜๋ฆฌ ์—ฐ์‚ฐ์˜ ์ง‘ํ•ฉ

๋Œ€์ˆ˜ : ์ˆ˜๋ฅผ ๋Œ€์‹ , ์ˆ˜๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
๋Œ€์ˆ˜ํ•™ : ๋ฐฉ์ •์‹์„ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ

SQL ์–ธ์–ด๋Š” ๊ด€๊ณ„ํ•ด์„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ,
(๊ด€๊ณ„๋Œ€์ˆ˜ ๊ฐœ๋… ์—ญ์‹œ ํ˜ผํ•ฉ๋˜์–ด ์žˆ์Œ)

DBMS ๋‚ด๋ถ€์—์„œ๋Š” ๊ด€๊ณ„๋Œ€์ˆ˜์— ๊ธฐ๋ฐ˜์„ ๋‘” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ
์ตœ์ข… ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์„ ๋ฐ˜ํ™˜

  • ๊ด€๊ณ„์˜ ์ˆ˜ํ•™์  ์˜๋ฏธ
    • I.E. A = { 2, 4 }, B = { 1, 3, 5 }
    • A X B, ๋‘ ์ง‘ํ•ฉ์˜ ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ
      • = A ์›์†Œ์™€ B ์›์†Œ์˜ ์ˆœ์„œ์Œ ์ง‘ํ•ฉ
      • = { (2, 1), (2, 3), (2, 5), (4, 1), (4, 3), (4, 5) }
    • ๋ฆด๋ ˆ์ด์…˜ R
      • = ์นดํƒ€์ „ ํ”„๋กœ๋•ํŠธ์˜ ๋ถ€๋ถ„ ์ง‘ํ•ฉ
      • R1 = { (2, 1), (4, 1) }
      • R2 = { (2, 1), (2, 3), (2, 5) }
      • R3 = { (2, 3), (2, 5), (4, 3), (4, 5) }
    • ์›์†Œ ๊ฐœ์ˆ˜๊ฐ€ n์ธ ์ง‘ํ•ฉ์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜ : 2^n
    • A X B์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์˜ ๊ฐœ์ˆ˜ : 2^(AXB)
    • ๋„๋ฉ”์ธ Domain
      • = ์นดํƒ€์ „ ํ”„๋กœ๋•ํŠธ์˜ ๊ธฐ์ดˆ ์ง‘ํ•ฉ์ด ๊ฐ๊ฐ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„
      • ์ง‘ํ•ฉ A์˜ ๋„๋ฉ”์ธ = { 2, 4 }
      • ์ง‘ํ•ฉ B์˜ ๋„๋ฉ”์ธ = { 1, 3, 5 }
    • ๋ฆด๋ ˆ์ด์…˜๋„ ์ง‘ํ•ฉ
      • ์ง‘ํ•ฉ ์—ฐ์‚ฐ
        • ํ•ฉ์ง‘ํ•ฉ โ‹‚, ๊ต์ง‘ํ•ฉ โ‹ƒ, ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ X
        • R1 โ‹ƒ R2 = { (2, 1), (4, 1), (2, 3), (2, 5) }
        • R1 โ‹‚ R2 = { (2, 1) }
S: ์ง‘ํ•ฉ S์˜ ์›์†Œ ์ˆ˜

์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ : ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜
๋ฆด๋ ˆ์ด์…˜ : ํ•˜๋‚˜์˜ ๊ฒฝ์šฐ

  • ๊ด€๊ณ„๋Œ€์ˆ˜ ์—ฐ์‚ฐ์ž
    • ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ, Relational Operations
      • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์œ„ํ•ด ๊ณ ์•ˆ
      • ์…€๋ ‰์…˜ Selection, ํ”„๋กœ์ ์…˜ Projection, ์กฐ์ธ Join, ๋””๋น„์ „ Division, ๊ฐœ๋ช… Rename
    • ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ, Set Operations
      • ํ•ฉ์ง‘ํ•ฉ Union, ์ฐจ์ง‘ํ•ฉ Difference, ๊ต์ง‘ํ•ฉ Intersection, ์นดํ‹ฐ์ „ ํ”„๋กœ๋•ํŠธ Cartesian Product

๋‹จํ•ญ ์—ฐ์‚ฐ์ž Unary Operator
์ดํ•ญ ์—ฐ์‚ฐ์ž Binary Operator
์œ ๋„ ์—ฐ์‚ฐ์ž : ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋กœ๋ถ€ํ„ฐ ์œ ๋„

  • ๊ด€๊ณ„๋Œ€์ˆ˜์‹ Relational Algebra Expression
    • ๊ด€๊ณ„๋Œ€์ˆ˜ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ์‹
    • ๋‹จํ•ญ ์—ฐ์‚ฐ์ž : ์—ฐ์‚ฐ์ž<์กฐ๊ฑด> ๋ฆด๋ ˆ์ด์…˜
    • ์ดํ•ญ ์—ฐ์‚ฐ์ž : ๋ฆด๋ ˆ์ด์…˜1 ์—ฐ์‚ฐ์ž<์กฐ๊ฑด></sub> ๋ฆด๋ ˆ์ด์…˜2
    • ๊ฒฐ๊ณผ๋Š” ๋ฆด๋ ˆ์ด์…˜, ์ฆ‰ ์ค‘๋ณต๋œ ํŠœํ”Œ์€ ํ•˜๋‚˜๋งŒ ํ‘œ์‹œ

Selection, Projection
๊ด€๊ณ„๋Œ€์ˆ˜์—์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์—ฐ์‚ฐ
ํ•˜๋‚˜์˜ R์„ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋‹จํ•ญ ์—ฐ์‚ฐ์ž

  • Selection
    • R์˜ Tuple ์ถ”์ถœ
    • ๊ฒฐ๊ณผ R ์ฐจ์ˆ˜ = ๋Œ€์ƒ R
    • ๊ฒฐ๊ณผ R ์นด๋””๋„๋ฆฌํ‹ฐ <= ๋Œ€์ƒ R
    • ฯƒ Predicate (R), ฯƒ ๊ฐ€๊ฒฉ <= 8000 (๋„์„œ)
    • Predicate, ์†์„ฑ = ์ƒ์ˆ˜๊ฐ’/์†์„ฑ ํ˜•ํƒœ
    • ์—ฌ๋Ÿฌ ๊ฐœ์˜ Predicate, โˆง(and) โˆจ(or) ๏ฟข(not)
  • Projection
    • R์˜ ์†์„ฑ ์ถ”์ถœ
    • ๊ฒฐ๊ณผ R ์ฐจ์ˆ˜ <= ๋Œ€์ƒ R
    • ๊ฒฐ๊ณผ R ์นด๋””๋‚ ๋ฆฌํ‹ฐ = ๋Œ€์ƒ R
    • ฯ€ ์†์„ฑ ๋ฆฌ์ŠคํŠธ (R), ฯ€ ์ด๋ฆ„, ์ฃผ์†Œ, ํ•ธ๋“œํฐ (๊ณ ๊ฐ)

ํ•ฉ๋ณ‘๊ฐ€๋Šฅ Union Compatible
๋‘ ํ”ผ์—ฐ์‚ฐ์ž ๋ฆด๋ ˆ์ด์…˜์€ ์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆ˜์™€ ์ˆœ์„œ, ๋„๋ฉ”์ธ

  • ์ง‘ํ•ฉ ์—ฐ์‚ฐ

  • โ‹ƒ Union
    • ๋‘ R ํ•ฉํ•˜์—ฌ ํ•˜๋‚˜์˜ R๋กœ
    • ๋‘ R์€ ์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆ˜์™€ ์ˆœ์„œ, ๋„๋ฉ”์ธ
    • ์†์„ฑ ์ด๋ฆ„์€ ์ฒซ ๋ฒˆ์งธ R์˜ ๊ฒƒ์„
  • โ‹‚ Intersection
    • ๋‘ R์ด ๊ณตํ†ต์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Tuple ๋ฐ˜ํ™˜
    • ๋‘ R์€ ์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆ˜์™€ ์ˆœ์„œ, ๋„๋ฉ”์ธ
    • ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž๋กœ ์ •์˜ ๊ฐ€๋Šฅํ•œ ์œ ๋„๋œ ์—ฐ์‚ฐ์ž, Rโ‹‚S = Rโˆ’(Rโˆ’S)
  • โˆ’ Set Difference
    • ์ฒซ R์—๋Š” ์†ํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ R์—๋Š” ์†ํ•˜์ง€ ์•Š๋Š” Tuple ๋ฐ˜ํ™˜
    • ๋‘ R์€ ์„œ๋กœ ๊ฐ™์€ ์†์„ฑ ์ˆ˜์™€ ์ˆœ์„œ, ๋„๋ฉ”์ธ
  • โจ‰ Cartesian Product
    • ์ˆ˜ํ‰์  ์—ฐ์‚ฐ (VS ๋‹ค๋ฅธ ์—ฐ์‚ฐ์ž๋“ค, ์ˆ˜์ง์  ์—ฐ์‚ฐ)
    • ๋‘ R์„ ์—ฐ๊ฒฐ์‹œ์ผœ ํ•˜๋‚˜์˜ R๋กœ
    • ์ฒซ R์˜ ์˜ค๋ฅธ์ชฝ์— ๋‘ ๋ฒˆ์งธ R์˜ ๋ชจ๋“  Tuple์„ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด
    • ์†์„ฑ๊ณผ ๋„๋ฉ”์ธ์ด ๋™์ผํ•˜์ง€ ์•Š์•„๋„ ๋จ
    • ๊ฒฐ๊ณผ R ์ฐจ์ˆ˜ = ๋‘ R ์ฐจ์ˆ˜ ํ•ฉ
    • ์นด๋””๋‚ ๋ฆฌํ‹ฐ = ๋‘ R ์นด๋””๋„๋ฆฌํ‹ฐ ๊ณฑ
    • ์†์„ฑ ์ด๋ฆ„์€ ๊ทธ๋Œ€๋กœ
      • ์ถฉ๋Œ ์‹œ โ€˜๋ฆด๋ ˆ์ด์…˜ ์ด๋ฆ„.์†์„ฑ ์ด๋ฆ„โ€™ or ์ˆœ์„œ(์œ„์น˜) ์‚ฌ์šฉ
    • ๋‹จ๋…์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ์˜๋ฏธ ์—†๋Š” ๊ฒฐ๊ณผ, ๋ณดํ†ต Selection, Projection๊ณผ ํ•จ๊ป˜
  • Join
    • ๋‘ R์˜ ๊ณตํ†ต ์†์„ฑ์„ ๊ธฐ์ค€์œผ๋กœ ์†์„ฑ ๊ฐ’์ด ๊ฐ™์€ Tuple์„ ์ˆ˜ํ‰์ ์œผ๋กœ ๊ฒฐํ•ฉ
    • ์ฆ‰, ๋‘ R์„ โจ‰ ํ•œ ํ›„ ฯƒ (์†์„ฑ ๊ฐ’ ๊ฐ™์€ ์ง€) ํ•œ ๊ฒƒ
    • ์œ ๋„ ์—ฐ์‚ฐ์ž, RโจcS = ฮดc(Rโจ‰S)
    • R๊ณผ S๋Š” ๋™์ผ ๋„๋ฉ”์ธ, c = Join ์กฐ๊ฑด
  • ๊ธฐ๋ณธ ์กฐ์ธ ์—ฐ์‚ฐ
  • ํ™•์žฅ๋œ ์กฐ์ธ ์—ฐ์‚ฐ

  • ๊ธฐ๋ณธ ์กฐ์ธ ์—ฐ์‚ฐ
    • Theta ์„ธํƒ€์กฐ์ธ, ์†์„ฑ ๊ฐ’ ๋น„๊ต, โจ
      • Inner ๋‚ด๋ถ€์กฐ์ธ/Equal ๋™๋“ฑ์กฐ์ธ, ์กฐ๊ฑด =
        • Natural ์ž์—ฐ์กฐ์ธ, ์ค‘๋ณต ์†์„ฑ ์ œ๊ฑฐ, โจN
  • ํ™•์žฅ๋œ ์กฐ์ธ ์—ฐ์‚ฐ (์ž์—ฐ์กฐ์ธ Base)
    • Semi ์„ธ๋ฏธ์กฐ์ธ, ์ž์—ฐ์กฐ์ธ ํ›„ ํ•œ ์ชฝ R์˜ Tuple๋งŒ ๋ฐ˜ํ™˜
      • โจ ๊ธฐํ˜ธ์— ์ขŒ์šฐ ๋‹ซํž˜ ์œ ๋ฌด
    • Outer ์™ธ๋ถ€์กฐ์ธ, ์ž์—ฐ์กฐ์ธ ์‹คํŒจ ๊ฐ’์„ NULL๋กœ ์ฑ„์›Œ ๋ฐ˜ํ™˜
      • ๊ธฐ์ค€ R ์œ„์น˜์— ๋”ฐ๋ผ, Left ์™ผ์ชฝ, Right ์˜ค๋ฅธ์ชฝ, Full ์™„์ „ ์™ธ๋ถ€์กฐ์ธ
      • โจ ๊ธฐํ˜ธ์— ์ขŒ์šฐ ์‚์นจ ์œ ๋ฌด
  • Division %
    • R ์†์„ฑ ๊ฐ’์˜ ์ง‘ํ•ฉ์œผ๋กœ ์—ฐ์‚ฐ
    • ์˜ค๋ฅธ์ชฝ R์˜ ๋ชจ๋“  Tuple์„ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง€๋Š” ์™ผ์ชฝ R์˜ Tuple๋“ค์„ ๋ฐ˜ํ™˜

@ 114p

Select ฯ€ (Projection)
From R ()
Where ฮด (Selection)

SQL

  • QBE Query by Example?

  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ

    • ์—ฐ์‚ฐ Operation๊ณผ ๋ฐ์ดํ„ฐ ์–ธ์–ด Data Language
      • ์—ฐ์‚ฐ : ๋ช…๋ น ์ˆ˜ํ–‰, ์‹œ์Šคํ…œ ์ž…์žฅ
      • ๋ฐ์ดํ„ฐ ์–ธ์–ด : ์‚ฌ์šฉ์ž ์ž…์žฅ
    • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์–ธ์–ด Relational Data Language
      • ์ •ํ˜•์–ด Formal Language, a Set of Strings of Symbols
        • ๊ด€๊ณ„ ๋Œ€์ˆ˜ Relational Algebra
          • ์ ˆ์ฐจ ์–ธ์–ด : How, What
        • ๊ด€๊ณ„ ํ•ด์„ Relational Calculus
          • ๋น„ ์ ˆ์ฐจ ์–ธ์–ด : What
          • Two Calculi
            • ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„ Tuple Relational Calculus
            • ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„ Domain Relational Calulus
    • ๊ด€๊ณ„ ํ•ด์„๊ณผ ๊ด€๊ณ„ ๋Œ€์ˆ˜๋Š” ํ‘œํ˜„๊ณผ ๊ธฐ๋Šฅ๋ฉด์—์„œ ๋™๋“ฑ
      • Relationally Complete

, Relational Calculus (์ˆ ์–ด ํ•ด์„)

  • ๊ด€๊ณ„ ํ•ด์„ Example
    • ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„ Tuple Relational Calculus
      • {tEMPLOYEE(t) and t.SALARY > 50000}
      • {tP(t)}
    • ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„
      • {uv(โˆƒq} (โˆƒr) (โˆƒs) (EmPLOYEE(qrstuvwxyz) and q = โ€˜Johnโ€™ and r = โ€˜B) and s = โ€˜Smithโ€™)}
      • โˆƒ, ์ž„์˜์˜
  • QBE Example
    • DBSs ๋“ค๋กœ ๊ตฌํ˜„๋œ Query Method
    • Graphical Query Language
    • ์—์ œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด Query ์ž‘์„ฑ
    • ๋ช…๋ น P. = ์ธ์‡„

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

~


  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ฐœ๋…
    • Physical Data Model: Blueprint and Data Diagram at the Physical Level

~

  • DB ์ƒ๋ช…์ฃผ๊ธฐ
    • DB Life Cycle
    • DB์˜ ์ƒ์„ฑ๊ณผ ์šด์˜๊ณผ ๊ด€๋ จ๋œ ํŠน์ง•
      • Requirements Analysis ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
        • ์‚ฌ์šฉ์ž๋“ค์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋“ฃ๊ณ  ๋ถ„์„ํ•˜์—ฌ DB ๊ตฌ์ถ•์˜ ๋ฒ”์œ„๋ฅผ ์ •ํ•จ
      • Design ์„ค๊ณ„
        • ๋ถ„์„๋œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ธฐ์ดˆ
        • ์ฃผ์š” ๊ฐœ๋…๊ณผ ์—…๋ฌด ํ”„๋กœ์„ธ์Šค ๋“ฑ์„ ์‹๋ณ„ (๊ฐœ๋…์  ์„ค๊ณ„)
        • ์‚ฌ์šฉํ•˜๋Š” DBMS์˜ ์ข…๋ฅ˜์— ๋งž๊ฒŒ ๋ณ€ํ™” (๋…ผ๋ฆฌ์  ์„ค๊ณ„)
        • DB ์Šคํ‚ค๋งˆ๋ฅผ ๋„์ถœ (๋ฌผ๋ฆฌ์  ์„ค๊ณ„)
      • Implementation ๊ตฌํ˜„
        • ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ์ƒ์„ฑํ•œ ์Šคํ‚ค๋งˆ๋ฅผ ์‹ค์ œ DBMS์— ์ ์šฉ
        • ํ…Œ์ด๋ธ” ๋ฐ ๊ด€๋ จ ๊ฐ์ฒด (๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ)๋ฅผ ์ƒ์„ฑ
        • DBMS์˜ CLI ํ˜น์€ GUI
      • Operation ์šด์˜
        • ๊ตฌํ˜„๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ SW๋ฅผ ๊ตฌ์ถ•ํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต
      • Maintenance ์œ ์ง€๋ณด์ˆ˜ (Monitoring Modification ๊ฐ์‹œ ๋ฐ ๊ฐœ์„ )
        • DB ์šด์˜์— ๋”ฐ๋ฅธ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ๋ฅผ ๊ด€์ฐฐ
        • DB ์ž์ฒด์˜ ๋ฌธ์ œ์ ์„ ํŒŒ์•…ํ•˜์—ฌ ๊ฐœ์„ 
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณผ์ •
    • ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
      • ํ˜„์‹ค์„ธ๊ณ„์˜ ๋Œ€์ƒ ๋ฐ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ ๋“ฑ์„ ์ •๋ฆฌ ๋ฐ ๋ถ„์„
        • ์‚ฌ์šฉ์ž ์‹๋ณ„
        • DB ์šฉ๋„ ์‹๋ณ„
        • ์‚ฌ์šฉ์ž ์š”๊ตฌ ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ช…์„ธ
      • ์„ค๊ณ„
        • ๊ฐœ๋…์  ๋ชจ๋ธ๋ง
          • ์ค‘์š” ๊ฐœ๋…์„ ๊ตฌ๋ถ„
            • ํ•ต์‹ฌ Entity(๋…์ง‘๊ฐœ์ฒด) ๋„์ถœ
            • ERD ์ž‘์„ฑ
        • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง
          • ๊ฐ ๊ฐœ๋…์„ ๊ตฌ์ฒดํ™”
            • ERD-RDB ๋ชจ๋ธ ์‹œ์ƒ
            • ์ƒ์„ธ ์†์„ฑ ์ •์˜
            • ์ •๊ทœํ™” ๋“ฑ
        • ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง
          • DB ์ƒ์„ฑ ๊ณ„ํš์— ๋”ฐ๋ผ ๊ฐœ์ฒด, ์ธ๋ฑ์Šค ๋“ฑ์„ ์ƒ์„ฑ
            • DB ๊ฐœ์ฒด ์ •์˜
            • ํ…Œ์ด๋ธ” ๋ฐ ์ธ๋ฑ์Šค ๋“ฑ ์„ค๊ณ„
      • DB ๊ตฌํ˜„
  • ์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘ ๋ฐ ๋ถ„์„
    • ์‹ค์ œ ๋ฌธ์„œ๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•จ
    • ๋‹ด๋‹น์ž์™€์˜ ์ธํ„ฐ๋ทฐ๋‚˜ ์„ค๋ฌธ์กฐ์‚ฌ๋ฅผ ํ†ตํ•ด ์š”๊ตฌ์‚ฌํ•ญ์„ ์ง์ ‘ ์ˆ˜๋ ดํ•จ
    • ๋น„์Šทํ•œ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ์กด์˜ DB๋ฅผ ๋ถ„์„ํ•จ
    • ๊ฐ ์—…๋ฌด์™€ ์—ฐ๊ด€๋œ ๋ชจ๋“  ๋ถ€๋ถ„์„ ์‚ดํŽด๋ด„
  • ๊ฐœ๋…์  ๋ชจ๋ธ๋ง Conceptual Modeling
    • ์š”๊ตฌ์‚ฌํ•ญ์„ ์ˆ˜์ง‘ํ•˜๊ณ  ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ† ๋Œ€๋กœ ์—…๋ฌด์˜ ํ•ต์‹ฌ์ ์ธ ๊ฐœ๋…์„ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ „์ฒด์ ์ธ ๋ผˆ๋Œ€๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •
    • ๊ฐœ์ฒด(Entity)๋ฅผ ์ถ”์ถœํ•˜๊ณ  ๊ฐ ๊ฐœ์ฒด๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜
    • ERD Entity Relationship Diagram์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •๊นŒ์ง€๋ฅผ ๋งํ•จ
    • I.E.
      • ๋„์„œ(๋„์„œ์ด๋ฆ„,์ถœํŒ์‚ฌ,๋„์„œ๋‹จ๊ฐ€) โ†’ ์ฃผ๋ฌธ(์ฃผ๋ฌธ์ผ์ž) โ† ๊ณ ๊ฐ(๊ณ ๊ฐ์ด๋ฆ„,์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ)
      • Entity๋Š” ๋ช…์‚ฌ, Relationship์€ ๋™์‚ฌ ๋Š๋‚Œ
  • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง Logical Modeling
    • ๊ฐœ๋…์  ๋ชจ๋ธ๋ง์—์„œ ๋งŒ๋“  ERD์„ ์‚ฌ์šฉํ•˜๋ ค๋Š” DBMS์— ๋งž๊ฒŒ ์‚ฌ์ƒ(๋งคํ•‘, Mapping)ํ•˜์—ฌ ์‹ค์ œ DB๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋ธ์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •
    • To establish the structure af data elements and the relationships among them.
    • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง ๊ณผ์ •
      • ๊ฐœ๋… ๋ชจ๋ธ๋ง์—์„œ ์ถ”์ถœํ•˜์ง€ ์•Š์•˜๋˜ ์ƒ์„ธ ์†์„ฑ๋“ค ๋ชจ๋‘ ์ถ”์ถœ
      • ์ •๊ทœํ™” ์ˆ˜ํ–‰
      • ๋ฐ์ดํ„ฐ ํ‘œ์ค€ํ™” ์ˆ˜ํ–‰
      • I.E.
        • ๋„์„œ(@๋„์„œ๋ฒˆํ˜ธ, ๋„์„œ์ด๋ฆ„,์ถœํŒ์‚ฌ,๋„์„œ๋‹จ๊ฐ€) โ†’ ์ฃผ๋ฌธ(@์ฃผ๋ฌธ๋ฒˆํ˜ธ, ๊ณ ๊ฐ๋ฒˆํ˜ธ(FK), ๋„์„œ๋ฒˆํ˜ธ(FK), ์ฃผ๋ฌธ์ผ์ž) โ† ๊ณ ๊ฐ(@๊ณ ๊ฐ๋ฒˆํ˜ธ,๊ณ ๊ฐ์ด๋ฆ„,์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ)

@0406

  • ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง Physical Modeling
    • DBMS์˜ ํŠน์„ฑ์— ๋งž๊ฒŒ ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์ •์˜
    • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ์„ ์‹ค์ œ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ ์žฅ์น˜์— ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •
    • DB๊ฐ€ ์ตœ์ ์˜ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ์Œ
    • ํŠธ๋žœ์žญ์…˜, ์ €์žฅ ๊ณต๊ฐ„ ์„ค๊ณ„ ์ธก๋ฉด์—์„œ ๊ณ ๋ คํ•  ์‚ฌํ•ญ
      • ์‘๋‹ต์‹œ๊ฐ„์„ ์ตœ์†Œํ™”
      • ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ํŠธ๋žœ์žญ์…˜์„ ๋™์‹œ์— ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฒ€ํ† 
      • ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋”œ ๊ณต๊ฐ„์„ ํšจ์œจ์ ์œผ๋กœ ๋ฐฐ์น˜
    • I.E. CREATE TABLE Book { bookid INT PRIMARY KEY, โ€ฆ }
  • ER Entity Relationship ๋ชจ๋ธ
    • ์„ธ์ƒ์˜ ์‚ฌ๋ฌผ์„ ๊ฐœ์ฒดEntityํ™”์™€ ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„Relationship๋กœ ํ‘œํ˜„ํ•จ
    • ERM Entity Relationship Model (ER model)
    • Composed of entity types
    • Specifies relationships that can exist between instances of those entity types
    • Design by Peter Chen and published in a 1976 paper

    • Entity ๊ฐœ์ฒด
      • ๋…์ง‘์ ์ธ ์˜๋ฏธ๋ฅผ ์ง€๋‹ˆ๊ณ  ์žˆ๋Š” ์œ ๋ฌดํ˜•์˜
      • ๊ฐœ์ฒด์˜ ํŠน์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” Attribute ์†์„ฑ์— ์˜ํ•ด ์‹๋ณ„
      • ๊ฐœ์ฒด๋ผ๋ฆฌ ์„œ๋กœ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง
      • Chen notation, Crowโ€™s foot notation
    • ๊ฐœ์ฒด, ๊ด€๊ณ„, ์—ญํ•  (๊ด€๊ณ„์—์„œ ๊ฐœ์ฒด๊ฐ€ ํ•˜๋Š” ๊ธฐ๋Šฅ, I.E. ๊ฒฐํ˜ผ์ด๋ผ๋Š” ๊ด€๊ณ„์—์„œ์˜ ์—ญํ•  = ๋‚จํŽธ, ์•„๋‚ด)
    • ER ๋‹ค์ด์–ด๊ทธ๋žจ
      • ER ๋ชจ๋ธ์€ ๊ฐœ์ฒด์™€ ๊ฐœ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œ์ค€ํ™”๋œ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋ƒ„
  • ๊ฐœ์ฒด์™€ ๊ฐœ์ฒด ํƒ€์ž…
    • ๊ฐœ์ฒด Entity
      • ์‚ฌ๋žŒ, ์‚ฌ๋ฌผ, ์žฅ์†Œ, ๊ฐœ๋…, ์‚ฌ๊ฑด๊ณผ ๊ฐ™์ด ์œ -๋ฌดํ˜•์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋…๋ฆฝ์ ์ธ ์‹ค์ฒด
    • ๊ฐœ์ฒด ์œ ํ˜• Entity Type
      • Collection of entity having common attribute (Intention:๋‚ด์—ฐ)
    • ๊ฐœ์ฒด ์ง‘ํ•ฉ Entity Set
      • A set of entities of some entity type
      • Extension of an entity type (์™ธ์—ฐ)
  • ๊ฐœ์ฒด ํƒ€์ž…์˜ ER ๋‹ค์ด์–ด๊ทธ๋žจ ํ‘œํ˜„
    • ์ง์‚ฌ๊ฐํ˜•์œผ๋กœ ๋‚˜ํƒ€๋ƒ„
    • ๊ฐœ์ฒด ํƒ€์ž…์˜ ์œ ํ˜•
      • ๊ฐ•ํ•œ ๊ฐœ์ฒด Strong Entity
        • ๋‹ค๋ฅธ ๊ฐœ์ฒด์˜ ๋„์›€ ์—†์ด ๋…์ž์ ์œผ๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ฒด, I.E. ์ง์›
      • ์•ฝํ•œ ๊ฐœ์ฒด weak Entity
        • ๋…์ž์ ์œผ๋กœ๋Š” ์กด์žฌํ•  ์ˆ˜ ์—†๋Š” ๋ฐ˜๋“œ์‹œ ์ƒ์œ„ ๊ฐœ์ฒด ํƒ€์ž…์„ ๊ฐ€์ง, I.E. ๋ถ€์–‘๊ฐ€์กฑ
  • ์†์„ฑ
    • ์†์„ฑ Attribute
      • ๊ฐœ์ฒด๊ฐ€ ๊ฐ€์ง„ ์„ฑ์งˆ
      • I.E. ๊ฐœ์ฒดํƒ€์ž… : ๋„์„œ, ์†์„ฑ : { ๋„์„œ์ด๋ฆ„, ์ถœํŒ์‚ฌ, ๋„์„œ๋‹จ๊ฐ€ }
    • ์†์„ฑ์˜ ER ๋‹ค์ด์–ด๊ทธ๋žจ ํ‘œํ˜„
      • ์†์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํƒ€์›์œผ๋กœ ํ‘œํ˜„
      • ๊ฐœ์ฒด ํƒ€์ž…์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ง์‚ฌ๊ฐํ˜•๊ณผ ์‹ค์„ ์œผ๋กœ ์—ฐ๊ฒฐ๋จ
      • ์†์„ฑ์˜ ์ด๋ฆ„์€ ํƒ€์›์˜ ์ค‘์•™์— ํ‘œ๊ธฐ
      • ์†์„œ์ด ๊ฐœ์ฒด๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค์ผ ๊ฒฝ์šฐ ์†์„ฑ ์ด๋ฆ„์— ๋ฐ‘์ค„์„ ๊ทธ์Œ, I.E. ๋„์„œ์ด๋ฆ„
  • ์†์„ฑ์˜ ์œ ํ˜•
  • I.E. ๋„์„œ
    • ๋„์„œ ๋ฒˆํ˜ธ
      • ์†์„ฑ
      • ์ผ๋ฐ˜์  ์†ก์„ฑ
    • ๋„์„œ ์ด๋ฆ„
      • ํ‚ค Key ์†์„ฑ
      • ๊ฐœ์ฒด๋ฅผ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ์†์„ฑ
      • ์ด๋ฆ„์— ๋ฐ‘์ค„๋กœ ํ‘œ์‹œ
    • ๋ถ€์–‘ ๊ฐ€์กฑ
      • ์•ฝํ•œ๊ฐœ์ฒด ์‹๋ณ„์ž
      • ํ‚ค ๋Œ€์‹  ์‹๋ณ„์ž Discriminator (or Partial Key)
      • ์‹๋ณ„์ž ํ‘œ์‹œ๋Š” ์ ์„ 
    • ์ทจ๋ฏธ
      • ๋‹ค์ค‘๊ฐ’ ์†์„ฑ
      • ์ทจ๋ฏธ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ
      • ์ด์ค‘ ํƒ€์›
    • ๋‚˜์ด
      • ์œ ๋„ ์†์„ฑ
      • ์ถœ์ƒ์—ฐ๋„๋กœ ๋‚˜์ด ์œ ๋„ ๊ฐ€๋Šฅ
      • ์ ์„  ํƒ€์›
    • ์ฃผ์†Œ - { ์‹œ, ๋™, ๋ฒˆ์ง€ }
      • ๋ณตํ•ฉ ์†์„ฑ
      • ์—ฌ๋Ÿฌ ์†์„ฑ์œผ๋กœ ๊ตฌ์„ฑ
      • ํฐ ์› ์•„๋ž˜ ์ž‘์€ ํƒ€์›
  • ๊ด€๊ณ„์™€ ๊ด€๊ณ„ ํƒ€์ž…
    • ๊ด€๊ณ„ Relationship
      • ๊ฐœ์ฒด ์‚ฌ์ด์˜ ์—ฐ๊ด€์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐœ๋…
    • ๊ด€๊ณ„ ํƒ€์ž… Relationship Type
      • ๊ฐœ์ฒด ํƒ€์ž…๊ณผ ๊ฐœ์ฒด ํƒ€์ž… ๊ฐ„์˜ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ๊ด€๊ณ„๋ฅผ ์ •์˜
    • ๊ด€๊ณ„ ์ง‘ํ•ฉ Relationship Set
      • ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋œ ์ง‘ํ•ฉ์„ ์˜๋ฏธ

~

@0417

  • ER ๋ชจ๋ธ => ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์‚ฌ์ƒ
    • ์™„์„ฑ๋œ ER ๋ชจ๋ธ => ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์ถ•์„ ์œ„ํ•ด
      • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง ๋‹จ๊ณ„ ์ˆ˜ํ–‰
      • ์ด ๋‹จ๊ณ„์—์„œ @์‚ฌ์ƒ(mapping)์ด ์ด๋ฃจ์–ด์ง
      • @๊ทธ๋ฆผ์„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •
      • @๊ทธ๋ฆผ => ๋„์„œ(๋„์„œ๋ฒˆํ˜ธ, ๋„์„œ์ด๋ฆ„, ์ถœํŒ์‚ฌ, ๋„์„œ๋‹จ๊ฐ€)
  • ์‚ฌ์ƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜

  • 1-2๋‹จ๊ณ„ - ๊ฐœ์ฒด ํƒ€์ž…
    • 1๋‹จ๊ณ„ ๊ฐ•ํ•œ(์ •๊ทœ) ๊ฐœ์ฒด ํƒ€์ž…
      • ์ •๊ทœ ๊ฐœ์ฒด ํƒ€์ž… E์˜ ๊ฒฝ์šฐ ๋Œ€์‘ํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜ R์„ ์ƒ์„ฑํ•จ
    • 2๋‹จ๊ณ„ ์•ฝํ•œ ๊ฐœ์ฒด ํƒ€์ž…
      • ์•ฝํ•œ ๊ฐœ์ฒด ํƒ€์ž…์—์„œ ์ƒ์„ฑํ•  ๋ฆด๋ ˆ์ด์…˜
      • ์ž์‹ ์˜ ๊ธฐ๋ณธํ‚ค ๊ตฌ์„ฑ
        • ์ž์‹ ์˜ ํ‚ค์™€ ํ•จ๊ป˜ ๊ฐ•ํ•œ ๊ฐœ์ฒด ํƒ€์ž…์˜ ํ‚ค๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ์‚ฌ์ƒ
    • @๊ฐ•ํ•œ ๊ฐœ์ฒด ํƒ€์ž…(์‚ฌ์›) - ๊ด€๊ณ„(๋ถ€์–‘) - ์•ฝํ•œ ๊ฐœ์ฒด ํƒ€์ž…(๊ฐ€์กฑ)
    • @๊ฐ€์กฑ ํƒ€์ž…์ด ์‚ฌ์› ํƒ€์ž…์— ์ข…์†๋œ ์•ฝํ•œ ํƒ€์ž…์ด๋ฏ€๋กœ, ์‚ฌ์› ๊ฐœ์ฒด ํƒ€์ž…์˜ ํ‚ค์ธ ์‚ฌ๋ฒˆ ์†์„ฑ์„ ์™ธ๋ž˜ํ‚ค FK๋กœ ํฌํ•จ
  • 3-6๋‹จ๊ณ„ - ๊ด€๊ณ„ ํƒ€์ž…
    • ํ‘œํ˜„ ๋ฐฉ๋ฒ• (4๊ฐ€์ง€)
      • 1 ์˜ค๋ฅธ์ชฝ ๊ฐœ์ฒด ํƒ€์ž… E2๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ด€๊ณ„ R ํ‘œํ˜„
        • E1(KA1, A2) E2(KA2, A4, KA1)
      • 2 ์™ผ์ชฝ โ€œ
        • E1(KA1, A2, KA2) E2(KA2, A4)
      • 3 ๋‹จ์ผ ๋ฆด๋ ˆ์ด์…˜ ER๋กœ ๋ชจ๋‘ ํ†ตํ•ฉํ•˜์—ฌ ๊ด€๊ณ„ R ํ‘œํ˜„
        • ER(KA1, A2, KA2, A4)
      • 4 ๊ฐœ์ฒด ํƒ€์ž… E1, E2์™€ ๊ด€๊ณ„ ํƒ€์ž… R์„ ๋ชจ๋‘ ๋…๋ฆฝ๋œ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ํ‘œํ˜„
        • E1(KA1, A1) R(KA1, KA2) E2(KA2, A4)
    • 3๋‹จ๊ณ„ ์ด์ง„ 1:1 ๊ด€๊ณ„ ํƒ€์ž…
      • ๋ชจ๋“  ํ‘œํ˜• ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์ƒ ๊ฐ€๋Šฅ
      • ๊ฐœ์ฒด๊ฐ€ ๊ฐ€์ง„ ์ •๋ณด ์œ ํ˜•์— ๋”ฐ๋ผ ํŒ๋‹จ
      • @์‚ฌ์› - ์‚ฌ์šฉ - ์ปดํ“จํ„ฐ
    • 4๋‹จ๊ณ„ ์ด์ง„ 1:N ๊ด€๊ณ„ ํƒ€์ž…
      • N์˜ ์œ„์น˜์— ๋”ฐ๋ผ 1, 2 ์œ ํ˜•์œผ๋กœ ์‚ฌ์ƒ๋จ
      • @ํ•™๊ณผ - ์†Œ์† - ํ•™์ƒ
    • 5๋‹จ๊ณ„ ์ด์ง„ M:N ๊ด€๊ณ„ ํƒ€์ž…
      • 4 ์œ ํ˜•์œผ๋กœ ์‚ฌ์ƒ
      • @ ๊ต์ˆ˜ - ์ˆ˜์—… - ๊ณผ๋ชฉ
      • @ ์ˆ˜์—… ๋ฆด๋ ˆ์ด์…˜์€ N:M ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” @๊ต์ฐจ ๋ฆด๋ ˆ์ด์…˜
    • 6๋‹จ๊ณ„ N์ง„ ๊ด€๊ณ„ ํƒ€์ž…
      • -ER ๋ชจ๋ธ์˜ ์ฐจ์ˆ˜๊ฐ€ 3 ์ด์ƒ์ธ ๋‹ค์ง„ ๊ด€๊ณ„ ํƒ€์ž…์˜ ๊ฒฝ์šฐ
      • 4 ์œ ํ˜•์œผ๋กœ ์‚ฌ์ƒ
      • @ ์ˆ˜๊ฐ• - ํ•™์ƒ N, ๊ฐ•์ขŒ M, ๊ฐ•์˜์‹ค 1
      • @ ์ฐจ์ˆ˜๊ฐ€ 3 ์ด์ƒ์ธ ๊ด€๊ณ„ ํƒ€์ž…์€ ๊ต์ฐจ ๋ฆด๋ ˆ์ด์…˜์œผ๋กœ ํ‘œํ˜„
      • @ ์ƒ์„ฑ๋˜๋Š” ๋ฆด๋ ˆ์ด์…˜ R์˜ ํ‚ค๋Š” ๊ฐ ๊ฐœ์ฒด ํƒ€์ž…์˜ ๊ธฐ๋ณธํ‚ค๋ฅผ ๋ชจ์€ ๋ณตํ•ฉํ‚ค๋ฅผ ์‚ฌ์šฉ
  • 7๋‹จ๊ณ„ - ์†์„ฑ
    • 7๋‹จ๊ณ„ ๋‹ค์ค‘๊ฐ’ ์†์„ฑ
      • ์†์„ฑ์˜ ๊ฐœ์ˆ˜๋ฅผ ์•Œ ์ˆ˜ ์—†์œผ๋ฉด 1 ์œ ํ˜•,
        • R(KA, B) RC(KA, C)
      • ์†์„ฑ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ œํ•œ์ ์œผ๋กœ ์ •ํ•ด์ง€๋ฉด 2 ์œ ํ˜•
        • R(KA, B, C1, C2, C3)
      • @ ํ•™์ƒ { ํ•™๋ฒˆ, ์ด๋ฆ„, ์ทจ๋ฏธ }
      • @ ํ•™์ƒ(ํ•™๋ฒˆ, ์ด๋ฆ„) ์ทจ๋ฏธ(ํ•™๋ฒˆ, ์ทจ๋ฏธ์ด๋ฆ„)
      • @ ํ•œ ํ•™์ƒ์ด ๊ฒŒ์ž„, ๋“ฑ์‚ฐ, ์Šคํ‚ค, ๋…ธ๋ž˜๋ถ€๋ฅด๊ธฐ ๋“ฑ ์—ฌ๋Ÿฌ ์ทจ๋ฏธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋…๋ฆฝ์ ์ธ ๋ฆด๋ ˆ์ด์…˜์„ ๋งŒ๋“ค์–ด ์ €์žฅ

  • ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

  • @ SET A = { a, b, c }
  • @ BAG A = { a, b, b, b, c }
  • ๋ฆด๋ ˆ์ด์…˜, ๋‘ ๊ฐœ์˜ ์ง‘ํ•ฉ์— ๋Œ€์‘๋˜๋Š” ๊ฒƒ์„ ๋ฝ‘์•„ ๋†“์€ ๊ฒƒ

  • MariaDB ์˜คํ”ˆ์†Œ์Šค DB
  • ์œค๊ณฝ ์ž์ฒด๊ฐ€ MySQL๋ž‘ ๊ฑฐ์˜ ๊ฐ™์Œ
  • DB ์—ฐ๊ฒฐํ•  ๋•Œ ์ธ์Šคํ„ด์Šค ์ž์ฒด ๋”˜ํŽœ๋˜์‹œ๋ฅผ MySQL๋กœ ์žก๊ณ  MariaDB์— ์ ‘์†์„ ํ• ๋ผ๊ณ  ํ•ด๋„ ์ ‘์†์ด ๋˜๊ฑฐ๋“ ์š”

  • ๋งŽ์€ Form์ด ๋ณต์‚ฌ๋œ ์ƒํƒœ๊ธฐ ๋•Œ๋ฌธ์—, ์ด์ œ MySQL ์“ฐ๋Š” ๊ฒƒ๊ณผ ํฌ๊ฒŒ ๋‹ค๋ฅธ ๊ฒŒ ์—†๋‹ค

  • MySQL Workbench(GUI) ์ œ๊ณตํ•˜๋Š”๋ฐ
  • MariaDB๋Š” ๊ทธ๊ฒŒ ์—†์–ด์„œ HeidiSQL์„ ๋”ฐ๋กœ ์„ค์น˜

  • DB์—์„œ ๊ธฐ๋ณธ์ ์ธ ์Šคํ‚ค๋งˆ๋ฅผ ์งœ๋†“๊ณ , ๊ทธ๊ฑธ ๊ฐ€์ ธ๋‹ค๊ฐ€ ์“ฐ๊ฑฐ๋“ ์š”
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.