[weekly] [nb] 관계형 데이터베이스를 사용하는 이유
웹 서비스에서 관계형 데이터베이스를 사용하는 이유 중 하나를 설명해 주세요.
웹서비스에서 관계형 데이터베이스(rdbms) 를 사용하는 가장 큰 이유는 데이터의 구조가 명확하고, 일관성과 무결성이 중요하기 때문이다.
비교 표
항목 | 관계형 데이터베이스(rdbms) | nosql |
---|---|---|
데이터 구조 | 스키마 고정(테이블, 열 명확함) | 유연한 스키마(필드 가변) |
데이터 무결성 | 강력한 트랜잭션 지원 (acid) | 일관성보다 가용성 중시(base) |
복잡한 쿼리 | 조인 및 복잡한 관계 표현 강점 | 조인 비효율, 단순한 조회에 강점 |
스케일링 | 수직 확장 위주 | 수평 확장 쉬움 |
사용 예시 | 은행, 전자상거래, 사내 시스템 등 | 실시간 채팅, 로그, 캐시 등 |
nosql 은 not only sql 의 약자
-
"sql 안써!" 가 아니라 "sql 이외의 것도 쓰자!" 개념
-
유연성, 확장성 에서 rdbms 가 대응하기 어려운 경우에 사용하기 위함
-
종류가 다양함
- key-value : redis
- document : mongodb
- column-family : cassandra
- graph : neo4j
빵집 비유
관계형 데이터베이스(rdbms) 는 프랜차이즈
- 빵마다 레시피(스키마) 가 정해져 있고,
- 정해진 순서와 도구(트랜잭션) 로 작업
- 품질이 일정하고 모든 지점에서 같은 맛
- 레시피 변경이 어렵고, 규모 확장은 장비/공간 필요
nosql은 동네 수제빵집
- 재료나 모양이 그날그날 달라도 유연하게 대응
- 속도는 빠르지만 일관성 유지가 어렵기도
- 여러 지점으로 쉽게 확장 가능
결론
관계형 데이터베이스는 일관성 있고 구조적인 작업에 최적화 되어 있어
사용자 정보, 주문 내역, 결제 등 신뢰성이 중요한 서비스 에 주로 사용된다.
nosql은 유연하고 확장성이 좋아서,
로그 저장, 피드, 실시간 채팅, 캐시 등 변화가 잦고 대용량 처리에 유리하다.