백엔드에 관련되어서 NoSQL과 SQL의 차이에 대해서 간단하게 설명해 보려고 한다.
SQL은 Structured Query Language 의 약자로 SQL을 사용하면 RDBMS(관계형 데이터베이스 시스템)에서 데이터를 저장,수정,삭제 및 검색을 할 수 있다.
각각의 데이터는 테이블에 저장이 되는데 해당 구조는 필드의 이름과 데이터 유형으로 정의된다.
또한 데이터의 중복을 피하기 위해서 '관계'를 이용한다.
출처:https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html
말 그대로 관계형 DB의 반대이다.
여기서 SQL과 핵심적인 차이가 있는데, SQL은 정해진 스키마를 따르지 않으면 데이터 추가가 불가능했다. 하지만 NoSQL에서는 다른 구조의 데이터를 같은 컬렉션에 추가가 가능하다.
문서(documents)는 Json과 비슷한 형태로 가지고 있다. 관계형 데이터베이스처럼 여러 테이블에 나누어담지 않고, 관련 데이터를 동일한 '컬렉션'에 넣는다.
따라서 위 사진에 SQL에서 진행한 Orders, Users, Products 테이블로 나눈 것을 NoSQL에서는 Orders에 한꺼번에 포함해서 저장하게 된다.
따라서 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 문서를 작성하는 것이 NoSQL이다.