web-dev-qa-db-ja.com

リレーショナルSQLデータベースの作成を開始する方法

MySQLやSQLiteのようなデータベースが、同じようにすばやく実行できるようにどのように開発されているのか疑問に思いました。

私は質問への答えを探していますlike

  • SQLトークン化はどのように行われますか? ASTを構築し、他の言語と同じようにコンパイル/解釈しますか?
  • データベースへの接続をどのように処理する必要がありますか? TCP? IPC?ビッグネームのデータベースはそれをどのように行うのですか?
  • これらの高速リレーショナルデータベースのデータはどのように保存されますか? SQLiteがフラットファイルを使用していることを知っています-同期の悪夢のようです。

明らかに、私は誰もがリレーショナルデータベース理論のすべてを私に説明することを期待していません-しかし私は周りを見回していて、このことについて学び始めるための参照に本当に途方に暮れています。

避けられない「MySQLを使ってみませんか?」に答えるには:(a)興味があるので(b)いつか特定の用途を念頭に置いて自分のデータベースを設計したいと思うでしょう。

編集:私はこれをもっと明確にすべきだったと思います。これは幅広いトピックだと思います。 「ああ、データベースを設計するのは……」と言う人を探しているわけではありません。これが多数の本で取り上げられているトピックである場合、それらの本は何ですか?これが博士号で十分にカバーされている場合あなたが知っている論文、その論文は何ですか?私はこれが幅広いトピックであることを非常に承知しています。私は幅広い質問に対して特定の回答を求めているのではなく、幅広い質問に対して特定のリソースを求めています。いつものように、すべての助けに感謝します!

2
Ryan Marcus

SQLiteのコピーをダウンロードして、コードの実行を開始してください。これにより、DBMS設計の基本的な概念を十分に理解できるはずです。

SQLiteの作者は、SQLiteがどのように設計されたかについて、彼のWebサイトに広範なメモを残しています。データベースエンジンは十分に小さいので、気を紛らわせることができます。

http://www.sqlite.org/

SQLiteはCで書かれています。コードを読むために「よりモダンな」言語を使用したい場合は、SQLiteエンジンのC#バージョンを試してください: http://code.google.com/p/csharp-sqlite/

12
Robert Harvey