본문 바로가기

node.js - 데이터베이스(DB) / SQL / noSQL 본문

개발

node.js - 데이터베이스(DB) / SQL / noSQL

자전하는명왕성 2023. 1. 17. 23:20

데이터베이스 (DB)

데이터베이스는 데이터의 집합, 여러 정보들을 저장하여 운영하는 데이터의 묶음이다.

어떤 의미에선 아래와 같이 내가 작년 산책하던 기록을 저장한다면 그 또한 데이터베이스라고 볼 수 있다.

 

미래 개발자로서의 입장으로는 '컴퓨터 시스템에 저장되는 조직화된 데이터 모음'이라고도 정의할 수도 있다.

 

데이터베이스의 유형을 구분하는 것은 여러 갈래로 표현할 수 있겠지만,

오늘은 SQL 과 noSQL 에 대해 공부한 내용에 대해 다뤄보려고 한다.

 

먼저 SQL과 noSQL 에서 QL이 무슨 의미를 갖는지 알 필요가 있는데 다음과 같다.

QL(Query Language) : QL은 '질의어'라는 의미를 갖는데,

이는 DB에 저장되어 있는 데이터를 꺼내거나 저장시킬 수 있는 언어라는 의미를 가지고 있다고 한다.

(graphQL 에서 데이터를 호출할 때 사용한 'Query' 를 기억하면 좋을 것 같다.)

 

SQL

SQL은 Structured Query Language 의 약자로, 그 말마따나 '구조화 질의어'라는 의미다.

SQL은 '데이터와 데이터마다 각기의 연결고리를 가지고 어떤 약속에 의해 정리된 DB'에 접근하기 위한 쿼리 언어라고 볼 수 있을 것 같다.

** 이때 데이터끼리의 연결고리와 약속을 '스키마'라고 하며, 스키마에 따라 정리된 DB를 관계형 데이터 베이스라고 한다.

(관계형 데이터베이스는 편의점이나 가게처럼 특정 카테고리를 가지고 나열된 정보들이라고 보면 적당한 비유일 것 같다.)

그리고 대표적 SQL은 [ oracle, mySQL, SQL server ] 가 있다.

 

noSQL

noSQL 은 Not only SQL 또는 Not SQL 의 약자로, 위와 반대로 '비구조화 질의어'라는 의미다.

noSQL 은 SQL 이 아닌 모든 유형들을 총칭하며,

no라는 말이 앞에 붙은 것과 같이 데이터가 비구조화, 즉 비관계형 데이터베이스를 다루는 언어라고 볼 수 있다.

그러나 noSQL가 SQL과 반대되는 의미라고 하여 noSQL 에 스키마가 없는 것은 아니라고 한다.

단지 SQL에 비해 noSQL는 비교적으로 유연한 스키마를 제공하기에, 더 높은 확장성을 가질 수 있다.

noSQL의 유형은 다양하겠지만, 아래와 같은 유형이 대표적이다.

  • key, value 타입 : 객체처럼 key 와 value 로 데이터 저장
  • 문서 타입 : JSON과 유사한 문자열을 나열한 방식으로 저장
  • wide-column 타입 : 엑셀 파일과 같이 열과 행을 나누어 저장
  • 그래프 타입 : 그래프 형식으로 데이터 관계를 저장

그리고 대표적 noSQL은 [ Cassandra, MongoDB ] 가 있다.

 

그래서 SQL과 noSQL 중 어떤 것이 좋느냐 묻는다면 쉽게 답할 수 없다.

데이터베이스를 활용한 여러 사례를 살펴 자신의 상황에 맞는 것을 활용하는 것이 좋은 방법일 것이다.

'개발' 카테고리의 다른 글

코드캠프 후기  (0) 2023.03.10
코드캠프, 8주간의 회고록  (0) 2023.03.08
Comments