Database와 DBMS, SQL
Database : 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합.
DBMS : 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고, 데이터베이스를 관리해 주는 소프트웨어
SQL : 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어.
RDBMS
관계형 데이터베이스 관리 시스템. RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스.
NoSQL
RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술. NoSQL에서는 테이블 간 관계를 정의하지 않는다.
빅데이터의 등장으로 인해 데이터와 트래픽이 기하급수적으로 증가함에 따라, 성능 개선을 위해 고안되었음. 데이터 일관성을 포기하되, 비용을 고려햐여 데이터에 분산 저장하며, 일반적으로 테이블간 JOIN이 불가능하다.
NoSQL의 다양한 형태
- Key-Value Database
- Document Database
- Wide Column Database
- Graph Database
RDBMS와 NoSQL의 장단점
RDBMS
장점
- 정해진 스키마에 따라 데이터를 저장해야만 하므로 명확한 데이터 구조를 보장한다.
- 각 데이터를 중복없이 한 번만 저장할 수 있다.
단점
- 테이블 간 관계를 맺고 있으므로, 시스템이 커질 경우, 테이블 수가 많을 경우 매우 복잡한 쿼리가 만들어질 수 있다.
- 성능 향상을 위해서는 서버의 성능을 향상 시켜야 하는 Scale-up만을 지원한다. 이는 비용이 기하급수적으로 늘어나는 결과를 초래할 수 있다.
- 데이터는 스키마의 제약을 따르므로, 데이터가 유연하지 못하다. 스키마 변경 작업이 번거롭다.
NoSQL
장점
- NoSQL에서는 스키마가 없기에 유연한 데이터 구조를 가진다. 새로은 필드 추가, 데이터 조정이 쉽다.
- 데이터 분산이 용이하며, 성능 향상을 위한 Scale-up, Scale-out 모두 가능하다.
단점
- 데이터 중복이 발생할 수 있으며, 중복된 데이터가 변경될 경우, 모든 컬렉션에 대해서 수정을 수행해야 한다.
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며, 데이터 구조를 결정하기 어려울 수 있다.
참고 자료
https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90#:~:text=NoSQL%EC%9D%80%20%EC%A0%95%ED%99%95%ED%95%9C%20%EB%8D%B0%EC%9D%B4%ED%84%B0%20%EA%B5%AC%EC%A1%B0,%EC%97%90%EC%84%9C%20%EC%88%98%EC%A0%95%EC%9D%84%20%ED%95%B4%EC%95%BC%20%ED%95%A9%EB%8B%88%EB%8B%A4.