loading...

[IT에 한 걸음 더 다가가기] SMAC의 대량 데이터 처리를 위한 DBMS기술! (1편)

12

현재 스맥(SMAC) 기술을 주제로 연재가 되고 있는데, 첫 번째는 스맥(SMAC)의 서비스 및 솔루션을 Agile하게 개발 가능토록 해주고 획기적으로 구축 비용을 절감해주는 오픈소스SW 기술이었죠? [관련 기사 바로 가기: IT 미래를 혁신할 오픈소스SW, 그것이 알고 싶다! (1)] 두 번째로 다룰 주제는 ‘SMAC의 대량 데이터 처리를 위한 DBMS기술 입니다. 여러분이 자주 사용하는 카카오톡, 페이스북과 같은 SNS(Social Network Service)나 위치기반 서비스를 활용하는 모바일 기기의 다양한 센서들은 대량의 데이터들을 동시다발적으로 발생시키는데, 이들 데이터를 적기에 정확하게 처리해야만 사용자들에게 만족된 서비스를 제공할 수 있습니다. 특히, Analytics 분야에서는 이들 대량 데이터를 실시간으로 가공·처리하여 사용자에게 의미 있는 정보를 적기에 피드백함으로써 의사결정을 할 수 있게 도움을 줍니다. 

이처럼 스맥(SMAC) 서비스와 솔루션에서 가장 필수적인 핵심기술 중 하나는 대량의 데이터 처리를 적기에 처리할 수 있는 DBMS기술입니다. DBMS는 여러 IT기술 중 역사가 오래된 Classic한 기술이면서 비즈니스의 변화에 따라 다양한 변화를 해온 Hot한 기술이기도 합니다. 하여, 이제부터 연재 형식을 빌어 DBMS의 개념부터 최근 각광을 받고 있는 NoSQL, NewSQL 등 다양한 형태의 DBMS의 기술 Trend에 대해 소개해 드리고자 합니다. 오늘은 제1화를 준비했으니 함께 보시죠.

제 1화 : DBMS기술의 개념과 Trend

2: NoSQL이란?

3: NewSQL이란?

제 4화 : In-Memory DBMS이란?

제 5화 : Polyglot Persistence란?

3
4

DBMS(Database Management System)라는 용어는 다들 많이 들어보셨을 것으로 생각됩니다. DBMS라는 단어를 풀어 보면 Database Management System으로 나누어 볼 수 있습니다. 일부에서는 두 개의 용어를 혼용해서 사용하기도 하는데 기술적으로는 명확히 의미가 다르므로 이 기회에 상세히 알아보고 넘어가도록 하겠습니다.

Database는 다양한 사용자와 서비스 등에서 사용할 수 있게 통합 저장되어 운영되는 데이터들의 집합을 말합니다. , Database는 논리적으로 관련이 높은 여러 자료들을 구조화하여 중복을 최소화하고 외부에서 효율적으로 검색하거나 조작할 수 있게 구조화되어 있는 데이터의 집합을 말합니다.

Database Management System은 이 Database를 효율적으로 응용하기 위해 필요한 다양한 기능의 소프트웨어를 말합니다. 다시 말하면, 아래 그림과 같이 DMBS Database를 체계적으로 관리하여 다양한 응용프로그램들이 활용할 수 있는 환경을 만들어 주는 소프트웨어를 말합니다.

5

Database Database Management System

그러면 이러한 DBMS는 언제, 왜 만들어졌을까요?

최초의 범용 DBMS 1960년대 초반 GE Charles Bachman에 의해 최초로 설계되었고 이후 1960년대 말에 IBM에서 IMS라는 제품으로 상용화한 것으로 알려져 있습니다. IMS는 요즘도 사용되고 있는 DBMS제품이라고 하니 가히 모든 DBMS의 원조라고 할 수 있겠습니다.

DBMS 개념이 나오기 전에는, 데이터의 저장, 관리를 위해서 File 형태의 데이터 구조를 사용했습니다. 단순한 응용프로그램에서는 File 기반에서의 데이터 관리가 문제 되지 않았지만 다수의 사용자가 동일한 정보시스템을 사용하게 되고 처리해야 하는 데이터의 규모가 커지면서 그 한계가 나타나기 시작했습니다. , 응용프로그램과 데이터의 종속성으로 인해, 데이터 구조를 변경하면 응용프로그램도 연쇄적으로 변경되어야 했고 데이터의 중복 저장 관리로 인해 File 간 중복된 데이터의 내용이 일치하지 않거나 중복되어 있는 모든 데이터 간에 동등한 수준의 보안을 유지하기 어려웠습니다. 이외에도 저장공간의 낭비와 일관성을 유지하기 위한 불필요한 작업들, 데이터의 정확성 유지 등 여러 가지 어려움이 있었습니다.

DBMS에서는 상기 그림에서 보다시피 Database DBMS, Application 간의 독립적인 분리를 통해 데이터 중복 최소화, 일관성 유지, 무결성 유지, 보안성 유지, 데이터의 독립성을 보장할 수 있게 되었습니다. DBMS는 데이터 관리에 있어서 기존 File 기반 데이터 관리의 문제점을 해결한 획기적인 혁신이라고 볼 수 있습니다.

6

앞서 데이터베이스의 개념에 대해서 상세하게 알아보았는데, 데이터를 어떤 방식으로 효율적으로 구조화해서 운영하느냐에 따라 계층형, 네트워크형, 관계형, 객체지향형 등 다양한 종류의 DBMS로 분류할 수 있습니다. 이러한 데이터 모델에 따른 구분 외에, 데이터의 저장매체에 따라 메인 메모리를 저장매체로 사용하는 In-Memory DBMS와 Disk 기반의 DBMS, 두 가지 방식을 혼용해 사용하는 Hybrid Storage DBMS로 분류하기도 합니다. 또한 DBMS에 저장된 데이터의 활용 방식에 따라 Operational DBMS, Data warehouse DBMS, Hybrid DBMS로 구분하기도 합니다. 본 연재에서는 데이터 모델의 분류에 따른 종류만 알아볼 예정입니다.

◆ 계층형(Hierarchical) DBMS
1960년대 말 IBM에서 최초로 상용화한 DBMS, 아래 그림과 같이 Tree 형태의 데이터 모델을 갖는 방식입니다. 비즈니스에 사용되는 데이터가 Tree 형태로 모델링 될 수 있을 때 가장 빠른 속도와 효율성을 제공하는 DBMS입니다. 단점으로는 데이터 접근 방식을 응용프로그램에서 미리 정의해야 하므로 유연성이 떨어지고 데이터들이 링크 방식으로 연결되어 있어 구조변경이 용이하지 않습니다. 이 유형의 상용 DBMS로는 IBM IMS 등이 있는데, 현재 많이 사용되지는 않습니다.

7

계층형DBMS

◆ 네트워크(Network) DBMS
데이터들은 노드(Node), 데이터들의 관계는 네트워크()으로 표현되는 DBMS입니다. 이 모델은 현실 관계를 가장 잘 표현하는 모델이지만 구조가 복잡해지는 단점이 있습니다. 계층형과 마찬가지로 데이터 구조변경이 어렵습니다.상용DBMS로는 IDS(Integrated Data Store), IDMS(Integrated Database Management System), Raima Database Server(RDM) 등의 제품이 있습니다.

8

Network DBMS

◆ 관계형(Relational) DBMS
현재 가장 많이 사용되는 DBMS로, 정보시스템의 발전에 가장 많은 기여를 한 DBMS입니다. 간단하고 이해하기 쉽고 사용하기가 용이합니다. 2차원 형식의 단순하고 직관적인 테이블을 사용하는데, Relation이라는 수학적인 개념을 도입하여 체계적인 이론에 기반을 두어 구현된 DBMS입니다. 관계형 DB의 이론은 1970년대부터 정립되었고 최초로 상용화한 것은 1979년 Oracle사에서 출시한 제품입니다. 상용 DBMS로는 Oracle, IBM DB2, MS SQL Server, MySQL, PostgreSQL 등이 있습니다.

9

관계형 DBMS

객체지향(Object Oriented) DBMS
객체지향 언어에서 사용되는 객체들을 그대로 저장할 수 있는 DBMS로, 멀티미디어 및 복합 데이터의 저장 및 관리의 요구에 의해 개발되었습니다. 상용 DBMS로는 Illustra, GemStone, Realm 등의 제품이 있으며, 현재는 객체지향 언어의 객체들도 OR-Mapping을 통해 관계형 DBMS에 많이 저장되고 있습니다.

 

객체 관계(Object Relational) DBMS

기존의 관계형 DBMS에, 객체를 저장할 수 있는 기능을 추가한 형태입니다. 관계형 DBMS 업체에서 객체지향형DBMS와 관계형 DBMS의 장점을 결합하려는 시도로 대부분의 메이저급 회사들에서 객체 관계형 DBMS 버전을 출시하고 있습니다.

10

응용프로그램을 개발할 때 C, C++, Java와 같은 프로그래밍 언어를 사용하게 되는데, DBMS에서도 데이터베이스에 저장된 데이터를 조회, 수정, 삭제, 추가할 수 있는 특화된 언어가 있습니다. 관계형 DBMS에서 사용하는 SQL(Structured Query Language)가 가장 대표적인 것으로, IBM에서 최초로 개발하여 ANSI ISO에 의해 표준으로 채택되었고 현재 거의 모든 DBMS의 기본 언어로 적용하고 있습니다. 많은 DBMS에서 표준 SQL을 지원하고 있으며, 부가적으로 DBMS마다 자신의 제품에 고유한 기능의 SQL을 추가하여 제공되고 있습니다.

SQL은 데이터베이스를 정의하는 DDL(Data Definition Language), 데이터베이스를 제어하는 DCL(Data Control Language), 데이터를 검색, 입력, 갱신, 삭제 시에 사용하는 DML(Data Manipulation Language)로 나눌 수 있습니다.

 

11

Global IT Research 기관인 Gartner에서는 정기적으로 주요 IT영역에 대해 “Magic Quadrant”라는 SW제품에 대한 현황 보고서를 발간하고 있습니다. 아래 그림은 2014 10월에 발간된 “Magic Quadrant for Operational Database Management Systems”에서 발췌한 이미지입니다. 실행력(Ability to Execution)Vision(Completeness of Vision)의 양 축으로 주요 DBMS 업체들을 평가하고 있습니다. 이 보고서에서 볼 수 있듯이 Oracle, Microsoft, SAP, IBM Top Leader로 자리 잡고 있고 InterSystems, EnterpriseDB, MarkLogic, MariaDB가 다음으로 위치하고 있습니다.

시장점유율 측면에서도 상위 4개사 제품이 시장의 90% 이상을 차지하고 있습니다.

 

12

기업들이 지속적으로 IT 자원을 더 현명하게 사용하는데 집중하게 되고 TCO(Total Cost Ownership) 절감에 대한 요구가 점점 더 커짐에 따라, 새로운 DBMS 기술과 Tool의 도입과 legacy DBMS의 폐기를 Driving하게 됩니다.

그림에서 보듯이 Advantage, Choice 단계에 등장하는 Graph DBMS, Table Style DBMS, Key-Value DBMS, Document Store DBMS와 같은 새로운 유형의 NoSQL, 그리고 In-Memory DBMS 등과 새로운 구조를 가진 신기술 기반의 제품들이 속속들이 등장하고 있습니다.(다음 연재에서 다루게 될 주제입니다.) 이런 기술들은 새로운 비즈니스 애플리케이션의 등장을 가능하게 하고 이전에는 불가능했던 다양한 시스템의 가용성을 높이도록 해 줍니다. Cloud-based deployment model 적용과 DB Platform as a service(dbPaaS)는 새로운 delivery method로 성장하고 있음을 보여주고 있습니다.

DBMS의 기본 개념과 Trend에 대한 소개는 여기까지입니다. 다음 연재에서는 Gatner 리서치 자료에서도 여러 제품들이 언급되고 있는“NoSQL DBMS”에 대해 상세하게 소개해 드리도록 하겠습니다.

<참고자료>

http://en.wikipedia.org/wiki/Database, 위키피디아

http://www.gartner.com/home, 가트너

 

 

13

이 글이 좋으셨다면 구독&좋아요

여러분의 “구독”과 “좋아요”는
저자에게 큰 힘이 됩니다.

subscribe

구독하기

subscribe

공유하기