데이터베이스 의사결정
해당 서비스에서 사용될 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