SQL & Python Study

[D+6] SQLD ์ž๊ฒฉ์ฆ (1) - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด, 3์ค‘ ์Šคํ‚ค๋งˆ, ERD ๋ณธ๋ฌธ

๐Ÿ“š ์ž๊ฒฉ์ฆ/SQLD

[D+6] SQLD ์ž๊ฒฉ์ฆ (1) - ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด, 3์ค‘ ์Šคํ‚ค๋งˆ, ERD

๊น€์ˆฎ์—‰ 2024. 4. 22. 22:27

๋ฏธ๋ฆฌ์บ”๋ฒ„์Šค๋กœ 1๋ถ„๋งŒ์— ๋งŒ๋“  ์ธ๋„ค์ผ-. SQL ๊ณต๋ถ€ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!

 

โœ๏ธ STUDY INDEX 

1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด
 -- ์ •์˜, ๋ชฉ์ , ํŠน์ง•, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ 3๋‹จ๊ณ„, 3๊ฐ€์ง€ ๊ด€์ , ์ค‘์š”์„ฑ  
2. 3์ธต ์Šคํ‚ค๋งˆ(3-Level Schema)
 -- ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ, 3์ธต ์Šคํ‚ค๋งˆ์˜ ๊ตฌ์กฐ๋ณ„ ํŠน์ง• 
3. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์š”์†Œ์™€ ERD 
-- 3๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ(์—”ํ„ฐํ‹ฐ, ์†์„ฑ, ๊ด€๊ณ„)์™€ ERD ์ž‘์„ฑ๋ฒ•, ํ‘œ๊ธฐ๋ฒ•

 

โ€ป ๋ฐฉ๋Œ€ํ•œ ํ•™์Šต ๋‚ด์šฉ์„ ์š”์•ฝํ•˜๊ธฐ ์œ„ํ•œ ํฌ์ŠคํŒ…์œผ๋กœ ๋ถ€์—ฐ ์„ค๋ช…์ด ์—†๊ฑฐ๋‚˜ ๋งค์šฐ ์งง์Šต๋‹ˆ๋‹ค.  

โ€ป <๊ฒฉํŒŒ๋ฅดํƒ€! SQLD ์ž๊ฒฉ์ฆ ์ฑŒ๋ฆฐ์ง€> ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์ œ ์ž…๋ง›๋Œ€๋กœ ์š”์•ฝ & ์žฌ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. 

 

1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด 

(0) ๋จผ์ € ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผํ•  ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋… 

  • SQL(structured query language)
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ง์ ‘์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด.
    ์ •์˜, ์กฐ์ž‘, ์ ์šฉ/์ทจ์†Œ, ์ œ์–ด, ์ฒ˜๋ฆฌ ๋“ฑ 
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(data base, ์ดํ•˜ DB) : ์ž˜ ์กฐ์งํ™”๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์Œ
  • DBMS(database management system) : DB๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ 
    DBMS์˜ ์ข…๋ฅ˜๋กœ๋Š” SQLite, MySQL,  ORACLE, PostgreSQL, mongoDB, MariaDB ๋“ฑ์ด ์žˆ์Œ. 

(1) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ 

  • DBMS๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ ๊ตฌ์กฐ๋‚˜ ํ˜•์‹์„ ์˜๋ฏธ
  • ์ฆ‰, ๋ชจ๋ธ ์ •๋ณด(๊ตฌ์กฐ)๋งŒ ๋ณด๊ณ ๋„ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์Œ. 
  • ํ˜„์‹ค์„ธ๊ณ„๋ฅผ ์–ผ๋งŒํผ ์ถ”์ƒํ™”ํ•˜์—ฌ ํ‘œํ˜„

(2) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด๋ž€ 

  • ์ •๋ณด์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ ๊ด€์ ์˜ ์—…๋ฌด ๋ถ„์„ ๊ณผ์ • 
  • ํ˜„์‹ค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์— ์˜ํ•ด ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ • 
  • DB ๊ตฌ์ถ•์„ ์œ„ํ•œ ๋ถ„์„ & ์„ค๊ณ„ ๊ณผ์ • 

(3) ๋ชจ๋ธ๋ง์˜ ๋ชฉ์  

  • ์—…๋ฌด์— ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ •์˜ & ํ‘œํ˜„ํ•˜์—ฌ ์—…๋ฌด ๋ถ„์„ 
  • ๋ถ„์„ ๋ชจ๋ธ์„ ํ† ๋Œ€๋กœ DB๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌ *๊ฐœ๋ฐœ๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹Œ, ์ „์‚ฌ์  ์ฐจ์›์—์„œ์˜ ํ•„์š”. 

(4) ๋ชจ๋ธ๋ง์˜ ํŠน์ง• 3๊ฐ€์ง€

  1. ์ถ”์ƒํ™”(Abstraction) : ํ˜„์‹ค์„ธ๊ณ„๋ฅผ ์ผ์ •ํ•œ ํ˜•์‹์— ๋งž์ถฐ ํ‘œํ˜„. ์ˆ˜๋งŽ์€ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์žฅ/๋‹จ์–ด/๊ฐœ๋…์œผ๋กœ ํ‘œํ˜„ ๊ฐ€๋Šฅ.   
  2. ๋‹จ์ˆœํ™”(Simplification) : ์•ฝ์†๋œ ๊ทœ์น™์— ๊ธฐ๋ฐ˜ํ•œ, ์ œํ•œ๋œ ํ‘œ๊ธฐ๋ฒ• or ์–ธ์–ด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ.  
  3. ๋ช…ํ™•ํ™”(Clarity) : ๋Œ€์ƒ์— ๋Œ€ํ•œ ์• ๋งค๋ชจํ˜ธํ•จ ์ œ๊ฑฐ & ํ˜„์ƒ์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ธฐ์ˆ ํ•˜๋Š” ๊ฒƒ. ์˜๋ฏธ๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ธฐ์ˆ . 

(5) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ 3๋‹จ๊ณ„ 

๋‹จ๊ณ„ ํŠน์ง•
โ‘  ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
Conceptual Data Modeling
•  ์กฐ์ง, ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ฐพ๊ณ  ๋ถ„์„ํ•˜๋Š” ๊ณผ์ • 
•  ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๊ฐ€์žฅ ๋†’์Œ
•  ์—…๋ฌด ์ค‘์‹ฌ์ ์ธ, ์ „์‚ฌ์  ๊ด€์ ์—์„œ์˜ ๋ชจ๋ธ๋ง 
โ‘ก ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
Logical Data Modeling
•  ๋น„์ฆˆ๋‹ˆ์Šค ๊ณผ์ •์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ์ •๋ณด์˜ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ & ๊ทœ์น™์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ณผ์ • 
•  ๋ˆ„๊ฐ€, ์–ด๋–ป๊ฒŒ, ๋ฌด์—‡์— ๋Œ€ํ•œ ํŒฉํŠธ ์ธ์‹ ๋ฐ ๊ธฐ๋ก 
•  *์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋…๋ฆฝ์„ฑ ํ™•๋ณด
*๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์ค‘๋ณต ์ œ๊ฑฐ & ์ผ๊ด€์„ฑ ํ™•๋ณด → ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์–ป๋Š” ๊ฒƒ
โ‘ข ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
Physical Data Modeling
•  ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์–ด๋–ป๊ฒŒ ํ•˜๋“œ์›จ์–ด์— ํ‘œํ˜„๋  ๊ฒƒ์ธ์ง€ ๋‹ค๋ฃธ
•  ๊ตฌ์ถ•ํ•  DBMS์— ํ…Œ์ด๋ธ”, ์ธ๋ฑ์Šค ๋“ฑ์„ ์ƒ์„ฑํ•˜๋Š” ๋‹จ๊ณ„ 
•  ์„ฑ๋Šฅ, ๋ณด์•ˆ, ๊ฐ€์šฉ์„ฑ ๊ณ ๋ ค 

 

(6) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ด€์  3๊ฐ€์ง€ 

  1. ๋ฐ์ดํ„ฐ ๊ด€์  (What) : ์—…๋ฌด๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ ์žˆ๋Š”์ง€ 
  2. ํ”„๋กœ์„ธ์Šค ๊ด€์  (How) : ์‹ค์ œํ•˜๋Š” ์ผ์ด ๋ฌด์—‡์ด๊ณ  ์–ด๋–ค ๊ฒƒ๋“ค์ด ์žˆ๋Š”์ง€. ๋„๋ฉ”์ธ & ์‹œ๋‚˜๋ฆฌ์˜ค ๋ถ„์„ 
  3. ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ๊ด€๊ด€์ (Intersection) : ์—…๋ฌด ์ฒ˜๋ฆฌ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฐ›๋Š”์ง€
    ์ฆ‰, ์ผ์— ์˜ํ•œ ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”์— ์ดˆ์ . CRUD(Create, Read, Update, Delete) ๋ถ„์„

(7) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ค‘์š”์„ฑ 

  1. ํŒŒ๊ธ‰ํšจ๊ณผ (Leverage)
    ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ ๋ณ€ํ•ด๋„ ํฐ ๊ตฌ์กฐ๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ 
    ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ํŒŒ๊ธ‰ํšจ๊ณผ๋ฅผ ์ตœ์†Œํ™”ํ•˜๋Š” ๊ฒƒ 
  2. ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„(Conciseness)
    ์‹œ์Šคํ…œ์˜ ์ •๋ณด ์š”๊ตฌ์‚ฌํ•ญ&ํ•œ๊ณ„์ ์„ ๋ช…ํ™•/๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ 
  3. ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ(Data Quality) *3๊ฐ€์ง€ ํ‰๊ฐ€ ๊ธฐ์ค€   
    โ‘  ์ค‘๋ณต (Duplication) : ์—ฌ๋Ÿฌ ๊ณณ์— ๊ฐ™์€ ์ •๋ณด X
    โ‘ก ๋น„์œ ์—ฐ์„ฑ (Inflexibility) : ํ™˜๊ฒฝ์ด ๋ฐ”๋€Œ์—ˆ์„ ๋•Œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€
    โ‘ข ๋น„์ผ๊ด€์„ฑ (Inconsistency) : ๋ช…ํ™•ํ•œ ์ƒํ˜ธ ์—ฐ๊ด€ ๊ด€๊ณ„ 

 

3์ธต ์Šคํ‚ค๋งˆ (3-Level Schema)

๐Ÿ’ก์ž ๊น, ์—ฌ๊ธฐ์„œ๋Š” ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ํ™•๋ณด์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ด์•ผ๊ธฐํ•  ๊ฑฐ์˜ˆ์š”.

3์ธต ์Šคํ‚ค๋งˆ ์ž์ฒด๊ฐ€ ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์ƒ๊ธด ๊ตฌ์กฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์–ด์š”!

์œ„ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์—ฌ ํ•™์Šตํ•˜๋ฉด ํ›จ์”ฌ ์ดํ•ด๊ฐ€ ๋นจ๋ผ์งˆ ๊ฑฐ์˜ˆ์š”.  

 

(0) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์ด ๋ถ€์กฑํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

  • ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ ์ฆ๊ฐ€ 
  • ์œ ์ง€๋ณด์ˆ˜ ์ค‘๋ณต์„ฑ ์ฆ๊ฐ€ 
  • ๋ฐ์ดํ„ฐ ๋ณต์žก๋„ ์ฆ๊ฐ€ 
  • ์š”๊ตฌ์‚ฌํ•ญ ๋Œ€์‘ ์ €ํ•˜ 

(1) ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ์ด๋ž€ 

  • ์ƒ์œ„ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ์—†์ด ํ•˜๋‚˜์˜ ๊ณ„์ธต์—์„œ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ 
    ์ฆ‰, ํ•˜์œ„ ๋ ˆ๋ฒจ ์Šคํ‚ค๋งˆ๋ฅผ ๋ณ€๊ฒฝํ•ด๋„ ์ƒ์œ„ ๋ ˆ๋ฒจ ์Šคํ‚ค๋งˆ๋ฅผ ๋ฐ”๊ฟ€ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ.
  • ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ ํ™•๋ณด์˜ ๊ธฐ๋Œ€ํšจ๊ณผ 
    ๊ฐ ๋ทฐ(view)์˜ ๋…๋ฆฝ์„ฑ ์œ ์ง€ & ๊ณ„์ธต๋ณ„ ๋ทฐ์— ์˜ํ–ฅ ์—†์ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ 
    ๋‹จ๊ณ„๋ณ„ ์Šคํ‚ค๋งˆ ๋ณ„๋กœ ๋ฐ์ดํ„ฐ ์ •์˜์–ด(DDL), ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ด(DML)์„ ์ œ๊ณต

(2) ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์˜ 3๋‹จ๊ณ„ ๊ตฌ์กฐ, 3์ธต ์Šคํ‚ค๋งˆ! 

  • DB๋ฅผ ๋ณด๋Š” ๊ด€์ (์‚ฌ์šฉ์ž, ์„ค๊ณ„์ž, ๊ฐœ๋ฐœ์ž)์— ๋”ฐ๋ผ DB๋ฅผ ๊ธฐ์ˆ ํ•˜๊ณ  ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ ANSI ํ‘œ์ค€ 
    *ANSI : ๋ฏธ๊ตญํ‘œ์ค€ํ˜‘ํšŒ (American National Standards Institute)
  • 3๋‹จ๊ณ„ ๊ณ„์ธต์œผ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋…๋ฆฝ์„ฑ์„ ํ™•๋ณดํ•จ. ๊ฐ ๊ณ„์ธต์„ ๋ทฐ(view)๋ผ๊ณ ๋„ ํ•จ. 
๐Ÿ’ก 3์ธต ์Šคํ‚ค๋งˆ์˜ 3๋‹จ๊ณ„ ๊ตฌ์กฐ์™€ ๋…๋ฆฝ์„ฑ
โ‘  ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ  •  ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” DB ์Šคํ‚ค๋งˆ (์‚ฌ์šฉ์ž ๊ด€์ ) 
•  ๊ด€์‹ฌ์žˆ๋Š” DB๋งŒ ๋ถ€๋ถ„์  ์„ค๋ช…, ๋‚˜๋จธ์ง„ ๊ฐ์ถค
 ⇔ ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ  •  ๊ฐœ๋… ์Šคํ‚ค๋งˆ์˜ ๋ณ€๊ฒฝ์ด ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋„๋ก ์ง€์› 
•  ๋…ผ๋ฆฌ ๊ตฌ์กฐ ๋ณ€๊ฒฝ์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ–ฅ ์—†์Œ.
•  ์‚ฌ์šฉ์ž ํŠน์„ฑ์— ๋งž๊ฒŒ ๋ณ€๊ฒฝ O, ํ†ตํ•ฉ ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝ O
โ‘ก ๊ฐœ๋… ์Šคํ‚ค๋งˆ •  ๋ฐ์ดํ„ฐ์˜ ์ „์ฒด ๊ตฌ์กฐ,  ๊ด€๊ณ„์— ์ง‘์ค‘ํ•˜๊ณ , ๋ฌผ๋ฆฌ์ ์ธ ์ €์žฅ ๊ตฌ์กฐ๋Š” ์ˆจ๊น€
 ⇔ ๋ฌผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ  •  ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ๋˜์–ด๋„ ๊ฐœ๋… ์Šคํ‚ค๋งˆ ์˜ํ–ฅ X 
•  ์ €์žฅ์žฅ์น˜ ๊ตฌ์กฐ ๋ณ€๊ฒฝ → ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, ๊ฐœ๋… ์Šคํ‚ค๋งˆ์— ์˜ํ–ฅ X
•  ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ ์˜ํ–ฅ X ๊ฐœ๋… ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ 
•  ๊ฐœ๋… ๊ตฌ์กฐ ์˜ํ–ฅ X ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
โ‘ข ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ •  DB๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ €์žฅ๋œ ํ˜•์‹ 
•  ๋ฌผ๋ฆฌ์  ์žฅ์น˜์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‹ค์ œ์ ์œผ๋กœ ์ €์žฅ๋˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ• ํ‘œํ˜„ 

 

* ์œ„ ๋‚ด์šฉ์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ 3์ธต ์Šคํ‚ค๋งˆ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ํ™•์ธํ•ด ์ฃผ์„ธ์š”.

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์š”์†Œ์™€ ERD

(1) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ 3์š”์†Œ

  • ์—”ํ„ฐํ‹ฐ(Entity) : ์—…๋ฌด๊ฐ€ ๊ด€์—ฌํ•˜๋Š” ์–ด๋–ค ๊ฒƒ(thing)
  • ์†์„ฑ(Attribute) : ์–ด๋–ค ๊ฒƒ์ด ๊ฐ–๋Š” ์„ฑ๊ฒฉ
  • ๊ด€๊ณ„(Relationship) : ์—…๋ฌด๊ฐ€ ๊ฐ–๋Š” ์–ด๋–ค ๊ฒƒ ๊ฐ„์˜ ๊ด€๊ณ„ 

(2) ERD (Entity Relationship Diagram)

  • ๋ฐ์ดํ„ฐ์˜ ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ธ ๋„ํ‘œ
  • ERD ์ž‘์„ฑ ๋ฐฉ๋ฒ•  
    1) ์—”ํ„ฐํ‹ฐ ์ •์˜ํ•˜๊ณ  ๊ทธ๋ฆฐ๋‹ค. 
    2) ์—”ํ„ฐํ‹ฐ๋ฅผ *์ค‘์š”๋„์— ๋”ฐ๋ผ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•œ๋‹ค. 
    *์ขŒ → ์šฐ, ์œ„ → ์•„๋ž˜ ์ˆœ์„œ๋กœ ์ค‘์š”ํ•œ ์—”ํ„ฐํ‹ฐ๋ฅผ ๋‚˜์—ด
    3) ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„ ์„ค์ • & ๊ด€๊ณ„๋ช… ์„œ์ˆ ํ•œ๋‹ค.  
    4) ๊ด€๊ณ„์˜ *์ฐธ์—ฌ๋„ ๊ธฐ์ˆ ํ•œ๋‹ค.  
    *ํŠน์ • ์—”ํ„ฐํ‹ฐ์™€ ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„์ˆ˜  
    5) ๊ด€๊ณ„์˜ ํ•„์ˆ˜ ์—ฌ๋ถ€ ๊ธฐ์ˆ ํ•œ๋‹ค. 
  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ํ‘œ๊ธฐ๋ฒ• 2๊ฐ€์ง€ : IE ํ‘œ๊ธฐ๋ฒ•, Barker ํ‘œ๊ธฐ๋ฒ• *SQLD (2) ํŽธ์— ๊ตฌ์ฒด์ ์œผ๋กœ ์ •๋ฆฌ ์˜ˆ์ •!

(3) ์ข‹์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ์š”์†Œ 

  • ์™„์ „์„ฑ(Completeness) : ์—…๋ฌด์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋ธ์— ์ •์˜
  • ์ค‘๋ณต ์ œ์žฌ(Non-Redundancy) : 1๊ฐœ์˜ DB์— ๋™์ผํ•œ ์‚ฌ์‹ค์€ 1๋ฒˆ๋งŒ ๊ธฐ๋ก 
  • ์—…๋ฌด ๊ทœ์น™(Business Rules) : ์—…๋ฌด๊ทœ์น™์„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ํ‘œํ˜„ & ๋ชจ๋‘ ๊ณต์œ 
  • ๋ฐ์ดํ„ฐ ์žฌ์‚ฌ์šฉ(Data Reusability) : ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ๊ฐ€๊ณต & ๋ณด๊ด€  
  • ์˜์‚ฌ์†Œํ†ต(Communication)
  • ํ†ตํ•ฉ์„ฑ(Integration) : ๋™์ผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋Š” ์ „์ฒด์—์„œ 1๋ฒˆ๋งŒ ์ •์˜, ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ ์ฐธ์กฐํ•˜์—ฌ ํ™œ์šฉ.

 

2024. 4. 22

 

์˜ค๋Š˜์˜ ๊ณต๋ถ€๋Š” ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค. 

 

์ž๊ฒฉ์ฆ ๊ณต๋ถ€๋Š” ์ด๋ก ์ ์ธ ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๋ฐฉ๋Œ€ํ•˜๋‹ค ๋ณด๋‹ˆ ์ •๋ฆฌ๋œ ๋‚ด์šฉ์„ ๋˜ ์š”์•ฝํ•˜๊ณ  ์š”์•ฝํ–ˆ์–ด์š”.

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์˜ TIL (Today I Learned) ์ž‘์„ฑ์€ ์ •๋ง ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.. 

๊ฐœ์ธ์ ์ธ ์Šคํƒ€์ผ์ด์ง€๋งŒ, ์ €๋Š” ์š”์•ฝ์˜ ์š”์•ฝ์„ ๊ฑฐ๋“ญํ•˜๋ฉด์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์„ ๋นจ๋ฆฌ ์บ์น˜ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ํŽธ์ด๋ผ์„œ์š”. ์‹œํ—˜๊ณต๋ถ€๋ฅผ ํ•  ๋•Œ ์š”์•ฝ์„ ํ•ด์•ผ ์ œ๋Œ€๋กœ ํ•™์Šตํ•  ์ˆ˜ ์žˆ๋Š” ๋А๋‚Œ์ž…๋‹ˆ๋‹ค! ์ •๋ฆฌ์™•์œผ๋กœ ์ด๋Ÿฐ ์š”์•ฝ์€ ์ž์‹  ์žˆ์–ด์š”! ใ…‹ใ…‹ 

 

์˜ค๋Š˜ ์นœ๊ตฌ๊ฐ€ ์ €์—๊ฒŒ ๋„ˆ๋ฌด ์ข‹์€ ๋…ธ๋ž˜๋ฅผ ์ถ”์ฒœํ•ด ์คฌ์–ด์š”๐Ÿ˜Š

์ œ ์ง€์ €๋ถ„ํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๊ณ  ํ˜„ํƒ€๊ฐ€ ๋งŽ์ด ์™”๋Š”๋ฐ, ๋งŽ์€ ์œ„๋กœ์™€ ํฐ ํž˜์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๊ณ ๋งˆ์™€ ์นœ๊ตฌ์•ผ! 

๋ณธ์ธ์ด ๋ชฉํ‘œํ•œ ๋ฐ”๋ฅผ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋‚˜ ๋„ˆ๋ฌด ๊ณต๊ฐ๋  ์Œ์•…์ด๋ผ ๋ธ”๋กœ๊ทธ์—๋„ ์ถ”์ฒœํ•ด์š” :) ์‹œ๊ฐ„ ๋˜์‹œ๋ฉด ํ•œ๋ฒˆ ๋“ค์–ด๋ณด์„ธ์š” ใ…Žใ…Ž ๊ทธ๋Ÿผ ์ด์ œ ์ „ SQL ๊ณผ์ œํ•˜๋Ÿฌ ๊ฐ€๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด์ด 

 

HAAN, Chan - ๋‚ด์ผ์ด ์žˆ์ž–์•„ (Feat. Jayci yucca(์ œ์ด์”จ ์œ ์นด))