무작정 해킹 공부/DB
DBMS
startonebyone
2025. 2. 3. 15:07
종류 | 대표적인 DBMS |
Relational(관계형) | MySQL, MariaDB, PostgreSQL, SQLite |
Non-Relational(비관계형) | MongoDB, CouchDB, Redis |
- 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고, 비관계형은 테이블 형식이 아닌 키-값 (Key-Value) 형태로 값을 저장
Relational DBMS
- 행(Row)과 열(Column)의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리하고, 테이블 형식의 데이터를 조작할 수 있는 관계 연산자를 제공한다.
- RDBMS에서 관계 연산자는 Structured Query Language (SQL) 라는 쿼리 언어를 사용하고, 쿼리를 통해 테이블 형식의 데이터를 조작한다.
SQL
- RDBMS의 데이터를 정의하고 질의, 수정 등을 하기 위해 고안된 언어이다.
- SQL은 구조화된 형태를 가지는 언어로 웹 애플리케이션이 DBMS와 상호작용할 떄 사용된다.
언어 | 설명 |
DDL(Data Definition Language) | 데이터를 정의하기 위한 언어입니다. 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행합니다. |
DML(Data Manipulation Language) | 데이터를 조작하기 위한 언어입니다. 실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행합니다. |
DCL(Data Control Language) | 데이터베이스의 접근 권한 등의 설정을 하기 위한 언어입니다. 데이터베이스 내에 이용자의 권한을 부여하기 위한 GRANT와 권한을 박탈하는 REVOKE가 대표적입니다. |
DDL
- 웹 어플리케이션은 SQL을 사용해서 DBMS와 상호작용을 하며 데이터를 관리한다.
- RDBMS에서 사용하는 기본적인 구조는 데이터베이스 → 테이블 → 데이터 구조다.
- 데이터를 다루기 위해 데이터베이스와 테이블을 생성해야 하며, DDL을 사용해야 한다.
- DDL의 CREATE 명령을 사용해 새로운 데이터베이스 또는 테이블을 생성할 수 있다.
- 데이터베이스 생성
- CREATE DATABASE Dreamhack;
- 테이블 생성
USE Dreamhack;
# Board 이름의 테이블 생성
CREATE TABLE Board(
idx INT AUTO_INCREMENT,
boardTitle VARCHAR(100) NOT NULL,
boardContent VARCHAR(2000) NOT NULL,
PRIMARY KEY(idx)
);
DML
- 생성된 테이블에 데이터를 추가하기 위해 DML을 사용한다.
- 새로운 데이터를 생성하는 INSERT, 데이터를 조회하는 SELECT, 그리고 데이터를 수정하는 UPDATE의 예시
- 테이블 데이터 생성
INSERT INTO Board(boardTitle, boardContent, createdDate) Values( 'Hello', 'World !', Now() );
- 테이블 데이터 조회
SELECT boardTitle, boardContent FROM Board Where idx=1;
- 테이블 데이터 변경
UPDATE Board SET boardContent='DreamHack!' Where idx=1;
<aside> 💡
- 데이터베이스: 데이터가 저장되는 공간
- DBMS: 데이터베이스를 관리하는 어플리케이션
- RDBMS: 테이블 형태로 저장되는 관계형 DBMS
- SQL: RDBMS와 상호작용할 때 사용되는 언어 </aside>