개발 일지/SQL

[DB] SQL / NoSQL

미숫가루설탕많이 2023. 1. 30. 12:58

 데이터베이스는 크게 관계형 데이터베이스와 비관계형 데이터베이스로 구분한다.

 

 관계형 데이터베이스는 SQL을 기반으로, 비관계형 데이터베이스는 NoSQL로 데이터를 다룬다. 이 둘은 만들어진 방식과 저장하는 정보의 종류, 저장하는 방법 등에서 차이가 있다.

 

 SQL(구조적 쿼리 언어)은 일관된 데이터 조작 언어를 제공하지만 NoSQL 구현은 서로 다른 기술에 따라 달라진다.

 

 먼저 관계형 데이터베이스는 특정한 형식을 지키기 때문에 데이터를 사용할 때 수월하다. SQL을 활용해 원하는 정보를 쿼리 할 수 있는데, 이 말은 스키마가 뚜렷하게 보인다는 말과 같다. 즉, 관계형 데이터베이스에서는 테이블 간의 관계를 직관적으로 파악할 수 있다.

 

 대표적인 관계형 데이터 베이스는 MySQL, Oracle, SQLite, PostgresSQL, MariaDB 등이 있다.

 

 NoSQL은 주로 데이터가 고정되어 있지 않은 데이터베이스이다. 관계형 데이터베이스에서는 데이터를 입력할 때 스키마에 맞게 입력해야 하는 반면, NoSQL은 데이터를 읽어올 때 스키마에 따라 데이터를 읽어온다. 이런 방식을 'schema on read'라고도 한다.

 

 대표적인 NoSQL은 MongoDB, Casandra 등이 있다.

 

 개발자는 트랜잭션 분석 및 애플리케이션에 SQL을 주로 사용하고, NoSQL은 응답성이 높고 사용량이 많은 애플리케이션에 사용한다.

 

 

 

 

SQL 기반의 데이터베이스와 NoSQL 데이터베이스의 차이점

 

데이터 저장(Storage)

  • 관계형 데이터베이스는 SQL을 이용해서 정해진 형식에 맞게 데이터를 테이블에 저장한다.
  • NoSQL은 key-value, document, wide-column, graph 등의 방식으로 데이터를 저장한다.

 

스키마(Schema)

  • SQL은 고정된 형식의 스키마가 필요하다.
  • NoSQL은 관계형 데이터베이스보다 동적으로 스키마의 형태를 관리할 수 있다.

 

쿼리(Querying)

  • 관계형 데이터베이스는 테이블의 형식과 테이블 간의 관계에 맞춰 데이터를 요청해야 한다.
  • 비관계형 데이터베이스는 데이터 그룹 자체를 조회하는 것에 초점을 두기 때문에 구조화되지 않은 쿼리 언어로도 데이터 요청이 가능하다. UnQL(UnStructured Query Language)이라고도 한다.

 

확장성(Scalability)

  • SQL 기반의 관계형 데이터베이스는 수직적으로 확장한다. 높은 메모리 CPU를 사용하는 확장이라고도 한다.
  • NoSQL로 구성된 데이터베이스는 수평적으로 확장한다. 보다 값싼 서버 증설 또는 클라우드 서비스를 이용하는 확장이라고도 한다.

 

 

 

 

SQL 기반의 관계형 데이터베이스를 사용하는 케이스

 

  • 데이터베이스의 ACID 성질을 준수해야 하는 경우

  • 전자 상거래를 비롯한 모든 금융 서비스를 위한 소프트웨어 개발

  • 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우

 

 

 

 

NoSQL 기반의 비관계형 데이터베이스를 사용하는 케이스

 

  • 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장하는 경우

  • 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

  • 빠르게 서비스를 구축하는 과정에서 데이터 구조를 자주 업데이트 하는 경ㅇ

'개발 일지 > SQL' 카테고리의 다른 글

[SQL] ANSI Join  (0) 2023.08.01
SQL 공부의 필요성  (0) 2023.07.14
[DB] SQL  (0) 2023.01.30