SQL이란
- SQL은 RDBMS(관계형 데이터베이스)에서 사용하는 쿼리 언어이다.
- 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
- 테이블은 관계를 통해 여러 테이블에 분산된다.
- 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다.
NoSQL (비관계형 DB) 이란
- NoSQL에는 스키마와 관계라는 개념이 없음.
- NoSQL에는 스키마가 없기 때문에 좀 더 자유롭게 데이터를 관리할 수 있음
- 문서(SQL에서 레코드와 유사)는 Json과 비슷한 형태로 가지고 있음.
- NoSQL에서는 여러 테이블에 나누어 담지 않고, 관련 데이터를 동일한 ‘컬렉션’에 넣음.
- 컬렉션이란 그저 용도가 같거나 유사한 문서들을 그룹으로 묶은 것을 말한다.
SQL & NoSQL 장단점
SQL 장점
- 명확히 정의된 스키마, 데이터 무결성 보장
- 관계는 각 데이터를 중복 없이 한 번만 저장
SQL 단점
- 덜 유연함. 데이터 스키마를 사전에 계획하고 알려야 하며 나중에 수정하기 힘듦.
- 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있음
- 대체로 수직적 확장만 가능함
NoSQL 장점
- 스키마가 없어서 유연함. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능
- 데이터는 애플리케이션이 필요로 하는 형식으로 저장됨 → 데이터를 읽어오는 속도가 빠름