#sql #база_данных
Существуют ли базы данных, в которых нет SQL? Ну, например, которые по какой-то другой схеме и с другими языками работают? Что это за базы, если существуют?
Ответы
Ответ 1
Существуют, конечно. Key-value СУБД (а они всё-таки тоже базы данных) со своими протоколами. Memcache и Redis к примеру встраиваемые библиотеки предлагающие только прямой API интерфейс. Мне вспоминаются только sqlite - но он SQL, да berkeley db - а этот key-value. Ну вот InfinityDB нашёл в пример для Java множество модных NoSQL как правило не используют SQL. Например, упомянутое mongodb использует язык запроса базирующийся на JSON структуре. язык Datalog, к примеру, который вполне повлиял на добавление в SQL рекурсивных запросов какие-то субд могут поддерживать и SQL и какой-то другой протокол. Например, вы можете взаимодействовать с MySQL без использования SQL - через HandlerSocket. При том, SQL может быть как основным языком для СУБД, так и альтернативным, иногда предлагающим меньше возможностей, но добавленным для совместимости. Реляционные базы данных сейчас практически все с SQL. Но очевидно есть студенческие и академические эксперименты, которые SQL делать не стали. Некоторые из них может быть даже развиваются, но чего-то известного найти не удалось. По не реляционным базам разброс куда шире. Отдельный интересный вопрос - что именно считать SQL. СУБД может предоставлять язык запросов, лишь на первый взгляд похожий на SQL, без поддержки большого числа возможностей и поведения стандарта SQL, а с какими-то своими решениями.Ответ 2
SQL это детище т.н. строгой математической теории реляционной алгебры, на основе которой были созданы реляционные СУБД, которые используют SQL. Если вкратце суть реляционной теории состоит в том, что множество данных это таблицы, в которых определены операции сложения, вычитания, умножения и деления. Результатом этих операций всегда является таблица (отношение в терминах реляционной теории множеств). Язык SQL, собственно говоря, и определяет порядок и синтаксис выполнения операций сложения, вычитания, умножения и деления. До создания реляционных СУБД существовали (да и сейчас существуют) СУБД построенные на других принципах - основные из которых это: Иерархические СУБД, построенные на основе иерархической модели данных Сетевые СУБД, построенные на основе сетевой структуры данных Такие СУБД в основном работали на древних мейнфреймах типа IBM System/360 - я еще застал те времена, и в свое время немного потрудился на них. Нынешние новомодные NoSQL в общем-то являются инкарнацией старых (в основном сетевых) СУБД, так что новое - это хорошо забытое старое.
Комментариев нет:
Отправить комментарий