ТипБД
Оригинальный автор(ы) | Персональный Хайкал |
---|---|
Разработчик(и) | ТипБД |
Первоначальный выпуск | 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
- ^ Перейти обратно: а б «ТипБД» . База данных баз данных .
- ^ "Зал славы" . Кафедра компьютерных наук и технологий .
- ^ Перейти обратно: а б «ТипБД 2.1.0» . Гитхаб .
- ^ «Новые основы построения с помощью TypeDB» . Блог TypeDB .
- ^ «Гракн 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.
Библиография
[ редактировать ]- Дорн, Кристоф; Прибади, Хайкал (2024), «TypeQL: теоретико-типический и полиморфный язык запросов», Proc. Компания ACM Manag. Данные , Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники, номер адреса : 10.1145/3651611.
- Сийс, Йорис; Флетчер, Джеймс (2022), «О гиперграфе, структурирующем семантическую информацию для роботов, перемещающихся и выполняющих свои задачи в реальных условиях внутри помещений», Материалы 26-й Международной конференции по методам и моделям в автоматизации и робототехнике (MMAR) , IEEE, дои : 10.1109/MMAR55195.2022.9874265