데이터베이스 의사결정

해당 서비스에서 사용될 DBMS를 결정하기 위한 사항을 기술한다.

개요

본 프로젝트는 세종대학교와 관련된 웹상에 존재하는 모든 데이터를 수집하고 체계화해야 한다. 많은 양의 정보가 실시간을 생성되고 갱신되기 때문에 해당 성능에 특화된 데이터베이스를 결정해야 한다.

배경과 요구사항

  • 대부분의 스키마가 고정되어 있으나, 일부 데이터가 원자성을 띄지 않는다.

  • 검색(Read)에 있어 최선의 성능이 요구된다.

  • 삽입(Write)는 큰 비중을 차지하지 않는다.

  • 해당 DBMS를 사용하는 비용이 최소화되어야 한다.

  • 해당 DBMS는 Linux Ubuntu에서 작동한다.

DBMS 선택사항

  • MySQL - RDBMS

  • MongoDB - NoSQL

의사결정

MySQL vs MongoDB 성능 분석

위의 비교 분석 보고서에 기반하여 본 프로젝트에서는 NoSQL(MongoDB)를 선택하였다. 그 이유는,

  • NoSQL은 스키마가 없이 유연한 형태로 데이터를 관리할 수 있다.

  • 위의 성능 분석에 의하면 NoSQL이 RDB보다 보편적인 성능이 높다.

DB ORM

MongoDB를 사용하기로 결정되었기 때문에 Python에서 제공하는 Pymongo ORM을 사용하기로 하였다.

Last updated