[發明專利]一種嵌入式芯片SQL語句解析方法在審
| 申請號: | 202110171279.X | 申請日: | 2021-02-02 |
| 公開(公告)號: | CN112835925A | 公開(公告)日: | 2021-05-25 |
| 發明(設計)人: | 程兵兵 | 申請(專利權)人: | 北京握奇數據股份有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/2452;G06F8/41 |
| 代理公司: | 北京國帆知識產權代理事務所(普通合伙) 11334 | 代理人: | 劉小哲 |
| 地址: | 100102 北京市朝陽*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 嵌入式 芯片 sql 語句 解析 方法 | ||
一種嵌入式芯片SQL語句解析方法,包括設置在嵌入式芯片中的詞法解析模塊和語法解析模塊,所述詞法解析模塊用于識別SQL語句字符串中的單詞,并將其轉換成對應的狀態符,所述語法解析模塊用于判斷詞法解析后的狀態符組合是否符合語法規范,針對SQL語句中的單詞,建立將輸入字符轉換成狀態符的轉移函數,接受狀態符集合,各個所述接受狀態符分別對應于不同的單詞。采用CARD SQL模塊對SQL語句進行解析取代了中間件對SQL語句進行解析,減少了內存占用,提高了嵌入式芯片內數據庫的兼容性,對中間件的依賴大為減輕。
技術領域
本發明涉及嵌入式芯片SQL語句解析方法,尤其涉及在嵌入式芯片內的SQL語句解析。
背景技術
嵌入式芯片是指具有嵌入式微處理器、存儲器、通用設備接口和I/O接口,有一定控制功能的芯片,例如:智能卡用芯片。由于嵌入式芯片存儲器的內存受限,在對嵌入式芯片內存儲的數據庫進行增刪改查等操作時,通常使用卡外PC端中間件的方式(下文簡稱PCSQL)處理SQL語句,即先將結構化查詢語言(以下簡稱SQL)處理轉化成一定格式的“中間數據”,然后傳入卡內,隨后由芯片上的數據庫進行后續的分析處理。
使用PC SQL的主要優點是:1.壓縮數據量,提高傳輸效率,因為PC端的預處理可以將數據轉化成緊湊的高效的存儲格式。2.根據處理時序改變數據次序,優化芯片內緩存能力不足的處理效果,因為標準SQL的語法順序不太適合直接的順次處理,而非順次處理則要求較大的緩存區對數據暫存。3. 芯片內不處理SQL語句將會使得芯片內的數據庫(DB)模塊復雜度降低,減小項目風險。
使用PC SQL也有缺點:1.將較多的數據預處理功能交給卡外中間件,將限制芯片內DB的功能,使得DB的易用性和通用性、可移植性下降。2.數據格式兼容性差,例如DB2.0必須兼容全部DB1.0的“中間數據格式”,而 DB2.0又需要擴展該接口以完善功能,增加諸如復雜表達式查詢、連接查詢等功能將使接口的定義復雜化,既做到兼容又做到復雜擴展有時候是矛盾的。
由于PC SQL操作需要占用非常大的內存,而芯片內存有限,無法在芯片內進行PCSQL相同的操作。
發明內容
本發明的目的在于解決上述問題,提供一種占用內存小,能在嵌入式芯片內實現SQL語句解析的方法。
本發明提供了一種嵌入式芯片SQL語句解析方法,包括設置在嵌入式芯片中的詞法解析模塊21和語法解析模塊22,所述詞法解析模塊21用于識別SQL語句字符串中的單詞,并將其轉換成對應的狀態符,所述語法解析模塊22用于判斷詞法解析后的狀態組合是否符合語法規范,其特征在于:針對SQL語句中的單詞,建立將輸入字符轉換成狀態符的轉移函數,接受狀態符集合,各個所述接受狀態符分別對應于不同的單詞。
所述詞法解析模塊21包括以下步驟:步驟S201,按照SQL語句的順序逐個輸入字符;步驟S202,判別是否是分隔符,是分隔符時,進入步驟 S203,不是分隔符時,進入步驟S204;步驟S203,按順序將分隔符保存在靜態內存中;步驟S204,每輸入一個字符,按照所述轉移函數,生成對應的狀態符;步驟S205,生成的狀態符作為新狀態符,替換保存在動態內存中的舊狀態符;步驟S206,判別所述新狀態符是否與接受狀態符集合中的任何一個所述接受狀態符一致,“不一致”時,返回步驟S201,輸入下一個字符,“一致”時,對所述動態內存進行清零后進入步驟S207;步驟 S207,將所述新狀態符作為已識別單詞的狀態符保存在靜態內存中;步驟 S208,判別新狀態符是否為結束狀態符,是結束狀態符時,結束流程,不是結束狀態符,返回步驟S201。
所述語法解析模塊22包括以下步驟:步驟S301,按順序讀入所述狀態符;步驟S302,判別狀態符是否為結束狀態符,是結束狀態符時,進入步驟S303,不是結束狀態符時,進入步驟S304;步驟S303,以狀態符和分隔符組成的短語用于生成指令;步驟S304,基于所述狀態符,判斷前一單詞是否為該單詞所定義的可接收單詞,“Yes”時,進入步驟S301,“No”時,進入步驟S305;步驟S305,判斷語法錯誤,結束流程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京握奇數據股份有限公司,未經北京握奇數據股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110171279.X/2.html,轉載請聲明來源鉆瓜專利網。





