ТипБД
![]() | |
Оригинальный автор(ы) | Персональный Хайкал |
---|---|
Разработчик(и) | ТипБД |
Первоначальный выпуск | 9 сентября 2016 г |
Стабильная версия | 2.28.3
/ 10 июня 2024 г [ 1 ] |
Репозиторий | github |
Написано в | Ява [ 2 ] |
Операционная система | Кросс-платформенный |
Лицензия | АГПЛ 3.0 |
Веб-сайт | www |
TypeDB — это открытым исходным кодом с распределенная система управления базами данных , которая использует определяемую пользователем систему типов для моделирования, управления и запроса данных .
Обзор
[ редактировать ]Модель данных TypeDB основана на примитивах из концептуального моделирования данных , которые реализованы в системе типов ( см. § Модель данных и запросов ). Система типов может быть расширена за счет определяемых пользователем типов , зависимостей типов и подтипов , которые вместе действуют как схема базы данных . Модель была математически определена под названием «полиморфная модель сущности-отношения-атрибута» . [ 3 ]
Для указания схем, а также для создания, изменения и извлечения данных из базы данных TypeDB программисты используют язык запросов TypeQL . Язык примечателен своим предполагаемым сходством с естественным языком, следуя структуре операторов субъект-глагол-объект для фиксированного набора «ключевых глаголов» ( см. § Примеры ).
История
[ редактировать ]TypeDB имеет корни в системе представления знаний Grakn ( сочетание слов «граф» и «знание»), которая изначально была разработана на факультете компьютерных наук Кембриджского университета . [ 4 ] Grakn был коммерциализирован в 2017 году, а разработку взяла на себя Grakn Labs Ltd. [ 4 ] Позже в том же году Grakn был удостоен награды «Продукт года» факультета компьютерных наук Кембриджского университета. [ 5 ]
В 2021 году на базе Grakn была создана первая версия TypeDB с целью создания базы данных общего назначения . [ 6 ] В то же время язык запросов Grakn, Graql, был включен в язык запросов TypeDB, TypeQL.
TypeDB Cloud, версия TypeDB «база данных как услуга» , была впервые запущена в конце 2023 года. [ 7 ]
История версий Гракна
[ редактировать ]Первоначальная версия Grakn, версия 0.1.1, была выпущена 15 сентября 2016 года. [ 8 ]
Grakn 1.0.0 был выпущен 14 декабря 2017 года. [ 9 ]
Grakn 2.0.0 был выпущен 1 апреля 2021 года. [ 10 ]
История версий TypeDB
[ редактировать ]TypeDB 2.1.0, первая общедоступная версия TypeDB, была выпущена 20 мая 2021 года. [ 6 ]
Функции
[ редактировать ]TypeDB предлагается в двух редакциях: версия с открытым исходным кодом , называемая TypeDB Core , и проприетарная версия, называемая TypeDB Cloud , которая предоставляет дополнительные на основе облака функции управления .
TypeDB имеет модель данных и запросов NoSQL , целью которой является внедрение идей систем типов и функционального программирования в управление базами данных. [ 11 ]
Архитектура базы данных
[ редактировать ]Общие функции базы данных включают следующее.
- ACID -соответствие [ 2 ]
- Статическая проверка типов запросов [ 2 ]
- Графический интерфейс пользователя ( TypeDB Studio ) [ 2 ]
- Механизм хранения данных на базе RocksDB. [ 12 ]
- Синхронная репликация через RAFT для масштабируемости [ 2 ]
- TLS Поддержка
- Юникод Поддержка
Модель данных и запросов
[ редактировать ]Модель данных и запросов TypeDB отличается от традиционных систем управления реляционными базами данных по следующим пунктам.
- Вместо таблиц и столбцов TypeDB использует типы, подтипы между типами и зависимости типов для описания схемы базы данных. Утверждается, что это может облегчить расширение и нормализацию схемы , а также может помочь прояснить зависимости данных . [ 13 ]
- Вместо формулирования запросов с помощью алгебраических операторов , как в SQL , запросы TypeQL представляют собой последовательности операторов, которые представляют составные типы . Утверждается, что это приводит к «более декларативному » стилю запросов ( см. § Примеры ). [ 14 ]
- TypeDB обеспечивает поддержку функций, подобных Datalog (на основе соответствия логического импликации типам функций ), которые можно определять рекурсивно. Это может иметь преимущества для рабочих нагрузок с графовыми данными , поскольку большинство графовых алгоритмов формулируются рекурсивно. [ 15 ]
- Модель данных TypeDB, основанная на подтипах и зависимостях типов, предназначена для моделирования различных структур данных. Сюда входят реляционные данные, структурированные древовидные данные, структурированные графовые данные, данные с наследованием и данные в виде гиперграфа . [ 16 ] [ 17 ]
Ограничения
[ редактировать ]Опираясь на нестандартную модель данных и запросов, TypeDB (в настоящее время) не поддерживает интеграцию установленных стандартов реляционных или столбцово-ориентированных баз данных, форматов файлов (таких как CSV , Parquet ) или языка запросов SQL . Более того, TypeDB не имеет прямых средств для работы с неструктурированными или векторными данными .
Язык запросов
[ редактировать ]TypeQL, язык запросов TypeDB, действует как язык определения данных и язык манипулирования данными .
Язык запросов основан на хорошо известных идеях концептуального моделирования , ссылаясь на независимые типы, содержащие объекты как типы сущностей , зависимые типы, содержащие объекты как типы отношений , и типы, содержащие значения как типы атрибутов . [ 18 ] Язык состоит из предложений запроса, содержащих операторы . Операторы, особенно для манипулирования данными, обычно следуют структуре субъект-глагол-объект .
Формальная спецификация языка запросов была представлена на выставке ACM PODS 2024 , где она получила награду «Лучший новичок». [ 19 ]
Примеры
[ редактировать ]Следующий (неполный) запрос создает схему типа с использованием define
предложение запроса.
define
person sub entity,
owns name,
plays booking:passenger;
booking sub relation,
relates passenger,
relates flight,
owns booking_date;
name sub attribute,
value string;
...
Следующий запрос извлекает из базы данных объекты и значения, соответствующие шаблону, указанному в match
пункт. [ 20 ]
match
$j isa person, has name $n;
$n contains "Jane";
$b isa booking,
links (passenger: $j, flight: $f);
has booking_date >= 2024-01-01;
$f has flight_time < 120;
$f links (destination: $c);
$c has name "Santiago de Chile";
Лицензирование
[ редактировать ]Версия TypeDB с открытым исходным кодом публикуется под лицензией Mozilla Public License . [ 12 ]
Ссылки
[ редактировать ]- ^ «Релизы · vaicle/typedb» . Гитхаб .
- ^ Перейти обратно: а б с д и «Свойства системы TypeDB» . Двигатели БД .
- ^ Дорн и рядовой 2024
- ^ Перейти обратно: а б «ТипБД» . База данных баз данных .
- ^ "Зал славы" . Кафедра компьютерных наук и технологий . 23 января 2018 г.
- ^ Перейти обратно: а б «ТипБД 2.1.0» . Гитхаб .
- ^ «Новые основы построения с помощью TypeDB» . Блог TypeDB . 27 марта 2024 г.
- ^ «Гракн 0.1.1» . Гитхаб .
- ^ «Гракн 1.0.0» . Гитхаб .
- ^ «Гракн 2.0.0» . Гитхаб .
- ^ «Парадигма функционального программирования баз данных» . ТипБД .
- ^ Перейти обратно: а б «ТипБД Github» . Гитхаб . Июнь 2024.
- ^ Дорн и рядовой 2024, §1.7
- ^ Дорн и рядовой 2024, §1.5
- ^ Дорн и персональный 2024, §3.2
- ^ Сийс и Флетчер, 2022 г.
- ^ Дорн и Прибади, 2024, приложение. А
- ^ «Курс лекций по TypeDB» . ТипБД . Июнь 2024.
- ^ «ПРОДС Награды» . ACM SIGMOD/PODS . Июнь 2024.
- ^ «Обсуждение TypeQL PODS 2024» . Цифровая библиотека ACM . Июнь 2024 г. doi : 10.1145/3651611 .
Библиография
[ редактировать ]- Дорн, Кристоф; Прибади, Хайкал (2024), «TypeQL: теоретико-типический и полиморфный язык запросов», Proc. Компания ACM Manag. Data , 2 (2), Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 1–27, doi : 10.1145/3651611.
- Сийс, Йорис; Флетчер, Джеймс (2022 г.), «О гиперграфе, структурирующем семантическую информацию для роботов, перемещающихся и выполняющих свои задачи в реальных внутренних средах», 26-я Международная конференция по методам и моделям в автоматизации и робототехнике (MMAR) , 2022 г., IEEE, стр. 430–435, дои : 10.1109/MMAR55195.2022.9874265 , ISBN 978-1-6654-6858-9