개발할때 데이터베이스(DB)를 쓰기위해서는 데이터베이스관리시스템(DBMS)를 사용하기 마련이다.
내가 처음 접한 DBMS는 학교에서 사용했던 MySQL이었다. 그때는 수업내용에 따라가기 급급했기때문에 별생각없이 그 당시 내가 사용하는 MySQL이 전부인 줄만 알았다. (얼마나 우물안의 개구리처럼 살고있었던 건가..!)
게다가 데이터베이스와 데이터베이스 관리 시스템을 같은 것으로 생각하고 살았다..!(세상에..!)
몇 년이 지나 조금은 개발이 어떤건지 감을 잡게 되었을때(하지만 지금도 한참 부족한것 투성이) MySQL외에도 mongoDB, H2, PostgreSQL, etc 를 사용해보았다. 그러면서 DBMS의 종류가 다양하다는걸 슬슬 실감하게 되었다.
개발을 처음접하면 종종 데이터베이스(DB)와 데이터베이스 관리 시스템(DBMS)이 같은 거라고 착각하며 용어를 혼동해서 쓰곤한다.(나만 그런건가? 나는 그랬다.)
AWS의 설명에 따르면
데이터베이스란 무엇입니까?
데이터베이스는 전자적으로 저장되고 체계적인 데이터 모음입니다. 여기에는 단어, 숫자, 이미지, 비디오 및 파일을 포함한 모든 유형의 데이터가 포함될 수 있습니다. DBMS (데이터베이스 관리 시스템) 라는 소프트웨어를 사용하여 데이터를 저장, 검색 및 편집할 수 있습니다. 컴퓨터 시스템에서 데이터베이스라는 단어는 모든 DBMS, 데이터베이스 시스템 또는 데이터베이스와 관련된 응용 프로그램을 나타낼 수도 있습니다.
출처: Amazon Web Service
쉽게말해 데이터베이스는 다양한 데이터의 모음이다.
데이터베이스가 데이터의 모음이라면, 그런 데이터베이스 내에있는 데이터에 접근하고 관리할 수 있게 해주는 도구이다.
그림을 작업하기 위해 포토샵, 동영상을 편집하기위해 어도비프리미어의 소프트웨어 설치가 필요하듯이, 데이터베이스를 사용하기 위한 소프트웨어(도구) 즉 데이터베이스 관리 시스템(DBMS)의 설치가 필요하다.
이 DBMS로 MySQL, MariaDB, MongoDB, PostgreSQL, Oracle, H2 등등이 있는거다.
DBMS | 제작사 | 종류 | 기타 |
---|---|---|---|
MySQL | Oracle | RDBMS | 오픈 소스(무료), 상용 |
MariaDB | MariaDB | RDBMS | 오픈 소스(무료) |
MongoDB | MongoDB | NoSQL | JSON 형태의 동적 스키마형 문서를 사용 |
PostgreSQL | PostgreSQL | RDBMS | 오픈 소스(무료) |
Oracle | Oracle | RDBMS | 상용 시장 점유율 1위 |
H2 | - | RDBMS | 따로 설치가 필요없고, 용량이 가벼움 |
Structured Query Language의 약자로, 관계형 데이터베이스(RDBMS)의 데이터를 추출하고 조작하는데 사용하는 데이터처리 언어이다. 하지만 일반적인 프로그래밍 언어(C, Java, Python 등)과는 다른 특징이 있다.
SQL은 국제표준화기구에서 SQL에 대한 표준을 정해서 발표하고 있다. 이를 표준 SQL이라고 한다. 그래서 DBMS를 만드는 회사에서 되도록 표준 SQL을 준수하되, 각 제품의 특성을 반영한 SQL을 사용한다고 한다.
[참고]