로켓🐾
article thumbnail
Published 2020. 12. 21. 22:02
[DB] RDS, NoSQL 그리고 NewSQL ...

https://www.toptal.com/database/database-design-bad-practices

0.0.1.  

0.0.2. 대부분 사람들은 데이터베이스와 데이터베이스 관리 시스템(DBMS : DataBase Management System)을 구별하지 않고 흔히 데이터베이스로 통합해서 말하곤 합니다. 하지만 정확히 이 둘의 개념은 엄연히 다릅니다. 

 

0.1.  

0.1.1. 데이터베이스 안에 데이터를 관리해주는 프로그램이 데이터베이스 관리 시스템입니다. 소위 아는 Mysql 나 오라클, 몽고비디 등이 있습니다.

 

0.1.2. 데이터베이스 관리 시스템은 1960년대에 개발되어 현재까지도 꾸준히 진화를 거듭하고 발전되고 있습니다. 사용하는 데이터 모델에 따라 4세대로 나눌수 있습니다.

  • 1세대인 네트워크 DBMS
  • 2세대인 관계 DBMS
  • 3세대인 객체지향 객체관계 DBMS
  • 4세대인 NoSQL, NewSQL DBMS

0.1.3. (데이터 모델이란? 데이터를 데이터베이스에 저장하는 구조를 의미합니다.)

 

1. 1세대 데이터베이스 관리 시스템 : 네트워크 DBMS

 

네트워크 계층 DBMS

 

1.0.1. 네트워크 DBMS는 데이터베이스를 노드와 간선을 이용한 그래프 형태로 구성하는 네트워크 데이터 모델을 사용합니다. 네트워크 DBMS는 간선을 이용해 데이터 간의 관계를 표현하기 때문에 데이터 베이스의 구조가 복잡하고 변경이 어렵습니다. 대표적인 예로는 IDS(Intergrated Data Store)가 있습니다.

 

 

IDS

 

 

2. 2세대 데이터베이스 관리 시스템 : 관계 DBMS

 

2.0.1. 관계 DBMS는 데이터 베이스를 테이블 형태로 구성하는 관계 데이터 모델을 사용한다. 우리가 흔히 사용하는 MySQL, 오라클, MSSQL이 2세대에 속하는 관계 DBMS입니다.

2.0.2.  

2.0.3. 관계 데이터 모델은 데이터베이스를 단순하고 이해하기 쉬운 구조로 구성한다는 장점이 있어, 지금까지도 가장 많이 사용되고 있는 데이터 모델이다. 대표적인 예로는 MySQL, 오라클 , MS SQL 등이 있습니다.

 


 

테이블 형태의 관계 테이터 모델의 예

 

 

3. 3세대 데이터베이스 관리 시스템 : 객체지향 객체관계 DBMS(RDS)

 

3.0.1. 객체지향 DBMS는 객체지향 프로그래밍에서 도입한 객체라는 개념을 이용하여 데이터베이스를 구성하는 객체지향 데이터 모델을 사용합니다. 기술이 발전함에 따라 더 복잡해지는 데이터를 관리하려고 제안되었습니다. 객체지향 DBMS는 새로운 유형의 데이터를 저장하고, 데이터에 대한 복잡한 분석 및 처리를 지원합니다. 대표적인 예로는 오투(O2), 온투스(ONTOS), 젬스톤 등이 있습니다.

 

 

O2

 

 

3.0.2. 객체관계 DBMS는 관계 데이터 모델에 객체지향 개념을 도입한 객체관계 데이터 모델입니다. 즉 2세대의 관계 DBMS과 3세대의 객체지향 DBMS를 합친것이라고 볼 수 있습니다.

 

3.1. 하지만 여전히 관계 DBMS 선호

 

3.1.1. 말이 3세대지 사실 일반적으로 단순하고 이해하기 쉬운 구조인 2세대 관계 DBMS를 더 많이 사용합니다. 하지만 객체 관계 DBMS의 사용자들도 최근 많이 늘어 둘이 사실 공존한다고 볼 수 있습니다.

3.1.2.  

4. 4세대 데이터베이스 관리 시스템 : NoSQL, NewSQL DBMS

 

4.0.1. 객체지향 DBMS와 객체관계 DBMS가 등장한 뒤에도 대표적인 데이터베이스 관리 시스템은 여전히 2세대인 관계 DBMS입니다. (3세대인 온투스, 젬스톤 DBMS는 구글에 이미지도 안나온다..) 대부분의 기업에서는 관계 DBMS의 장점을 그대로 유지하고 싶었고 3세대 DBMS에 큰 매력을 느끼지 못했습니다. 그러나 SNS를 이용하는 사용자수가 폭발적으로 늘어나면서 비정형 데이터가 넘쳐나기 시작했습니다. 이와 더불어 클라우드 컴퓨팅, 빅데이터가 등장하면서 관계 DBMS 입지는 흔들리기 시작했습니다. 관계 DBMS로는 비정형 데이터를 감당할 수 없었습니다.

 

4.1. NoSQL이 주목을 받다!

 

4.1.1. 이러한 시대적 흐름에 따라 NoSQL DBMS가 나타났습니다. NoSQL DBMS는 관계 DBMS의 안정성과 일관성을 포기한 대신, 데이터 구조를 미리 정해두지 않았기 때문에 비정형 데이터를 저장하고 처리하는데 적합했습니다. 그리고 확장성이 뛰어나 여러 대의 서버 컴퓨터에 데이터를 분산하여 저장하고 처리하는 환경에서 주로 사용할 수 있습니다. 특히, 구글, 페이스북, 트위터 같은 SNS 회사들이 NoSQL의 필요성을 강조하면서 더욱 주목받고 있습니다. 대표적인 예로는 몽고비디, HBase, Redis, Orient DB가 있습니다.

 

 

몽고디비와 redis

 

4.2. RDS의 장점 + NoSQL의 장점 = NewSQL

 

4.2.1. NoSQL이 주목 받고 있다 하지만 여전히 각 기업에서 처리하는 데이터는 정형 데이터가 대부분이기 때문에 여전히 관계 DBMS를 중요하게 여겼습니다. 따라서 기업들은 관계 DBMS를 유지하면서 비정형 데이터를 처리하기 위한 NoSQL도 추가로 도입해야 했습니다. 이와 같은 불편함이 NewSQL DBMS의 등장을 이끌었습니다. 2011년에 처음 언급된 NewSQL DBMS는 안정성과 일관성을 유지하면서도 SQL을 이용해 다양하고 복잡한 데이터 처리를 편리하게 요청할 수 있습니다. 즉 관계 DBMS의 장점과 NoSQL의 확장성 및 유연성 모두 지원하게 된것입니다. 대표적인 예로는 구글의 Spanner, VoltDB, NuoDB 등이 있습니다.

 

차례대로 구글의 spanner, VoltDB, NuoDB

4.2.2. NewSQL의 이러한 엄청난 장점 덕분에 관계 DBMS와 NoSQL를 완전히 대신할 거란 생각은 절대 금물입니다. NewSQL는 2011년에 처음 언급된 만큼 나온지 얼마 안된 DBMS이므로 많은 연구가 필요합니다. 따라서 아직까지는 관계 DBMS와 NoSQL, NewSQL이 상호 보완하면서 공존할 것으로 예상됩니다.

4.2.3.  

4.2.4. 사용자는 저장할 데이터의 형태, 업무 처리 성격 등을 고려해서 적합한 DBMS를 선택하면 됩니다.

4.2.5.  

4.2.6. 정형, 비정형 데이터가 궁금하다면?

 

[DB] 정형, 반정형, 비정형 데이터

데이터베이스의 가장 원초적인 목적은 데이터를 수집하는 것입니다. 내가 필요한 데이터를 수집하기 위해선 먼저 수집 대상이 되는 데이터의 유형을 파악하고 있어야 합니다. 일반적으로 데이

kingofbackend.tistory.com

4.3. 읽어주셔서 감사합니다.

4.4. 질문은 언제나 환영합니다.

4.5.  

4.6. "난 반드시 백엔드 왕이 될거야"