SQL vs NoSQL

정희준·2023년 3월 22일
0
post-thumbnail

SQL vs NoSQL

Spring 개발을 할 때는 Oracle,MySql을
Node.js 개발을 할 때는 MongoDB를 주로 사용한다고 한다

그럼 프레임워크나 언어에 따라 달라지는 것일까?
SQL과 NoSQL에 대해 알아보자

SQL

SQL은 흔히 관계형 DB (RDB)라고 부르며
RDBMS 에서 데이터를 CRUD 할 수 있다

핵심 특징으로 보자면

  • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
  • 데이터는 관계를 통해 여러 테이블에 분산된다.

데이터는 스키마에 따라 테이블에 저장된다?

이말은 즉 테이블의 구조에 따라 저장된다는 것이다
예를 들어 테이블에 존재하지 않는 컬럼에 데이터를 저장 할 수 없다는 것이다

관계형 db?
간략히 설명하자면 테이블과 테이블 사이에 같은 컬럼이 존재한다면
-> pk,fk
user 테이블에서 관계를 통해 (Join) board 테이블의 데이터를 이용 할 수 있다는 것이다

또한 데이터의 중복을 피하기 위해서도 테이블을 나누기도 한다!


NoSQL

말 그대로 SQL의 반대 즉 위에서 설명한 SQL의 핵심특징인
관계 상관없고! 스키마도 상관없다!
SQL과 달리 테이블을 나누어 데이터를 저장하지 않고
모든 관련데이터를 하나의 문서에 저장이 가능하다는 것이다!
(join의 개념이 없음)


SQL과NoSQL의 용어 개념



결론

SQL을 선택해서 복잡한 JOIN문을 만들지 않도록 설계하여 단점을 없앨 수도 있고
NoSQL을 선택해서 중복 데이터를 줄이는 방법으로 설계해서 단점을 없앨 수도 있지만

정확한 데이터 구조를 알수 없을 때도 많고 변경이 될 때도 많을 것이다
그렇기 때문에 상황에 맞게 적절하게 사용하는 것이 좋은 방법인 것 같다!


참조

https://gyoogle.dev/blog

profile
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.

0개의 댓글