본문 바로가기

cs 기초지식/데이터베이스

SQL과 NoSQL의 차이

근본적인 차이는 SQL은 스키마를 사용하고 NoSQL은 그와 달리 스키마가 없다는 점에 있다.

데이터구조

SQL

-엄격한 스키마를 원칙으로 한다.

-스키마에 맞지 않는 형식의 데이터는 저장할 수가 없다.

엄격한 스키마를 가지고 있기 때문에 위의 테이블에서 한명의 고객만 이메일을 추가하거나 전화번호를 적지 않는건 불가능하다.

 

NoSQL

-스키마를 가지고있지 않다.

위 테이블처럼 NoSQL과 같은 경우 엄격한 스키마를 가지고있지 않기 때문에 꼭 형식에 맞게 작성하지 않아도 된다.

 

관계

SQL

Customers 테이블과 Products 테이블을 합쳐서 Orders 테이블로 만든 경우

 

SQL은 테이블 간의 관계 지정을 통해서 테이블을 접근할 수 있고 각 테이블의 메인키만 가져와서 새로운 테이블을 만든다. (위 예시에서는 Products 테이블과 Customers 테이블에서 메인 키들만 가져와서 Orders란 테이블을 새로 만들었다.) 그렇기 때문에 중복 없이 해당 데이터만 다룰 수 있다.

 

NoSQL

그와 반대로 NoSQL에서는 Orders 테이블에서 모든 정보를 다 볼 수 있도록 하나의 테이블에 정보를 전부 가져오는데, 이 때 중복 데이터가 발생할 수 있다.

예를 들어서 Customers에 이메일을 하나 추가했는데 Orders에는 추가하지 않았으면 문제가 발생하게 된다.

 

확장성

SQL

- 수직적 확장만을 지원.

- 수직적 확장 => 하드웨어를 업그레이드하거나 추가하여 서버의 성능을 향상시키는 것

 

NoSQL

-수평적 확장도 지원.

-수평적 확장 => 서버를 추가하면서 데이터베이스를 분산시킬 수 있는 것.

 

 

 

 

참고문헌

더보기

'cs 기초지식 > 데이터베이스' 카테고리의 다른 글

SQL Injection  (0) 2022.06.10
조인(JOIN)  (0) 2022.05.16
키(Key)  (0) 2022.05.14