Computer Science ๐Ÿ“š/SQLD

[SQLD] 1๊ณผ๋ชฉ - 2์žฅ. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ SQL

leejaejae 2024. 11. 18. 17:45

์ œ 1์ ˆ ์ •๊ทœํ™”

1. ์ •๊ทœํ™”(Normalization)

  • ์ •์˜: ๋ฐ์ดํ„ฐ ๋ถ„ํ•ด ๊ณผ์ •, ์ด์ƒํ˜„์ƒ ์ œ๊ฑฐ
  • ๋ชฉ์ : ์‚ฝ์ž…/์‚ญ์ œ/๊ฐฑ์‹  ์ด์ƒํ˜„์ƒ ๋ฐฉ์ง€
  • ํ•จ์ˆ˜์  ์ข…์†์„ฑ์— ๊ธฐ๋ฐ˜ํ•œ ์ •๊ทœํ™” ์ˆ˜ํ–‰ ํ•„์š”

2. ํ•จ์ˆ˜์  ์ข…์†์„ฑ(FD, Functional Dependency)

  • ๋ฐ์ดํ„ฐ๋“ค์ด ์–ด๋–ค ๊ธฐ์ค€๊ฐ’์— ์˜ํ•ด ์ข…์†๋˜๋Š” ํ˜„์ƒ์„ ์ง€์นญ, ๊ฒฐ์ •์ž์™€ ์ข…์†์ž์˜ ๊ด€๊ณ„, ๊ฒฐ์ •์ž์˜ ๊ฐ’์œผ๋กœ ์ข…์†์ž์˜ ๊ฐ’์„ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ๊ฒฐ์ •์ž, ex) ํ•™๋ฒˆ, ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ
  • ์ข…์†์ž, ex) ์ด๋ฆ„, ํ˜ˆ์•กํ˜•, ์ถœ์ƒ์ง€, ์ฃผ์†Œ
    (ํ•™๋ฒˆ์€ ์ด๋ฆ„๊ณผ ํ˜ˆ์•กํ˜•์„ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •, ์ด๋ฆ„๊ณผ ํ˜ˆ์•กํ˜•์€ ํ•™๋ฒˆ์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†๋จ)

3. ์ข…๋ฅ˜

  • ์ •๊ทœํ˜•(NF, Normal Form): ์ •๊ทœํ™”๋กœ ๋„์ถœ๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๊ฐ–์ถฐ์•ผ ํ•  ํŠน์„ฑ
  • ์ œ 1 ์ •๊ทœํ˜•(1NF): ๋ชจ๋“  ๋„๋ฉ”์ธ์ด ์›์ž๊ฐ‘์œผ๋กœ๋งŒ ๋˜์–ด ์žˆ๋Š” ์ •๊ทœํ˜•
  • ์ œ 2 ์ •๊ทœํ˜•(2NF): ํ…Œ์ด๋ธ” R์ด 1NF์ด๊ณ  ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ๋Œ€ํ•œ ์™„์ „ ํ•จ์ˆ˜์  ์ข…์†
  • ์ œ 3 ์ •๊ทœํ˜•(3NF): ํ…Œ์ด๋ธ” R์ด 2NF, ๊ธฐ๋ณธํ‚คX, ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ๋Œ€ํ•ด ์ดํ–‰์  ํ•จ์ˆ˜์  ์ข…์†(Aโ†’B, Bโ†’C์ผ๋•Œ, Aโ†’C)
  • BCNF: ํ…Œ์ด๋ธ” R์—์„œ ๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณดํ‚ค
  • ์ œ 4 ์ •๊ทœํ˜•(4NF): ํ…Œ์ด๋ธ” R์— ๋‹ค์ค‘๊ฐ’ ์ข…์† Aโ†’B๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ, R์˜ ๋ชจ๋“  ์†์„ฑ์ด A์— ํ•จ์ˆ˜์  ์ข…์† ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑ
    - ๋‹ค์ค‘๊ฐ’ ์ข…์†(Aโ†’โ†’B): A, B, C 3๊ฐœ์˜ ์†์„ฑ์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ” R์—์„œ B๊ฐ’์ด A๊ฐ’์—๋งŒ ์ข…์†๋˜๊ณ , C๊ฐ’๊ณผ๋Š” ๋ฌด๊ด€
  • ์ œ 5 ์ •๊ทœํ˜•(5NF): ํ…Œ์ด๋ธ” R์˜ ๋ชจ๋“  ์กฐ์ธ ์ข…์†์ด R์˜ ํ›„๋ณดํ‚ค๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์„ฑ๋ฆฝ

โŸน ๊ณผ์ • ์ •๋ฆฌ(๋„๋ถ€์ด๊ฒฐ๋‹ค์กฐ)
๋น„์ •๊ทœ ๋ฆด๋ ˆ์ด์…˜
โ†“ ๋„๋ฉ”์ธ์ด ์›์ž๊ฐ’
1NF
โ†“ ๋ถ€๋ถ„์  ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ
2NF
โ†“ ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ
3NF
โ†“ ๊ฒฐ์ •์ž์ด๋ฉด์„œ ํ›„๋ณดํ‚ค ์•„๋‹Œ ๊ฒƒ ์ œ๊ฑฐ
BCNF
โ†“ ๋‹ค์น˜ ์ข…์† ์ œ๊ฑฐ
4NF
โ†“ ์กฐ์ธ ์ข…์†์„ฑ ์ด์šฉ
5NF

4. ์ •๊ทœํ™”์˜ ํšจ๊ณผ

  • ์„ฑ๋Šฅ = ์กฐํšŒ, ์ž…๋ ฅ/์ˆ˜์ •/์‚ญ์ œ 2๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜
  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๊ฐ์†Œ โ†’ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ๋ฐ์ดํ„ฐ๊ฐ€ ๊ด€์‹ฌ์‚ฌ๋ณ„๋กœ ๋ฌถ์ž„ โ†’ ์„ฑ๋Šฅ ํ–ฅ์ƒ
  • ์กฐํšŒ ์งˆ์˜์—์„œ ์กฐ์ธ์ด ๋งŽ์ด ๋ฐœ์ƒ โ†’ ์„ฑ๋Šฅ ์ €ํ•˜
  • โžก๏ธŽ ์ž…๋ ฅ/์ˆ˜์ •/์‚ญ์ œ์˜ ๊ฒฝ์šฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ BUT! ์กฐํšŒ์˜ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ–ฅ์ƒ or ์ €ํ•˜

 

์ œ 2์ ˆ ๊ด€๊ณ„์™€ ์กฐ์ธ์˜ ์ดํ•ด

1. ์กฐ์ธ์ด๋ž€

  • ๊ฐ€์žฅ ๊ธฐ๋ณธ์€ ๊ต์ง‘ํ•ฉ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ๊ฐ„์— ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์„ ์กฐ์ธ
  • ์‹๋ณ„์ž๋ฅผ ์ƒ์†ํ•ด(=์™ธ๋ž˜ํ‚ค)๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒฐํ•ฉํ•ด ์—ฌ๋Ÿฌ ์—”ํ„ฐํ‹ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ๋ฒˆ์— ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ
    โ†’ ์„ฑ๋Šฅ์˜ ๊ด€์ ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž„!

  • EQUI JOIN (๋“ฑ๊ฐ€ ๊ต์ง‘ํ•ฉ)
    •  โ€œ=โ€œ์„ ์ด์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ์—ฐ๊ฒฐ
    • ex) SELECT * FROM EMP, DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO;
  • NON-EQUI JOIN (๋น„๋“ฑ๊ฐ€ ๊ต์ง‘ํ•ฉ)
    • ์ •ํ™•ํ•˜๊ฒŒ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ์กฐ์ธ
    • ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ” ๊ฐ„์— ์กฐ์ธํ•˜๋Š” ๊ฒฝ์šฐ โ€œ=โ€œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  >, >=, <=, <

2. INNER JOIN (๋‚ด๋ถ€ ์กฐ์ธ)

  • ๊ทธ๋ƒฅ ์กฐ์ธ์ด๋ผ๊ณ ๋„ ๋ถ€๋ฆ„ (INNER JOIN์„ JOIN์ด๋ผ๊ณ ๋งŒ ์จ๋„ ๋จ)
  • ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•  ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ
  • ๋‘ ํ…Œ์ด๋ธ”์— ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด์•ผ๋งŒ ๊ฒฐ๊ณผ ๋‚˜์˜ด
  • INNER JOIN ์€ ON๋ฌธ์œผ๋กœ ํ…Œ์ด๋ธ” ์—ฐ๊ฒฐ 
  • Ex)

3. OUTER JOIN (์™ธ๋ถ€ ์กฐ์ธ)

  • ํ•œ์ชฝ์—๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์–ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด
  • LEFT OUTER JOIN: ์™ผ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ์กฐ์ธ
  • FULL OUTER JOIN: ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ์กฐ์ธ
  • RIGHT OUTER JOIN: ์™ผ์ชฝ ๋˜๋Š” ์˜ค๋ฅธ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ์กฐ์ธ

4. CROSS JOIN (์ƒํ˜ธ ์กฐ์ธ) - ์นด๋‹ค์‹œ์•ˆ ๊ณฑ(CARTESIAN PRODUCT)

  • ํ•œ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰๊ณผ ๋‹ค๋ฅธ ์ชฝ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์กฐ์ธ์‹œํ‚ค๋Š” ๊ธฐ๋Šฅ
  • ์กฐ์ธ ๊ฒฐ๊ณผ๋Š” ๋‘ ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰ ๊ฐœ์ˆ˜๋ฅผ ๊ณฑํ•œ ์ˆ˜๋งŒํผ ๋จ
  • ex) SELECT * FROM [์ฒซ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”] CROSS JOIN [๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”]

5. SELF JOIN (์ž์ฒด ์กฐ์ธ)

  • ์ž๊ธฐ ์ž์‹ ๊ณผ ์กฐ์ธ, ์ฆ‰ 1๊ฐœ์˜ ํ…Œ์ด๋ธ” ์‚ฌ์šฉ
  • ๋ณ„๋„์˜ ๋ฌธ๋ฒ•์ด ์กด์žฌX

6. UNION

  • ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋ฉด์„œ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ
  • ์ •๋ ฌ(SORT) ๊ณผ์ •์„ ๋ฐœ์ƒ์‹œํ‚ด
  • ex) SELECT * FROM A UNION (ALL) SELECT * FROM B 

7. UNION ALL

  • ๋ฐ์ดํ„ฐ ๊ฐ’์ด ์ค‘๋ณต๋˜๋”๋ผ๋„ ์กฐ๊ฑด์— ์ผ์น˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ํ‘œ์‹œํ•จ 

8. JOIN vs. UNION 

JOINUNION
์ ์–ด๋„ ํ•˜๋‚˜์˜ ์†์„ฑ์ด ๊ณตํ†ต์ธ ๋‘ ํ…Œ์ด๋ธ” ์†์„ฑ์„ ๊ฒฐํ•ฉํ•˜๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ ์„ธํŠธ๋งŒ ๋‚˜ํƒ€๋‚ผ ๋•Œ ์‚ฌ์šฉ
์ƒˆ๋กœ์šด ์—ด๋กœ ๊ฒฐํ•ฉ (์ˆ˜ํ‰๊ฒฐํ•ฉ)์ƒˆ๋กœ์šด ํ–‰์œผ๋กœ ๊ฒฐํ•ฉ (์ˆ˜์ง๊ฒฐํ•ฉ)
์ฒซ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” ๋™์ผํ•œ ํ–‰์˜ ๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ” ์—ด๊ณผ ํ•จ๊ป˜ ํ•œ ์—ด ์„ธํŠธ์— ํ‘œ์‹œ์ฒซ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋Š” ํ•œ ํ–‰ ์„ธํŠธ์— ์žˆ๊ณ  ๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋Š” ๋‹ค๋ฅธ ์„ธํŠธ์— ํ‘œ

 

์ œ 3์ ˆ ๋ชจ๋ธ์ด ํ‘œํ˜„ํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์ดํ•ด

1. ํŠธ๋žœ์žญ์…˜์ด๋ž€

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์ ์ธ ์—ฐ์‚ฐ ๋‹จ์œ„ ํ˜น์€ ๋…ผ๋ฆฌ์ ์ธ ์—…๋ฌด๋‹จ์œ„

2. ์‹๋ณ„๊ด€๊ณ„ vs ๋น„์‹๋ณ„๊ด€๊ณ„

  • ์‹๋ณ„๊ด€๊ณ„: ์™ธ๋ž˜ํ‚ค(๋นŒ๋ ค์˜จ ํ‚ค)๊ฐ€ PK(์‹๋ณ„์ž)์˜ ์ผ๋ถ€๋ถ„์ธ๊ฐ€?
  • ๋น„์‹๋ณ„๊ด€๊ณ„: ์™ธ๋ž˜ํ‚ค(๋นŒ๋ ค์˜จ ํ‚ค)๊ฐ€ PK(์‹๋ณ„์ž)์˜ ์ผ๋ถ€๋ถ„์ด ์•„๋‹Œ๊ฐ€? 

3. ํŠธ๋žœ์žญ์…˜์˜ ํŠน์„ฑ

  • ์›์ž์„ฑ(ATOMICITY): ์ „๋ถ€ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์•„์•ผ ํ•จ(ALL OR NOTHING), ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๊ฐ€ ์™„์ „ํžˆ ๋๋‚˜์ง€ ์•Š์œผ๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ์™€ ๊ฐ™์•„์•ผ ํ•จ
  • ์ผ๊ด€์„ฑ(CONSISTENCY): ์‹คํ–‰๊ฒฐ๊ณผ์— ๋ชจ์ˆœ์ด ์—†์–ด์•ผ ํ•จ
  • ๋…๋ฆฝ์„ฑ(๊ณ ๋ฆฝ์„ฑ, ISOLATION): ์—ฐ์‚ฐ ์ค‘๊ฐ„์— ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์Œ, ๋™์‹œ ์ˆ˜ํ–‰X, ๊ณ ๋ฆฝ๋˜์–ด ์‹คํ–‰
  • ์ง€์†์„ฑ(DURABILITY): ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ(COMMIT)๋œ ํ›„ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ์œ ์‹คX

 

์ œ 4์ ˆ NULL ์†์„ฑ์˜ ์ดํ•ด

1. NULL์˜ ํŠน์ง•

  • ์•„์ง ์ •ํ•ด์ง€์ง€ ์•Š์€ ๊ฐ’
  • ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ์˜๋ฏธ
  • ๊ฐ’์˜ ๋ถ€์žฌ๋ฅผ ์˜๋ฏธ
  • ์ˆซ์ž ํ˜น์€ ๋‚ ์งœ๋ฅผ ๋”ํ•˜๋ฉด NULL์ด ๋จ
  • ์–ด๋–ค ๊ฐ’์„ ๋น„๊ตํ•  ๋•Œ โ€˜์•Œ ์ˆ˜ ์—†์Œโ€™์ด ๋ฐ˜ํ™˜๋จ

2. NULL ๊ฐ’ ์กฐํšŒ

  • NULL ๊ฐ’์„ ์กฐํšŒ = IS NULL
  • NULL์ด ์•„๋‹Œ ๊ฐ’์„ ์กฐํšŒ = IS NOT NULL

3. NULL ๊ด€๋ จ ํ•จ์ˆ˜

  • NVL ํ•จ์ˆ˜
    • NULL์ด๋ฉด ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋Š” ํ•จ์ˆ˜
    • ex) NVL(A, 0) = A ์นผ๋Ÿผ์ด NULL์ด๋ฉด 0์œผ๋กœ ๋ฐ˜ํ™˜
  • NVL2 ํ•จ์ˆ˜
    • NVL ํ•จ์ˆ˜์™€ DECODE ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์นœ ๊ฒƒ
    • ex) NVL2(A, 1, 0) = A ์นผ๋Ÿผ์ด NULL์ด ์•„๋‹ˆ๋ฉด 1์„, NULL์ด๋ฉด 0์„ ๋ฐ˜ํ™˜
  • NULLIF ํ•จ์ˆ˜
    • ๋‘ ๊ฐœ์˜ ๊ฐ’์ด ๊ฐ™์œผ๋ฉด NULL, ๊ฐ™์ง€ ์•Š์œผ๋ฉด ์ฒซ ๋ฒˆ์งธ ๊ฐ’์„ ๋ฐ˜ํ™˜
    • ex) NULLIF(A, B) = A์™€ B๊ฐ€ ๊ฐ™์œผ๋ฉด NULL์„, ๊ฐ™์ง€ ์•Š์œผ๋ฉด A๋ฅผ ๋ฐ˜ํ™˜
  • COALESCE
    • NULL์ด ์•„๋‹Œ ์ตœ์ดˆ์˜ ์ธ์ž ๊ฐ’์„ ๋ฐ˜ํ™˜
    • COALESCE(A, B, C, โ€ฆ) = A๊ฐ€ NULL์ด ์•„๋‹ˆ๋ฉด A๋ฅผ, NULL์ด๋ฉด ๊ทธ ๋’ค์˜ ๊ฐ’์˜ NULL ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•˜๋ ค ๊ฐ’์„ ๋ฐ˜ํ™˜, ์ฆ‰ NULL์ด ์•„๋‹Œ ๊ฐ’์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ๋’ค๋กœ ๋‘ 

4. NULL์ด ํ•„์š”ํ•œ ์ด์œ 

  • ํ…Œ์ด๋ธ”(=์—”ํ„ฐํ‹ฐ)์˜ ํŠน์„ฑ์ƒ ํ–‰ X ์—ด ํ˜•ํƒœ๋ฅผ ์šฐ์ง€ํ•ด์•ผ ํ•จ

 

์ œ 5์ ˆ ๋ณธ์งˆ์‹๋ณ„์ž vs ์ธ์กฐ์‹๋ณ„์ž

1. ์‹๋ณ„์ž(IDENTIFIERS) ๋ž€?

  • ์—”ํ„ฐํ‹ฐ ๋‚ด ์œ ์ผํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์ž‡๋Š” ์†์„ฑ์˜ ์ง‘ํ•ฉ

2. ์‹๋ณ„์ž ๋ถ„๋ฅ˜

  • ๋Œ€ํ‘œ์„ฑ ์—ฌ๋ถ€: ์ฃผ์‹๋ณ„์ž VS ๋ณด์กฐ์‹๋ณ„์ž
  • ์Šค์Šค๋กœ์ƒ์„ฑ์—ฌ๋ถ€: ๋‚ด๋ถ€์‹๋ณ„์ž VS ์™ธ๋ถ€์‹๋ณ„์ž
  • ๋‹จ์ผ์†์„ฑ์—ฌ๋ถ€: ๋‹จ์ผ์‹๋ณ„์ž VS ๋ณตํ•ฉ์‹๋ณ„์ž
  • ๋Œ€์ฒด์—ฌ๋ถ€: ๋ณธ์งˆ์‹๋ณ„์ž VS ์ธ์กฐ์‹๋ณ„์ž
 ๋ณธ์งˆ ์‹๋ณ„์ž์ธ์กฐ ์‹๋ณ„์ž
์˜ˆ์‹œ๊ตญ์  + ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ, ์ฐจ๋Ÿ‰ ๋ฒˆํ˜ธ
(์—ฌ๋Ÿฌ ์†์„ฑ์˜ ์กฐํ•ฉ)
์ž๋™ ์ƒ์„ฑ ๋ฒˆํ˜ธ
ํŠน์ง•์œ ์ผ์„ฑ: ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„
์˜๋ฏธ์  ๊ฐ€์น˜: ๋น„์ฆˆ๋‹ˆ์Šค์  ์˜๋ฏธ ๋‚ดํฌ O
๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ: ์‹ค์ œ ๋ณ€ํ™”์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ
์œ ์ผ์„ฑ: ๊ณ ์œ ์˜ ๊ฐ’์„ ๊ฐ€์ง
๋น„์˜๋ฏธ์ : ๋น„์ฆˆ๋‹ˆ์Šค์  ์˜๋ฏธ ๋‚ดํฌ X
๋ถˆ๋ณ€์„ฑ: ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ณ€๊ฒฝX

3. ์–ธ์ œ ์‚ฌ์šฉํ•˜์ง€ ?

  • ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ: ์ธ์กฐ์‹๋ณ„์ž๊ฐ€ ๋ฐ”๋žŒ์ง (๋ณธ์งˆ ์‹๋ณ„์ž๋Š” ๋ณ€๊ฒฝ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ์— ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Œ)
  • ๋ณต์žก์„ฑ: ์ธ์กฐ์‹๋ณ„์ž๊ฐ€ ๋ฐ”๋žŒ์ง (๋ณต์žกํ•œ ๋ณธ์งˆ ์‹๋ณ„์ž๋Š” ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ)
  • ๋น„์ฆˆ๋‹ˆ์Šค ์˜๋ฏธ: ๋ณธ์งˆ ์‹๋ณ„์ž๊ฐ€ ๋ฐ”๋žŒ์ง. ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋‚˜ ๊ทœ์น™์—์„œ ์ค‘์š”์—์„œ ์ค‘์š”ํ•œ ์˜๋ฏธ

4. ์ธ์กฐ์‹๋ณ„์ž์˜ ๋ฌธ์ œ

  • ์ค‘๋ณต ๋ฐ์ดํ„ฐ๋กœ ์ธํ•œ ํ’ˆ์งˆ ๋ฌธ์ œ: ์ค‘๋ณต ๋ฐ์ดํ„ฐ์˜ ์›์ฒœ ์ฐจ๋‹จ์„ ํ•  ์ˆ˜ ์—†์Œ
  • ๋ถˆํ•„์š”ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ
    • ๋ณธ์งˆ ์‹๋ณ„์ž๋Š” PK: ์ฃผ๋ฏผ๋ฒˆํ˜ธ + ์ƒํ’ˆ๋ฒˆํ˜ธ
    • ์ธ์กฐ์‹๋ณ„์ž๋Š” FK: ์ฃผ๋ฌธ์ƒํ’ˆ๋ฒˆํ˜ธ