TIL(Today I Learned)

6월 19일(일)

  • 공부한 내용을 빠르게 정리한 내용이라서 잘못된 내용이 있을 수 있습니다.

학습내용

SQL(MySQL) vs NoSQL(MongoDB)

SQL

  • 관계형 데이테베이스를 위한 쿼리 언어
  • 관계형 데이테베이스는 행과 열로 이루어진 테이블로 데이터를 저장하고, 여러 테이블간의 관계나 제약 조건등을 스키마로 정의해서 관리하는 것
  • 장점
    • Atomic 하다 (Race Condition 을 방지)
    • 안정적이다. (오래 축적되고 검증된 기술이라 DB로 인한 문제가 발생할 확률이 적다)
  • 단점
    • 한번 구축해놓으면 스키마를 변경하기가 쉽지 않다. (확장성 측면에서 좋지 않다.)
    • 개발 속도가 느릴 수 있다.

NoSQL

  • Non-SQL이라는 의미로 SQL이 아닌 DB를 의미하기도 하며, Not Only SQL의 약자로 SQL + @ 의 부가적인 무엇인가가 있다는 의미이기도 하다.
  • 기존의 SQL DB의 단점인 유연하지 못한 확장성 측면을 개선하기 위해서 시작되었다고 한다.
  • 장점
    • 유연함
    • 확장성 (새로운 열을 추가하는데 큰 어려움이 없다.
    • SQL처럼 엄격하게 스키마를 정의하고 하지 않기 때문에 빠른 개발이 가능하다.
  • 단점
    • 매우 정형화된 데이터를 다루기에는 적합하지 않다.
    • SQL DB보다 서버를 구축하는데 다소 번거로움이 있다.

MySQL과 MongoDB 차이점

  • MySQL은 오라클에서 제공하는 RDBMS
  • SQL 언어를 통해 데이터를 저장하거나 접근
  • MongoDB는 JSON 데이터를 이용한 데이터베이스
  • MQL이라는 언어를 통해 데이터를 저장하거나 접근
  • MongoDB는 MySQL에서 스키마를 정의하듯이 구조를 정의하지 않고 바로 사용이 가능하다.

참고