Github & Portfolio
๐งช Computer Science(26)
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋์์ฑ ์ ์ด(Currency Control)
๋์์ฑ์ ์ด ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์์ ๋ ์ด์์ ํธ๋์ญ์ ์ด ๋์์ ์ํ๋ ๋, ์ผ๊ด์ฑ์ ํด์น์ง ์๋๋ก ํธ๋์ญ์ ์ ๋ฐ์ดํฐ ์ ๊ทผ ์ ์ด ๋ค์ค ์ฌ์ฉ์ ํ๊ฒฝ์ ์ง์ํ๋ DBMS์ ๊ฒฝ์ฐ, ๋ฐ๋์ ์ง์ํด์ผ ํ๋ ๊ธฐ๋ฅ ๊ฐฑ์ ์์ค(Lost Update) ํ๋์ ํธ๋์ญ์ ์ด ๊ฐฑ์ ํ ๋ด์ฉ์ ๋ค๋ฅธ ํธ๋์ญ์ ์ด ๋ฎ์ด์์ผ๋ก์จ ๊ฐฑ์ ์ด ๋ฌดํจํ๊ฐ ๋๋ ๊ฒ์ ์๋ฏธ ๋ ๊ฐ์ ํธ๋์ญ์ ์ด ํ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ๊ฐฑ์ (Update)ํ ๋ ๋ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ ๋ ๋ฐ์ํ๋ฉด ์๋๋ ํ์ ๋ชจ์์ฑ(Inconsistency) ๋ค๋ฅธ ํธ๋์ญ์ ๋ค์ด ํด๋น ํญ๋ชฉ ๊ฐ์ ๊ฐฑ์ ํ๋ ๋์ ํ ํธ๋์ญ์ ์ด ๋ ๊ฐ์ ํญ๋ชฉ ๊ฐ ์ค ์ด๋ค ๊ฒ์ ๊ฐฑ์ ๋๊ธฐ ์ ์ ๊ฐ์ ์ฝ๊ณ ๋ค๋ฅธ ๊ฒ์ ๊ฐฑ์ ๋ ํ์ ๊ฐ์ ์ฝ๊ฒ ๋์ด ๋ฐ์ดํฐ์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ๋ ์ํฉ ์ฐ์ ๋ณต๊ท(Cascading Rollback..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ํธ๋์ญ์ (Transaction)
ํธ๋์ญ์ DBMS์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ ผ๋ฆฌ์ ์ธ ์์ ์ ๋จ์ DB์์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ ์ฅ์ ๊ฐ ์ผ์ด๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ๋ ์์ ์ ๋จ์๊ฐ ๋๋ค. DB์์ ์ฌ๋ฌ ์์ ์ด ๋์์ ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋, ์ด ์์ ์ ์๋ก ๋ถ๋ฆฌํ๋ ๋จ์๊ฐ ๋๋ค. ํธ๋์ญ์ ์ ์ ์ฒด๊ฐ ์ํ๋๊ฑฐ๋ ๋๋ ์ ํ ์ํ๋์ง ์์์ผ ํ๋ค.(All or Nothing) ex) A๊ณ์ข์์ B๊ณ์ข๋ก ๋์ ์ด์ฒดํ๋ ๊ฒฝ์ฐ, A์์ ๋์ ๋นผ๊ณ B์์ ๋์ ๋ํ๋ ๋ ๊ฐ์ง์ Update๋ฌธ์ผ๋ก ๋๋๊ฒ ๋๋ค. ์ด๋ค์ ๊ฐ๋ณ์ํ์ด ์๋๋ผ ํ๋์ ํธ๋์ญ์ ์ผ๋ก ๋ฌถ์ด๊ฒ ๋๋ฉฐ ํ๋์ ํธ๋์ญ์ ์ด ์คํ๋ ๋ ํ๋์ SQL๋ง ์คํ๋๋ ์ํฉ์ ๋ฐ์ํ์ง ์๊ณ ๋ ๊ฐ์ SQL๋ฌธ์ด ์ฐ์์ ์ผ๋ก ์คํ๋๋ค. ์ด๋ฅผ All or Nothing์ด๋ผ๊ณ ํ๋ค. Commit: ํธ๋์ญ์ ์ ์ํ์ด ์..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ์ ๊ทํ(Normalization) / ์ด์ํ์, ํจ์์ข ์์ฑ, ์ ๊ทํ
**์ ๊ทํ๋ฅผ ํด์ผํ๋ ์ด์ ๋ ์๋ชป๋ ํ ์ด๋ธ ์ค๊ณ๋ก ์ธํด Anomaly(์ด์ ํ์)๊ฐ ๋ํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ด์ํ์(Anomaly) ์ญ์ ์ด์: ํํ ์ญ์ ์ ๊ฐ์ด ์ ์ฅ๋ ๋ค๋ฅธ ์ ๋ณด๊น์ง ์ฐ์์ ์ผ๋ก ์ญ์ ๋๋ ํ์ ์ฝ์ ์ด์: ํํ ์ฝ์ ์ ํน์ ์์ฑ์ ํด๋นํ๋ ๊ฐ์ด ์์ด NULL์ ์ ๋ ฅํด์ผํ๋ ํ์ ์์ (๊ฐฑ์ ) ์ด์: ํํ ์์ ์ ์ค๋ณต๋ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ง ์์ ๋์ด ์ผ์ด๋๋ ๋ฐ์ดํฐ ๋ถ์ผ์น ํ์ ์ด์ํ์์ ์๋ก ๊ณต์ ํ๋ ๋ฐ์ดํฐ์์๋ ๋ถ๊ตฌํ๊ณ ๊ฐ์์ ํํ์ ๋ ๋ฆฝ์ ์ผ๋ก ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ ์ด๋ธ์ ๋ถ๋ฆฌํ์ฌ ๊ทธ ํ ์ด๋ธ์ ํตํด ๊ฐ์ ์ ๋ชฉ์ด๋ ๊ฐ์์ค์ ์ฐธ๊ณ ํ๊ฒ๋ ํ๋ค๋ฉด ์ด์ํ์๋ค์ ํด๊ฒฐํ ์ ์๋ค. ํจ์ ์ข ์์ฑ(Functional Dependency) ํจ์ ์ข ์์ฑ์ด๋? ์ด๋ค ์์ฑ A์ ๊ฐ์ ์๋ฉด ๋ค๋ฅธ ์์ฑ..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Data Modeling)
๋ฐ์ดํฐ ๋ชจ๋ธ๋ง(Data Modeling)์ ๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ช ์ฃผ๊ธฐ ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์ - ์ค๊ณ - ๊ตฌํ - ์ด์ - ๊ฐ์ ๋ฐ ๊ฐ์ ์๊ตฌ์ฌํญ ์์ง ๋ฐ ๋ถ์ ๋จ๊ณ ์ฌ์ฉ์๋ค์ ์๊ตฌ์ฌํญ์ ๋ถ์ํ์ฌ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๊ตฌ์ถ์ ๋ฒ์๋ฅผ ์ ํ๋ค. ์ค๊ณ ๋ถ์๋ ์๊ตฌ์ฌํญ์ ๊ธฐ์ด๋ก ์ฃผ์ ๊ฐ๋ ๊ณผ ์ ๋ฌด ํ๋ก์ธ์ค ๋ฑ์ ์๋ณ(๊ฐ๋ ์ ์ค๊ณ)ํ๊ณ ์ฌ์ฉํ๋ DBMS์ ์ข ๋ฅ์ ๋ง๊ฒ ๋ณํํํ ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ๋์ถ(๋ ผ๋ฆฌ์ ์ค๊ณ)ํ๋ค. ์ฆ, ๊ฐ๋ ์ ๋ชจ๋ธ๋ง์ ํ์ฌ ER๋ค์ด์ด๊ทธ๋จ์ ๋์ถํ๊ณ ์ด๋ฅผ ์ด์ฉํ์ฌ ๊ด๊ณ ์คํค๋ง ๋ชจ๋ธ์ ๋์ถํ๋ฉฐ ์ด๋ฅผ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ๋งํ์ฌ ๊ด๊ณ ์คํค๋ง๋ฅผ ๋์ถํด๋ธ๋ค. ๊ตฌํ ์ค๊ณ ๋จ๊ณ์์ ์์ฑํ ์คํค๋ง๋ฅผ ์ค์ DBMS์ ์ ์ฉํ์ฌ ํ ์ด๋ธ ๋ฐ ๊ด๋ จ ๊ฐ์ฒด(๋ทฐ or ์ธ๋ฑ์ค)๋ฅผ ๋ง๋ ๋ค. ์ด์ ๊ตฌํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ํํธ์จ..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] PL/SQL
PL/SQL์ด๋? Procedural Language/Structured Query Language๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋๋ฐ ์ฌ์ฉํ๋ ์ค๋ผํด ์ ์ฉ SQL ์ธ์ด SQL ์ ์ฉ ์ธ์ด๋ก SQL๋ฌธ์ ๋ณ์, ์ ์ด, ์ ์ถ๋ ฅ ๋ฑ์ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ฌ SQL๋ง์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ ์ด๋ ค์ด ๋ฌธ์ ํด๊ฒฐ PL/SQL์ SQL Developer์์ ๋ฐ๋ก ์์ฑํ๊ณ ์ปดํ์ผํ ํ ๊ฒฐ๊ณผ๋ฅผ ์คํํจ PL/SQL์๋ ํ๋ก์์ , ํธ๋ฆฌ๊ฑฐ, ์ฌ์ฉ์ ์ ์ ํจ์ ๋ฑ์ด ์๋ค. ํ๋ก์์ CREATE PROCEDURE ๋ฌธ์ ์ฌ์ฉํด ์ ์ PL/SQL์ ์ ์ธ๋ถ(BEGIN)์ ์คํ๋ถ(END)๋ก ๊ตฌ์ฑ ์ ์ธ๋ถ์์๋ ๋ณ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๊ณ , ์คํ๋ถ์์๋ ํ๋ก๊ทธ๋จ ๋ก์ง์ ๊ตฌํํ๋ค. ๋งค๊ฐ๋ณ์๋ ์ ์ฅ ํ๋ก์์ ๊ฐ ํธ์ถ๋ ๋ ๊ทธ ํ๋ก์์ ์ ์ ๋ฌ๋๋ ๊ฐ์ด๋ค. ๋ณ์๋ ์ ..
-
[๋ฐ์ดํฐ๋ฒ ์ด์ค] SQL ๊ธฐ์ด(๋ฐ์ดํฐ ์ ์์ด/์กฐ์์ด/์ ์ด์ด)
๋ฐ์ดํฐ ์ ์์ด(DDL: Data Definition Language) SCHEMA, DOMAIN, TABLE, VIEW, INDEX๋ฅผ ์ ์ํ๊ฑฐ๋ ๋ณ๊ฒฝ ๋๋ ์ญ์ ํ ๋ ์ฌ์ฉํ๋ ์ธ์ด ์ฃผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ์๊ฐ ์ฌ์ฉ CREATE, ALTER, DROP, RENAME CREATE ํ ์ด๋ธ์ ๊ตฌ์ฑํ๊ณ , ์์ฑ๊ณผ ์์ฑ์ ๊ดํ ์ ์ฝ์ ์ ์ํ๋ฉฐ, ๊ธฐ๋ณธํค ๋ฐ ์ธ๋ํค๋ฅผ ์ ์ํ๋ ๋ช ๋ น ALTER ์์ฑ๋ ํ ์ด๋ธ์ ์์ฑ๊ณผ ์์ฑ์ ๊ดํ ์ ์ฝ์ ๋ณ๊ฒฝํ๋ฉฐ, ๊ธฐ๋ณธํค ๋ฐ ์ธ๋ํค๋ฅผ ๋ณ๊ฒฝํจ DROP ํ ์ด๋ธ์ ์ญ์ ํ๋ ๋ช ๋ น RENAME ํ ์ด๋ธ์ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๋ช ๋ น ๋ฐ์ดํฐ ์กฐ์์ด(DML: Data Manipulation Language) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ค์ง์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉํ๋ ์ธ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์..