2011-08-26 3 views
0

個人的なプロジェクトとして、私は自分のデータベースソフトウェアをC#で開発しています。現在の多くのデータベースシステムでは、クエリにSQLコマンドを使用できます。このようなシステムをゼロから完全に書かれたデータベースソフトウェアに実装する正しい方向に私を指し示すことができる人は誰ですか?たとえば、SQLに精通しているユーザーがアプリケーションに文字列として文を入力すると、その文が自分のアプリケーションによって分析され、適切なクエリが実行されます。誰もがここにそのような何かの経験を持っていますか?これはおそらく非常に珍しい質問です。基本的に私は何を求めているのですか?そこにはSQLステートメントを解読できるツールがありますか、それともゼロから自分自身を作成し​​なければなりませんか?C#カスタムデータベースエンジン、SQLの実装方法

ありがとうございました!

ALSO

(私はPythonとJavaへの私のものの一部を転送することができるので、任意の潜在的な答えは、C#に限定される必要はない):私はそのような任意の現行のSQLデータベースか何かを使用していない、私のシステムがあります私の質問が理にかなったことを願っています。基本的に私のアプリケーションは、SQLコマンドを送信するプログラムとのインターフェースが可能になります。

+1

http://stackoverflow.com/questions/660609/sql-parser-library-for-java http://stackoverflow.com/questions/1147212/sql-parser-in-c – Kev

+0

SQLコマンドを使用して、独自の方法でデータを検索し、他のSQLアプリケーションのようにそのデータを返します。私はまだSQLを勉強していますので、まだよく知られていません。私は、SQL文を入力できるようにするアプリケーションのために一連の関数を作成したい、それが入力されたSQL文を理解し、出力を得ることができる適切なコードを実行し、次にそのような方法で出力を構造化するSQLへ。私がより理解する必要がある部分は、SQL文の「理解」部分です。それは意味をなさないでしょうか? – MReed

+0

[Antlr](http://www.antlr.org/)などのパーサジェネレータがあります。これらのツールは文法をとり、レクサーとパーサーコードを生成します。そのコードにテキストを入力して、DBを駆動するために使用できるメモリ内オブジェクトを取得できます。 –

答えて

3

フル・オンのデータベース・エンジンは、かなり深刻な作業です。来週、座って完全なエンジンを用意するつもりはないので、SQLパーサーを細かく書いてみたいと思っていました。つまり、エンジンで機能がサポートされているので、パーサに機能を追加することです。

私はこれが、あなたができるだけ早く働きたいものではなく、楽しいことだと思っています。それを考えると、私はSQLパーサーを書くことがプロジェクトの最善のものだと思っていたでしょう!クエリに必要な応答時間でRDBMSが許可されないため、フラットファイルデータベースエンジンで多くの作業を行いました。最も楽しいビットの1つは、例えば、応答時間が非常に重要ではないUIです。

私が取り組んでいる実装は普通の古いCですが、実際に私が見たことから、ほとんどのリレーショナルデータベースは主にC言語で書かれています。そして、これらのことを本当に低レベルの言語で書くことについて満足できるものがあります: )

+0

そうです、それらはかなり私の意図です。しかし、以前の仕事を見ると、それをどうやってやっていくかについてのアイデアを得ることができると思っていました。私はプログラミング・ゲームにはかなり新しいので、プレーンCを使ったことはありませんでしたが、私は.NET Frameworkに依存しないという考えが好きです - それは多くの作業ですが... – MReed

+0

おそらくまともな場所はありませんSQLiteでは、最も単純なリレーショナルデータベース実装の1つを提供しています。しかし、それはまだ非常に非常に簡単な方法から遠いです! http://www.sqlite.org/ – asc99c

+0

私が探しているのは必ずしも単純なものではありません。私は、リレーショナルデータベースの考え方に独特のアプローチをしており、時間をかけて完全なシステムにする計画を立てています。これは実際に私の2回目の反復です。私は完全に最初からやり直しています... 私はあなたのアプローチが何であるか尋ねることができますか?このような問題について人々が話し合うフォーラムはありますか?私はそれを発見していない... – MReed

関連する問題