SQL vs NoSQL
SQL vs NoSQL
관계형 데이터베이스
관계형 데이터베이스는 고정된 row와 column으로 구성된 테이블에 데이터를 저장한다. 그리고 SQL을 사용하여 여러 테이블에 존재하는 데이터와 관계에 따라서 조인하여 합칠 수 있다. 관계형 데이터베이스는 데이터를 중복 없이 한번만 저장하고, 데이터 무결성을 보장한다. 관계형 데이터베이스의 경우 일반적으로 스케일 업을 사용하여 확장한다. 관계형 데이터베이스는 스키마를 유연하게 바꾸기 어렵다는 한계가 존재한다. 또한, 관계가 존재하기 때문에 비즈니스 요구사항이 더욱 발전하면 복잡한 쿼리가 생기게 된다.
비 관계형 데이터베이스
NoSQL이라고도 불리는 비 관계형 데이터베이스는 정해진 스키마가 존재하지 않으며 자유롭게 데이터를 저장하고 조회할 수 있다. 문서, 키-밸류, 와이드 컬럼, 그래프 유형이 존재한다. 대량의 데이터와 높은 사용자 부하에서도 손쉽게 확장할 수 있다. 반면 중복을 허용하는 NoSQL의 경우 데이터의 일관성이 저하되며 용량이 증가한다는 단점이 있다.
사용시 고려사항
데이터가 구조화되어있고, 자주 변경되지 않으며, 트랜잭션과 복잡한 쿼리, 그리고 데이터 무결성과 일관성이 중요한 경우 관계형 데이터베이스를 선택할 수 있다. 트랜잭션이 필요한 서버 애플리케이션을 개발하는 경우가 대표적인 예시다.
반면, 아주 낮은 응답 지연시간이 요구되거나 다루는 데이터의 스키마가 빈번히 변경되거나, 아주 많은 양의 데이터를 저장해야 하는 상황에서는 비 관계형 데이터베이스를 고려할 수 있다.
This post is licensed under
CC BY 4.0
by the author.