NoSQL을 알아보자(5) - NoSQL의 대표 유형 4가지

1. Key-Value Database 특정 내용의 키를 전달하면 해당 키와 연결된 데이터를 획득할 수 있다. 예를 들어 볼펜을 판다고 가정했을 때 price라는 키값을 가져와 가격을 획득할 수 있다. 하지만 키는 항상 고유 값이기 때문에 다른 곳에서 같은 값의 키를 사용하면 안 된다. 만약 볼펜이 2개라면? price를 키값으로 바로 사용할 수 없다. 이미 첫 번째 볼펜이 price를 쓰고 있기 때문에 두 번째 볼펜에 price를 요청하면 첫 번째 볼펜의 가격을 전달받게 될 것이다. 이런 경우는 엔터티의 유형과 일련 번호를 포함하여 키 값을 정의하면 해결할 수 있다. 예를 들어 볼펜 두 개와 샤프 두 개를 판...

더보기

NoSQL을 알아보자(4) - ACID와 BASE

일반적으로 관계형 데이터베이스는 ACID 트랜잭션을 지원하도록 설계됐으며, NoSQL 기반 데이터베이스는 BASE 트랜잭션을 지원하도록 설계됐다. 일부 NoSQL 데이터베이스는 완벽히는 아니지만 ACID 트랜잭션을 지원하지도 한다. ACID 트랜잭션 A(atomicity) 더는 분할되지 않는 단위인 원자성을 의미한다. 여기서 원자성은 하나의 트랜잭션을 더이상 쪼갤 수 없는 최소 단위로 여기는 것이다. 하나의 트랜잭션은 내부에 여러 과정이 있을 수 있지만 전체적으로는 하나의 동작으로 처리되어야 한다. 내 계좌에 있는 100만원을 저금하는 것을 하나의 트랜잭션이라 가정해보자. 해당 트랜잭션은 내부적으로 2개의 ...

더보기

NoSQL을 알아보자(3) - NoSQL의 등장배경

등장배경 NoSQL은 기존 관계형 데이터베이스의 한계점 을 극복하기 위해 새롭게 등장한 데이터베이스 유형이다. ‘SQL을 사용하지 않는다’는 의미와 ‘SQL만 사용하는 것은 아니다’라는 의미를 내포하고 있다. NoSQL이 기존 관계형 데이터베이스를 대체하는 형태가 아니라, 관계형 데이터베이스의 단점을 보완하는 형태로 발전하고 있다. NoSQL 특징 확장성 일반적으로 데이터베이스를 확장하기 위한 방법은 스케일 업(한 대의 서버를 업그레이드하는 것), 스케일 아웃(서버를 여러 대로 나눠 분산하는 것) 두 가지 방법이 있다. 가장 이상적인 방법은 스케일 아웃인다. 필요할 때 서버를 증설하고 필요 없을 때는 다시...

더보기

NoSQL을 알아보자(2) - 관계형 데이터베이스와 한계점

관계형 데이터베이스 관계형 데이터베이스는 데이터와 데이터 간의 관계를 묘사하기 위해 관계형 대수학을 사용하는 형식 수학 모델을 기반으로 두고 있다. 관계형 데이터베이스는 데이터 구조의 논리 구성을 물리적인 저장 구조와 분리했다. 기존의 데이터베이스 들은 데이터를 관리하기 위해 프로그래머들이 직접 프로그램을 만들어서 사용했다. 반면 관계형 데이터베이스는 데이터 관리에 공통 언어(SQL)를 사용하도록 설계하여 데이터 관리를 쉽게 할 수 있게 됐다. 데이터를 관리하고 애플리케이션 사용자들이 데이터에 접근할 수 있도록 허용하는 구조를 관계형 데이터베이스 관리 시스템(이하 RDBMS) 이라 한다. RDBMS 구조 ...

더보기

NoSQL을 알아보자(1) - 초기 데이터베이스 관리 시스템

플랫 파일 데이터베이스 자기테이프나 디스크 같은 물리적 저장 공간 속 ‘데이터 블록’에 데이터를 기록하는 방식. 테이프의 특정 위치부터 순차적으로 블록을 읽는 간단한 방식으로 동작한다. 한 데이터 블록에 하나의 데이터만 담는 것이 아니라 여러개의 데이터도 담을 수 있다. [예시 1] 이름 뒤에 전화번호를 붙여서 전화번호부 구축. 한 칸의 데이터 블록 사이즈는 400. 전화번호 사이즈 20 이름 사이즈 10 한 명의 정보를 저장하는데 총 30의 사이즈(이름 10 + 전화번호 20)가 필요하다. 하나의 데이터 블록에는 총 13개의 전화번호 정보를 저장할 수 있다. 장점 새로운 전화번호...

더보기