๋ชฉ๋ก๐ฉ๐ป ์ปดํจํฐ ๊ตฌ์กฐ/Database (8)
๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
๐ฉ๐ป ์๋ธ์ฟผ๋ฆฌ : ํ๋์ ์ฟผ๋ฆฌ ์์ ํฌํจ๋ ๋ ํ๋์ ์ฟผ๋ฆฌ : ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์๋ธ์ฟผ๋ฆฌ๋ฅผ ํฌํจํ๋ ์ข ์์ ์ธ ๊ด๊ณ SELECT * FROM ํ ์ด๋ธ WHERE ์ปฌ๋ผ > (SELECT ์ปฌ๋ผ FROM ํ ์ด๋ธ WHERE ์กฐ๊ฑด); โญ ํน์ง - ์๋ ค์ง์ง ์์ ๊ธฐ์ค์ ์ด์ฉํ ๊ฒ์ ์ ์ฉ - ๋ฉ์ธ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ธฐ ์ ํ๋ฒ ์คํ - ํ ๋ฌธ์ฅ์์ ์ฌ๋ฌ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ โญ ์ฃผ์์ฌํญ - ๊ดํธํ ํจ๊ป ์ฌ์ฉ - ORDER BY ์ฌ์ฉ X - ์ฐ์ฐ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฌ์ฉ - ์ค๋ก์ง SELECT๋ฌธ์ผ๋ก๋ง ์์ฑ ๐ฉ๐ป ๋จ์ผ ํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๊ฐ ํ ํ๋ง ๋์ค๋ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 1๊ฐ ๊ฐ๋ง ๋ฐํํ๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌ ๐ฉ๐ป ๋ค์ค ํ ์๋ธ์ฟผ๋ฆฌ : ๊ฒฐ๊ณผ๋ฅผ 2๊ฐ ์ด์ ๊ฐ๋ง ๋ฐํํ๊ณ , ์ด ๊ฒฐ๊ณผ๋ฅผ ๋ฉ์ธ์ฟผ๋ฆฌ๋ก ์ ๋ฌ SELECT * FROM ํ ์ด๋ธ ..
๐ฉ๐ป SQL (Structed Query Language) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๊ณ ์กฐ์ํ๊ธฐ ์ฌ์ด ํ์ค ์ธ์ด โญ ๋ฐ์ดํฐ๋ฒ ์ด์ค : ์ฌ๋ฌ ์ฌ๋์ด ๊ณต์ ํด ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ํตํฉํ์ฌ ๊ด๋ฆฌ๋๋ ๋ฐ์ดํฐ์ ๋ชจ์ ๐ฉ๐ป ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค : ํ๋ ์ด์์ ํ ์ด๋ธ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ ์๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ ๊ฐ์ง (SQL๋ก ์ ์ด) โญ ํ ์ด๋ธ : ์ปฌ๋ผ๊ณผ ๋ ์ฝ๋๋ก ๊ตฌ์ฑ๋ ํ : ๋ชจ๋ ํ ์ด๋ธ์ ๊ณ ์ ์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถ // ๋ฐ์ดํฐ ๊ฒ์ SELECT ๊ฒ์ํ ์นผ๋ผ FROM ํ ์ด๋ธ; - DISTINCT : ๋๋ ทํ, ๋ถ๋ช ํ ๋ค์ ๋์ค๋ ์ปฌ๋ผ์ ์ค๋ณต ์ ๊ฑฐํจ - WHERE : ๊ฒ์ํ๊ณ ์ ํ๋ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ์ค์ SELCT ๊ฒ์ํ ์ปฌ๋ผ FROM ํ ์ด๋ธ WHERE ์กฐ๊ฑด; - LIKE : ํน์ ๋ฌธ์๊ฐ ํฌํจ๋ ๋ฌธ์์ด์ ์ฐพ๊ณ ์ถ์ ๋ ์ฌ์ฉ (๋์๋ฌธ์๋ฅผ ์ฐ์ ..
๐ฉ๐ป DCL (๋ฐ์ดํฐ ์ ์ด์ด) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ ๊ถํ์ ๊ด๋ฆฌํ๋ ๋ฑ์ ๋ฐ์ดํฐ ์ ์ด - GRANT : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ถํ ๋ถ์ฌ - REVOKE : ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ถํ ํ์ - COMMIT : ํธ๋์ญ์ (๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ๋ ์์ ๋จ์) ์์ ๋ฐ์ํ์ฌ ์ ์ฅ - ROLLBACK : ํธ๋์ญ์ ์์ ์ทจ์ํ์ฌ ์ด์ ์ํ๋ก ๋๋ฆผ => TCL (Transaction Control Language) ๐ฉ๐ป ์ธ๋ฑ์ค (Index) : ๋ฐ์ดํฐ ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ฒ์ ์๋๋ฅผ ํฅ์ ์ํค๊ธฐ ์ํ ์๋ฃ ๊ตฌ์กฐ : ๋ชจ๋ ๋ฐ์ดํฐ ์กฐํํ ๋ ๋ถํ์ => SELECT * FROM ํ ์ด๋ธ๋ช ; โญ ์ฅ๋จ์ : ์ธ๋ฑ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ถ๊ฐ ์์ ํ์ : ์ธ๋ฑ์ค ์ ์ฅํ ์ถ๊ฐ ์ ์ฅ ๊ณต๊ฐ ํ์ : ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๊ฒ์ ์ฑ๋ฅ ์ ํ โญ ์ฌ์ฉ ์ ๋ต : ๊ท..
๐ฉ๐ป ์ด์ ํ์ (Anomaly) : ์๋ชป๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๊ณ๋ก ๋ฐ์ํ๋ ์ค๋ฅ - ์ฝ์ ์ด์ : ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ๋ถํ์ํ ๋ด์ฉ๊น์ง ์ฝ์ ํด์ผ ํ๋ ๋ฌธ์ - ๊ฐฑ์ ์ด์ : ์ค๋ณต๋ ๋ฐ์ดํฐ ์ค ์ผ๋ถ๋ง ๊ฐฑ์ ๋์ด ๋ฐ์ํ๋ ๋ฌธ์ - ์ญ์ ์ด์ : ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ๋ค๋ฅธ ์ ์ฉํ ์ ๋ณด๋ ํจ๊ป ์ญ์ ๋๋ ๋ฌธ์ โญ ํจ์ ์ข ์์ฑ : ์์ฑ๋ค ๊ฐ์ ์ข ์ ๊ด๊ณ : ์ด๋ค ์์ฑ X์ ํ ๊ฐ์ด ๋ค๋ฅธ ์์ฑ Y์ ์ํ ํ๋์ ๊ฐ์๋ง ๋งคํ๋๋ ๊ฒฝ์ฐ X ๋ ๊ฒฐ์ ์, Y๋ฅผ ์ข ์ ๐ฉ๐ป ์ ๊ทํ (Normalization) : ์ด์ ํ์์ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์กฐํํ๋ ๊ณผ์ : ๋ฐ์ดํฐ ๊ฐ์ ์ข ์์ฑ ์ ๊ฑฐํ์ฌ ์ค๋ณต๋๋ ๋ฐ์ดํฐ ์ค์ : ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ๊ณผ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ - 1์ฐจ ์ ๊ทํ : ํ ์ด๋ธ์ ์ปฌ๋ผ์ด ํ๋์ ๊ฐ๋ง ๊ฐ๋๋ก ๋๋ฉ์ธ์ ์์..
๐ฉ๐ป ER Diagram (ERD, Entity-Relationship Diagram ๊ฐ์ฒด-๊ด๊ณ ๋ค์ด์ด๊ทธ๋จ) : ํ์ค ์ธ๊ณ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ฒด์ ๊ด๊ณ ํํ์ ๋ค์ด์ด๊ทธ๋จ์ผ๋ก ๋ํ๋ด๋ ๊ฒ : ํ๊ธฐ๋ฒ -> Peter Chen, IE โญ Peter Chen โญ Peter Chen ๊ด๊ณ ์ถ๊ฐ : ํ๋์ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋ช ๊ฐ์ ๋ฐ์ดํฐ์ ๊ด๊ณ ๊ฐ์ง๋์ง ๋ํ๋ : N:M ๊ด๊ณ๋ ํ ์ด๋ธ๋ก ํ๊ธฐํ๋ฉฐ ๊ฐ ๊ฐ์ฒด์ ๊ธฐ๋ณธํค๋ฅผ ์ธ๋ํค๋ก ๊ฐ โญ IE (Information Engineering) : ํค๋ฅผ ๋ํ๋ด๋ฉฐ ๋ฐ์ดํฐ ํ์ ๊ณผ ์ ์ฝ ์กฐ๊ฑด ํ๊ธฐ (๊ฝ๊ณ๋ฅผ ์ธ๋ถ์ ์ผ๋ก ๋ํ๋) : ๊น๋ง๊ท ๋ฐ๋ก ํ๊ธฐ๋ฒ
๐ฉ๐ป ํค (key) : ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ์ ์ฐพ๊ฑฐ๋, ์ ๋ ฌํ ๋ ๊ธฐ์ค์ด ๋๋ ์์ฑ โญ ๊ธฐ๋ณธํค : ์๋ก ๋ค๋ฅธ ํํ์ ์ ์ผํ๊ฒ ์๋ณํ ์ ์๋ ๊ธฐ์ค์ด ๋๋ ์์ฑ : ์ค๋ณต๋๋ ๋ ๊ฐ์ง ์ X : ๋ ๊ฐ ๊ฐ์ง ์ X : ํ ์ด๋ธ ๋น 1๊ฐ๋ง ์ค์ => PRIMARY KEY โญ ์ธ๋ํค : ๋ค๋ฅธ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ฅผ ์ฐธ์กฐํ๋ ์์ฑ์ผ๋ก ํ ์ด๋ธ์ ๊ด๊ณ ์ ์ : ์ฐธ์กฐ๋๋ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค์ ์๋ ๊ฐ์ ์ง์ ํ ์ X => FOREIGN KEY (์ฐธ์กฐํ ์์ฑ) REFERENCES ์ฐธ์กฐ๋๋ ํ ์ด๋ธ (์ฐธ์กฐ๋๋ ์์ฑ) โญ ํ๋ณดํค : ๊ธฐ๋ณธํค๊ฐ ๋ ์ ์๋ ํค๋ก ์ ์ผ์ฑ๊ณผ ์ต์์ฑ ๋ง์กฑ ( ๊ธฐ๋ณธํค < ํ๋ณดํค ) โญ ๋์ฒดํค : ํ๋ณดํค ์ค์ ๊ธฐ๋ณธํค๊ฐ ์๋ ํค ( ๋์ฒดํค < ํ๋ณดํค ) โญ ์ํผํค : ํํ์ ์๋ณํ ์ ์๋ ์ ์ผ์ฑ์ ๋ง์กฑํ์ง๋ง ์ต์..
๐ฉ๐ป SQL (Structured Query Language) : ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ์ค ์ธ์ด โญ ๋ฐ์ดํฐ ์ ์์ด (DDL, Data Definition Language) : ํ ์ด๋ธ๊ณผ ๊ฐ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ ์ โญ ๋ฐ์ดํฐ ์กฐ์์ด (DML, Data Manipulation Language) : ๋ฐ์ดํฐ ์กฐํ ๋ฐ ๊ฒ์ โญ ๋ฐ์ดํฐ ์ ์ด์ด (DCL, Data Control Language) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ๊ทผํ๋ ๊ถํ ๊ถ๋ฆฌ ๐ฉ๐ป ๋ฐ์ดํฐ ํ์ ์๋ฃํ ์๋ฏธ VARCHAR(n) nBytes ํฌ๊ธฐ์ ๊ฐ๋ณ ๊ธธ์ด ๋ฌธ์์ด ๋ฐ์ดํฐ INT ์ ์ํ ์ซ์ ๋ฐ์ดํฐ (4Bytes) FLOAT 4Bytes ํฌ๊ธฐ์ ๋ถ๋ ์์์ ๋ฐ์ดํฐ DATETIME ๋ ์ง์ ์๊ฐ ํํ์ ๊ธฐ๊ฐ ๋ฐ์ดํฐ (YYYY-MM-DD HH:M..
๐ฉ๐ป ๋ฐ์ดํฐ๋ฒ ์ด์ค (๋ฐ์ดํฐ๋ค์ ์งํฉ) : ํ ์กฐ์ง ์์์ ์ฌ๋ฌ ์ฌ์ฉ์์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ณต๋์ผ๋ก ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ค์ ํตํฉํ์ฌ ์ ์ฅํ๊ณ ์ด์ํ๋ ๋ฐ์ดํฐ โญ ๋ฐ์ดํฐ : ํ์ค ์ธ๊ณ์์ ์์ง๋ ๋จ์ํ ์ฌ์ค๊ณผ ๊ฐ๋ค์ ๋ชจ์ ๋์ ๊ฒ โญ ์ ๋ณด : ๋ฐ์ดํฐ๋ฅผ ํน์ ๋ชฉ์ ์ ์ํด ํด์ํ๊ฑฐ๋ ๊ฐ๊ณตํ ํํ โญ ํ์์ฑ - ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ๋ฐ๋๋ฉด ์์ฉ ํ๋ก๊ทธ๋จ ๊ตฌ์กฐ๋ ๋ฐ๋์ด์ผ ํจ - ๋ฐ์ดํฐ ์ค๋ณต์ ๋ฌธ์ - ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ ์งํฌ ์ ์์ โญ ํน์ง - ์ค์๊ฐ ์ ๊ทผ์ฑ - ์ง์์ ์ธ ๋ณํ - ๋์ ๊ณต์ - ๋ด์ฉ์ ๋ํ ์ฐธ์กฐ โญ ์ข ๋ฅ - RDB (Relational Database) : ๊ด๊ณํ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก SQL ์ด์ฉํด ๋ฐ์ดํฐ ๊ด๋ฆฌ => ๊ด๊ณํ (Relational database) ๋ฐ์ดํฐ๋ฒ ์ด์ค : ๋ฐ์ดํฐ๋ฅผ ํ๊ณผ ์ด์ ๊ฐ์ง๋ ํ ์ด๋ธ : ..