๋ฐ์ดํฐ๋ฒ ์ด์ค(Database)๋ ๋ฐ์ดํฐ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ ์์คํ ์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS, Database Management System)์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ์ ์ฅ, ์์ , ์กฐํํ ์ ์์ต๋๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)
๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(NoSQL)
SQL(Structured Query Language)์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์กฐํ, ์ถ๊ฐ, ์์ , ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ์ค ์ธ์ด์ ๋๋ค.
DDL (Data Definition Language): ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ์ ์
CREATE, ALTER, DROPDML (Data Manipulation Language): ๋ฐ์ดํฐ ์กฐ์
INSERT, UPDATE, DELETEDQL (Data Query Language): ๋ฐ์ดํฐ ์กฐํ
SELECTDCL (Data Control Language): ๋ฐ์ดํฐ ์ ๊ทผ ๊ถํ ๊ด๋ฆฌ
GRANT, REVOKE๋ฐ์ดํฐ๋ฅผ ์กฐํํ ๋ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋ช ๋ น์ด์ ๋๋ค.
SELECT column1, column2 FROM table_name;
SELECT * FROM students;
SELECT name, age FROM students WHERE age > 20;
๋ฐ์ดํฐ๋ฅผ ์๋ก ์ถ๊ฐํ ๋ ์ฌ์ฉํฉ๋๋ค.
INSERT INTO students (name, age) VALUES ('John', 23);
INSERT INTO students (name, age) VALUES ('Alice', 21), ('Bob', 22);
๊ธฐ์กด ๋ฐ์ดํฐ๋ฅผ ๋ณ๊ฒฝํ ๋ ์ฌ์ฉํฉ๋๋ค.
UPDATE students SET age = 24 WHERE name = 'John';
UPDATE students SET age = age + 1;
๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
DELETE FROM students WHERE name = 'John';
DELETE FROM students;
์ ๊ทํ๋ ์ค๋ณต ๋ฐ์ดํฐ๋ฅผ ์ต์ํํ๊ณ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ(Integrity)์ ์ ์งํ๊ธฐ ์ํ ๊ธฐ๋ฒ์ ๋๋ค.
ํธ๋์ญ์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ ๋จ์์ ๋๋ค. ํธ๋์ญ์ ์ ํต์ฌ ํน์ฑ์ผ๋ก๋ ACID๊ฐ ์์ต๋๋ค.
์ธ๋ฑ์ค๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด ์ฌ์ฉํ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. SQL์์ ์กฐํ ์๋๋ฅผ ํฅ์์ํค๋ ๋ฐ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํฉ๋๋ค.
CREATE INDEX idx_students_age ON students(age);
SQL ์ธ์ ์ ์ ์ฌ์ฉ์ ์ ๋ ฅ์ ์ด์ฉํ์ฌ SQL ์ฟผ๋ฆฌ๋ฅผ ์กฐ์ํ๋ ๊ณต๊ฒฉ์ ๋๋ค.
-- Parameterized Query ์์
SELECT * FROM users WHERE username = ? AND password = ?;
ORM์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณด๋ค ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๊ฒ ํด์ฃผ๋ ๋๊ตฌ์ ๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ชจ๋ ์ํํธ์จ์ด์ ํต์ฌ์ด๋ฉฐ, ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ๋ฅ๋ ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ณธ ์ฅ์์ ๋ค๋ฃฌ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊น์ด ์ดํดํ๊ณ ์ค์ต์ ํตํด ์ค์ ํ๋ก์ ํธ์์ ํ์ฉํด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
๋ค์ ์ฅ์์๋ ์ปดํจํฐ ์ํคํ ์ฒ์ ์ด์์ฒด์ ์ ๋ํด ๊น์ด ์๊ฒ ๋ค๋ฃจ๊ฒ ์ต๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๊ด๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ์ค์ ๋ก ์ปดํจํฐ๊ฐ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค!
๐ ์ด ๊ธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฒ์ ์ ํ๋ ๋ถ๋ค์ด ๊ธฐ์ด๋ฅผ ํผํผํ ํ๊ณ ์ค๋ฌด์์ ํ์ฉ ๊ฐ๋ฅํ ์ง์์ ์ป์ ์ ์๋๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. ๋ค์ ์ฅ์์ ๊ณ์๋ฉ๋๋ค!