SQL은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수목적의 프로그래밍언어이다. 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체접근 조정 관리를 위해 고안되었다. [위키백과]
관계형데이터베이스는 고정된 행과 열로 구성된 테이블에 데이터를 저장한다.
SQL에서는 테이블의 구조와 타입등을 사전에 정의하여 테이블에 정의돈 내용에 맞는 형태의 데이터만 삽입되기때문에 데이터를 정확하게 입력했다면 데이터를 사용하기 수월하지만 NoSQL보다 유연하지는 않다.
데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. [위키백과]
SQL의 형식인 테이블형식과 다르게 NoSQL은 테이블 형식이 아니며 다른방식으로 데이터를 저장한다. 데이터모델에 따라 유형이 다양하며, 주로 문서, 키값, 와이드컬럼, 그래프가 있다. 따라서 반드시 정해진 정의에 의해서만 입력이 가능한 SQL문과 다르게 NoSQL는 비교적 유연한 스키마를 제공하고 손쉽게 확장이 가능하다.
SQL과 NoSQL을 대표하는 DB의 종류이다.
SQL, NoSQL 두가지 모두 적절히 사용하는 것이 좋다. NoSQL기반의 비관계형데이터베이스는 확장성이나 속도면에서 장점이 있고, SQL 기반의 관계형데이터베이스는 성능면에서는 더 우위를 가진다.