Строцци NoSQL
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Август 2011 г. ) |
Оригинальный автор(ы) | Карло Строцци |
---|---|
Первоначальный выпуск | 1998 |
Стабильная версия | 4.1.11
/ 6 июня 2014 г |
Платформа | Unix -подобный (например, Cygwin ) |
Тип | СУБД |
Лицензия | лицензия GPL |
Веб-сайт | www |
Strozzi NoSQL — это оболочки на основе система управления реляционными базами данных , инициализированная и разработанная Карло Строцци, которая работает под Unix -подобными операционными системами или другими операционными системами с уровнями совместимости (например, Cygwin под Windows). Имя его файла NoSQL просто отражает тот факт, что он не выражает свои запросы с использованием языка структурированных запросов ; СУБД NoSQL отличается от общей концепции баз данных NoSQL , существовавшей примерно в 2009 году, которые обычно не являются реляционными, в отличие от СУБД NoSQL. Strozzi NoSQL распространяется под лицензией GNU GPL .
Строительство
[ редактировать ]NoSQL использует парадигму потока операторов , где несколько «операторов» выполняют уникальную функцию над передаваемыми данными. Используемый поток предоставляется системой перенаправления ввода-вывода UNIX, так что по системе каналов результат вычисления может быть передан другим операторам. Поскольку каналы UNIX работают в памяти, это очень эффективный способ реализации.
NoSQL, разработку которого возглавил Карло Строцци, является последней и, возможно, самой активной в линейке реализаций конструкции базы данных с потоковым оператором, первоначально описанной Эваном Шаффером, Родом Манисом и Робертом Йоргенсеном в статье Unix Review 1991 года и связанной с ней статье. бумага . Другие реализации включают основанную на Perl RDB , коммерческую версию первоначальных авторов под названием /rdb , и Starbase , версию с добавленными операторами астрономических данных Джона Ролла из Гарварда и Смитсоновской астрофизической обсерватории. Из-за его сильных сторон при работе с конвейерными данными большинство реализаций представляют собой смесь awk и других языков программирования, обычно C или Perl.
Эта концепция была первоначально описана в статье Unix Review 1991 года, а затем расширена в статье (см. ссылку выше), а также в книге «Управление реляционными базами данных Unix». NoSQL (наряду с другими подобными базами данных с потоковыми операторами) хорошо подходит для ряда быстрых аналитических задач, связанных с базами данных, и имеет значительное преимущество: сохранение таблиц в текстовой форме ASCII, что позволяет использовать множество мощных инструментов обработки текста в качестве базы данных. дополнение к самим функциям базы данных. Популярные инструменты для использования с NoSQL включают скрипты Python, Perl, awk и оболочки, использующие вездесущие инструменты обработки текста Unix (вырезание, вставка, grep, сортировка, uniq и т. д.).
NoSQL написан в основном на интерпретируемых языках, что замедляет фактическое выполнение процессов, но его способность использовать обычные каналы и файловые системы означает, что он может быть чрезвычайно быстрым для многих приложений при использовании файловых систем RAM или интенсивном использовании каналов, которые во многих реализациях в основном основаны на памяти. .
Философия
[ редактировать ]Причины отказа от SQL следующие:
- Сложность. Большинство коммерческих продуктов баз данных зачастую слишком дороги для небольших проектов, а бесплатные базы данных слишком сложны. У них также нет подхода на уровне оболочки, который есть в NoSQL.
- Портативность:
- Данные: данные из NoSQL можно легко переносить на другие типы машин, например, на компьютеры Macintosh или Windows , поскольку таблицы можно считывать из файлов или перенаправлять в них на любом этапе обработки.
- Программное обеспечение: NoSQL может работать на любой машине UNIX, на которой Perl и установлены языки программирования AWK , и, возможно, даже в UNIX-подобной среде Cygwin для Microsoft Windows .
- Неограниченно: NoSQL не имеет произвольных ограничений , таких как размер поля данных, количество столбцов или ограничение размера файла, и может работать там, где другие продукты не могут. (В некоторых реализациях языка программирования AWK1 количество столбцов в таблице может быть ограничено до 32 768).
- Удобство использования: благодаря своей простой и логичной концепции NoSQL может легко использоваться людьми, не разбирающимися в компьютерах. Например, строки данных выбираются с помощью оператора «строка», столбцы — с помощью оператора «столбец».
В отличие от других СУБД, NoSQL обладает всеми возможностями UNIX при разработке и использовании приложений. Его пользовательский интерфейс использует оболочку UNIX. Таким образом, для администрирования базы данных не обязательно изучать набор новых команд. С точки зрения NoSQL, база данных — это не более чем набор файлов, похожих на любой другой пользовательский файл. Никакие сценарии или другие языки баз данных, кроме оболочки UNIX, не используются. Эта оболочка поощряет случайное использование этой базы данных, что делает ее использование привычным, что приводит к формальному использованию. Другими словами, NoSQL — это набор подпрограмм оболочки, которые обращаются к обычным файлам операционной системы.
Примеры
[ редактировать ]Чтобы получить информацию о конкретном сотруднике, запрос на SQL может выглядеть так:
select e.*, a.*, mgr.* from EMPLOYEES e, ADDRESSES a, MANAGERS mgr WHERE .....
Поскольку документо-ориентированная база данных NoSQL часто извлекает предварительно подключенный документ, представляющий всего сотрудника, запрос может выглядеть следующим образом:
$e = doc("/employee/emp_1234") return $e/address/zip
Парадигма потокового оператора отличается от обычного SQL, но поскольку база данных NoSQL является реляционной, можно сопоставить операторы NoSQL с их эквивалентами SQL:
SQL | NoSQL или /rdb |
---|---|
выберите col1 col2 из имени файла | столбец col1 col2 <имя файла |
где столбец - выражение | строка 'столбец == выражение' |
вычислять столбец = выражение | вычислить 'столбец = выражение' |
группировать по | промежуточный итог |
имея | ряд |
упорядочить по столбцу | столбец сортируемой таблицы |
уникальный | уникальный |
считать | туалет - л |
внешнее соединение | соединительный -al |
обновлять | удалить, заменить |
гнездование | трубы |
См. также
[ редактировать ]Дальнейшее чтение
[ редактировать ]- Айерс, Ларри (ноябрь 1998 г.). «Как не изобретать велосипед» . Linux-вестник . Проверено 10 апреля 2015 г.
- Литт, Стив (апрель 2007 г.). «NoSQL: база данных Unix (с awk)» . Журнал производительности Linux . Проверено 3 мая 2011 г.
- Патерно, Джузеппе (1 ноября 1999 г.). «Учебник по NoSQL» . Linux-журнал . Проверено 3 мая 2011 г.