본문 바로가기
Databases/SQL

데이터베이스 SQL vs NOSQL

by CodeMia 2021. 11. 12.

블로그 만들기를 하고 있다. 

매 번 서버를 리프레쉬하면 입력한 내용이 모두 날아가는 것을 보았다. 

그럼 이제는 입력한 내용을 저장해 놓을 데이터 베이스가 필요하다. 

 

 

internet live stats 사이트를 가보면 실시간으로 만들어지고 있는

어마어마한 데이터의 양을 알 수 있다. 

https://www.internetlivestats.com/

 

 

 

데이터 베이스가 필요한 것까지는 알겠는데 

이제는 어떤 데이터 베이스를 사용할 지 선택해야 한다. 

 

데이터 베이스는 크게 2가지로 나눠 볼 수 있다. 

 

 SQL 

Sequel bases

Structured Query Language 데이터 베이스 

 

많은 sql 데이터 베이스가 있다. 

customers details, products, inventories, orders..

Scalability: Good, 입력할 줄을 10만줄 이상 만들 수 있다. 

 

 

1. 장단점

장점:

old, reliable, it likes structure. 

데이터 빨리 찾을 수 있다. 

 

 

표 형식으로 만들어진 타입이다 

 

단점:

1. 변형이 어렵다 (인플랙서블inflexiable)

2. 카테고리에 없는 정보를 넣을 수 없다. 

3. 빈칸으로 둘 수가 없다.

대신 빈 칸을 null로 채워야 하는데 

null 아니기를 바라는 아이템 또는 아무런 데이터가 없을 때 

null 은 위험하다. ?

예를 들면 email 주소에 null로 되어있으면 이메일이 주소로 착각하고 null 로 그냥 보낸다. 

4. irregular 한 정보를 넣기 힘들다 

 

 

2. relationships: Relational 

한 손님이 여러 번와서 물건을 산 경우

매 번 겹쳐서 손님 정보를 적게 된다. 

 

하지만 SQL 데이터 베이스를 사용하면,

그 테이블 별로 그룹핑을 해서

각 테이블 간 관계를 구체적으로 명시하는 방법으로 연결해 놓을 수 있다. 

정리가 깔끔하고 데이터를 빨리 검색할 수 있다. 

 

 

 

 

3. Scalability 

No good ! scalability 어려움 

한 파일에 데이터가 계속 쌓이면 컴퓨터가 과부하 걸려서 읽는 속도가 점점 늦어진다. 

 

 

 

 

 

 


 

 NOSQL 

Not Only Structured Query Language 데이터베이스 

 

1. 장단점

1. SQL이 아니면 어떤 포맷이든 가능하다.

 

database of instagram, image url, description, created date..

Scalability: 

 

 

장점:  flexible, flasher, newer, modern syntax

데이터 스트럭쳐가 아직 정리되지 않은 스타트 업에 유리 

 

카테고리가 없어도 추가 정보 입력할 수 있다. 

 

정보 없으면 안적어도 된다.

 

 

몽고를 사용하면 같은 데이터는 JSON objects로 represented 된다.

key value pair로 나타내 주고 

엑스트라 key value pair를 추가해도

다른 데이터 레코드에 영향을 미치지 않는다. 

 

 

 

relationships: Non - Relational 

 

키: 벨류 페어로 저장 

customer키에 디테일들이 value로 되어있다 

products as its own embedded objects. 

now we have embedded objects in order to represent the entire order. 

And this might lead to some data repetition

 

 

데이터들을 다른 documents에 정리해 놓을 수 있다. 

 

 

 

reference를 사용해서 각각의 documents들을 연결할 수 있다. 

clumsy 하긴하다. 

그래서 데이터를 찾을 때 SQL보다 늦다. 

 

 

인스타그램처럼 유저 한 명이 여러 컨텐트를 생산해 내는 경우에 nosql을 쓰는 것이 유리하다.

 

 

각 장단점이 있기 때문에 상황에 맞게 데이터 베이스를 선택한다. 

 

 

 

Scalability 

Good !

scalability 때문에 nosql을 쓰는 경우가 많다. 

만약 sql에 10만 줄 이상 내용이 저장되어 있는 경우

데이터 읽는 속도가 엄청 늦어지고 성능이 엄청 좋은 컴퓨터로 바꿔야 할 것이다.

 

하지만 nosql 같은 경우는 작은 chunks

또는 더 작은 데이터 documents로 되어 있다.

각각의 기록 또는 각 표에서의 줄은 json object로 되어 있어 분산된 형태를 가지고 있다. 

 


 

 sql vs nosql 

'Databases > SQL' 카테고리의 다른 글

SQL INNER JOIN  (0) 2022.01.08
MYSQL 제약조건 알아보기 | NOT NULL | UNIQUE 등  (0) 2022.01.07
mysql CRUD  (0) 2022.01.06
맥에서 mysql 다운받는 법(Monterey OS)  (0) 2022.01.05

댓글