더북(TheBook)

값은 엄격한 데이터 타입을 요구하지 않는다

변수를 선언하고 타입을 지정해야 하는 강 타입 언어와 달리 키-값 데이터베이스는 저장하려는 값의 데이터 타입을 꼭 명시하지 않아도 된다.

예를 들어 다음과 같이 고객의 주소에 대한 키와 함께 문자열을 저장할 수 있다.

'1232 NE River Ave, St. Louis, MO'

리스트 형식으로 저장할 수도 있다.

('1232 NE River Ave', 'St. Louis', 'MO')

또는, 자바스크립트 객체 명명법(JSON)을 사용해 좀 더 구조적인 형태로 저장할 수 있다.

{ 'Street:' : '1232 NE River Ave', 'City' : 'St. Louis',: 'State' : 'MO' }

키-값 데이터베이스는 데이터베이스에 저장되는 데이터의 구조에 관한 제한 조건을 최소한으로 하고 있다.

이론적으로는 어떤 데이터 타입도 값으로 사용할 수 있지만, 실제로는 데이터베이스 설계자들이 구현상의 선택을 하게 된다. 키-값 데이터베이스를 어떻게 구현하는가에 따라 값에 대한 제약도 달라진다. 예를 들어 일부 키-값 데이터베이스는 값의 크기에 제한을 두고 있다. 즉, 일부는 각 값에 대해 메가바이트(MB) 단위 크기까지 허용하지만 일부는 더 작은 크기로 제한한다.

극단적으로 큰 값도 저장할 수 있지만, 이 경우 작은 값을 저장할 때보다 성능에 문제가 생길 가능성이 커질 수 있다.

Note 설계 특징을 고려하여 사용할 키-값 데이터베이스를 선택하는 것이 중요하다. 키와 값에 어떤 제약이 있는지 알아보는 것이 좋다. 키-값 데이터베이스를 선택하는 과정의 일부는 여러 가지 특성의 장단점을 파악하는 것이다. 어떤 키-값 데이터베이스는 ACID 트랜잭션을 지원하지만, 작은 크기의 키와 값만 저장할 수 있도록 제한할 수 있다. 또 다른 키-값 데이터베이스는 큰 값을 저장할 수 있지만, 키의 데이터 타입으로 숫자 타입이나 문자 타입만 사용하도록 제한할 수도 있다. 데이터베이스 시스템별로 이런 장단점을 고려해서 애플리케이션의 요구 사항을 처리해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.