익명의 개발노트

RDBMS 와 NoSQL 본문

프로그래밍/DataBase

RDBMS 와 NoSQL

캡틴.JS 2019. 4. 30. 10:56
반응형

1. RDBMS

 

RDBMS (relational database management system, RDBMS) 라고 하며, 관계형 데이터 베이스 관리시스템이라고 한다.

 

흔히들 많이 들어본 오라클, MySQL, IBM DB2, PostgreSQL 등등이 있다.

 

특징은 모든 데이터를 2차원 테이블로 표현 가능하고,

 

데이터를 넣을때 정해진 양식에 맞춰서 넣어야하며(기본 데이터 저장단위가 row, column으로 이루어져있음),

 

각 데이터간(테이블)의 관계가 설정되어있어, 테이블 여러개를 조인해서 데이터를 추출할 수 있다.

 

데이터 베이스의 설계도를 ER(Entity  Relationship) 모델이라고 한다. 

 

2. NoSQL

 

Not only SQL의 약자이며, 기존의 RDBMS는 저장하고 처리해야할 데이터가 늘어나면 서버 성능을 업그레이드 하는

 

방식으로 확장해 주었고, 컴퓨터에 분산시키지 않았음. 그래고 새로 등록하는 데이터 형식이 기존에 있던 데이터들과

 

다르면 RDBMS는 기존 데이터를 양식에 맞게 수정해야하는 단점이 있었음. 이걸 보완하기 위해서 나온 것이 NoSQL임.

 

서버데이터양 늘어나면 여러컴퓨터로 분산 처리할 수 있도록 확장하기 쉽게 설계되어있으며, 새로 등록해야할 데이터

 

형식이 변경되도 기존 데이터까지 수정할 필요가 없음. 문서 지향적 데이터베이스임.

 

 

3. 종류 (크게 4가지)

  1) Wide Column Database

    (1) 설명 :  행마다 키와 해당 값을 저장할 때마다 각각 다른값의 다른 수의 스키마를 가질 수 있다. '그림2'를 참고하면

                 사용자의 름(key)에 해당하는 값에 스키마들이 각각 다름을 볼 수 있다.

                 이러한 구조를 갖는 WIDE COLUMN DATABASE 는 대량의 데이터의 압축, 분산처리, 집계 쿼리

                 (SUM, COUNT, AVG 등)및 쿼리 동작 속도 그리고 확장성이 뛰어난 것이 그 대표적 특징이라 할 수 있다.

 

    (2) 세부종류 : Cassandra , HBase, GoogleBigTable, Vertica, Druid, Accumulo, Hypertable

 

  2) Document Database

   

      (1) 설명 :  테이블의 스키마가 유동적, 즉 레코드마다 각각 다른 스키마를 가질 수 있다.

                    보통 XML, JSON과 같은 DOCUMENT를 이용해 레코드를 저장한다. 트리형 구조로 레코드를 저장하거나

                    검색하는 데 효과적이다

 

      (2) 세부종류 : MongoDB, Azure Cosmos DB, CouchDB, MarkLogic, OrientDB

 

  3) Graph Database

      (1) 설명 :  데이터를 노드로(그림4에서 파란, 녹색 원) 표현하며 노드 사이의 관계를 엣지(그림4에서 화살표)로 표현,

                    RDBMS 보다 Performance가 좋고 유연하며 유지보수에 용이한 것이 특징. Social networks, Network

                    diagrams 등에 사용할 수 있다.

 

      (2) 세부종류 : Neo4j, Blazegraph, OrientDB

 

4) Key-Value Database

 

      (1) 설명 :  기본적인 패턴으로 KEY-VALUE 하나의 묶음(Unique)으로 저장되는 구조로 단순한 구조이기에 속도가

                    빠르며 분산 저장시 용이하다.Key 안에 (COLUMN, VALUE) 형태로 된 여러 개의 필드, 즉 COLUMN

                    FAMILIES 갖는다. 주로 SERVER CONFIG, SESSION CLUSTERING등에 사용되고 엑세스 속도는 빠르지만,

                    SCAN에는 용이하지 않다.

 

      (2) 세부종류 : Redis, Oracle NoSQL DB, Voldemorte, Oracle Berkeley DB, Memcached, Hazelcast

 

반응형
Comments