Tag Archives: SimpleDB

Въведение в NoSQL

Какво е NoSQL?

nosqlNoSQL е система за управление на нерелационни бази от данни. Тези системи имат значителни разлики със същите, управляващи релационни бази. Те са измислени за ползване на разпределени хранилища за данни, където е нужна мащабируемост (например Google или Facebook, които събират терабитове данни всеки ден). Това съхраняване на данни може да не се нуждае от определена схема, да избягва join операции и по приницп да скалира хоризонтално.

История на NoSQL

Терминът NoSQL е въведен от Карло Строци през 1998 година. Той го използва, за да наименува неговата open-source лека база от данни, която няма SQL интерфейс. В началото на 2009 година, когато last.fm организира събитие за open-source разпределени бази от данни, Ерик Еванс, работник на Rackspace, преизползва термина, отнасяйки го към бази от данни, които са нерелационни, разпределени и не поддържат ACID (atomicity, consistency, isolation, durability) – четири от характеристиките на традиционните системи за управление на релационни бази от данни.
През същата година в Атланта, САЩ, се състои конференцията “no:sql(east)”, където NoSQL била обсъждана много. След това дискусията и практиката на NoSQL придобила несравним растеж.

Важни характеристики на NoSQL

nosql types of databases
Без схема : Схема на база от данни е структурата на системата, описана във формален език, който се поддържа от системата за управление на базата. В релационната база от данни схемата дефинира таблиците, полетата им и връзките между тях. В NoSQL колекцията е група от документи, всеки от които представлява ред, а колекцията прилича на таблицита от релационните бази от данни. Колекциите няма схема, което означава, че в една колекция могат да се съдържат различни по тип и структура документи. Например, следните два документа могат да бъдат запазени в една единствена колекция:
{“animal” : “monkey”}
{“speed” : 280.00}
Забележете, че горните два документа нямат нищо общo между елементите. Тази гъвкавост означава, че могат да се прилагат всякакви схема върху база данни от тип NoSQL.
Хоризонтална мащабируемост: Да се мащабира хоризонтално означава да се добавят още възли към системата (например добавяне на нов компютър). В NoSQL запазването на данни може да бъде много по-бързо, понеже то взима предимството на хоризонталното мащабиране и разпределя данните между възлите.

Категории на NoSQL бази от данни

КатегорияОписаниеБази
Документ базираниДанните се пазят като документи. Примерен формат би бил нещо такова:
FirstName="Tihomir", Address="Beroe Square", Spouse=[{Name:"Penka"}], Children=[{Name:"Gosho", Age:18}]
CouchDB, MongoDB, OrientDB, SimpleDB и други
XML базираниДанните се пазят в XML формат.BaseX, eXist и други
ГрафовиДанните се съхраняват като колекция от възли, където възлите са аналог на обекти в съвременен език за програмиране. Възлите са свързани чрез връзки.AllegroGraph, DEX, Neo4j, FlockDB, GraphDB и други
Ключ-стойност базираниВ категориите, базирани на ключ-стойност, потребителят може да съхранява данни без схема. Ключовете могат да са стрингове, хеш-стойности, листове, множества, сортирани множества и др.Cassandra, Redis, memcached и други

Кой използва NoSQL?

Следните големи компании използват NoSQL бази от данни: