Я предполагаю, что целью этого упражнения является самообразование.
Если да, С чего начать чтение исходного кода SQLite? - отличное место для начала чтения, чтобы понять, как этопрограммное обеспечение может быть построено.
Если вы действительно хотите свернуть свои собственные, я бы посоветовал хранить ваши данные в массиве структур / объектов / словарей (как они будут называться, зависит от вашего языка), скрытыхза объектом, чтобы ваши методы вставки / обновления / удаления в таблице проходили через четко определенные функции доступа.Ваши операции могут быть реализованы неэффективно с grep
, filter
и т. Д. В зависимости от вашего языка.В дополнение к очевидным полям, включите deleted
в качестве поля.Таким образом, вы можете просто обновить его, чтобы удалить запись, а не пытаться модифицировать таблицу.
Чтобы сделать их более эффективными, прочитайте https://cstack.github.io/db_tutorial/parts/part7.html, чтобы написать b-дерево.Затем создайте отображение b-дерева EmployeeName
в список индексов записей с этим именем, то же самое для age
и salary
.Теперь измените методы доступа, чтобы обновить индексы для этих полей при изменении таблицы.Ваши поиски теперь могут проходить через b-дерево, чтобы найти индексы нужных вам записей, а затем вы можете искать их в таблице.
Это значительно упрощено по сравнению с тем, что дает вам база данных,но вы на пути к пониманию того, как работают базы данных.И с точки зрения того, почему они масштабируются, а также почему они не волшебны быстро.