Programing_Java

[SQLD] ์Šคํ‚ค๋งˆ์™€ ์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ

๐Ÿ’พ SQL_

[SQLD] ์Šคํ‚ค๋งˆ์™€ ์—”ํ„ฐํ‹ฐ

Joyfullyever 2025. 2. 10. 19:37

#1 ์Šคํ‚ค๋งˆ

: DB ๊ฐ์ฒด๋“ค์˜ ๋…ผ๋ฆฌ์ ์ธ ๊ทธ๋ฃน์„ ์˜๋ฏธ

: DB ๋‚ด์—์„œ ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค, ํ”„๋กœ์‹œ์ €, ๊ถŒํ•œ ๋“ฑ์„ ํ•˜๋‚˜์˜ ๊ตฌ์กฐ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฐœ๋…

 

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

: ์‚ฌ์šฉ์ž, ์„ค๊ณ„์ž, ๊ฐœ๋ฐœ์ž๊ฐ€ DB๋ฅผ ๋ณด๋Š” ๊ด€์ ์— ๋”ฐ๋ผ DB๋ฅผ ๊ธฐ์ˆ ํ•˜๊ณ  ์ด๋“ค๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ ANSI ํ‘œ์ค€

- ANSI : American National Standards Institute : ๋ฏธ๊ตญ ํ‘œ์ค€ ํ˜‘ํšŒ

- ANSI ํ‘œ์ค€ : DB์™€ ๊ด€๋ จ๋œ ํ‘œ์ค€์„ ์ •์˜ํ•œ ๊ฒƒ

- ANSI SQL ํ‘œ์ค€ : SQL๋ฌธ์ด ๋ชจ๋“  DBMS์—์„œ ํ˜ธํ™˜๋˜๋„๋ก ์ •์˜ํ•œ ํ‘œ์ค€ (Oracle, Sybase, DB2, MySQL ๋“ฑ)

๋…๋ฆฝ์„ฑ ์„ค๋ช…
๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ ๊ฐœ๋… ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ
๋ฌผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๊ฐœ๋… ์Šคํ‚ค๋งˆ๊ฐ€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ

 

1-2) ๋‹จ๊ณ„

์™ธ๋ถ€ ๋‹จ๊ณ„ (External Level) : ์™ธ๋ถ€์— ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ

๊ฐœ๋… ๋‹จ๊ณ„ (Conceptual Level) : ์‚ฌ์ƒ(Mapping) ๊ฐœ๋…์— ๋งž๊ฒŒ ๋” ์Šคํ‚ค๋งˆ๋ฅผ Mapping ํ•ด์ฃผ๋Š” ๊ฒƒ

๋‚ด๋ถ€ ๋‹จ๊ณ„ (Internal Level)

 

1-3) ๊ตฌ์กฐ

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

 

#2 Entity

: ์—…๋ฌด์—์„œ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ, ์ €์žฅ๋˜๊ณ  ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ

: ๊ฐœ๋…, ์‚ฌ๊ฑด, ์žฅ์†Œ ๋“ฑ์˜ [๋ช…์‚ฌ]

: ์—…๋ฌด์ƒ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ด€์‹ฌ์‚ฌ

 

ํ…Œ์ด๋ธ” ์ƒ์„ฑ์‹œ not null ์ด์–ด์•ผ ํ•˜๋ฉด "ํ•„์ˆ˜" check

 

2-1) ๋„์ถœ

: ๊ณ ๊ฐ์˜ ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค์—์„œ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ •๋ณด๋ฅผ ์ถ”์ถœ → ์ถ”์ƒํ™”

 

2-2) ํŠน์ง•

ํŠน์ง• ์„ค๋ช…
์‹๋ณ„์ž Entitiy๋Š” ์œ ์ผํ•œ ์‹๋ณ„์ž๊ฐ€ ์žˆ์–ด์•ผํ•จ
Ex) ํšŒ์›ID, ๊ณ„์ขŒ๋ฒˆํ˜ธ → PK
์ธ์Šคํ„ด์Šค ์ง‘ํ•ฉ 2๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ์–ด์•ผํ•จ
Ex) ๊ณ ๊ฐ์ •๋ณด๋Š” 2๋ช… ์ด์ƒ ์žˆ์–ด์•ผํ•จ
์†์„ฑ Entity๋Š” ๋ฐ˜๋“œ์‹œ ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•จ
Ex) ํšŒ์›ID, PW, ์ด๋ฆ„, ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ
๊ด€๊ณ„ Entity๋Š” ๋‹ค๋ฅธ Entity์™€ ์ตœ์†Œํ•œ ํ•œ๊ฐœ ์ด์ƒ ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด์•ผํ•จ
Ex) ๊ณ ๊ฐ์€ ๊ณ„์ขŒ๋ฅผ ๊ฐœ์„ค
์—…๋ฌด Entity๋Š” ์—…๋ฌด์—์„œ ๊ด€๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ์ง‘ํ•ฉ
Ex) ๊ณ ๊ฐ, ๊ณ„์ขŒ

2-3) ๋ฆด๋ ˆ์ด์…˜, ํ…Œ์ด๋ธ”๊ณผ ์ธ์Šคํ„ด์Šค(Instance)

: ๋ฆด๋ ˆ์ด์…˜๊ณผ ํ…Œ์ด๋ธ”์€ ๊ฐ™์€ ์˜๋ฏธ๋ผ๊ณ  ํ•ด์„

: ๋ฆด๋ ˆ์ด์…˜์— ๊ธฐ๋ณธํ‚ค ๋ฐ ์ œ์•ฝ์กฐ๊ฑด์„ ์„ค์ •ํ•˜๋ฉด ํ…Œ์ด๋ธ”์ด ๋จ

: Relationship์€ ๋ฆด๋ ˆ์ด์…˜ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์˜๋ฏธ

: ์ธ์Šคํ„ด์Šค๋Š” ๋ฆด๋ ˆ์ด์…˜์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์„ ์˜๋ฏธ → ๊ณ ๊ฐ์€ ๊ณ„์ขŒ ํ•œ๊ฐœ๋ฅผ ๋ฌด์กฐ๊ฑด ๊ฐœ์„คํ•ด์•ผํ•จ

 

Relationship != ๋ฆด๋ ˆ์ด์…˜

Relationship → ํ…Œ์ด๋ธ”์„ ํ™”์‚ดํ‘œ๋กœ ์—ฎ์–ด์„œ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๊ฒƒ

๋ฆด๋ ˆ์ด์…˜ → ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋ ค๊ณ  ํ•˜๊ธฐ ์œ„ํ•œ, ๊ด€๊ณ„๋ผ๋Š” ๋ถ€๋ถ„

 

2-4) ์ข…๋ฅ˜

: ์œ ํ˜•๊ณผ ๋ฌดํ˜• / Entity๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ์  → ์— ๋”ฐ๋ฅธ ์ข…๋ฅ˜

 

์œ ํ˜• & ๋ฌดํ˜•์œผ๋กœ ๋ถ„๋ฅ˜ → ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ์˜ ์กด์žฌ ์—ฌ๋ถ€ : ์ €์žฅ์„ ํ•˜๋Š”์ง€ ์•ˆํ•˜๋Š”์ง€, ๋ˆˆ์— ๋ณด์ด๋Š”์ง€ ์•ˆ๋ณด์ด๋Š”์ง€

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

 

๋ฐœ์ƒ์‹œ์ ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
๊ธฐ๋ณธ Entity (Basic) = ํ‚ค Entity
๋‹ค๋ฅธ Entity๋กœ ๋ถ€ํ„ฐ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ , ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” Entity
Ex) ๊ณ ๊ฐ, ์ƒํ’ˆ, ๋ถ€์„œ
์ค‘์‹ฌ Entity (Main) ๊ธฐ๋ณธ Entity์™€ ํ–‰์œ„ Entity ๊ฐ„์˜ ์ค‘๊ฐ„์— ์žˆ๋Š” ๊ฒƒ
๊ธฐ๋ณธ Entity๋กœ ๋ถ€ํ„ฐ ๋ฐœ์ƒ๋˜๊ณ  ํ–‰์œ„ Entity๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ
Ex) ๊ณ„์ขŒ, ์ฃผ๋ฌธ, ์ทจ์†Œ, ์ฒด๊ฒฐ
ํ–‰์œ„ Entity (Active) 2๊ฐœ ์ด์ƒ์˜ Entity๋กœ ๋ถ€ํ„ฐ ๋ฐœ์ƒ
Ex) ์ฃผ๋ฌธ ์ด๋ ฅ, ์ฒด๊ฒฐ ์ด๋ ฅ