본문 바로가기

Computer Programming/CS

[DB] SQL 과 NoSQL의 차이 (MySQL vs MongoDB)

DB - SQL 과 NoSQL의 차이

1. SQL : ex. MySQL

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

⇒ 관계형 데이터베이스라고도 하며 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있다.

 

이는 정형화된 데이터를 저장하기에 용이하기 때문에 조금 더 빠르게 데이터를 가지고 올 수 있다는 장점이 있다.

 

 

2. NoSQL: ex. MongoDB

⇒ mysql에서는 데이터를 여러 테이블에 분산시키며 관계를 이루지만, NoSQL은 관련 데이터들을 하나의 컬렉션에 넣는다. 이는 정형화된 스키마가 없기 때문에 비즈니스의 유연성을 담보한다.

 

 

(스타트업에서 처음 도입하기에 좋다) 예를 들면 스타트업 비즈니스에서 어제까지는 이메일 정보를 받아 저장했지만 오늘부터는 대신에 전화번호 데이터를 저장해야한다면, 정해진 스키마가 있는 mySQL 보다는 MongoDB 사용이 더 적합하다. 이후에 안정성이 보장되고 나서 MySQL 등으로 넘어가는 경우도 있다.

 

python flask 라이브러리 사용 db insert 예시 )

from pymongo import MongoClient
import certifi

client = MongoClient('mongodb+srv://sparta:test@cluster0.bc6jn8g.mongodb.net/?retryWrites=true&w=majority',tlsCAFile=certifi.where())
db = client.dbsparta

doc = {
    'name' : 'sk',
    'age' : 24
}

db.users.insert_one(doc)

 

 

⇒ mysql의 스키마와 관계가 없기 때문에 다양한 구조의 데이터를 같은 컬렉션에 추가할 수 있다는 장점이 있다.

 

 

 

https://gyoogle.dev/blog/computer-science/data-base/SQL&NOSQL.html