DBMS (Database Management System)

데이터베이스란?

대량의 정보를 컴퓨터가 효율적으로 접근할 수 있도록 가공 및 저장한 것.


DBMS란?

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합.


DBMS를 쓰지 않는다면

  • 다수의 사람이 데이터를 공유하기 어렵다
  • 대량의 데이터를 다루기 어렵다 (txt, xls 등)
  • 읽기/쓰기를 자동화하려면 프로그래밍 기술이 필요하다
  • 만일의 사고에 대응하기 어렵다 (보안, 백업)


관계형 데이터베이스

RDB (Relational Database)

관계형 데이터베이스는 키(key)와 값(value)의 간단한 관계를 2차원 표(테이블) 형식으로 나타낸 데이터베이스이다. 하나의 데이터베이스 안에는 여러 개의 테이블이 존재할 수 있다.


테이블

테이블은 행(row)과 열(column)로 이루어져 있다.


테이블의 행은 레코드(record)라고도 부르며, 데이터 한 건에 해당한다. 하나의 테이블은 적게는 수백개, 많게는 수백만 개의 레코드를 가지고 있다.

테이블의 열에 해당하는 칼럼은 각기 구분하기 쉽게 이름을 붙여 분류한다. (ex. name, age, major 등) 또, 각 칼럼은 특정한 데이터 타입을 가진다. (ex. age의 데이터 타입은 INTEGER)


RDMBS (Relational Database Management System)

RDMBS는 관계형 데이터베이스를 생성, 갱신, 관리하기 위한 시스템이다. 레코드 단위로 데이터 읽기/쓰기가 이루어진다.

RDBMS는 일반적으로 클라이언트가 요청을 보내면 서버가 처리해주는 C/S 구조로 되어있다. 그리고 클라이언트가 요청을 보낼 때에 주로 사용하는 언어가 SQL 이다.

사용자가 데이터를 조회하고 싶을 때에 SQL 문으로 작성한 요청을 RDBMS에 보내면 RDMBS는 요청된 데이터를 반환한다. 이 때 RDMBS는 2차원 표 형태의 데이터를 반환한다.

https://www.marutitech.com/elasticsearch-can-helpful-business/


RDBMS의 종류

어떤 RDBMS를 쓰는지에 따라 SQL 문법이 조금씩 달라질 수 있다. 주로 쓰이는 인기 있는 RDBMS의 종류는 다음과 같다.

  • Oracle DB - 가장 오래되었고 신뢰도도 높다. 뛰어난 기술력과 안정성을 가지고 있다. 대규모의 애플리케이션, 특히 은행 업계에서 쓰이며, 유료로 사용해야 한다.
  • MySQL - 오픈 소스이기 때문에 널리 쓰인다. 웹 개발, 특히 PHP를 이용한 개발에 흔히 쓰인다. 오라클이 인수한 후 불안감 때문에 다른 곳으로 넘어가는 경우가 종종 보인다.
  • Maria DB - 오라클이 MySQL을 인수하면서 라이선스 문제가 불확실해지자, 이에 반발하여 만들어졌다. MySQL 5.5를 기반으로 만들어져 사용법이 거의 유사하고 호환성도 뛰어나다.
  • PostgreSQL - 버클리 대학의 프로젝트로 만들어진 오픈 소스 ORDBMS이다. (ORDBMS: 객체-관계형 데이터베이스 관리 시스템) SQL의 확장성과 표준을 준수하고, 풍부한 기능을 지원한다.
  • SQL Server - 마이크로소프트가 개발한 RDBMS이기 때문에 윈도우 시스템 환경을 지원한다.
  • SQLite - DB를 서버가 아닌 파일로 저장하는 DBMS이다. 기기에 가벼운 DB를 저장하는 목적으로 설계되었으며, 대표적으로 안드로이드, iOS, mac OS에서 사용된다.




SQL (Structured Query Language)

SQL은 RDBMS에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어이다. SQL 문법은 영어와 유사하게 만들어져서 쉽게 읽고 쓰고 해석할 수 있다. ‘에스큐엘’ 혹은 ‘시퀄’로 발음한다.


SQL 명령어

SQL 명령어는 크게 4가지의 그룹으로 나뉜다.

  • DDL - 데이터베이스 스키마와 설명을 처리하는 정의하는 언어이다. 데이터베이스나 테이블 생성/변경/삭제 등의 작업이 여기에 포함된다.
  • DML - 데이터 검색, 삽입, 변경, 삭제를 수행하여 조작하는 언어이다. 실질적으로 저장된 데이터에 처리할 때 사용한다.
  • DCL - 데이터에 접근할 수 있는 권한을 관리하는 언어이다.
  • TCL - 트랜잭션을 다루는 언어이다.


종류 명령어
DDL CREATE, ALTER, DROP, TRUNCATE, COMMENT, RENAME
DML SELECT, INSERT, UPDATE, DELETE, MERGE, CALL, EXPLAIN PLAN, LOCK TABLE
DCL GRANT, REVOKE
TCL COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION


데이터 타입

SQL에서 사용할 수 있는 데이터 타입의 종류는 많지만, 그 중에 자주 쓰일 법한 데이터 타입을 정리해보았다. - Data Type 참고

문법 최대 크기 설명
VARCHAR(size) 255자 255자의 문자를 저장한다. 문자열의 길이는 가변적이다.
INT(m) 표준 integer 값. -2147483648 ~ 2147483647. m은 정수의 크기가 아닌 자릿수 개수이다.
BIGINT(m) 큰 integer 값. -9223372036854775808 ~ 9223372036854775807 m은 정수의 크기가 아닌 자릿수 개수이다.
FLOAT(m,d) 단일 정밀 부동 소수점 숫자 m은 정수 자릿수, d는 소수점 아래 자릿수 개수이다.
DATE ‘1000-01-01’ ~ ‘9999-12-31’ ‘YYYY-MM-DD’로 표기된다.
TIME ‘-838:59:59’ ~ ‘838:59:59’ ‘HH:MM:SS’로 표기된다.



References