SQL vs NoSQL [ TIL ]

2023. 7. 9. 19:51TIL&WIL/TIL

 

Problem

 

mongo 를 공부한후 mysql 을 공부헸다.

두 데이터베이스는 NoSQL 과 SQL 로 나눤다.

두 데이터베이스의 특징과 차이의 대해 알아보자.


Solve

 

SQL (관계형 데이터베이스)

 

SQL 을 사용하면 RDBMS 에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다.

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

스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다.

즉, 스키마를 수정하지 않는 이상은 정해진 구조에 맞는 레코드만 추가 가능한 것이 관계형 데이터베이스의 특징이다.

또 데이터의 중복을 피하기 위해 관계를 이용한다.

 

NoSQL (비관계형 데이터베이스)

 

스키마도 없고, 관계도 없다. NoSQL 에서는 레코드를 문서라고 부른다.

SQL 은 정해진 스키마를 따르지 않으면 데이터 추가가 불가능한데 반하여 NoSQL 에서는 다른 구조의 데이터를 같은 컬렉션에 추가가 가능하다.

문서는 JSON 과 비슷한 형태를 가지고 있다. 관계형 데이터베이스 처럼 여러 테이블에 나누어 담지 않고, 관련 데이터를 동일한 컬렉션에 넣는다.

따라서 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 문서를 작성하는 것이 NoSQL 이다.

 


What I Learned

 

각 데이터베이스의 장단점에 대해 알아보았다.

관계형 데이터베이스는 사용되는 데이터가 구조적이고 일관적일때 사용할 것 같고,

비관계형 데이터베이스는 데이터의 구조가 거의 없는 대용량의 데이터를 저장하는 경우 사용하게 될 것 같고 아니면 빠른 서비스를 구축할때 활용할 것같다.

 

'TIL&WIL > TIL' 카테고리의 다른 글

CORS [ TIL ] [ node.js ]  (0) 2023.07.16
테스트코드 [ TIL ]  (0) 2023.07.12
ORM [ TIL ]  (0) 2023.07.09
HTTP 상태코드 [ TIL ]  (0) 2023.07.05
Joi [ TIL ] [ node.js ]  (0) 2023.07.03