Особенности использования NoSQL

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

 

 

 

 

 

 

 

 

 

 

 

 

 

Реферат по теме

Особенности использования NoSQL

Содержание

управление база данных модель

Введение

NoSQL

Описание некоторых СУБД из данного движения

Заключение

Источники

Введение

 

Система управления базами данных - это совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.

Существует несколько классификаций СУБД:

По модели данных,

По степени распределённости,

По способу доступа к БД.

Среди СУБД, классифицируемых по модели данных, выделяют:

Иерархические,

Сетевые,

Реляционные (от англ. Relation - отношение),

Объектно-ориентированные,

Объектно-реляционные.

На практике наиболее используемы реляционные СУБД.

Реляционные СУБД - СУБД, управляющие реляционными базами данных.

Реляционная модель ориентирована на представление данных в виде двумерных таблиц. Такое представление удобно для пользователей.

Но реляционные базы данных не могут справляться с нагрузками актуальными в наше время.

Три основных проблемы РСУБД:

Горизонтальное масштабирование при больших объёмах данных,

Производительность каждого отдельного сервера,

Не гибкий дизайн логической структуры.

Всё это заставляет разработчиков и бизнес приглядываться к альтернативам реляционных баз данных, используемым вот уже более тридцати лет.

В совокупности все эти технологии известны как NoSQL базы данных.

NoSQL

 

Термин NoSQL был придуман Эриком Эвансом.

NoSQL (англ. Not only SQL, не только SQL) в информатике - термин, обозначающий ряд подходов, проектов, направленных на реализацию моделей баз данных, имеющих существенные отличия от используемых реляционных СУБД с доступом к данным средствами языка SQL.

Некоторые люди относятся неодобрительно к термину NoSQL, так как он звучит как основанный на том что разработчики не хотят делать, а не на том, кем они являются. Как уже было сказано в строгом определении термина, NoSQL не является движением против реляционных баз данных (NoSQL -это не только SQL, а не нет SQL). NoSQL - важный и полезный инструмент, но он не может считаться универсальным. Основная цель подхода - расширить возможности БД там, где SQL недостаточно гибок, и не вытеснять его там, где он справляется со своими задачами.

В основе идеи NoSQL лежит:

Нереляционная модель данных,

Открытый исходный код,

Хорошая горизонтальная масштабируемость.

масштабируемость - автоматическое распределение между несколькими серверами.

Такие системы мы называем распределенными базами данных (распределение идет между компьютерами по локальной сети). В них входят:

Cassandra, HBase, Riak, Scalaris, Voldemort.

В качестве одного из методологических обоснований подхода NoSQL используется эвристический принцип, известный как теорема Ca, утверждающий, что в распределённой системе невозможно одновременно обеспечить согласованность данных, доступность (англ. availability - корректность отклика по любому запросу) и устойчивость к расщиплению распределенной системы на изолированные части Таким образом, при необходимости достижения высокой доступности и устойчивости к разделению предполагается не фокусироваться на средствах обеспечения согласованности данных, обеспечиваемых традиционными SQL-ориентированными СУБД с транзакционными механизмами на принципах ACI.

 

Описание некоторых СУБД из данного движения

 

couchDB

Авторы:

Damien Katz, JanLehnardt, Noah Slater, Christopher Lenz,j. ChrisAnderson.

Разработчик - Apeche SoftwareFoundation.

CouchDB - документно-ориентированнаясистема управления базами данных, не требующая описания схемы данных. Эта программа является свободной, открытой и написана на языке Erlang. CouchDB можно рассматривать как сервер веб-приложений;для реализации этой идеи в нее встроенпроизводительный веб-сервер, а программный код, как и данные, сохраняется в той же базе данных.для автоматизации работы с приложениямиCouchDB используется утилита CouchApp.

Подобно иным документно-ориентированнымСУБД (Mnesia,Lotus Notes, MongoDB),и в отличие от реляционных СУБД, CouchDB предназначена для работы с полу-структурированной информацией и имеет следующие особенности:

Данные сохраняются не в строках и колонках, а в виде JSON-подобных документов, моделью которых является не таблицы,а деревья;

Не поддерживается типизация элементов данных, т.е. сопостовление отдельным полям документов типов integer, DATE и пр. вместо этого пользователь может написать функцию-валидатор (функцию проверяющую соответствие документа определенному формату);

Целостность базы данных обеспечивается исключительно на уровне отдельных записей (но не на уровне связей между ними);

Связи между таблицами или записями принципиально не поддерживаются, соответственно опирация объединения (JOIN) между таблицами не определена;

Для построения индексов и выполнения запросов используются функции представления (view);

Функции-валидаторы, функции-представления, функции-фильтры сохраняются в текстовом виде в самой базе данных;

Эти функции написаны, какправило, на языках JavaScript или Erlang, а для их выполнения запускается отдельный сервер запросов, взаимодействие с которым происходит посредствам сокетов (программных интерфейсов) и JSON-протокола;

каждой базе данных в системе CouchDB соответствует единственное B-дерево (структу?/p>