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에서 스키마를 정의하듯이 구조를 정의하지 않고 바로 사용이 가능하다.
참고