當前位置:成語大全網 - 書法字典 - 數據庫解決的是數據從邏輯結構到物理結構的存儲問題吧?

數據庫解決的是數據從邏輯結構到物理結構的存儲問題吧?

什麽是數據結構?如節所述,數據存儲方式可分為線性表、樹和圖三種存儲結構,每種存儲結構又可細分為順序存儲結構和鏈式存儲結構。數據存儲方式多種多樣,針對不同類型的數據選擇合適的存儲方式非常重要。

那麽,該如何選擇呢?數據存儲結構的選擇取決於兩個方面,即數據的邏輯結構和存儲結構(也稱物理結構)。

邏輯結構

數據的邏輯結構,簡單理解就是指數據之間的邏輯關系。

家庭成員關系圖

圖1家庭成員關系圖

例如,圖1顯示了壹個家庭成員關系圖。從圖中我們可以看出,張平、張華、張群是兄弟,他們的父親是肖恩。其中,張平有兩個兒子,分別是張靜和章雷。

如上所述,父子、兄弟等關系是指數據之間的邏輯關系。假設我們要存儲這樣壹個家庭成員關系圖,不僅要有張萍、張華等數據,還要有他們之間的關系,兩者缺壹不可。

成功存儲在計算機中的壹組數據的衡量標準是能夠完全恢復它。比如圖1所示的隸屬關系圖,如果存儲的數據能完整還原這個隸屬關系圖,就說明數據存儲成功了。

“多對多”關系示意圖

圖2“多對多”關系示意圖

數據之間的邏輯關系可以細分為三類:壹對壹、壹對多、多對多:

“壹對壹”:與集合{1,2,3,...,n},左邊只有壹個數據與之相鄰(1除外);同樣,與其相鄰的每個數據(N除外)右側只有壹個數據,所有數據都是相同的,也就是說,數據之間存在“壹對壹”的邏輯關系;

“壹對多”:圖1中的數據屬於“壹對多”,因為對於張平來說,只有壹個父親(肖恩),卻有2個(多)孩子;

“多對多”:以圖2為例,從V1可以到達V2、V3、V4,也可以從V2、V3、V4到達V1。對於V1、V2、V3、V4,它們之間的關系是“多對多”;

通過學習數據結構,我們可以了解到三種存儲結構分別存儲這三種邏輯關系的數據,換句話說:

線性表用於存儲“壹對壹”邏輯關系的數據;

樹形結構用於存儲“壹對多”關系的數據;

圖結構用於存儲“多對多”關系的數據;

由此,我們可以通過分析數據之間的邏輯關系來決定使用哪種存儲結構,但使用順序存儲還是鏈式存儲取決於數據的物理結構。

存儲結構(物理結構)

數據的存儲結構,也就是物理結構,是指數據在物理存儲空間上的集中存儲或分散存儲的選擇。假設要存儲大小為10G的數據,集中存儲如圖3a)所示,分散存儲如圖3b)所示。

數據的物理存儲模式

圖3數據的物理存儲模式

如果選擇集中存儲,則使用順序存儲結構;相反,使用鏈式存儲。至於如何選擇,主要看存儲設備的狀態和數據的用途。

我們知道,集中式存儲(底層實現使用陣列)需要使用大量連續的物理空間。假設要存儲大小為1G的數據,如果存儲設備上沒有整體大小超過1G的空間,則不能使用順序存儲。這時候應該選擇鏈式存儲,因為鏈式存儲是數據的隨機存儲,在存儲設備中占用的存儲空間比較小,所以有壹定幾率可以存儲成功。

而且數據的不同用途會導致不同的存儲結構。數據集中存儲有利於後期遍歷數據,分散存儲更有利於後期添加或刪除數據。所以如果後期需要大量的數據檢索(遍歷),選擇集中存儲;另壹方面,如果後期需要進壹步更新(添加或刪除)數據,則選擇分散存儲。