SQL
관계형 데이터베이스의 데이터를 관리
ex) MySQL, Oracle

- 엄격한 데이터 저장 구조(스키마)를 원칙으로 하기 때문에 스키마에 맞지 않는 데이터는 저장할 수 없음
- 데이터 사이의 관계를 지정하기 쉬움(Join)
- 수직적 확장만 가능
- 수직적 확장 : 데이터베이스 서버의 성능을 향상
ex) 하드웨어 업그레이드, CPU 업그레이드
NoSQL
비관계형 데이터베이스의 데이터를 관리
ex) mongoDB, Redis

- 데이터베이스 내에서 서로 다른 구조의 데이터 추가 가능
- 하나의 collection(SQL에서 table)에 관련 데이터를 모두 작성
- 중복된 데이터가 발생할 수 있음
- 수직/수평적 확장 가능
- 수평적 확장 : 더 많은 서버가 추가되고 데이터베이스가 전체적으로 분산됨 -> 하나의 데이터베이스가 여러 호스트에서 작동
SQL의 장단점
장점
- 명확하게 정의된 스키마, 데이터 무결성 보장
- 관계는 각 데이터 중복 없이 한번만 저장됨
단점
- 상대적으로 덜 유연, 수정하기 힘듦
- 관계를 맺고 있기 때문에 Join문이 복잡해질 수 있음
- 수평적 확장이 어려움
NoSQL의 장단점
장점
- 스키마가 없기 때문에 유연함
- 애플리케이션이 필요로 하는 형식으로 저장되어서 데이터를 읽어오는 속도가 빠름
- 수평적 확장 가능
단점
- 데이터 구조 결정을 하지 못하고 미루게 될 수 있음
- 데이터 중복 -> 수정을 해야 하는 경우 모든 collection에서 수행
출처
https://mjmjmj98.tistory.com/43
https://siyoon210.tistory.com/130