NoSql, RDBMS
RDBMS
- 구조: 데이터를 행(Row)과 열(Column)로 구성된 테이블에 저장.
- 스키마(Schema): 엄격한 데이터 구조를 가진다. 테이블의 스키마는 사전에 정의되어야 하며, 변경 시 많은 작업이 필요하다.
- SQL 사용: 데이터 조작 및 질의는 표준 SQL(Structured Query Language)을 사용.
- 관계: 테이블 간의 관계를 명확히 정의(예: 외래 키).
- 트랜잭션 지원: ACID(Atomicity, Consistency, Isolation, Durability) 특성을 보장해 안정적이고 정확한 데이터 처리가 가능.
- 확장성: 주로 수직적 확장(Vertical Scaling) 방식 사용. (더 강력한 하드웨어로 업그레이드)
장점
- 복잡한 관계 데이터 처리: 정규화를 통해 중복을 최소화하며, 관계형 데이터를 효율적으로 관리.
- 데이터 무결성 보장: 트랜잭션과 강력한 일관성.
- 표준화된 SQL 사용: SQL 표준이 널리 사용되어 배워두면 여러 RDBMS에 적용 가능.
- RDBMS는 위에서 설명을 하였듯이 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장하고 있습니다.
- 또한 관계는 각 데이터를 중복없이 한 번만 저장할 수 있습니다.
단점
- 확장성 제한: 수평 확장이 어려워 대규모 데이터 처리에 비효율적.
- 유연성 부족: 스키마가 고정되어 있어 데이터 구조 변경이 어렵다. 나중에 스키마가 변경 될 경우 번거롭고 어렵습니다.
- 테이블 간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있습니다.
- 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원합니다. 이로 인해 비용이 기하급수적으로 늘어날 수 있습니다.
NoSQL