(2)세븐 데이터 베이스를 읽고 - 데이터베이스 유형

2020. 7. 5. 16:32데이터베이스/세븐 데이터 베이스를 읽고

[데이터베이스/세븐 데이터 베이스를 읽고] - (1)세븐 데이터 베이스를 읽고 - 이 책을 통해 배울 내용.

 

(1)세븐 데이터 베이스를 읽고 - 이 책을 통해 배울 내용.

(1)세븐 데이터 베이스를 읽고 - 이 책을 통해 배울 내용 http://www.yes24.com/Product/Goods/8595403 세븐 데이터베이스 7개 데이터베이스의 매력적인 기능과 완벽한 쓰임새를 소개한다! 이 책에서는 PostgreSQ

hoony-gunputer.tistory.com

이전 글에서 배울 데이터 베이스 종류에 관계형, 문서형, 키-value형, 칼럼형 등을 언급했다. 각 트징을 알아보고 어떤 상황에서 사용하면 좋을지 정리해보겠습니다. 

 

관계형(RDBMS)

일반적으로 많이 사용하는 모델이다. 관계형 데이터베이스 관리 시스템(RDBMS)은 집합 이론을 기반으로 하는 시스템이다. 행과 열로 구성된 2차원 테이블로 구현된다. RDBMS를 사용하는 표준 방법은 SQL로 쿼리를 작성하는 것이다. 데이터는 타입에 맞추어서 처리하는데 숫자, 문자열, 날짜, BLOB, 또는 그 이외의 다른 타입으로 되어 있으며 타입에 맞추어 데이터를 처리한다. 

 

관계형의 가장 큰 특징은 다른 테이블끼리 조인되어 새롭고 더 복잡한 데이터베이스를 만들 수 있다는 점입니다. 이는 집합 이론의 수학적 기반이 있기 때문입니다.

 

종류
MySQL, H2, HSQLDB, SQLite, PostgresSQL 등이 있다. 

키-값 스토어(Key - Value Store)

키 - 값 스토어는 정말 간단한 데이터베이스 중 하나이다. K, V 스토더은 키와 값을 한쌍으로 저장하며 많이 알려진 프로그래밍 언어의 map 또는 해쉬테이블과 동일한 방법을 사용한다. 일부 KV 구현 시스템에서는 해시나 리스트와 같은 복잡한 값의 데이터 타입을 허용하지만 꼭 필요한 것은 아니다. 그리고 저장된 키들을 순환 처리하는 방법을 제공하지만 이것 역시 추가 기능이다. 

 

간단히 키-값 스토어를 생각해보면 키는 파일의 이름, 값은 파일의 내용물로 생각하면 전체적으로 쉽게 이해가 될 것 입니다.

 

키-값 스토어는 자체적으로 필요로 하는 것이 거의 없어서 이런 유형의 데이터베이스는 엄청난 성능을 보여줍니다.

 

사실 쿼리를 생성해서 지지고 볶고 하는 다른 데이터 베이스와 비교해보면 이 친구는 key 값만으로 값을 가져올 수 있으니깐...... 하지만 그렇기에 복잡한 저장 및 집합연산이 필요할 때는 대부분 이용이 안된다. 

 

종류
memcached, Voldemort, Redis, Riak 등이 있다. 필자가 실무자나 주위에서 들어본 것은 Redis 뿐이다.

칼럼형(Column)

칼럼형 데이터베이스는 2차원 테이블의 열(column)을 중심으로 데이터가 저장되도록 설계의 주안점으로 두었기 때문에 그런 이름이 붙여진 것이다. 이와 다르게 관계형 데이터 베이스의 경우는 행을 중심으로 데이터를 유지 관리한다. 칼럼형 데이터베이스의 경우의 열에 추가는 비용이 저렴하며 행 단위로 처리된다. 각 행은 서로 다른 열들을 가지거나 아예 없을 수도 있다. 따라서 null 값은 저장하는 데 들어가는 비용 없이 테이블을 유지할 수 있다. 구조적인 관계를 본다면 칼럼형 데이터 베이스는 관계형과 키-값 스토어의 중간쯤에 위치한다. 

 

종류 HBase, Cassandra, Hypertable

 

문서형(Document)

문서형 데이터베이스는 이름 그대로 문서를 저장한다. 간단히 말해서 문서는 어떤 다양한 타입도 될 수 있는 고유한 id 필드와 값들로 해시 같은 것이다. 문서는 중첩된 구조를 포한할 수 있어서 가변적인 도메인을 허용하는 고수준의 유연성을 보여준다. 데이터가 문서로 표현 가능한 기본적인 요구사항만 충족하면, 문서형 데이터베이스에서는 입력 데이터에 대한 제약이 거의 없다. 문서형 데이터베이스에서는 인덱싱, 에드혹(ad-hoc) 쿼리, 복제, 데이터 일관성 등 기타 다른 설계 측면에서 서로 다른 방법을 사용한다. 

 

따라서 필요한 것을 잘 선택하려면 그런 것들의 차이점과 용도에 따른 영향을 알아야한다. 

 

종류 

MongoDB, CouchDB

 

그래프형(Graph)

가장 적게 사용되는 데이터 베이스 유형 중 하나이다. 그래프형 데이터 베이스는 상호 연관된 데이터의 처리에 뛰어나다. 그래프형 데이터베이스는 노드와 노드 간의 관계로 구성된다. 그리고 노드와 노드 관계는 모두 키와 값이 한 쌍으로 된 데이터를 저장하는 속성들을 가질 수 있다. 노드 관계를 따라서 각 노드를 순회 처리할 수 있다는 것이 그래프형 데이터베이스의 장점이다.

 

종류 

Neo4J