BigData

Graph DB 와 RDBMS 트랜드 1부- DBMS의 역사와 이론들

IT오이시이 2020. 3. 21. 17:22
728x90

Graph DB 와 RDBMS 트랜드 1부- DBMS의 역사와 이론들

 

[Graph DB 와 RDBMS 트랜드]
1부- DBMS의 역사와 이론들
2부- 그래프 데이터베이스의 개념
3부- 그래프 데이터베이스의 종류와 활용

 

지난 20년간 우리는 데이터베이스라고 하면 RDBMS 라는 것으로 생각해 왔다. 필자 역시 20년 부터 오라클,Mysql 등을 공부하면서 웹개발 부터 다양한 시스템 플랫폼을 구축해왔다.

아키텍처라고 하면 개발부터 시스템 전반적인 부분에 대한 인지가 필요하듯 이번에 GraphDB에 대한 관심을 가져 보았다. Graph DB를 논하기 전에 데이터 부터 DBMS에 이르는 Historic한 이야기가 필요하다.

DBMS의 역사

데이터 베이스에 대한 기술을 정리하려면 COBOL( COmmon Business-Oriented Language),엑셀과 같은 Access 등 점차 생소한 기술이 사용되기 훨씬 이전의 시대로 거슬러 올라가봐야 한다. 그만큼 오랜 시간을 걸쳐 데이터 관리과 이를 위한 시스템 기술의 발전이 지속적으로 변화되어 왔다는 것을 이해하여야 한다.
마찬 가지로  Graph DB라는 기술 역시 최근에 만들어진 것이 아니라 적어도 50년 이상에 걸쳐 변화하고 다듬어지며 비즈니스의 필요성( Needs)에 의해서 만들어진 것임을 알고 있으면 좋겠다.

 

DBMS의 역사

 

데이터베이스 및 데이터베이스 관리 시스템

흔히 데이터 베이스라는 것을 공부하면 데이터 와 데이터 관리를 위한 데이터베이스 관리시스템 부터 이야기 한다.

처음에는 단순한 Text 또는 시계열 기반의 데이터를 가진 파일 기반의 SAM파일에서 시작해서 특정 데이터를 인덱싱 함으로써 대량의 파일을 빠르게 Access 하도록 고안된 ISAM 방식을 거쳐 최근의 RDBMS에 이르는 기술의 변화가 있었다.

일반적인 데이터베이스의 계보는 아래 그림과 같지만 이것 말고도 데이터 기술의 발전은 요구되는 분야의 특성에 따라 발전 된 것들이 있다. 그 중에 언급 할 것은 계층형 DBMS와  검색 엔진이다.

Network 구조를 표현하는 계층형 DBMS로 LDAP 같은 기술은 시스템 관리 또는 응용 프로그램에 많이 사용되고 있고, 이와 유사한 MS의 Active Directory 같은 기술도 최근 까지 사용 되고 있다.

검색엔진은 구글과 같은 인터넷 기업들을 통해서 crawling 된 다양한 문서들을 저장하고 검색하기 위해서 데이터 관리보다 데이터를 수집하고 검색하는 기술에 많은 발전이 있었다. 이는 다양한 데이터를 단어, 어휘 기반으로 인덱싱하고 빠르게 찾을 수 있도록 indexing 구조와 메모리 기반의 처리 기술을 통해서 발전되어 왔다.

최근 지식 검색 또는 인공지능과 같은 언어학을 기반으로 데이터 처리보다 어휘를 이해하고 정보를 지식화 하는 기술로 네트웍 기반의 기술을 활용한 GraphDB의 기술이 요구되는 것도 그 당시의 시대적인 요구와 시스템 기술의 뒷받침에 의한 변화라는 것을 잊지 않아야 한다.

시스템의 관점에서 보면  빠지지 않는 것이 파일 저장 장치의 발전이다. 카세트 테이프같은 마그네틱 릴테이프에 저장하던 시절에는 파일 기반의 데이터 관리로 파일 시스템을 많이 사용했다. 그 이후 Floppy 디스크나 하드 디스크가 나오면서 Random  Access가 가능하면서 데이터에 대한 빠른 접근이 필요하여 인덱스를 통해서 데이터를 쉽게 접근하고 많은 량의 데이터를 효과적으로 저장하기 위한 구조로 변화 되는 과정이 DBMS 관점의 변화와 역사의 시작이라고 볼수 있다.

파일시스템과 DBMS

또 RDBMS가 발달하게 되는 것은 메인 메모리의 발전과도 관련이 있다. 메모리 용량이 커지면서 빠른 검색과 처리를 위해서 메모리에 데이터를 쉽고 빠르게 올릴수 있는 아키텍처가 연구되면서 데이터를 부분적으로 메모리로 로딩하고 Cache하여 처리하는 기술들이 보급된 것이 RDBMS의 또다른 시각에서 바라보는 기술의 변화이다. 특히 오라클의 SGA (System Global Area)와 같은 메모리 풀은 Mysql의 Innodb에서도 그런 아키텍처를 볼수 있다.

CAP이론과 RDBMS 그리고 NoSQL, 빅데이터

여기에는 단순하게 데이터를 빠르게 접근 하는 것 뿐만 아니라 순차적으로 들어오는 대량의 insert, Update와 같은 CRUD : Create(생성), Read(읽기), Update(갱신), Delete(삭제) 와 같은 Transaction 을 시리얼하게 처리하기 위한 공간이 요구되기 시작한 것이다. 이를 통해서 Data의 일관성 (Data Consistency)과 ACID(원자성, 일관성, 고립성, 지속성), 데이터 무결성 (Data Integrity)를 강조하면서 파일시스템 보다 훨씬 복잡한 데이터 관리 시스템이 등장하게 되었다.

구분 내용
Atomicity (원자성) 트랜잭션의 작업이 부분적으로 실행되거나 중단되지 않는 것을 보장하는 것
- 트랜잭션은 분해가 불가능한 최소의 단위로서 연산 전체가 처리되거나 전체가 처리되지 않아야 함(All or Nothing)
- Commit, Rollback 연산, 트랜잭션관리
Consistency(일관성) 트랜잭션이 성공적으로 완료되면 일관적인 DB상태를 유지하는 것
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태를 보존함
- DBMS의 무결성 제약조건
Isolation (고립성) 트랜잭션 수행시 다른 트랜잭션의 작업이 끼어들지 못하도록 보장
- 트랜잭션이 실행 중에 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근할 수 없음
- 동시성제어
Durability (영속성) 성공적으로 수행된 트랜잭션은 영원히 반영이 되는 것
- 성공이 완료된 트랜잭션의 결과는 영구()적으로 저장됨
- Recovery관리

 

CAP (Consistency, Accessiblity, Partition Tolerance)이론은 분산데이터 베이스에 대한 이론으로 등장하게 되었다. 이를 통해서 기존의 하나의 데이터베이스를 기반으로 관리되던 것에서 여러 시스템으로 구성된 분산 시스템에 대한 이론이연구되기 시작하였다. 이때 많이 비교하는 것이 빅데이터와 NoSQL 의 이야기 들이 논의 되는 것이다.

 분산시스템에서 CAP이론은 

* 일관성(Consistency)은 모든 노드에서 같은 시간에 동일한 항목에 대하여 같은 내용의 데이터를 사용자에게 보여준다. 
* 가용성(Availability)은 모든 사용자들이 읽기 및 쓰기가 가능하고, 노드의 장애 시에도 다른 노드에 영향을 미치지 않는다.
* 생존성(Partition tolerance) :  노드 간의 메시지 손실(부분 결함)이 있어도 정상적으로 동작해야 한다.
 

 

CAP 이론

CA Cateegory 메시지 손실을 방지하는 강한 신뢰형
  • 일반적 RDBMS
  • 오라클, Mysql, Postgres,Sybase,DB2 등
CP Category 데이터 보다는 성능이 중요한 퍼포먼스형
  • Big Table
  • MongoDB
AP Category 일관성을 크게 요하지 않는 서비스에 적합
  • CouchDB
  • Cassandra

이와 같이 데이터 베이스의 역사는 다양한 기술적인 이론들을 바탕으로 정리되고 있다.
Graphdb와 같은 DBMS는 아래 그림 아주 끝에 차지하는 작은 부분이다.

 

 

 

현재는 DBMS와 같은 기술보다 빅데이터(BigData) 관련된 이야기들이 기존의  DBMS에 대한 이론들보다 우선하여 이루어 지고 있다. 그러면서 기존의 내용을 이해하지 못하고 최근의 기술로 접근하여 해결하다보니 오히려 더 어렵게 문제를 해결하거나 기술의 융합을 하지 못하는 상황들도 보인다.

데이터베이스는 종합적인 아키텍처의 근간이다.  파일시스템 부터 검색엔진 DBMS에 이르는 다양한 방식들의 존재를 보고 기술을 정리해나가면 좋겠다.

 

 

 

[Graph DB 와 RDBMS 트랜드]
1부- DBMS의 역사와 이론들
2부- 그래프 데이터베이스의 개념
3부- 그래프 데이터베이스의 종류와 활용

 

[Graph DB 와 RDBMS 트랜드 2부- 그래프 데이터베이스의 개념]

 

Graph DB 와 RDBMS 트랜드 2부- 그래프 데이터베이스의 개념

그래프 데이터베이스란? 그래프 데이터베이스는 그래프 이론에 토대를 둔 일종의 NoSQL 데이터베이스다. 객체나 노드로 불리는 데이터 포인트를 플롯하고, 그래프에서 이들을 연결하는 컴퓨터

couplewith.tistory.com

[Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류와 활용]

 

Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류와 활용

Graph DB 와 RDBMS 트랜드 3부- 그래프 데이터베이스의 종류 Apache AGE AGE는 PostgreSQL에 구축 된 그래프 및 관계형 모델을 지원하는 다중 모델 데이터베이스입니다. PostgreSQL의 확장 기능인 AGE를..

couplewith.tistory.com

 

728x90
반응형