1. 數據結構的存儲方式有哪幾種
數據結構的存儲方式有順序存儲方法、鏈接存儲方法、索引存儲方法和散列存儲方法這四種。
1、順序存儲方式:順序存儲方式就是在一塊連續的存儲區域一個接著一個的存放數據,把邏輯上相連的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接掛安息來體現。順序存儲方式也稱為順序存儲結構,一般採用數組或者結構數組來描述。
2、鏈接存儲方法:它比較靈活,其不要求邏輯上相鄰的結點在物理位置上相鄰,結點間的邏輯關系由附加的引用欄位表示。一個結點的引用欄位往往指導下一個結點的存放位置。鏈接存儲方式也稱為鏈接式存儲結構,一般在原數據項中增加應用類型來表示結點之間的位置關系。
3、索引存儲方法:除建立存儲結點信息外,還建立附加的索引表來標識結點的地址。它細分為兩類:稠密索引:每個結點在索引表中都有一個索引項,索引項的地址指示結點所在的的存儲位置;稀疏索引:一組結點在索引表中只對應一個索引項,索引項的地址指示一組結點的起始存儲位置。
4、散列存儲方法:就是根據結點的關鍵字直接計算出該結點的存儲地址。
(1)數據存儲的物理基礎擴展閱讀
順序存儲和鏈接存儲的基本原理
在順序存儲中,每個存儲空間含有所存元素本身的信息,元素之間的邏輯關系是通過數組下標位置簡單計算出來的線性表的順序存儲,若一個元素存儲在對應數組中的下標位置為i,則它的前驅元素在對應數組中的下標位置為i-1,它的後繼元素在對應數組中的下標位置為i+1。
在鏈式存儲結構中,存儲結點不僅含有所存元素本身的信息,還含有元素之間邏輯關系的信息。數據的鏈式存儲結構可用鏈接表來表示。其中data表示值域,用來存儲節點的數值部分。Pl,p2,…,Pill(1n≥1)均為指針域,每個指針域為其對應的後繼元素或前驅元素所在結點的存儲位置。
在數據的順序存儲中,由於每個元素的存儲位置都可以通過簡單計算得到,所以訪問元素的時間都相同;而在數據的鏈接存儲中,由於每個元素的存儲位置保存在它的前驅或後繼結點中,所以只有當訪問到其前驅結點或後繼結點後才能夠按指針訪問到,訪問任一元素的時間與該元素結點在鏈式存儲結構中的位置有關。
2. 數據存儲的介質
數據存儲介質
凡是僅有兩種穩定的物理狀態,能方便地檢測出處於哪種穩定狀態,兩種穩定狀態又容易相互轉換的物質或元器件,都可以用來存儲二進制代碼「0」和「1」,這樣的物質或元器件被稱為存儲介質或記錄介質。存儲介質不同,存儲信息的機理也不同。信息存儲技術在近幾年的發展非常迅速,各種新產品、新技術層出不窮,但從總體上看它們呈現出一種類似金字塔的結構,其中塔尖為CPU,距離CPU越近則存儲速度越快,每兆位元組的存儲成本越昂貴,容量也越小;反之,則存儲速度越慢,每兆位元組的存儲成本越低,容量也越大。
計算機的存儲設備從體系結構上看可分為內存儲器和外存儲器。內存儲器(即內存)直接與計算機的CPU相連,處於金字塔的最上層。它的存取速度要求能與CPU相匹配,通常由半導體存儲器晶元組成,由於成本高,容量通常不太大。而對於大量數據的保存通常要使用外存儲器。外存儲器又可以分成幾個層次。與內存儲器相連接的是聯機存儲器(或稱在線存儲器),如硬磁碟機、磁碟陣列等。再下一層是後援存儲器(或稱近線存儲器),它由存取速度比硬碟更慢的光碟機、光碟庫、磁帶庫等設備組成。最底層是離線存儲器(或稱離線存儲器),由磁帶機和磁帶庫等組成倉庫,它的存取速度比較慢,僅是數量級,由於存儲介質可離線保存,可以更換,因此容量幾乎是無限大。對於普通的個人計算機用戶,使用硬碟、軟體和光碟等存儲介質來進行數據存儲就已經夠用了,但對於商業用戶和一些網路系統來說,磁帶 機、磁帶庫和光碟庫則是必不可少的數據存儲與備份設備,現在還有正在飛速發展的存儲網路,能提供更為方便的數據保存方式。下面,通過不同的存儲介質來看一看當今市場上流行的主機信息存儲技術,按其存儲原理可以分為電存儲技術,如內存、快閃記憶體等;磁存儲技術,如磁帶、磁碟等;光存儲技術,如光碟、DVD等。
3. 數據存儲方式
數據存儲方式有以下幾種:
(1)順序存儲方法。該方法把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元里,結點間的邏輯關系由存儲單元的鄰接關系來體現。由此得到的存儲表示稱為順序存儲結構 (Sequential Storage Structure ),通常藉助程序語言的數組描述。該方法主要應用於線性的數據結構。非線性的數據結構也可通過某種線性化的方法實現順序存儲。
(2)鏈接存儲方法。該方法不要求邏輯上相鄰的結點在物理位置上亦相鄰,結點間的邏輯關系由附加的指針欄位表示。由此得到的存儲表示稱為鏈式存儲結構(Linked Storage Structure), 通常藉助於程序語言的指針類型描述。
(3)索引存儲方法。該方法通常在儲存結點信息的同時,還建立附加的索引表。 索引表由若干索引項組成。若每個結點在索引表中都有一個索引項,則該索引表稱之為稠密索引(Dense Index )。
(4)散列存儲方法,該方法的基本思想是根據結點的關鍵字直接計算出該結點的存儲地址。
4. 在資料庫中什麼是數據物理存儲的最主要最基本的單位
表胡弊。b是計算機內部數據儲存的最基本單橘吵位。也稱比特,是二進制的一褲伍族個數字,如0或1,用bit或b表示,數據在物理層就是通過表進行傳輸的。
5. 硬碟為什麼可以存儲數據,物理原理是什麼
硬碟存儲原理
硬碟是一種採用磁介質的數據存儲設備,數據存儲在密封於潔凈的硬碟驅動器內腔的若干個磁碟片上。這些碟片一般是在以鋁為主要成分的片基表面塗上磁性介質所形成,在磁碟片的每一面上,以轉動軸為軸心、以一定的磁密度為間隔的若干個同心圓就被劃分成磁軌(track),每個磁軌又被劃分為若干個扇區(sector),數據就按扇區存放在硬碟上。在每一面上都相應地有一個讀寫磁頭(head),所以不同磁頭的所有相同位置的磁軌就構成了所謂的柱面(cylinder)。傳統的硬碟讀寫都是以柱面、磁頭、扇區為定址方式的(CHS定址)。硬碟在上電後保持高速旋轉(5400轉/min以上),位於磁頭臂上的磁頭懸浮在磁碟表面,可以通過步進電機在不同柱面之間移動,對不同的柱面進行讀寫。所以在上電期間如果硬碟受到劇烈振盪,磁碟表面就容易被劃傷,磁頭也容易損壞,這都將給盤上存儲的數據帶來災難性的後果。
硬碟的第一個扇區(0道0頭1扇區)被保留為主引導扇區。在主引導區內主要有兩項內容:主引導記錄和硬碟分區表。主引導記錄是一段程序代碼,其作用主要是對硬碟上安裝的操作系統進行引導;硬碟分區表則存儲了硬碟的分區信息。計算機啟動時將讀取該扇區的數據,並對其合法性進行判斷(扇區最後兩個位元組是否為0x55AA或0xAA55 ),如合法則跳轉執行該扇區的第一條指令。所以硬碟的主引導區常常成為病毒攻擊的對象,從而被篡改甚至被破壞。可引導標志:0x80為可引導分區類型標志;0表示未知;1為FAT12;4為FAT16;5為擴展分區等等。
硬碟數據結構
初買來一塊硬碟,我們是沒有辦法使用的,你需要將它分區、格式化,然後再安裝上操作系統才可以使用。就拿我們一直沿用到現在的Win9x/Me系列來說,我們一般要將硬碟分成主引導扇區、操作系統引導扇區、FAT、DIR和Data等五部分(其中只有主引導扇區是唯一的,其它的隨你的分區數的增加而增加)。
主引導扇區
主引導扇區位於整個硬碟的0磁軌0柱面1扇區,包括硬碟主引導記錄MBR(Main Boot Record)和分區表DPT(Disk Partition Table)。其中主引導記錄的作用就是檢查分區表是否正確以及確定哪個分區為引導分區,並在程序結束時把該分區的啟動程序(也就是操作系統引導扇區)調入內存加以執行。至於分區表,很多人都知道,以80H或00H為開始標志,以55AAH為結束標志,共64位元組,位於本扇區的最末端。值得一提的是,MBR是由分區程序(例如DOS 的Fdisk.exe)產生的,不同的操作系統可能這個扇區是不盡相同。如果你有這個意向也可以自己去編寫一個,只要它能完成前述的任務即可,這也是為什麼能實現多系統啟動的原因(說句題外話:正因為這個主引導記錄容易編寫,所以才出現了很多的引導區病毒)。
操作系統引導扇區
OBR(OS Boot Record)即操作系統引導扇區,通常位於硬碟的0磁軌1柱面1扇區(這是對於DOS來說的,對於那些以多重引導方式啟動的系統則位於相應的主分區/擴展分區的第一個扇區),是操作系統可直接訪問的第一個扇區,它也包括一個引導程序和一個被稱為BPB(BIOS Parameter Block)的本分區參數記錄表。其實每個邏輯分區都有一個OBR,其參數視分區的大小、操作系統的類別而有所不同。引導程序的主要任務是判斷本分區根目錄前兩個文件是否為操作系統的引導文件(例如MSDOS或者起源於MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一個文件讀入內存,並把控制權交予該文件。BPB參數塊記錄著本分區的起始扇區、結束扇區、文件存儲格式、硬碟介質描述符、根目錄大小、FAT個數、分配單元(Allocation Unit,以前也稱之為簇)的大小等重要參數。OBR由高級格式化程序產生(例如DOS 的Format.com)。
--------------------------------------------------------------------------------
文件分配表
FAT
FAT(File Allocation Table)即文件分配表,是DOS/Win9x系統的文件定址系統,為了數據安全起見,FAT一般做兩個,第二FAT為第一FAT的備份, FAT區緊接在OBR之後,其大小由本分區的大小及文件分配單元的大小決定。關於FAT的格式歷來有很多選擇,Microsoft 的DOS及Windows採用我們所熟悉的FAT12、FAT16和FAT32格式,但除此以外並非沒有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。
目錄區
DIR是Directory即根目錄區的簡寫,DIR緊接在第二FAT表之後,只有FAT還不能定位文件在磁碟中的位置,FAT還必須和DIR配合才能准確定位文件的位置。DIR記錄著每個文件(目錄)的起始單元(這是最重要的)、文件的屬性等。定位文件位置時,操作系統根據DIR中的起始單元,結合FAT表就可以知道文件在磁碟的具體位置及大小了。在DIR區之後,才是真正意義上的數據存儲區,即DATA區。
數據區
DATA雖然占據了硬碟的絕大部分空間,但沒有了前面的各部分,它對於我們來說,也只能是一些枯燥的二進制代碼,沒有任何意義。在這里有一點要說明的是,我們通常所說的格式化程序(指高級格式化,例如DOS下的Format程序),並沒有把DATA區的數據清除,只是重寫了FAT表而已,至於分區硬碟,也只是修改了MBR和OBR,絕大部分的DATA區的數據並沒有被改變,這也是許多硬碟數據能夠得以修復的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破壞的話,也足夠咱們那些所謂的DIY老鳥們忙乎半天了……需要提醒大家的是,如果你經常整理磁碟,那麼你的數據區的數據可能是連續的,這樣即使MBR/FAT/DIR全部壞了,我們也可以使用磁碟編輯軟體(比如DOS下的DiskEdit),只要找到一個文件的起始保存位置,那麼這個文件就有可能被恢復(當然了,這需要一個前提,那就是你沒有覆蓋這個文件……)。
硬碟分區方式
我們平時說到的分區概念,不外乎三種:主分區、擴展分區和邏輯分區。
主分區是一個比較單純的分區,通常位於硬碟的最前面一塊區域中,構成邏輯C磁碟。在主分區中,不允許再建立其它邏輯磁碟。
擴展分區的概念則比較復雜,也是造成分區和邏輯磁碟混淆的主要原因。由於硬碟僅僅為分區表保留了64個位元組的存儲空間,而每個分區的參數占據16個位元組,故主引導扇區中總計可以存儲4個分區的數據。操作系統只允許存儲4個分區的數據,如果說邏輯磁碟就是分區,則系統最多隻允許4個邏輯磁碟。對於具體的應用,4個邏輯磁碟往往不能滿足實際需求。為了建立更多的邏輯磁碟供操作系統使用,系統引入了擴展分區的概念。
所謂擴展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鏈表。這樣在主引導扇區中除了主分區外,僅需要存儲一個被稱為擴展分區的分區數據,通過這個擴展分區的數據可以找到下一個分區(實際上也就是下一個邏輯磁碟)的起始位置,以此起始位置類推可以找到所有的分區。無論系統中建立多少個邏輯磁碟,在主引導扇區中通過一個擴展分區的參數就可以逐個找到每一個邏輯磁碟。
需要特別注意的是,由於主分區之後的各個分區是通過一種單向鏈表的結構來實現鏈接的,因此,若單向鏈表發生問題,將導致邏輯磁碟的丟失。
數據存儲原理
既然要進行數據的恢復,當然數據的存儲原理我們不能不提,在這之中,我們還要介紹一下數據的刪除和硬碟的格式化相關問題……
文件的讀取
操作系統從目錄區中讀取文件信息(包括文件名、後綴名、文件大小、修改日期和文件在數據區保存的第一個簇的簇號),我們這里假設第一個簇號是0023。
操作系統從0023簇讀取相應的數據,然後再找到FAT的0023單元,如果內容是文件結束標志(FF),則表示文件結束,否則內容保存數據的下一個簇的簇號,這樣重復下去直到遇到文件結束標志。
文件的寫入
當我們要保存文件時,操作系統首先在DIR區中找到空區寫入文件名、大小和創建時間等相應信息,然後在Data區找到閑置空間將文件保存,並將Data區的第一個簇寫入DIR區,其餘的動作和上邊的讀取動作差不多。
文件的刪除
看了前面的文件的讀取和寫入,你可能沒有往下邊繼續看的信心了,不過放心,Win9x的文件刪除工作卻是很簡單的,簡單到只在目錄區做了一點小改動――將目錄區的文件的第一個字元改成了E5就表示將改文件刪除了。
Fdisk和Format的一點小說明
和文件的刪除類似,利用Fdisk刪除再建立分區和利用Format格式化邏輯磁碟(假設你格式化的時候並沒有使用/U這個無條件格式化參數)都沒有將數據從DATA區直接刪除,前者只是改變了分區表,後者只是修改了FAT表,因此被誤刪除的分區和誤格式化的硬碟完全有可能恢復……
6. 數據存儲的實質是利用物理材料的什麼實現的(填空題)
數據存儲對象包括數據流在加工過程中產生的臨時文件或加工過程中需要查找的信息。數據以某種格式記錄在計算機內部或外部存儲介質上。數據存儲要命名,這種命名要反映信息特徵的組成含義。數據流反映了系統中流動的數據,表現出動態數據的特徵;數據存儲反映系統中靜止的數據,表現出靜態數據的特徵