[Web Hacking] DH Background: Relational DBMS

KyungH·2024년 3월 5일

DH Lecture - Web Hacking

목록 보기
8/17
post-thumbnail

DH Web Hacking

✏️Background: Relational DBMS

📌Database Management System

웹 서비스는 데이터베이스에 정보를 저장하고, 이를 관리하기 위해 DBMS를 사용한다. DBMS는 데이터베이스에 새로운 정보를 기록하거나, 수정, 삭제하는 역할을 한다.

DBMS는 관계형과 비관계형을 기준으로 분류한다.
가장 큰 차이점은 관계형은 행과 열의 집합인 테이블 형식,
비관계형은 키-값 (Key-Value) 형태로 값을 저장한다.

종류대표적인 DBMS
Relational (관계형)MySQL, MariaDB, PostgreSQL, SQLite
Non-Relational (비관계형)MongoDB, CouchDB, Redis

📌Relational DBMS

관계형은 테이블 형식의 데이터를 조작할 수 있게 관계 연산자를 제공한다. 이 관계 연산자는 SQL이라는 쿼리 언어를 사용하고, 이 언어를 통해 테이블 형식의 데이터를 조작한다.

SQL: 구조화된 형태를 가지는 언어로, 웹 어플리케이션이 DBMS와 상호작용할 때 사용된다. DDL(데이터 정의), DML(데이터 조작), DCL(접근 권환 등의 설정)의 구조로 이루어져 있다.

DDL

데이터 정의를 위한 언어로, 데이터를 저장하기 위한 스키마, 데이터베이스의 생성/수정/삭제 등의 행위를 수행한다.

기본적인 구조는 데이터베이스 -> 테이블 -> 데이터 구조 이다.
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)
);

DML

데이터 조작을 위한 언어로, 실제 데이터베이스 내에 존재하는 데이터에 대해 조회/저장/수정/삭제 등의 행위를 수행한다.

테이블 데이터 생성
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;

DCL

데이터베이스의 접근 권한 등의 설정을 하기 위한 언어로,
데이터베이스 내에 이용자의 권한을 부여하기 위한 GRANT 와 권한을 박탈하는 REVOKE가 대표적이다.

References

DreamHack 강의 - Background: Relational DBMS

0개의 댓글