999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

關系數據庫中樹形結構的矩陣算法研究

2020-04-09 04:54:20楊國清
計算機時代 2020年3期

楊國清

摘 ?要: 關系結構是最常用的數據邏輯形式。在關系數據庫中,存在局部的樹形結構數據形態。針對關系數據庫中的樹形結構數據,提出一種基于矩陣模型的數據組織方法,直接使用SQL查詢,在數據庫內部實現樹形結構的插入、遍歷、刪除、移動等算法。

關鍵詞: 關系數據庫; 算法; 樹形結構; SQL

中圖分類號:TP311.52;TP311.138 ? ? ? ? ?文獻標識碼:A ? ? 文章編號:1006-8228(2020)03-50-03

Research on matrix algorithm of tree structure in relational database

Yang Guoqing

(Guangdong Peizheng College School of Data Science and Computer Science, Guangzhou, Guangdong 510830, China)

Abstract: Relational structures are the most commonly used form of data logic. In the relational database, there is a local tree structure data form. A matrix model based data organization method is proposed for the tree structure data in the relational database, and the SQL queries are used directly to implement the interpolation, traversal, deletion, and moving algorithms of the tree structure within the database.

Key words: relational database; algorithm; tree structure; SQL

0 引言

數據庫設計活動中,概念模型是面向用戶、面向現實世界、與數據庫管理系統(DBMS:DataBaseManagement System)無關的數據模型。邏輯模型是概念模型在具體DBMS中的數據組織形式。邏輯模型有四種形態:層次結構、網狀結構、關系結構、面向對象結構。層次結構也就是樹形結構,由一個根結點和多個雙親結點、孩子結點、葉子結點、非葉子結點等數據形態構成。現實世界里常見的層次結構有單位組織架構、磁盤目錄與文件結構、家譜、論文標題與正文結構等[1]。

關系結構以二維表的形式留存數據,是管理信息系統中最常用的數據邏輯形式。在數據庫應用中,存在這樣的特殊情況:主體數據形態采用關系結構,但局部存在使用樹形結構描述的數據。例如:學生論文寫作系統中,學生、老師等多數實體數據是基于關系結構的,而學生論文中的標題與正文內容是基于樹形結構的。解決這種特殊應用問題,成為論文寫作系統項目設計與實現的重點與難點。

目前比較普遍的做法是:使用雙親法或孩子法,單獨建立結點關系表,記載每個結點的雙親或者孩子,以確定結點之間的先后關系。由于樹形結構的遍歷算法無法用單純的SQL (Structured Query Language)實現,所以往往需要以C++、Java等高級語言的結構體或類為載體,編寫客戶端程序,運用遞歸思想,實現樹形結構的遍歷、插入、刪除等算法。該方式無法在模型-視圖-控制(MVC:Model View Controller)軟件開發模式中,將數據業務邏輯與前臺用戶界面完全分離開來,前端程序需要過多地參與數據層活動,不利于軟件團隊的分層開發,導致開發效率較低。另外,需要建立結點內容與結點位置的聯結,即建立單獨的結點關系表,實現起來較為困難。與此同時,當結點位置有變化時,需要重新調整結點關系表,必然會消耗較多的系統資源。

經過研究發現,采用一種全新的基于矩陣的組織形式留存樹形結構數據,可以完美地解決上述問題。該方法只需要在結點數據中添加相關的位置特征值,不需要建立單獨的結點關系表,結點的位置可以直接從自身數據中得到。新方法不用考慮樹的度(結點孩子數的最大值),只需要關注樹的深度(樹的層數)。直接用SQL語句,就可以方便快捷地實現數據遍歷、插入、刪除、移動等算法。與此同時,數據業務處理邏輯可以完全交由數據后臺完成,可以方便快捷地實現MVC所要求的分層處理目標[2]。

1 樹形結構中數據的矩陣化

1.1 數據原始形態

我們以論文寫作系統中,論文的標題與正文結構為研究藍本,描述樹形結構數據的矩陣化過程。假設有一篇論文的簡化結構如圖1所示。從圖1中可以看出,樹中“論文”為根結點,所有“正文”均為葉子結點,其他為中間結點。該樹的度為3,深度為5[2]。

1.2 樹的矩陣化

樹形結構矩陣化的具體轉換規則有三條:

⑴ 根結點編號為0;

⑵ 將某結點的孩子按從上到下編號,從1開始,依次加1;

⑶ 每個結點獨占矩陣中的一行。該結點所處的深度特征值為其編號,前面的深度特征值繼承長輩的編號、后面深度特征值指定為0。

按照以上規則,圖1所示的某論文的樹形結構被處理為一張矩陣表,如表1論文矩陣表所示。Depthi代表深度i的特征值。i為深度索引號,其最大值為樹的深度減1[3-4]。

2 常用算法實現

2.1 當前結點深度獲取

用于獲取當前結點的深度。在存儲過程中使用動態SQL語句,可以方便獲取結點深度。存儲過程的頭部為NodeDepth @RowIDbigint。具體實現代碼如下:

2.2 遍歷算法

用矩陣法處理過的樹形結構數據,其遍歷算法實現起來比較容易,直接用帶有排序子句的SQL查詢語句即可,代碼如下:

2.3 插入算法

在矩陣的某位置插入新行,只需要確定新行不同深度的特征值,不需要修改其他結點的數據。算法思路為:獲取當前結點的位置,在其雙親的所有孩子中,尋找最底層的最大特征值,加1后的新值作為新行的最大深度特征值,同一行前面的特征值來源于其父輩,后面默認為0。使用頭部為addPart @RowIDbigint的存儲過程,結合動態SQL語句技巧,可以快速實現插入算法。具體代碼如下:

上述算法插入的是當前結點的兄弟結點,如果需要插入孩子結點,只需要作適當調整。另外,結點的刪除、移動與插入算法相類似,本文不再贅述[6]。

3 結束語

針對關系數據庫中的樹形結構,按照矩陣化轉換規則,將樹形數據變為關系表。通過結點的特征值,可以方便地實現結點定位、遍歷、插入等算法。該模型可以在數據庫內部直接使用SQL實施,不需要借助高級語言在客戶程序中實現,較好地達到了MVC設計模式中分層開發的目標。

參考文獻(References):

[1] 尹志宇,郭晴.數據庫原理與應用教程(第2版)[M].清華大學出版社,2017.

[2] 李國勇,王燕霞,熊黎麗等.基于樹形組織結構的數據隔離模型[J].自動化與儀器儀表,2018.11:231-235

[3] 張鳳林,皮德常,丁宗紅.關系數據庫實現U/C矩陣的方法[J].微計算機應用,2000.4:214

[4] 周琴.矩陣特征值和特征向量在實際中的應用及其實現[J].高師理科學刊,2019.7:8-10

[5] 梁敬彬.探討動態SQL擴展的應用[J].福建電腦,2018.3:92-94

[6] 王洪蘭.ASP.NET與SQL數據庫的連接與查詢方法探索與實現[J].信息系統工程,2018.10:27-28

主站蜘蛛池模板: 香蕉视频在线精品| 久久99国产综合精品1| 成人精品亚洲| 亚洲国产欧洲精品路线久久| 色亚洲成人| 97久久精品人人| 日本人又色又爽的视频| 久久福利网| 99热这里只有精品免费| 亚洲国产综合精品一区| 久久亚洲黄色视频| 亚洲系列中文字幕一区二区| 亚洲精品无码不卡在线播放| 一级高清毛片免费a级高清毛片| AV不卡国产在线观看| 亚洲视频二| 制服无码网站| 日本一区中文字幕最新在线| 日本欧美一二三区色视频| 婷婷色婷婷| 日韩精品成人网页视频在线| 无码不卡的中文字幕视频| 波多野衣结在线精品二区| 999福利激情视频| 久久永久视频| av色爱 天堂网| 国产日本一区二区三区| 日韩东京热无码人妻| 人人澡人人爽欧美一区| 日韩东京热无码人妻| 亚洲系列无码专区偷窥无码| 五月婷婷综合色| 国产精品短篇二区| 欧美亚洲欧美区| 99久久亚洲综合精品TS| 人妻少妇久久久久久97人妻| 噜噜噜综合亚洲| 无码免费的亚洲视频| 在线欧美日韩国产| 亚洲av色吊丝无码| аⅴ资源中文在线天堂| 天堂av综合网| 天天色天天操综合网| 免费人成在线观看成人片| 国产精品蜜芽在线观看| 亚洲国产精品日韩欧美一区| 亚洲第一色网站| 亚洲综合18p| 亚洲综合第一区| 亚洲精品国偷自产在线91正片| 国产精品成人不卡在线观看| 亚洲精品无码抽插日韩| 性色生活片在线观看| 精品亚洲欧美中文字幕在线看| 日本成人不卡视频| 人妻无码中文字幕第一区| 成人在线不卡视频| 福利在线一区| 欧美日韩精品综合在线一区| 亚洲欧美极品| 韩日免费小视频| 就去吻亚洲精品国产欧美| 视频一本大道香蕉久在线播放| 久久精品人人做人人爽电影蜜月| 国产本道久久一区二区三区| 日韩欧美中文| 中国国产A一级毛片| 国产免费久久精品99re丫丫一| 波多野结衣一区二区三区四区视频 | 欧美中文一区| 亚洲成人高清在线观看| 高潮毛片免费观看| 三级视频中文字幕| 午夜限制老子影院888| 国产乱子伦精品视频| 熟妇人妻无乱码中文字幕真矢织江 | 国产理论一区| 中国一级特黄大片在线观看| 欧美一区二区三区国产精品| 999国产精品| 热思思久久免费视频| 麻豆AV网站免费进入|