SQL vs NoSQL

홍성준·2022년 11월 9일
0

SQL

sql은 보통 관계형 데이터 베이스에서 사용이 된다. 관계형 데이터베이스의 구조는 표의 형태로 되어있는데, 그래서 행과 열로 데이터를 구분하게 된다. 이 구조를 테이블이라고 부른다. 테이블은 우리가 아무 이름이나 붙여서 사용을 한다. 열은 데이터의 형식을 정의하고, 행에는 형식에 맞는 데이터가 들어가게 된다. 여기서 이 데이터를 다루기 위해 sql이 사용이 된다. 즉 sql은 관계형 데이터베이스 전용 프로그래밍 언어이고, 또 관계형 데이터 베이스를 SQL이라고도 부른다.

NoSQL

위와 반대로 NoSQL은 비관계형 데이터베이스에서 사용된다. 이 데이터베이스는 테이블 형식이 아닌, 형식이 지정되어 있지 않는 방식으로 데이터를 저장하게 된다. 관계형 데이터 베이스를 표 형식이라고 한다면 비관계형 데이터베이스는 마치 서류봉투 안에 있는 여러 서류와 같은 느낌이다. 이 서류는 각기 다른 형식의 데이터를 가지고 있다. 그래서 각 데이터를 문서라 하고, 문서형 데이터베이스라고 부른다. 다른 형식은 wide-colum store 데이터베이스, 그래프 데이터 베이스가 있다.

차이점

NoSQL은 key-value, document, wide-colum, graph등의 방식으로 데이터를 저장을 한다. sql은 정해진 테이블의 형식에 맞게 저장을 시켜줘야 한다. 구조의 변경의 경우 테이블은 어쩔 땐 데이터베이스 전체를 수정하거나 오프라인으로 전환을 해야할 필요가 있는데 반해 NoSQL의 경우 SQL보다 동적으로 수정이 가능하다. 행을 추가할 때 즉시 새로운 열을 추가할 수 있고, 모든 열에 대한 데이터를 반드시 입력하지 않아도 된다.

그리고 질의의 경우 SQL은 테이블의 형식과 테이블간의 관계에 맞춰 데이터를 요청해야 한다. 그래서 정보를 요청할 때, 구조화된 언어를 사용하여 요청을 하게 된다. 이와 달리 NoSQL은 질의를 할 때, 데이터 그룹 자체를 요청하기 때문에 구조화되지 않은 언어로도 요청이 가능하다.

SQL은 수직적으로 확장을 한다. NoSQL은 수평적으로 확장이 된다. 그래서 확장성이나 속도면에서 뛰어난 반면 SQL은 고차원으로 구조환된 SQL 기반의 데이터베이스가 더 좋은 성능을 보여주는 서비스 또한 있다. 이와 같이 각자 서비스에 맞는 데이터베이스를 사용해서 좋은 질의 서비스를 제공하는 것이 중요하다.

profile
안녕하세요

0개의 댓글