Я изучал правильную реляционную алгебру из книги Кристофера Дейта База данных в глубине: Реляционная теория для практиков .На протяжении всей книги он использует язык, который он и Хью Дарвен придумали, чтобы передать теорию - Учебное пособие D .В целом, я думаю, что Tutorial D - это очень работающий язык запросов, гораздо более гибкий, чем SQL, и поэтому я (просто для удовольствия) стремился сделать ставку на написание (плохо работающей, несомненно) маленькой СУБД, основанной на Tutorial D, а неSQL.
Понимая, что это огромная задача, даже просто сделать что-то простое, мне интересно, существуют ли доступные системы хранения, которые не представляют таблицы в смысле SQL, но представляют отношения в реляционном смыслеи не предполагайте, что какой-либо конкретный язык запросов используется для доступа к данным, а просто предоставьте низкоуровневые функции, такие как product
, join
, intersect
, union
, project
и т. д. (на C-уровень, а не на уровне языка запросов).
Имею ли я смысл?:) По сути, я хотел бы взять что-то вроде этого и вставить перед ним интерфейс запроса Tutorial D (или аналогичный).
Действительно все легко сделать в памяти, но представлять структуры данных на дискев способе, который даже умеренно эффективен, довольно сложно и, вероятно, у меня над головой без каких-либо серьезных исследований.