4.SQL과 NOSQL의 차이
∙SQL
∘RDBMS에서 데이터를 CRUD할 수 있다
-데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
-정해진 구조에 맞는 레코드만 추가 가능하다.
-중복을 피하기 위해 데이터는 관계를 통해 여러 테이블에 분산된다.
-장점: 데이터 무결성 보장, 데이터를 중복 없이 저장
-단점: 유연하지 않다. 복잡한 쿼리문 발생 가능, 대체로 수직적 확장만 가능
-변경 사항이 반영되는 동시에 반영되어야하는 문제 등으로 일관성 보장이 어려워 수평적
확장이 어렵다.
-스키마가 명확하거나 데이터가 자주 변경될 때 유리하다.
∙NOSQL
∘SQL의 반대로 스키마와 관계가 없다
-다른 구조의 데이터를 같은 컬렉션에 추가할 수 있다.
-데이터를 여러 테이블에 나누어 담지 않고 동일한 컬렉션에 넣는다.
-정보를 나누어 담지 않으므로 JOIN의 개념이 없다.
-장점: 유연하다. 데이터를 읽어오는 속도가 빠르다. 수직 및 수평 확장 가능
-단점: 데이터가 중복, 중복 된 데이터를 여러 번 수정
-데이터 구조가 변경이나 확정 될 수 있거나, 데이터 읽기를 자주 하고 변경은 자주 안할 때
유리하다.
∙확장
∘처리할 작업량이 늘어남에 따라 기능이나 크기를 키우는 것
➀수직적 확장: 기능의 확장, 컴퓨터 성능 향상, 스케일업
➁수평적 확장: 크기의 확장, 서버를 늘려 병렬 연산, 스케일아웃
출처