[發明專利]數據庫查詢方法、裝置和電子設備有效
| 申請號: | 201710482300.1 | 申請日: | 2017-06-22 |
| 公開(公告)號: | CN109117429B | 公開(公告)日: | 2020-09-22 |
| 發明(設計)人: | 李思旭;萬祥;李佩;楊帆 | 申請(專利權)人: | 北京嘀嘀無限科技發展有限公司 |
| 主分類號: | G06F16/245 | 分類號: | G06F16/245 |
| 代理公司: | 北京友聯知識產權代理事務所(普通合伙) 11343 | 代理人: | 尚志峰;汪海屏 |
| 地址: | 100193 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 查詢 方法 裝置 電子設備 | ||
1.一種數據庫查詢方法,其特征在于,所述方法包括:
在接收到數據庫查詢指令后,確定所述數據庫查詢指令中的目標查詢字段所在的目標數據表;
根據所述目標數據表構建數據表有向圖;
從構建所述數據表有向圖的所述目標數據表中選取一個目標數據表作為源數據表;
基于所述數據表有向圖,計算所述源數據表到構建所述數據表有向圖的其他目標數據表的最短距離,并確定所述最短距離對應的最短路徑;
將所述最短路徑途經的數據表進行連接,并基于連接結果進行查詢;
所述根據所述目標數據表構建數據表有向圖,包括:對數據表進行遍歷,針對遍歷到的第一數據表,若所述第一數據表與第二數據表具有公共字段,則建立第一數據表到第二數據表的路徑;
若所述第一數據表為目標數據表,則將所述第一數據表到所述第二數據表的路徑權重設置為第一權重;
若所述第一數據表為非目標數據表,則將所述第一數據表到所述第二數據表的路徑權重設置為第二權重;
所述第二權重大于所述第一權重。
2.根據權利要求1所述的方法,其特征在于,所述方法還包括:
若存在所述源數據表不可達的目標數據表,則對所有數據表進行連接,并基于連接結果進行查詢。
3.根據權利要求1所述的方法,其特征在于,所述從構建所述數據表有向圖的所述目標數據表中選取一個目標數據表作為源數據表,包括:
從構建所述數據表有向圖的所述目標數據表中隨機選取一個目標數據表作為源數據表。
4.根據權利要求1所述的方法,其特征在于,所述將所述最短路徑途經的數據表進行連接,包括:
遍歷每條最短路徑,針對遍歷到的最短路徑,依次判斷該最短路徑途經的數據表是否已加入的連接集合;所述連接集合初始為空;
若所述數據表未加入連接集合,則將所述數據表加入到所述連接集合中;
在遍歷結束后,將所述連接集合中的數據表進行連接。
5.一種數據庫查詢裝置,其特征在于,所述裝置包括:
確定單元,用于在接收到數據庫查詢指令后,確定所述數據庫查詢指令中的目標查詢字段所在的目標數據表;
構建單元,用于根據所述目標數據表構建數據表有向圖;
選取單元,用于從構建所述數據表有向圖的所述目標數據表中選取一個目標數據表作為源數據表;
計算單元,用于基于所述數據表有向圖,計算所述源數據表到構建所述數據表有向圖的其他目標數據表的最短距離,并確定所述最短距離對應的最短路徑;
第一連接單元,用于將所述最短路徑途經的數據表進行連接,并基于連接結果進行查詢;
所述構建單元包括:
建立子單元,用于對數據表進行遍歷,針對遍歷到的第一數據表,若所述第一數據表與第二數據表具有公共字段,則建立第一數據表到第二數據表的路徑;
設置子單元,用于在所述第一數據表為目標數據表時,將所述第一數據表到所述第二數據表的路徑權重設置為第一權重;
所述設置子單元還用于在所述第一數據表為非目標數據表時,將所述第一數據表到所述第二數據表的路徑權重設置為第二權重;
所述第二權重大于所述第一權重。
6.根據權利要求5所述的裝置,其特征在于,所述裝置還包括:
第二連接單元,用于在存在所述源數據表不可達的目標數據表時,對所有數據表進行連接,并基于連接結果進行查詢。
7.根據權利要求5所述的裝置,其特征在于,所述選取單元包括:
選取子單元,用于從構建所述數據表有向圖的所述目標數據表中隨機選取一個目標數據表作為源數據表。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京嘀嘀無限科技發展有限公司,未經北京嘀嘀無限科技發展有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710482300.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:數據存儲方法及其裝置、數據查詢方法及其裝置
- 下一篇:一種檢索系統及其方法





