Relational Database Management Systems (RDBMS)와 NoSQL 데이터베이스는 데이터 저장 및 관리 방식에서 근본적으로 차이가 있습니다. 이 두 가지 유형의 데이터베이스 시스템은 각각 특정한 용도와 상황에 더 적합합니다.
스키마 기반
RDBMS는 고정된 스키마를 사용하며, 데이터는 표(테이블) 형식으로 저장됩니다. 각 테이블은 행(레코드)과 열(필드)로 구성됩니다.
관계
테이블 간의 관계가 명확하게 정의됩니다. 외래 키(foreign key)를 사용하여 관계를 표현합니다.
RDBMS는 SQL을 사용하여 데이터를 관리합니다. SQL은 데이터를 쿼리하고, 삽입하고, 업데이트하고, 삭제하는데 사용되는 표준 언어입니다.
RDBMS는 ACID(Atomicity, Consistency, Isolation, Durability) 속성을 보장하여 트랜잭션의 신뢰성을 제공합니다.
MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server 등
유연한 스키마
NoSQL 데이터베이스는 고정된 스키마를 요구하지 않으며, 다양한 데이터 모델을 지원합니다. 주요 데이터 모델로는 문서(Document), 키-값(Key-Value), 열(Column), 그래프(Graph) 모델이 있습니다.
비관계형
NoSQL은 전통적인 관계형 데이터베이스의 테이블 구조를 따르지 않으며, 복잡한 관계를 덜 강조합니다.
NoSQL 데이터베이스는 SQL이 아닌 다양한 쿼리 언어와 API를 사용합니다. 각 데이터베이스 시스템마다 쿼리 방법이 다를 수 있습니다.
NoSQL 데이터베이스는 일반적으로 CAP 이론(Consistency, Availability, Partition Tolerance)에서 트레이드오프를 합니다. 특정 시스템은 높은 가용성과 파티션 내성을 중시하는 경우가 많습니다.
NoSQL 시스템은 수평적 확장이 용이하여, 대량의 데이터를 다루는 데 적합합니다. 이는 클라우드 환경이나 대규모 분산 시스템에서 특히 유리합니다.
MongoDB(문서형), Cassandra(열형), Redis(키-값형), Neo4j(그래프형) 등
RDBMS
정형화된 데이터와 복잡한 트랜잭션을 처리하는 데 적합하며, 고정된 스키마와 관계를 강조합니다.
NoSQL
비정형 데이터와 대규모 데이터를 처리하는 데 적합하며, 유연한 스키마와 확장성을 강조합니다.
간단 면접을 진행하는데 질문에 대한 답변을 대답을 잘 하지 못하였다. 깊은 이해하면서 공부를 할 필요성을 느낀거 같다.