DBMS的語法分析器對SQL查詢進行詞法和語法分析后,生成語法分析樹。語法樹由結點和邊組成,結點表示語法類,邊" />
時間:2022-12-14 08:30:02 | 來源:信息時代
時間:2022-12-14 08:30:02 來源:信息時代
查詢語法樹 : 在DBMS 內部表示用戶查詢的方法,也是DBMS進行查詢優(yōu)化的依據(jù)。
DBMS的語法分析器對SQL查詢進行詞法和語法分析后,生成語法分析樹。語法樹由結點和邊組成,結點表示語法類,邊表示結點間的輸入輸出關系。語法樹只是查詢的一種內部表達方式,其具體形式由具體的數(shù)據(jù)庫管理系統(tǒng)進行定義,不同數(shù)據(jù)庫管理系統(tǒng)其語法樹的形式不完全一樣,但通常比較相似。
例如,有兩個關系模式: 圖書表BOOK記錄了每本圖書的編號、書名、作者等信息。借閱表BR記錄了圖書借閱的歷史信息,包括圖書編號、借閱人代碼、姓名、借閱時間等信息。如果想查詢“DB”一書所有借閱人的姓名及借閱時間,用SQL語言可以表達為:
SELECT BR.name,time
FROM BR,BOOK
WHERE BR.bookno=BOOK.bookno
AND BOOK.bname=‘DB’;
該SQL語句的查詢語法樹可以用圖1表示。它包括兩類結點: 第一類結點表示詞法成分,包括關鍵字(SELECT、FROM、WHERE等)、關系名、屬性名、常數(shù)、操作符等,方法是直接表示。第二類結點表示語法類,即查詢子成分,包括〈Query〉、〈Condition〉、〈Attribute〉、〈Sel_list〉、〈Rel_list〉、〈Rel_name〉等,表示方法是用尖括號括起來。
圖1 SQL查詢語法樹示例