Студенческий сайт КФУ - ex ТНУ » Учебный раздел » Учебные файлы »ПРОГРАММИРОВАНИЕ

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

Тип: реферат
Категория: ПРОГРАММИРОВАНИЕ
Скачать
Купить
Характеристика системы управления базами данных. Принципы классификации СУБД. NoSQL как ряд подходов, проектов, направленных на реализацию моделей баз данных. Методологические обоснования подхода NoSQL. Описание некоторых СУБД из данного движения.
Краткое сожержание материала:

Размещено на

2

Размещено на

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

Особенности использования 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-дерево (структура данных, дерево поиска);

каждое B-дерево хранится в виде отдельного файла на диске;

одновременно может быть запущенно несколько потоков для чтения базы данных и только один - для записи; ЦЕЛОСТНОСТЬ БАЗЫ ДАННЫХ ОБЕСПЕЧИВАЕТСЯ ТОЛЬКО ПРИ ЗАПИСИ ДАННЫХ НА ДИСК;

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

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

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

обработка данных с помощью цепочки последовательных функций MapReduse не поддерживается;

поддерживается вертикальная масштабируемость, что означает поддержку не только огромных кластеров, но и портативных устройств;

внешний интерфейс (API) к данной СУБД построен на основе архитектуры REST, то есть сама база данных, отдельные записи, отображения и запросы - суть ресурсы, которые имеют уникальный адрес (URL) и поддерживают операции GET, PUT, POST, DELETE;

поэтому для взаимодействия с базой данных было написано много клиентских библиотек, в том числе на таких языках JavaScript, PHP, Ruby, Python и Erlang;

взаимодействие между отдельными компонентами СУБД, то есть с серверами представлений осуществляется опять-таки с помощью текстового протокола, а данные передаются в формате JSON;

это позволило использовать различные языки программирования для написания этих компонентов - Java, Python, JavaScript и пр.

CouchDB используется во многих программных продуктах и на множестве веб-сайтов, в том числе:

UbuntuOne, Firefox, TomBoy, Akonadi, Evolution - для синхронизации адресов, заметок и закладок.

Ajatus - распределённая CRM-система.

Mozilla Raindrop - агрегатор сообщений электронной почты, социальных сетей, систем обмена мгновенными сообщениями (Skype, Jabber).

eXist - СУБД с открытым исходным кодом, полностью основанная на технологии XML.

В отличие от большинства систем управления базами данных, eXist использует XQuery, язык который является рекомендацией консорциума W3C.

Apache Jackrabbit

Тип - хранилище данных.

Разработчик - Apache Software Foundation.

Написана на Java.

ОС - кросс-платформенное программное обеспечение.

Apache Jackrabbit - хранилище данных с открытым исходным кодом для платформы Java.

Проект Jackrabbit был начат 28 августа 2004 года, когда компания Day Software начала разработку API хранилища содержимого для Java (JCR). Jackrabbit также был использован как пример реализации JCR-170 и JCR-283.

Проект вышел из «инкубатора» Apache 15 марта 2006 года и сейчас является проектом верхнего...

Другие файлы:

Getting Started with NoSQL
Описание: Your guide to the world and technology of NoSQLOverviewFirst hand, detailed information about NoSQL technologyLearn the differences between...

Professional NoSQL
A hands-on guide to leveraging NoSQL databases...

Joe Celko's Complete Guide to NoSQL: What Every SQL Professional Needs to Know about Non-Relational Databases
Joe Celko's Complete Guide to NoSQL provides a complete overview of non-relational technologies so that you can become more nimble to meet the needs o...

Making Sense of NoSQL
If you want to understand and perhaps start using the new data storage and analysis technologies that go beyond the SQL database model, this book is f...

NoSQL. Новая методология разработки нереляционных баз данных
Необходимость обрабатывать все более крупные объемы данных является одним из факторов, влияющих на внедрение нового класса нереляционных баз данных No...