SQL과 NoSQL

강인호·2022년 10월 14일
0

개인저장

목록 보기
34/87

참고영상
참고영상2
(둘다 노마드코더)

SQL과 NoSQL

SQL과NoSQL도 개발자의 기본적인 소양이라고 한다.

찾아보니 DB관련 언어인 것 같고 글들을 읽어보니 백엔드 분들이 하시던

스키마라던지 테이블 등등의 단어가 나왔고 노마드코더님의 강의를 보며 정리를 해보았다.

(스키마가 무슨 뜻인지 몰랐는데 DB에서의 자료의 구조, 형식, 표현방법 등을 형식언어로 정의해 놓은 구조라고 한다)

SQL

데이터베이스를 다루기 위해 특별히 디자인된 언어

SQL은 관계형 데이터 베이스로서 관계를 통해 분산된 여러 개의 테이블에 데이터가 분산되는 특징이 있다.

데이터는 테이블에 Rows로 저장되며 각 테이블에는 명확하게 정의된 구조가 있다.

관계형 데이터 베이스에서 스키마를 준수하지 않는 Row는 추가될 수 없다.

Row : 단일 구조 데이터 항목

NoSQL

어떠한 형식중의 하나가 아닌 SQL을 사용하지 않는 모든 DB는 NoSQL의 범주에 들어간다.

3가지의 큰 형식이 있는데,

document DB

MongoDB가 대표적인 예시로 데이터를 json document 형태로 저장한다.

데이터의 구조에 엄격한 SQL과 달리 다양한 형태의 데이터를 저장할 수 있고 같은 모양일 필요도 없다.

key value DB

대표적으로 CassandraDB와 DynamoDB가 있으며

CassandraDB 는 읽고 쓰는 속도가 매우 매우 빠르기 때문에 많은 양의 데이터를 빠르게 저장하거나 검색 엔진 처럼 많은 양의 데이터를 빠르게 읽어야 할 때 사용한다.

DynamoDB 는 서버리스, 분산된 key valueDB 이며 1초에 24000개의 읽기가 지원될 정도로 속도가 빠르다.

key valueDB는 이러한 빠르고 많이 쓰고 많이 읽어야 하는 상황에서 사용된다.

graph DB

대표적으로는 페이스북에서 자체 개발한 Tao가 있다.

document, column으로 저장하는 것 이 아닌 각각의 entity를 저장하고 이를 관계망으로 연결한다.

데이터들끼리 관계망으로 엮여있는것이 특징이다(유저 1이 사진 1을 게시하고 유저2는 유저1의 친구이고..등등)

때문에 소셜 네트워크 서비스에서 주로 사용한다.

( 사진 출처 https://hadoop4korea.wordpress.com/2012/04/14/nosql/)

0개의 댓글