๐ 2023๋ 11์ 16์ผ
์ค๋๋ถํฐ ๋ฆฌ๋ ์ค๋ฅผ ๋ง๋ฌด๋ฆฌํ๊ณ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ดํ ๊ณต๋ถ๋ฅผ ์์ํ๋ค. [DB 1์ผ์ฐจ]
DATABASE :
๋๋ฌด๋ ๋ฐฉ๋ํ ๋ด์ฉ์ด๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฌ๋๋ค์ด ๊ณต์ ํ์ฌ ์ฌ์ฉํ ๋ชฉ์ ์ผ๋ก ์ฒด๊ณํํด ํตํฉ, ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ์ ์งํฉ์ด๋ผ๊ณ ํ๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ถ๋ฅ
- RDB(Relational DataBase)
- NoSQL(non SQL or non Relational)
์ผ๋ก ๋๋์ ์๋ค.
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDB)๋ ํ๋ก ๋ํ๋ผ ์ ์์ผ๋ฉฐ, ์ ํฉ์ฑ์ด ์ข๊ตฌ ์๋ก ๋ฐ์ดํฐ๋ผ๋ฆฌ ์๋ก ๊ด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
(DBMS : MYSQL, MariaDB, ORACLE)
๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(NoSQL) ๋ ํ๋ก ๋ํ๋ด๊ธฐ ์ด๋ ค์ฐ๋ฉฐ ์๋ก ๊ด๊ณ๊ฐ ์์์๋ ์๋ค. ์ ํฉ์ฑ์ RDB๋ณด๋จ ๋จ์ด์ง๋ ๋์ ์ฒ๋ฆฌ์๋๋ ๋น ๋ฅธ ํธ์ด๋ค.
(DBMS :MongoDB, Redis)
๋ฅผ ์ฌ์ฉํด ์ค์ตํ ๊ฒ์ด๋ค. MariaDB๋ MySQL ์คํ์์ค๋ฅผ forkํด์ ๋ง๋ ๊ฒ์ด๋ผ๊ณ ํ๋ค.
DBMS ๊ฐ ์ฌ์ฉํ๋ ์ธ์ด๋ฅผ SQL ์ด๋ผ๊ณ ํ๋๋ฐ
- DDL (Data Definition Language)
- DML (Data Manipulation Language)
- DCL (Data Control Language)
์์ ๊ฐ์ด ํฌ๊ฒ 3๋ถ๋ฅ๋ก ์ค๋ช
ํ ์ ์์ผ๋ฉฐ CRUD ๋ฅผ ํ๊ธฐ ์ํจ์ด๋ค.
์ค๋์ DDL๊ณผ DML์ ์ค์ตํ๋ค.
DDL์ ๋ฐ์ดํฐ๋ฒ ์ด์ค(schema)๋ ํ ์ด๋ธ์ ์ ์, ์์ฑ, ์ญ์ ํ๊ธฐ ์ํ ์ธ์ด์ด๋ค.
์์ฑ: CREATE
create database board;
์์ : ALTER
alter table author add column role varchar(50);
์ญ์ : DROP
drop database
POST ํ ์ด๋ธ์์ฑ๋ฌธ
create table post( id int not null, title varchar(255), content varchar(255), auth_id int, primary key(id), foreign key(auth_id) references author(id) );
๊ธฐ๋ณธํค (primary key) : ์ ์ผ์ฑ(unique)๊ณผ ์ต์์ฑ, not null ์ ์ฝ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ
์ธ๋ํค (foreign key) : ๋ ํ ์ด๋ธ์ ์ฐ๊ฒฐํ๊ธฐ ์ํ ๋ฐ์ดํฐ
DDL์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌ, ์ฒ๋ฆฌ, ์กฐํํ๊ธฐ ์ํ ์ธ์ด์ด๋ค.
insert, select, update, delete
์ฝ์ : INSERT
insert into author(id, name, email) values(1, "ABC", "abc@naver.com");
์กฐํ: SELECT
select * from author;
์์ : UPDATE
update author set email="xyz@naver.com" where id=1;
์ญ์ : DLELETE
delete from author where id=1;
์ญ์ ์ ์ ์ฝ ์กฐ๊ฑด์ ์ ํ์ธํด์ผํ๋ค.
๊ธฐ๋ณธ์ restrict ์ ์ฝ ์กฐ๊ฑด์ด๋ฉฐ, ์ธ๋ํค๊ฐ ๊ฑธ๋ ค์์ ๊ฒฝ์ฐ ์ญ์ ๊ฐ ์๋ ๊ฐ๋ฅ์ฑ๋ ์๋ค.