SQL과 NoSQL

trankill_Kim·2022년 8월 31일
0

BACK END

목록 보기
5/7

SQL

SQL은 Structured Query Language의 약자로 특정 유형의 데이터베이스와 상호작용할 수 있게끔 하는 언어다. 이 SQL로 상호작용(저장, 수정, 삭제, 검색)할 수 있는 데이터베이스가 바로 관계형 데이터베이스인데 관계형 데이터베이스 자체를 SQL로도 부른다. 내가 저번 학기에 배웠던 mariaDB가 이에 속한다. 관계형 데이터베이스의 특징은 2가지다.

1) schema라고 부르는 정해진 구조에 따라 레코드가 테이블에 저장한다.

그렇다보니 schema를 따르지 않는 레코드는 아예 저장할 수 없다.

2) relation을 통해 데이터가 여러 테이블로 나눠서 저장한다.

덕분에 데이터 중복을 피할 수 있다.

NoSQL

NoSQL은 비관계형 데이터베이스를 말하는데 mongoDB가 이에 속한다. SQL과 정반대인 특징을 가지고 있다.

1) schema가 없다.

그래서 이전에 저장했던 것들과 다른 구조를 가진 다큐먼트(≓레코드)라도 컬렉션(≓테이블)에 추가할 수 있다.

2) relation이 없다.

그래서 관련되어 있는 모든 정보들을 동일한 컬렉션에 저장할 수 있다. SQL은 분산되어 저장되다 보니 테이블들을 합치기 위해 JOIN이 필요하지만 NoSQL은 애초에 데이터가 나눠서 저장되지 않기 때문에 필요가 없다. 대신 필요한 데이터 일부분을 뽑아내야 할 때 컬렉션에서 일부를 복사해서 따로 데이터를 만드는데 이때 데이터 중복으로 인해 데이터가 불안정해지는 문제가 발생할 수 있다. 그렇다보니 데이터가 자주 업데이트 된다면 오류가 발생할 수 있어 NoSQL이 아니라 SQL을 쓰는 쪽이 좋다.

+a

SQL vs NoSQL Explained

0개의 댓글