★ 데이터베이스 ★

일상 생활에서 생기는 다양한 데이터를 기록하기 위해 서류 정리함을 사용하는 것처럼, 컴퓨터도 데이터를 기록하기 위해 **데이터베이스(Database)**를 사용한다. 그리고 이 데이터베이스를 체계적으로 관리하는 프로그램을 **DataBase Management System (DBMS)**이라고 한다.

현대의 웹 서비스는 회원가입, 로그인, 게시글 작성과 같은 다양한 기능을 제공하며, 그 중심에는 항상 데이터가 존재한다. 예를 들어 드림핵 웹사이트에 회원가입을 하고 로그인한 후 커뮤니티에 게시글을 작성하거나 수정하거나 삭제할 수 있다. 이때 이용자의 정보나 게시글 내용 같은 데이터는 데이터베이스에 저장되며, 웹 서버는 데이터베이스를 바탕으로 이용자의 요청에 맞게 데이터를 생성하고, 보여주고, 수정하고, 삭제하는 역할을 한다.

이처럼 다수의 사람들이 데이터를 생성하고, 참조하고, 수정하는 웹 서버라는 환경에서 데이터베이스는 핵심적인 역할을 하며 없어서는 안 될 필수 요소라 해도 과언이 아니다.


Database Management System (DBMS)

Database Management System (DBMS)

웹 서비스는 데이터베이스에 정보를 저장하고 이를 관리하기 위해 Database Management System (DBMS)을 사용한다. DBMS는 데이터베이스에 새로운 정보를 기록하거나 기록된 내용을 수정, 삭제하는 역할을 한다. DBMS는 다수의 사람이 동시에 데이터베이스에 접근할 수 있고, 웹 서비스의 검색 기능과 같이 복잡한 요구사항을 만족하는 데이터를 조회할 수 있다는 특징이 있다.

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

두 DBMS의 가장 큰 차이로 관계형은 행과 열의 집합인 테이블 형식으로 데이터를 저장하고, 비관계형은 테이블 형식이 아닌 키-값(Key-Value) 형태로 값을 저장한다.


Relational DBMS (RDBMS)

Relational DBMS (RDBMS)

**Relational DataBase Management System (RDBMS, 관계형 DBMS)**는 데이터를 표 형식으로 저장하고 관리하는 데이터베이스 모델이다. 본 데이터베이스 모델은 1970년, Codds가 제안한 RDBMS로 간주되기 위한 12가지 규칙에 기반하여 정의되었다. 이 원칙들은 이상적인 RDBMS의 기준을 제시한 것이지만, 실제로는 모든 조건을 만족하는 시스템은 드물다. 대부분은 그 중 일부, 특히 가장 핵심적인 조건 두 가지를 충족하는 시스템을 RDBMS로 분류한다.

그 두 조건은 1) RDBMS는 행(Row)과 열(Column)의 집합으로 구성된 테이블의 묶음 형식으로 데이터를 관리하고, 2) 테이블 형식의 데이터를 조작할 수 있는 관계 연산자를 제공해야 한다는 것이다. RDBMS에서 관계 연산자는 **Structured Query Language (SQL)**라는 쿼리 언어를 사용해서 이루어지며, 쿼리를 통해 테이블 형식의 데이터를 조작한다.

온라인 쇼핑몰에서 사용하는 정보들을 사용해 RDBMS의 예시를 들어보자. 온라인 쇼핑몰(데이터베이스)에는 정보를 담는 여러 테이블이 다음과 같이 존재할 수 있다.

고객 정보 테이블

고객 ID(문자열) 이름(문자열) 가입일(날짜) 전화번호(문자열)
C31337 아모 2024.02.01 010-1337-1337
C31338 난도 2024.03.15 070-8864-1337