C # собственный движок базы данных, как реализовать SQL - PullRequest
0 голосов
/ 27 августа 2011

В качестве личного проекта я разрабатывал свое собственное программное обеспечение для баз данных на C #. Многие современные системы баз данных могут использовать команды SQL для запросов. Есть ли здесь кто-нибудь, кто мог бы указать мне правильное направление внедрения такой системы в программное обеспечение для баз данных, написанное полностью с нуля? Например, пользователь, знакомый с SQL, может ввести в приложение оператор в виде строки, этот оператор будет проанализирован моим приложением и будет выполнен правильный запрос. У кого-нибудь есть опыт с чем-то подобным здесь? Это, наверное, очень необычные вопросы, ха-ха. В основном то, что я спрашиваю, есть ли какие-либо инструменты, которые могут анализировать операторы SQL, или мне придется писать свои собственные с нуля для этого?

Заранее спасибо за любую помощь!

(я могу перенести некоторые свои вещи в Python и Java, поэтому любые потенциальные ответы не должны ограничиваться C #)

ТАКЖЕ: я не использую текущую базу данных SQL или что-то в этом роде, моя система полностью с нуля, надеюсь, мой вопрос имеет смысл. По сути, я хочу, чтобы мое приложение могло взаимодействовать с программами, которые отправляют команды SQL.

1 Ответ

3 голосов
/ 27 августа 2011

Полноценный движок базы данных - довольно серьезное начинание.На следующей неделе вы не собираетесь садиться и иметь полный движок, поэтому я подумал, что вы захотите написать фрагмент парсера SQL: добавление функций в синтаксический анализатор, так как функции поддерживаются в движке.

Я предполагаю, что это просто забавное занятие, а не то, что вы хотите работать как можно скорее.Учитывая это, я бы подумал, что написание парсера SQL - один из лучших моментов проекта!Я проделал большую работу с ядрами баз данных с плоскими файлами, потому что время ответа, требуемое для запросов, не позволяет использовать СУБД.Одним из самых приятных моментов было добавление поддержки фрагментов SQL, например, в пользовательском интерфейсе, где время отклика не так важно.

Реализация, над которой я работаю, - это старый C, но на самом деле из того, что яМы видели, что большинство реляционных баз данных по-прежнему написаны в основном на C. И есть что-то удовлетворяющее в написании этих вещей на действительно низкоуровневом языке:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...