Сегодня Google представил релиз библиотеки с SQL-подобным синтаксисом, написанную на языке Javascript.
Поскольку начиная с 2010 года сообществу так и не удалось выработать стандарта WebSQL, в этой области не существовало реляционной БД, которая могла обеспечить полноценную кросс-браузерность.
Имеющиеся решения — IndexedDB и LocalStorage были по сути объектно-ориентированными хранилищами и не имели свойств,которыми обладают реляционные БД.
Lovefield создан, чтобы заполнить этот пробел в подобном ПО.
Он предоставляет мощный и гибкий движок запросов. В качестве бэкэнда в нем используется IndexedDB.
Синтаксис самих SQL-запросов декларативен, т.е. отсутствует прямой парсинг запросов, что делает систему устойчивой к SQL-инъекциям, а также простой в изучении для разработчиков, уже хорошо знакомых с традиционным SQL.
На данные момент движок Lovefield реализует такую функциональность:
- Поддержка запросов select, insert, update и delete;
- Простая семантика транзакций для обеспечения атомарности операций;
- Возможность задания ограничений для проверки сохранения целостности (primary key, unique, nullable/not-nullable).
- Поддержка агрегатных функций(count, min, max, sum, avg, stddev, distinct);
- Поддержка группировки в SELECT-запросах через выражение «group by»;
- Возможность формирования запросов, охватывающих несколько таблиц (INNER JOIN, OUTER JOIN);
- Более простой, чем в IndexedDB, механизм изменения схемы данных;
- Кроссбраузерность — поддерживаются браузеры Chrome, Firefox, IE10.
В плане производительности новый движок использует оптимизатор запросов, который оценивает различные варианты выполнения и выбирает наиболее эффективный.
Lovefield обеспечивает приемлемую производительность для БД размером до 50 тысяч строк.
В ближайшем будущем разработчики планируют добавить поддержку таких возможностей как внешние ключи, самосоединения таблиц, каскадное добавление/удаление записей и другое.
>>> Подробности
google, javascript, sql, web