์ ๊ทํ๋ ๋ฐ์ดํฐ ์ค๋ณต์ ์ต์ํํ๊ณ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ์ฒด๊ณ์ ์ธ ์ ์ฐจ๋ค.ํ๋์ ๊ฑฐ๋ํ ํ ์ด๋ธ์ ๊ฐฑ์ , ์ฝ์ , ์ญ์ ์ด์ ํ์์ ์ผ์ผํค๋ฏ๋ก ํ ์ด๋ธ์ ํจ์ ์ข ์์ฑ์ ๋ฐ๋ผ ๋ถ๋ฆฌํ๋ค.์ ๊ทํ์ ํต์ฌ์ X → Y ๊ด๊ณ๋ค. X(๊ฒฐ์ ์)๊ฐ Y(์ข ์์)์ ๊ฐ์ ์ ์ผํ๊ฒ ๊ฒฐ์ ํ๋ค. 1. ์ 1 ์ ๊ทํ (1NF)ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ๋ ์ด์ ์ชผ๊ฐค ์ ์๋ ์์์ ๊ฐ๋ง ๊ฐ์ ธ์ผ ํ๋ค.ํ ์ปฌ๋ผ์ "์์ธ,๋ถ์ฐ,๋๊ตฌ"์ฒ๋ผ ์ผํ๋ก ๊ตฌ๋ถ๋ ๊ฐ์ ๊ฒ์, ์์ , ํ์ ํ์ฉ์ด ์ด๋ ต๋ค. ํด๊ฒฐ์ฑ : ๊ฐ ์ ๋ณด๋ฅผ ๋ณ๋์ ํ์ผ๋ก ๋ถ๋ฆฌํ๋ค.์ ํ๋ฒํธ ์ปฌ๋ผ: "02-123-4567, 010-987-6543" → โ1ํ: "02-123-4567"2ํ: "010-987-6543" → โ 2. ์ 2 ์ ๊ทํ (2NF)์ 1 ์ ๊ทํ์ ๋ง์กฑํ๊ณ , ๋ชจ๋ ์ปฌ๋ผ์ด ๊ธฐ๋ณธ ํค ..
2026.01.03๋ฐ๊ฐ์ต๋๋ค. JAY์ ๋๋ค! ๐ฉโ๐ป
ํ์คํ ์์ญ์์ ํ์ ์ ๊ฐ์น๋ฅผ ๊ตฌํํ๋ ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํ ๋ ธ๋ ฅ์ ์ด์ด๊ฐ๊ณ ์ ์ด๊ณณ JAYโจ๏ธCODE ์ ์ฑ์ฅ์ ๊ธฐ์ฌํ ๋๊ตฌ๋ค์ ๊ธฐ๋กํ๊ณ ์์ต๋๋ค.
Total9
-
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง – ์ ๊ทํ์ ๋ชจ๋ ๊ฒ
-
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง – ์๋ณ๊ด๊ณ vs ๋น์๋ณ๊ด๊ณ
๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์์ ์๋ณ๊ด๊ณ์ ๋น์๋ณ๊ด๊ณ๋ ํ ์ด๋ธ ๊ฐ์ ๊ฒฐํฉ ๊ฐ๋๋ฅผ ๊ฒฐ์ ํ๋ ํต์ฌ ๊ฐ๋ ์ด๋ค. ์๋ณ๊ด๊ณ๋ ๋ถ๋ชจ์ PK๊ฐ ์์์ PK๊น์ง ๊ด์ฌํ๋ ๊ฐํ ๊ฒฐํฉ์ด๊ณ , ๋น์๋ณ๊ด๊ณ๋ ๋ ๋ฆฝ์ ์ธ PK๋ฅผ ์ ์งํ๋ ์ฝํ ๊ฒฐํฉ์ด๋ค. ํ๋ ์ค๊ณ์์๋ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ์ํด ๋น์๋ณ๊ด๊ณ๋ฅผ ์์น์ผ๋ก ํ๋ค. 1. ๊ฐ๋ ์ ๋ณธ์ง์๋ณ ๊ด๊ณ๋ถ๋ชจ ํ ์ด๋ธ์ PK๋ฅผ ์์ ํ ์ด๋ธ์ PK + FK๋ก ์ฌ์ฉํ๋ค.๋ถ๋ชจ ์์ด๋ ์์์ด ์๋ณ๋ ์ ์๋ ๊ฐํ ์ข ์ ๊ด๊ณ๋ค. ๋น์๋ณ ๊ด๊ณ๋ถ๋ชจ ํ ์ด๋ธ์ PK๋ฅผ ์์ ํ ์ด๋ธ์ ์ผ๋ฐ ์ปฌ๋ผ(FK)์ผ๋ก๋ง ์ฐธ์กฐํ๋ค.์์์ ๋ ๋ฆฝ์ ์ธ PK๋ฅผ ๊ฐ์ง๋ฉฐ ๋ถ๋ชจ์ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ ์ ์๋ค. 2. ์ผ๋๋ค(1:N) ๊ด๊ณ์์์ ์ฐจ์ด๋น์๋ณ ๊ด๊ณ์์ ํ ์ด๋ธ์ ๋ ๋ฆฝ์ ์ธ PK(๋๋ฆฌ ํค)๋ฅผ ๊ฐ์ง๋ค. ๊ตฌ์กฐ๊ฐ ๋จ์ํ๊ณ ๋ช ํํ๋ฉฐ ๊ด๊ณ ๋ณ๊ฒฝ์ ์ ์ฐํ๋ค..
2026.01.03 -
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง – Relation(๊ด๊ณ)์ ๋ชจ๋ ๊ฒ
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ Relation(๊ด๊ณ) ๋ ํ ์ด๋ธ ๊ฐ์ ์ฐ๊ฒฐ์ ์ ์ํ๋ ํต์ฌ ์์๋ค. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์์๋ ์ฐธ์ฌ๋, ์ธ๋ ํค ์์น, ์นด๋๋๋ฆฌํฐ(1:1, 1:N, M:N)๋ฅผ ์ ํํ ์ค๊ณํด์ผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์กฐํ ํจ์จ์ด ๋ณด์ฅ๋๋ค. ์ด ๊ธ์์๋ ๊ด๊ณ์ ๊ธฐ๋ณธ ์์น๋ถํฐ 1:1, M:N ๊ด๊ณ์ ์ค๋ฌด ๊ตฌํ ํจํด๊น์ง ์ ๋ฆฌํ๋ค. 1. ๊ด๊ณ์ ๊ธฐ๋ณธ ์์น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ด๊ณ๋ ๋ฐฉํฅ์ด ์๋ค. JOIN์ ํตํด ์ด๋ ์ชฝ์์๋ ์๋ฐฉํฅ์ผ๋ก ์์ ๋กญ๊ฒ ํ์ํ ์ ์๋ค. ์ธ๋ ํค๋ ๋จ์ํ ์ ์ฝ์กฐ๊ฑด์ผ ๋ฟ, ์กฐํ ๋ฐฉํฅ์ ์ ํํ์ง ์๋๋ค. ์ฐธ์ฌ๋(Participation) ์ฐธ์ฌ๋๋ ์ํฐํฐ๊ฐ ๊ด๊ณ์ ํ์(Mandatory)์ธ์ง ์ ํ(Optional)์ธ์ง๋ฅผ ๋ํ๋ธ๋ค. ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง์์๋ ์ธ๋ ํค์ NULL ํ์ฉ ์ฌ๋ถ๋ก ๊ตฌํํ๋ค. ..
2026.01.03 -
๋ ผ๋ฆฌ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ชจ๋ธ๋ง – ํค(Key)์ ๋ชจ๋ ๊ฒ
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง(Logical Modeling) ์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ์ ์ํ๊ณ ์ํฐํฐ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ช ํํ ํ๋ ํต์ฌ ๋จ๊ณ๋ค. ๊ทธ์ค์์๋ Key ๋ ๋ฐ์ดํฐ์ ์ ์ฒด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๋ ๊ฐ์ฅ ์ค์ํ ์์๋ค. ์ด๋ฒ ๊ธ์์๋ Key์ ์ข ๋ฅ์ ์ญํ , ๊ทธ๋ฆฌ๊ณ ํ๋ ์ค๊ณ์์ ์ ๋๋ถ๋ถ์ ์์คํ ์ด ๋๋ฆฌ ํค(Surrogate Key) ๋ฅผ ์ ํํ๋์ง ์์๋ณด์. 1. Key๋ ๋ฌด์์ธ๊ฐKey๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ฐ ํ(Row)์ ์ ์ผํ๊ฒ ์๋ณํ๊ธฐ ์ํ ์ฅ์น๋ค.๋ฐ์ดํฐ๊ฐ ์๋ฌด๋ฆฌ ๋ง์๋ Key๋ฅผ ํตํด ํน์ ํ์ ์ ํํ ์ฐพ์๋ผ ์ ์์ด์ผ ํ๋ค.์ด๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ถ๋ฐ์ ์ด๋ค. 2. ๊ธฐ๋ณธ ํค (Primary Key, PK)๊ธฐ๋ณธ ํค๋ ํ ์ด๋ธ์ ๋ชจ๋ ํ์ ์ ์ผํ๊ฒ ์๋ณํ๋ ๋ํ ํค๋ค.NULL ๋ถ๊ฐ: ๊ฐ์ด ๋ฐ๋์ ..
2026.01.03 -
Postgres์ PostGIS ๊ฐ๋ , ์ปค๋จธ์ค ํ์ฉ ์ฌ๋ก ๋ฐ ์ค์น ๊ฐ์ด๋
1. PostGIS๋ ๋ฌด์์ธ๊ฐ?PostGIS๋ ์คํ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ PostgreSQL์์ ๊ณต๊ฐ ๋ฐ์ดํฐ(Spatial Data)๋ฅผ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ ์ ์๋๋ก ์ง์ํ๋ ํ์ฅ ๊ธฐ๋ฅ์ด๋ค.PostgreSQL์ ๋จ์ํ ๋ฐ์ดํฐ ์ ์ฅ์๋ฅผ ๋์ด, ์์น์ ํํ ์ ๋ณด๋ฅผ ๋ค๋ฃจ๋ ๊ฐ๋ ฅํ ๊ณต๊ฐ ์ ๋ณด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ํ์ฅ์ํจ๋ค. ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ํน์ง๊ตฌ๋ถ์ค๋ช ๋ํ์ ์ธ ์๊ณต๊ฐ ๋ฐ์ดํฐ ํ์ ์์น์ ํํ๋ฅผ ์ ์ํ๋ OGC ํ์ค ๋ฐ์ดํฐ ํ์ ์ ์ ๊ณตํ๋ค. ํ๋ฉด(Cartesian) ์ขํ๊ณ(GEOMETRY)์ ๊ตฌ๋ฉด(Spherical) ์ขํ๊ณ(GEOGRAPHY)๋ฅผ ๋ชจ๋ ์ง์ํ๋ค. POINT (์ ), LINESTRING (์ ), POLYGON (๋ฉด)MULTIPOLYGON (์ฌ๋ฌ ๋ฉด์ ์งํฉ) ๋ฑ ๊ณต๊ฐ ์ธ๋ฑ์ค ๋์ฉ๋ ๊ณต๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์กฐํํ๊ธฐ..
2026.01.01 -
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋์์ฑ ์ ์ด
ํธ๋์ญ์ ์ ์ญํ ํธ๋์ญ์ ์ด๋ํธ๋์ญ์ ์ ์ฌ๋ฌ ๊ฐ์ ์กฐํ๋ ์ฐ๊ธฐ๋ฅผ ๋ ผ๋ฆฌ์ ์ผ๋ก ํ๋์ ์ฐ์ฐ์ผ๋ก ๋ฌถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํต์ฌ ๊ธฐ๋ฅ์ ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๊ณผ์ ์์ ๋ฐ์ํ ์ ์๋ ๋ค์ํ ๋์์ฑ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํด์ค๋๋ค. ํธ๋์ญ์ ์ ํต์ฌ ์์น์์์ฑ (Atomicity)ํ๋์ ํธ๋์ญ์ ์ ํฌํจ๋ ๋ชจ๋ ์ฐ๊ธฐ๋ ๋ชจ๋ ์ ์ฉ๋๊ฑฐ๋(์ปค๋ฐ) ๋ชจ๋ ์ทจ์(๋กค๋ฐฑ)๋ฉ๋๋คํธ๋์ญ์ ์์ ์ฟผ๋ฆฌ ์ค ํ๋๋ผ๋ ์คํจํ๋ฉด ์ ์ฒด ํธ๋์ญ์ ์ ๋กค๋ฐฑํจ์ผ๋ก์จ ๋ฐ์ดํฐ๊ฐ ๊นจ์ง๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค BEGIN; -- ์ฌ๋ฌ ์์ ์ด ํ๋์ ๋ ผ๋ฆฌ์ ๋จ์ UPDATE account SET balance = balance - 1000 WHERE user_id = 1; UPDATE account SET balance = balance + 1000 WHERE u..
2026.01.01 -
๊ฐ๋ ์ ๋ชจ๋ธ๋ง (2) - ์ํฐํฐ ๊ด๊ณ์ ERD ์ค์ต
๊ฐํ ์ํฐํฐ์ ์ฝํ ์ํฐํฐ๊ฐํ ์ํฐํฐ (Strong Entity)๋ ๋ฆฝ์ ์ธ ์กด์ฌ๊ฐ ๊ฐ๋ฅํ๋ค.์์ ๋ง์ ๊ณ ์ ํ ์ฃผ์๋ณ์๋ฅผ ๊ฐ์ง๋ค.๋ค๋ฅธ ์ํฐํฐ์ ์กด์ฌ์ ์์กดํ์ง ์๋๋ค.์์: ์ฌ์, ๊ณ ๊ฐ, ์ํ, ๋ถ์ ๋ฑ๊ณผ ๊ฐ์ด ๋ ๋ฆฝ์ ์ผ๋ก ๊ด๋ฆฌ๋๋ ์ํฐํฐ์ฝํ ์ํฐํฐ (Weak Entity)์์ ์ํฐํฐ๊ฐ ์์ด์ผ๋ง ์์ ์ ์กด์ฌ๊ฐ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค.์์ ์ํฐํฐ์ ์ฃผ์๋ณ์๋ฅผ ๋น๋ ค์ ์์ ์ ์์ฑ๊ณผ ๊ฒฐํฉํ์ฌ ๋ณตํฉํค๋ฅผ ๊ตฌ์ฑํ๋ค.์์: ๋ถ์๊ฐ์กฑ์ค๋ฌด ์ด์ผ๊ธฐ: ์๋ณ ๊ด๊ณ, ๋น์๋ณ ๊ด๊ณ์ ํต์ ์ธ ์ค๊ณ ๋ฐฉ์์์ ์ฝํ ์ํฐํฐ๋ ์์ ์ํฐํฐ์ ์ฃผ์๋ณ์๋ฅผ ๋น๋ ค์ ์์ ์ ์์ฑ(๋ถ๋ถํค)๊ณผ ๊ฒฐํฉํด์ ๋ณตํฉ ํค๋ฅผ ๋ง๋๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.์ด๊ฒ์ ๋ ผ๋ฆฌ์ ๋ชจ๋ธ๋ง ๋จ๊ณ์์ ์๋ณ ๊ด๊ณ๋ผ ํ๋ฉฐ ์ด๋ ๊ฒ ๋๋ฉด ์์์ ๋ง๋ค ๋ ๋ฐ๋์ ๋ถ๋ชจ์ PK ๊ฐ์ ์ ๋ ฅํด์ผ ํ๋ค.์ต๊ทผ์๋ ๋ ์ ์ฐ..
2025.10.07 -
๊ฐ๋ ์ ๋ชจ๋ธ๋ง (1) - ์๊ตฌ์ฌํญ ๋ถ์๊ณผ ์ํฐํฐ์ ์ดํด
์๊ตฌ์ฌํญ ๋ถ์์์ ์์ํ๋ ์ค๊ณ๋ชจ๋ ์ค๊ณ๋ ์๊ตฌ์ฌํญ ๋ถ์์์ ์์ํ๋ค.์๊ตฌ์ฌํญ ๋ฌธ์๋ฅผ ์ฝ์ ๋๋ ํนํ '๋ช ์ฌ'์ '๋์ฌ'์ ์ง์คํด์ผ ํ๋ค.์ด๋ค์ด ๋ฐ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ ํ๋ ํต์ฌ ์์์ด๊ธฐ ๋๋ฌธ์ด๋ค.๋ช ์ฌ (Nouns)์ฐ๋ฆฌ๊ฐ ๊ด๋ฆฌํด์ผ ํ ๋ฐ์ดํฐ์ ๋์์ ๋ํ๋ธ๋ค.์ํฐํฐ(Entity) ๋๋ ๊ทธ ์ํฐํฐ๊ฐ ๊ฐ์ง๋ ์์ฑ(Attribute)์ด ๋ ์ ์๋ค.์์: ํ์, ์์ด๋, ๋น๋ฐ๋ฒํธ, ํ์๋ช , ์ฃผ์, ์ฐ๋ฝ์ฒ, ์ํ, ์ํ ์ฝ๋, ์ํ๋ช , ๊ฐ๊ฒฉ, ์ฌ๊ณ ์๋, ์ฃผ๋ฌธ์, ์ฃผ๋ฌธ ๋ฒํธ, ๋ฐฐ์ก์ง, ์ฃผ๋ฌธ ์ผ์, ๊ฒฐ์ ๊ธ์ก, ์ฃผ๋ฌธ ๋ด์ญ, ์ฃผ๋ฌธ ์๋๋์ฌ (Verbs)๋ฐ์ดํฐ๋ค ์ฌ์ด์ ํ์๋ ๊ด๊ณ๋ฅผ ๋ํ๋ธ๋ค.๊ด๊ณ(Relationship)๊ฐ ๋ ์ ์๋ค.์์: ๊ฐ์ ํ๋ค, ์์ ํ๋ค, ํํดํ๋ค, ๋ฑ๋กํ๋ค, ๋ณ๊ฒฝํ๋ค, ์ฃผ๋ฌธํ๋ค, ์กฐ..
2025.10.07 -
DB ์ค๊ณ์ ์ค์์ฑ๊ณผ 3๋จ๊ณ ์ค๊ณ ํ๋ก์ธ์ค
์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๊ฐ ์ค์ํ๊ฐ?๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ ์ง์ ์ง๊ธฐ ์ ์ ์ค๊ณ๋๋ฅผ ๊ทธ๋ฆฌ๋ ๊ฒ๊ณผ ๊ฐ๋ค.์๋ฌด๋ฆฌ ์ข์ ์ฌ๋ฃ์ ๊ธฐ์ ์ด ์์ด๋ ์ค๊ณ๋ ์์ด ์ง์ ์ง๋๋ค๋ฉด ๋ฌธ์ ๊ฐ ์๊ธฐ๊ธฐ ๋ง๋ จ์ด๋ค.์ฒด๊ณ์ ์ธ ์ค๊ณ ์์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ฉด ์ฒ์์๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์์ง ๋ชฐ๋ผ๋,์๋น์ค๊ฐ ๋ณต์กํด์ง์๋ก ๋ฐ์ดํฐ ์ค๋ณต, ์ฑ๋ฅ ์ ํ, ์ ์ง๋ณด์ ์ด๋ ค์ ๋ฑ์ '๊ธฐ์ ๋ถ์ฑ'๊ฐ ์์ด๊ฒ ๋๋ค.์ด๋ ๋์ค์ ๋ ํฐ ๋น์ฉ๊ณผ ์๊ฐ์ ์๊ตฌํ๊ฒ ๋๋ค.์ข์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ๊ฐ๋ ์ ์ค๊ณ, ๋ ผ๋ฆฌ์ ์ค๊ณ, ๋ฌผ๋ฆฌ์ ์ค๊ณ๋ผ๋ 3๋จ๊ณ ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค.์ด ๊ณผ์ ์์ ๋ฐ์ดํฐ์ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ ๋ฌด๊ฒฐ์ฑ์ ๋์ด๋ '์ ๊ทํ'๋ฅผ ์ ์ฉํ๊ฒ ๋๋ค.์ ์ค๊ณ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ์ ๋ณํ์๋ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์๋ ํผํผํ ๊ธฐ๋ฐ์ด ๋์ด์ค๋ค.์๋ชป๋ ์ค๊ณ๊ฐ..
2025.10.07