RDB
: 관계형 데이터베이스
-> MYSQL, PostgresSQL
- 데이터를 2차원 행렬(테이블)형태로 관리하며, 데이터 형식을 일정하게 유지하기 위한 스키마 존재
스키마는 데이터베이스를 구성하는 데이터 개체(Entity), 속성(Attribute), 관계(Relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의
특징
- 데이터 조회, 삽입, 수정, 삭제에 SQL 사용
- DB의 수평적 확장이 어려움
-> RDB내 데이터들이 다른 데이터들과 관계를 맺고 있고, 이러한 데이터들의 일관성이 중요하기 때문
RDB 환경에서 여러 개의 서버로 분산 되어 있는 경우
-> 모든 서버의 데이터가 일관성을 유지하고 있는지 추가적 처리
-> 수평적 확장 시 일관성을 유지하기 힘들고, 추가 작업은 상당한 부하
- 개발, 운영 과정에서 스키마 변경이 힘들기 때문에 초기 모델 설계에 시간을 많이 쏟아야 함
데이터의 일관성, 정합성을 중요시하기 때문에 은행 시스템, 유저 계정 정보 관리 등에 이용
NoSQL
: Not-Only-Sql. SQL이 아닌 방식으로도 데이터를 처리하는 DB
-> MongoDB나 아파치 카산드라 등은 SQL과 유사한 쿼리 제공
종류
- 도큐먼트 기반 DB : MongoDB
- 키-밸류 기반 DB : Redis
- 컬럼 패밀리 DB
- 그래프 DB
특징
- RDB에 비해 수평적 확장에 용이한 구조
-> NoSQL의 데이터들은 서로 관계 X
-> 간단한 기준을 통해 데이터들을 나눈 뒤 여러 서버에 분산 저장 용이
- 스키마가 유동적으로 변화할 수 있기 때문에 필드 추가, 삭제, 변경 쉬움
-> NoSQL을 동적 스키마, 스키마리스 구조라고 함
-> 비정형 데이터, 다양한 데이터 구조 다루는 데 장점
수평 확장을 통한 성능 향상, 비정형 데이터 처리 용이성 때문에 대규모 데이터 처리, 소셜 미디어 등에 많이 사용
비교
