다양한 데이터베이스

jacoblee19·2021년 1월 25일
0

Database

목록 보기
5/6
post-thumbnail

'SQL 첫걸음'을 공부하고 정리한 글입니다

DBMS에는 여러 종류가 있다.
데이터베이스의 사용 용도나 이를 제어하는 프로그래밍 환경 등 각각의 조건에 들어맞는 다양한 DBMS가 고안되었기 때문이다.

데이터베이스 종류

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

계층형 데이터베이스

역사가 오래된 DBMS로, 폴더와 파일등의 계층 구조로 데이터를 저장하는 방식이다.
하드디스크나 DVD 파일시스템을 이러한 계층형 데이터베이스라고 할 수 있다.
현재는 거의 사용되지 않는 방식이다.

관계형 데이터베이스

**관계 대수(relational algebra)**라는 것에 착안하여 만들어진 데이터베이스이다.
관계 대수 형태란, 행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터베이스를 가리킨다.
가로 방향으로는 **'열'**을', 세로 방향으로는 **'행'**을 나열한다.
각각의 표에 이름을 붙여 관리하고, 이 때, 데이터베이스 안의 데이터는 SQL 명령어로 조작할 수 있다.

객체지향 데이터베이스

객체지향 언어란 '객체(object)'라는 것을 중심으로 프로그래밍하는 언어이다.
여기서 **'가능하면 객체 그대로를 데이터베이스의 데이터로 저장하는 것'**이 객체지향 데이터베이스이다.

XML 데이터베이스

XML이란 자료 형식을 가리키는 용어로, 태그를 이용해 마크업 문서를 작성할 수 있게 정의한 것이다.

태그는 HTML과 비슷한 형식으로 <data>데이터</data>와 같은 형식으로 표현한다.
즉, XML 데이터베이스는 이처럼 XML 형식으로 기록된 데이터를 저장하는 데이터베이스이다.

XML 데이터베이스에서는 SQL 명령을 사용할 수 없고, XQuery라는 전용 명령어를 사용해야 한다.

키-밸류 스토어(KVS)

키와 그에 대응하는 값(밸류)이라는 단순한 형태의 데이터를 저장하는 데이터베이스이다.
키와 밸류의 조합은 연상배열이나 해시 테이블(hash table)에서 자주 볼 수 있다.
**NoSQL(Not only SQL)**이라는 슬로건으로부터 생겨난 데이터베이스로, 열 지향 데이터베이스라고도 불린다.

연상배열(associative array): 자료구조의 하나로, 키 하나와 값 하나가 연관되어 있으며 키를 통해 연관되는 값을 얻을 수 있다. 연상 배열, 결합성 배열, 맵(map), 딕셔너리(dictionary)로 부르기도 한다.

RDBMS 사용 시스템

RDBMS는 역사가 깊은 만큼 다양한 시스템에서 사용된다.
메인프레임(main frame)은 대부분 RDBMS를 사용한다고 해도 과언이 아니다.

현재 일반적으로 사용하는 인프라는 당연히 인터넷인데, 웹 시스템과 연동하여 RDBMS를 사용하는 경우도 매우 많아졌다. 비행기나 전철의 대규모 예약 시스템에서부터 마을 병원의 작은 예약시스템에 이르기까지 RDBMS는 널리 쓰인다.

하드웨어의 진화 역시 한몫을 하는데, 단말이 고성능화, 소형화되면서 지금은 휴대전화에도 RDBMS가 내장되어 있다.

예를 들어, 구글이 개발한 휴대전화용 OS인 안드로이드에드 'SQLite'라는 RDBMS가 표준으로 기본 내장되어 있다. 이름에서도 알 수 있듯이 SQLite는 휴대단말 등 작은 하드웨어용으로 경량화한, 임베디드 시스템에 자주 쓰이는 RDBMS이다.

데이터베이스 제품

RDBMS라는 용어는 관계형 데이터베이스를 관리하는 소프트웨어를 일컫는 말이다.
하지만, 'RDBMS'라는 이름의 소프트웨어가 존재한다는 뜻은 아니다.

Oracle

Oracle 데이터베이스는 오라클에서 개발한 RDBMS이다.
현재 가장 많이 쓰이는 RDBMS 중 하나로, RDBMS의 사실상 표준이라고 할 수 있다.

DB2

IBM이 개발한 데이터베이스로 오라클만큼 역사가 오래된 RDBMS이다.
DB2는 발표된 이래 한동안 IBM 컴퓨터에서만 구동되었기 때문에 오라클보다 덜 유명하다.

SQL Server

마이크로소프트가 개발한 RDBMS로, 윈도우 플랫폼에서만 동작한다.
앞에 제품들과 비해 비교적 새로운 제품이다.

PostgreSQL

PostgreSQL은 오픈 소스 커뮤니티가 개발한 RDBMS이다.
기반이 되는 RDBMS가 캘리포니아 대학교 버클리 캠퍼스에서 탄생해, 실험적인 기능이나 독특한 구조를 가지기도 한다.

MySQL

마찬가지로 오픈소스 커뮤니티에서 태어난 RDBMS이다. 처음 출시할때만 해도 경량 데이터베이스라는 점을 강조해 필요한 최소한의 기능만을 갖추었지만, 지금은 기능이 확장되면서 다른 RDBMS와 비교해도 부족하지 않을 정도이다.

SQLite

오픈소스 커뮤니티에서 태어났고, 임베디드 시스템에 자주 쓰이는 작은 RDBMS이다.

SQL의 방언과 표준화

RDBMS는 처음부터 SQL 명령어를 이용해 데이터베이스를 조작하도록 설계된만큼, 모든 RDBMS에서 SQL을 사용할 수 있다. 하지만 각 데이터베이스 제품별로 기능 확장이 이루어지는 과정에서 비슷한 조작을 실행해도 서로 다른 명령어가 필요한 상황이 발생했다. 즉, 특정 데이터베이스 제품에만 통용되는 고유 방언이 생겨난 것이다.

이 같은 고유 방언의 간단한 사례 중 하나로 키워드 생략을 들 수 있다. 예를 들면, 데이터를 삭제할 때는 DELETE명령어를 사용하는데, Oracle이나 SQL Server에서는 DELETE 뒤에 붙는 FROM을 생략해도 별 다른 문제가 없다. 하지만 DB2나, PostgreSQL, MySQL에서는 FROM을 생략할 경우 구문 에러가 발생해서 실행되지 않는다.

프로그래밍 언어의 세계에서 방언은 환영받지 못한다. 그래서 이 같은 방언을 없애려 '표준어'가 등장하기 시작했다. ISO나 ANSI가 결정한 'SQL-92', 'SQL-99', 'SQL-2003'등이 바로 표준 SQL이다.

profile
Back-end Developer 🙇‍♂️ 💻 🙆‍♂️

0개의 댓글