[database] SQL과 NoSQL 차이

Hyebin·2021년 8월 25일
0

DB

목록 보기
2/4
post-thumbnail

SQL(Structured Query Language)

관계형 데이터베이스에서 사용되는 구조화된 쿼리 언어

관계형 데이터베이스는 행과 열고 구성된 테이블에 데이터를 저장한다.

  • 행(row) : 하나의 속성에 대한 정보를 저장
  • 열(column) : 각각의 데이터 형식에 맞는 데이터가 저장
  • 스키마(schema) : 테이블

테이블 간에 관계들이 어떻게 되는지 보인다.
대표적인 SQL은 MySQL, Oracle, SQLite, PostgresSQL, MariaDB 등 이다.

NoSQL

데이터가 고정되어 있지 않은 데이터베이스, 즉 비관계형 데이터베이스에서 사용되는 쿼리 언어

대표적으로 MongoDB, Redis, Dynamo, Cassandra, HBase 등 이다.

SQL과 NoSQL의 차이

1) 데이터 저장(Storage)

  • 관계형 데이터베이스는 SQL을 이용해서 데이터를 테이블에 저장한다. 미리 작성된 스키마 현식에 맞게 데이터를 저장해야한다.
  • NoSQL은 key-value, document, graph, wide-column 형식등으로 데이터를 저장할 수 있다.

2) 스키마(Schema)

  • SQL은 고정된 스키마가 필요하다. 스키마를 수정할 수는 있지만 그럴 때는 데이터베이스 전체를 수정해야 한다.
  • NoSQL은 SQL 보다 동적이다. 행을 추가할 때 즉시 열을 함께 추가할 수 있고, 개별 속성에 대해서 모든 열에 대한 데이터를 반드시 입력하지 않아도 된다.

3) 쿼리(Querying)

  • 관계형 데이터베이스는 테이블 형식과 관계에 맞춰 데이터를 요청해야 하기 때문에 SQL로 요청한다.
  • 비관계형 데이터베이스는 데이터 그룹 자체를 조회하는 것에 초점을 두기 때문에 NoSQL로 요청이 가능하다.

4) 확장성(Scalability)

  • SQL 기반의 관계형 데이터베이스는 보통 수직적으로 확장한다. (높은 메모리, CPU를 사용하는 확장)
    데이터베이스가 구축된 하드웨어의 성능을 많이 이용하기 때문에 고비용이 들게 된다.

  • NoSQL로 구성된 데이터베이스는 수평적으로 확장한다. (보다 값싼 서버 증설, 또는 클라우드 서비스 이용하는 확장) 저렴한 범용 하드웨어나 클라우드 기반의 인스턴스에 NoSQL 데이터베이스를 호스팅할 수 있어서, 수직적 확장보다 비용 효율성이 높다.

0개의 댓글