데이터베이스란 한곳에 저장된 정보들을 원하는 어떤 곳에서든 사용하게 하는, 다시 말해서 특정 소프트웨어나 프로그램에 종속되지 않고 독립된 정보의 저장소이다.
데이터베이스 그 자체는 '정보' 그 이상 이하도 아니다. 이 때, 이러한 데이터베이스를 다루기 쉽게 하는 기능을 첨가한 소프트웨어를 DBMS(Database Management System)이라고 한다.
해당 기능 중에는 "SQL"이 있는데, SQL은 Structured Query Language 의 약자로써, 사용자들로 하여금 원하는 정보들을 저장하고 삭제하고 가져오는등의 행동을 쉽게 처리할 수 있게한다.
관계형 데이터베이스는 행과 열로 구성된 테이블에 데이터를 저장하는 방식이다. 따라서 행과 열을 정의하는 데이터 구조와 타입을 정의를 해야만 한다. 다시 말해서, 특정 유형의 (명확한) 데이터베이스를 말한다. 따라서 테이블간의 관계를 명확하게 파악할 수 있다. 또한 데이터는 중복없이 한 번만 저장된다. 따라서 데이터의 분류,정렬 탐색속도가 빠르다. 하지만, 그만큼 한번 정해진 스키마를 수정하기 힘들어서 동적으로 스키마 형태를 변경할 수 없다. 그리고, '관계'형 데이터베이스이기 대문에, JOIN문이 많아질 경우에 복잡한 쿼리가 만들어질 수 있다.
하지만 비관계형 데이터베이스(NoSQL)은 Not Only SQL라는 말로 쓰이며, 관계형 테이블과는 다른 방식으로 데이터를 저장한다. 관계형 데이터베이스와 비교하면 스키마를 수정하기 매우 용이하며, 스키마가 고정되어 있지 않다. 즉 확장성이 뛰어나다. 관계가 없기 때문에 JOIN 쿼리를 사용할 필요가 없다. 하지만 쿼리 처리시에 데이터를 파싱하는 과정을 거쳐야하므로, 큰 크기의 document(record)를 다룰 때 시간이 비효율적일 수 있다.