
웹 서비스는 데이터베이스에 정보를 저장하고, 이를 관리하기 위해 DBMS를 사용한다. DBMS는 데이터베이스에 새로운 정보를 기록하거나, 수정, 삭제하는 역할을 한다.
DBMS는 관계형과 비관계형을 기준으로 분류한다.
가장 큰 차이점은 관계형은 행과 열의 집합인 테이블 형식,
비관계형은 키-값 (Key-Value) 형태로 값을 저장한다.
| 종류 | 대표적인 DBMS |
|---|---|
| Relational (관계형) | MySQL, MariaDB, PostgreSQL, SQLite |
| Non-Relational (비관계형) | MongoDB, CouchDB, Redis |
관계형은 테이블 형식의 데이터를 조작할 수 있게 관계 연산자를 제공한다. 이 관계 연산자는 SQL이라는 쿼리 언어를 사용하고, 이 언어를 통해 테이블 형식의 데이터를 조작한다.
데이터 정의를 위한 언어로, 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행한다.
기본적인 구조는 데이터베이스 -> 테이블 -> 데이터 구조 이다.
DDL을 사용하여 데이터베이스와 테이블을 생성한다.
데이터베이스 생성
Dreamhack 데이터베이스 생성하는 쿼리문이다.
CREATE DATABASE Dreamhack;
테이블 생성
앞서 생성한 데이터베이스에 Board 테이블을 생성하는 쿼리문이다.
USE Dreamhack;
# Board 이름의 테이블 생성
CREATE TABLE Board(
idx INT AUTO_INCREMENT,
boardTitle VARCHAR(100) NOT NULL,
boardContent VARCHAR(2000) NOT NULL,
PRIMARY KEY(idx)
);
데이터 조작을 위한 언어로, 실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행한다.
테이블 데이터 생성
Board 테이블에 데이터를 삽입하는 쿼리문이다.
INSERT INTO
Board(boardTitle, boardContent, createdDate)
Values(
'Hello',
'World !',
Now()
);
테이블 데이터 조회
Board 테이블의 데이터를 조회하는 쿼리문이다.
SELECT
boardTitle, boardContent
FROM
Board
Where
idx=1;
테이블 데이터 변경
Board 테이블의 컬럼 값을 변경하는 쿼리문이다.
UPDATE Board SET boardContent='DreamHack!'
Where idx=1;
데이터베이스의 접근 권한 등의 설정을 하기 위한 언어로,
데이터베이스 내에 이용자의 권한을 부여하기 위한 GRANT 와 권한을 박탈하는 REVOKE가 대표적이다.