728x90
SQL vs noSQL
SQL의 핵심적 특징
- 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
- 데이터는 테이블 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다.
- 해당 구조는 필드의 이름과 데이터의 유형으로 정의된다.
- 즉, 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음
- 데이터는 관계를 통해 여러 테이블에 분산된다.
- 데이터의 중복을 피하기 위해 '관계'를 이용
- 하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 적음
noSQL의 핵심적 특징
- '스키마'와 '관계'가 없다.
- 다른 구조의 데이터를 같은 '컬렉션'에 추가 가능
- 여러 테이블에 나누어 담지 않고, 관련 데이터를 동일한 '컬렉션'에 넣는다.
- 데이터가 중복되어 서로 영향을 줄 위험 있음
- 자주 변경되지 않는 데이터일 때 noSQL을 사용하면 상당히 효율적이다.
SQL | noSQL |
명확하게 정의된 스키마, 데이터 무결성 보장 | 스키마가 없어 유연하나 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야함 |
관계는 각 데이터를 중복없이 한 번만 저장 | 데이터 중복을 계속 업데이트 해야함 |
관계를 맺고 있어서 조인문이 많은 복잡한 쿼리 생성됨 | 언제든지 저장된 데이터를 조장하고 새로운 필드 추가 가능 |
대체로 수직적 확장 가능 | 수직 및 수평 확장 가능 |
관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우 | 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우 |
변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우 | 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우 |
참고링크
728x90
'IT > Database' 카테고리의 다른 글
MySQL - 터미널 관련 명령어/DB CRUD 명령어/컬럼 옵션 (0) | 2021.12.19 |
---|