如何使像SQL數據操縱語言,並實現像如何使數據操縱語言,如SQL
insert, join, natural join
的基本功能我試着在網上搜索,但我沒有得到任何適當的鏈接,我可以從哪裏開始。大部分結果都是針對製作SQL解析器。
所以我想問問
- 什麼是背後的製作DML的基本理念?
- 我該如何操作數據?
- 我應該使用哪種語言或平臺來實現它?
如果可能,請發佈此領域過去作品的任何鏈接。
如何使像SQL數據操縱語言,並實現像如何使數據操縱語言,如SQL
insert, join, natural join
的基本功能我試着在網上搜索,但我沒有得到任何適當的鏈接,我可以從哪裏開始。大部分結果都是針對製作SQL解析器。
所以我想問問
如果可能,請發佈此領域過去作品的任何鏈接。
你首先需要實現所有的功能來完成諸如投影,過濾,連接,索引等基本操作......一旦這個功能到位,你需要解析SQL,創建一個查詢執行計劃然後調用你的API來獲得結果。這當然是一個非常粗糙的描述。我會建議閱讀開源數據庫代碼和文檔,如mysql。 有關類似問題,請參閱Studying MySQL, SQLite source code to learn about RDBMS implementation。 也 http://en.m.wikibooks.org/wiki/Design_of_Main_Memory_Database_System
看到你正在尋找的搜尋字詞relational algebra
和relational calculus
。我寧願不做太多的細節,因爲這通常需要大約6周的時間才能完成大學數據庫課程。
基本思想是SQL是一種「關係演算」,因爲它描述了你想要達到的結果。數據庫管理系統的工作是將其編譯成一個「關係代數」,它描述瞭如何分析數據。
參考點1和你的問題2:
我會通過閱讀了有關一些SQL背後的理論開始。 Chris Date的書籍(http://en.wikipedia.org/wiki/Christopher_J._Date)是一個很好的開始。
第3點。
想必您必須學習這門語言。我會選擇一些具有良好高層次結構的現代化,並構建在字符串操作,Ruby,Python,C#或Java中?
祝你好運。
_你爲什麼要重新發明輪子? –
我討厭人們對這類問題不滿。從什麼時候開始學習一件壞事? – Dan
看一看Rel還Rel359 –