Skip to content

young's devlog

[SQL 첫걸음] 2. 다양한 데이터베이스

SQL 첫걸음, Database2 min read

DBMS에는 여러 종류가 있다. 데이터베이스의 사용 용도나 이를 제어하는 프로그래밍 환경 등 각각의 조건에 들어맞는 다양한 DBMS가 고안되었기 때문이다. 그중에서도 SQL로 데이터를 다루는 데이터베이스를 관계형 데이터베이스(Relational Database, RDB)라 한다.

현재 데이터베이스의 주류를 이루는 종류인데, 그렇다면 이 외로도 데이터베이스에는 어떤 종류가 있는지 살펴보자.

1. 데이터베이스 종류

DBMS는 데이터 저장 방법에 따라 몇 가지로 분류할 수 있다.

계층형 데이터베이스

역사가 오래된 DBMS이다. 폴더와 파일 등의 계층 구조로 데이터를 저장하는 방식이다. 파일 시스템에서 사용되는 방식이나 DBMS로서 채택되는 경우는 많지 않다.

관계형 데이터베이스

관계 대수라는 것에 착안하여 고안한 데이터베이스이다. 간단하게 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다.

관계 대수(Relational Algebra)란?

관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다.

객체지향 데이터베이스

객체지향 프로그래밍에서의 객체를 그대로 데이터베이스의 데이터로 저장하고자 하는 데이터베이스이다.

XML 데이터베이스

XML 형식으로 기록된 데이터를 저장하는 데이터베이스이다. XQuery라는 명령어를 사용한다.

키-벨류 스토어(KVS)

키와 그에 대응하는 값이라는 단순한 형태의 데이터를 저장하는 데이터베이스이다. NoSQL(Not Only SQL)이라는 슬로건으로부터 생겨난 데이터베이스이다. 열 지향 데이터베이스라고도 불린다.

이 중 RDBMS는 여전히 데이터베이스의 주류를 이룬다.

2. RDBMS 사용 시스템

RDBMS는 역사가 깊은 만큼 다양한 시스템에서 사용된다. 메인 스트림(대형 범용 기기들)에서는 대부분 RDBMS를 사용한다고 해도 과언이 아니다.

그리고 클라이언트/서버 구조가 유행하기 시작하면서 RDBMS는 웹 시스템에 많이 사용되었다.

현재는 하드웨어도 급속도로 발전하면서 작은 모바일 기기에도 RDBMS가 접목되어 있다.

3. 관계형 데이터베이스 제품

Oracle

오라클에서 개발한 RDBMS이다. 많은 시스템에서 채택해 사용 중이다. 현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS의 사실상 표준이라고 해도 문제없을 정도로 유명하다.

DB2

IBM이 개발한 RDBMS이다. 본인 회사의 컴퓨터에서만 구동되었었기 때문에 현재 점유율은 높지 않다.

SQL Server

마이크로소프트가 개발한 RDBMS이다. 앞선 두 제품에 비해는 비교적 최신 제품으로 윈도우가 서버에 들어가기 시작하면서 많은 시스템에서 사용하고 있다.

PostgreSQL

오픈소스 커뮤니티가 개발한 RDBMS이다. 무료 소프트웨어인 만큼 자유롭게 사용할 수 있다. 기반이 되는 RDBMS를 캘리포니아 대학교 버클리 캠퍼스에서 만들었다. 실험적인 기능이 많이 포함되어있다.

MySQL

오픈소스 커뮤니티가 개발한 RDBMS이다. 처음 목표는 경량 데이터베이스였지만 기능이 확장되면서 다른 RDBMS와 비교해도 손색이 없을 정도로 확정되었다.

SQLite

오픈소스 커뮤니티가 개발한 RDBMS이다. 임베디드 시스템에 자주 쓰이는 작은 RDBMS이다.

4. SQL 방언과 표준화

데이터베이스 제품별로 기능 확장이 이루어지는 과정에서 비슷한 조작이지만 서로 다른 명령어가 필요한 상황이 발생했다. 이렇게 특정 데이터베이스 제품에만 통용되는 명령어를 고유 방언(Dialect)이라 한다.

대표적인 예로는 DELETE 명령어를 사용할 때 Oracle과 SQL Server는 FROM을 생략해도 되지만 DB2나 PostgreSQL, MySQL에서는 생략하면 구문 에러가 발생한다.

현재는 표준화를 통해서 많은 부분들이 해결이 되면서 방언이 많이 줄어들었다.

정리하면

데이터베이스는 데이터를 저장하는 방법을 기준으로 종류를 나눈다. 여러 종류가 있지만 그 중에서 관계형 데이터베이스(RDB)를 주류로 사용한다.

RDBMS도 여러 종류가 있는데 이 종류들은 기능 확장이 이뤄지면서 각기 다른 명령어가 추가되었다. 이를 방언이라고 하며, 방언 대신에 표준화된 표준 SQL을 사용하는 것이 좋다.

참고 링크

[DB 기초] 관계대수, 관계 해석이란 무엇인가? - 코딩팩토리