數(shù)據(jù)庫使用什么數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)庫系統(tǒng)一般由哪三部分組成

瀟灑走一回2022-08-25 09:08:252744

數(shù)據(jù)庫的應(yīng)用系統(tǒng)數(shù)據(jù)結(jié)構(gòu)是什么?數(shù)據(jù)庫中常見的數(shù)據(jù)結(jié)構(gòu)模型是哪些,數(shù)據(jù)庫系統(tǒng)的實(shí)現(xiàn)中采用了哪些常用的數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫索引文件一般采用什么數(shù)據(jù)結(jié)構(gòu)?

本文導(dǎo)航

數(shù)據(jù)庫系統(tǒng)一般由哪三部分組成

看看你要找的這里有沒有?

※數(shù)據(jù)庫的概念與用途

?數(shù)據(jù)庫的概念

什么是數(shù)據(jù)庫呢?當(dāng)人們從不同的角度來描述這一概念時(shí)就有不同的定義(當(dāng)然是描述性的)。例如,稱數(shù)據(jù)庫是一個(gè)"記錄保存系統(tǒng)"(該定義強(qiáng)調(diào)了數(shù)據(jù)庫是若干記錄的集合)。又如稱數(shù)據(jù)庫是"人們?yōu)榻鉀Q特定的任務(wù),以一定的組織方式存儲(chǔ)在一起的相關(guān)的數(shù)據(jù)的集合"(該定義側(cè)重于數(shù)據(jù)的組織)。更有甚者稱數(shù)據(jù)庫是"一個(gè)數(shù)據(jù)倉庫"。當(dāng)然,這種說法雖然形象,但并不嚴(yán)謹(jǐn)。嚴(yán)格地說,數(shù)據(jù)庫是"按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫"。在經(jīng)濟(jì)管理的日常工作中,常常需要把某些相關(guān)的數(shù)據(jù)放進(jìn)這樣"倉庫",并根據(jù)管理的需要進(jìn)行相應(yīng)的處理。例如,企業(yè)或事業(yè)單位的人事部門常常要把本單位職工的基本情況(職工號(hào)、姓名、年齡、性別、籍貫、工資、簡(jiǎn)歷等)存放在表20.6.3中,這張表就可以看成是一個(gè)數(shù)據(jù)庫。有了這個(gè)"數(shù)據(jù)倉庫"我們就可以根據(jù)需要隨時(shí)查詢某職工的基本情況,也可以查詢工資在某個(gè)范圍內(nèi)的職工人數(shù)等等。這些工作如果都能在計(jì)算機(jī)上自動(dòng)進(jìn)行,那我們的人事管理就可以達(dá)到極高的水平。此外,在財(cái)務(wù)管理、倉庫管理、生產(chǎn)管理中也需要建立眾多的這種"數(shù)據(jù)庫",使其可以利用計(jì)算機(jī)實(shí)現(xiàn)財(cái)務(wù)、倉庫、生產(chǎn)的自動(dòng)化管理。

J.Martin給數(shù)據(jù)庫下了一個(gè)比較完整的定義:數(shù)據(jù)庫是存儲(chǔ)在一起的相關(guān)數(shù)據(jù)的集合,這些數(shù)據(jù)是結(jié)構(gòu)化的,無有害的或不必要的冗余,并為多種應(yīng)用服務(wù);數(shù)據(jù)的存儲(chǔ)獨(dú)立于使用它的程序;對(duì)數(shù)據(jù)庫插入新數(shù)據(jù),修改和檢索原有數(shù)據(jù)均能按一種公用的和可控制的方式進(jìn)行。當(dāng)某個(gè)系統(tǒng)中存在結(jié)構(gòu)上完全分開的若干個(gè)數(shù)據(jù)庫時(shí),則該系統(tǒng)包含一個(gè)"數(shù)據(jù)庫集合"。

? 數(shù)據(jù)庫的優(yōu)點(diǎn)

使用數(shù)據(jù)庫可以帶來許多好處:如減少了數(shù)據(jù)的冗余度,從而大大地節(jié)省了數(shù)據(jù)的存儲(chǔ)空間;實(shí)現(xiàn)數(shù)據(jù)資源的充分共享等等。此外,數(shù)據(jù)庫技術(shù)還為用戶提供了非常簡(jiǎn)便的使用手段使用戶易于編寫有關(guān)數(shù)據(jù)庫應(yīng)用程序。特別是近年來推出的微型計(jì)算機(jī)關(guān)系數(shù)據(jù)庫管理系統(tǒng)dBASELL,操作直觀,使用靈活,編程方便,環(huán)境適應(yīng)廣泛(一般的十六位機(jī),如IBM/PC/XT,國(guó)產(chǎn)長(zhǎng)城0520等均可運(yùn)行種軟件),數(shù)據(jù)處理能力極強(qiáng)。數(shù)據(jù)庫在我國(guó)正得到愈來愈廣泛的應(yīng)用,必將成為經(jīng)濟(jì)管理的有力工具。

數(shù)據(jù)庫是通過數(shù)據(jù)庫管理系統(tǒng)(DBMS-DATA BASE MANAGEMENT SYSTEM)軟件來實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)、管理與使用的dBASELL就是一種數(shù)據(jù)庫管理系統(tǒng)軟件。

? 數(shù)據(jù)庫結(jié)構(gòu)與數(shù)據(jù)庫種類

數(shù)據(jù)庫通常分為層次式數(shù)據(jù)庫、網(wǎng)絡(luò)式數(shù)據(jù)庫和關(guān)系式數(shù)據(jù)庫三種。而不同的數(shù)據(jù)庫是按不同的數(shù)據(jù)結(jié)構(gòu)來聯(lián)系和組織的。

1.數(shù)據(jù)結(jié)構(gòu)模型

(1)數(shù)據(jù)結(jié)構(gòu)

所謂數(shù)據(jù)結(jié)構(gòu)是指數(shù)據(jù)的組織形式或數(shù)據(jù)之間的聯(lián)系。如果用D表示數(shù)據(jù),用R表示數(shù)據(jù)對(duì)象之間存在的關(guān)系集合,則將DS=(D,R)稱為數(shù)據(jù)結(jié)構(gòu)。例如,設(shè)有一個(gè)電話號(hào)碼簿,它記錄了n個(gè)人的名字和相應(yīng)的電話號(hào)碼。為了方便地查找某人的電話號(hào)碼,將人名和號(hào)碼按字典順序排列,并在名字的后面跟隨著對(duì)應(yīng)的電話號(hào)碼。這樣,若要查找某人的電話號(hào)碼(假定他的名字的第一個(gè)字母是Y),那么只須查找以Y開頭的那些名字就可以了。該例中,數(shù)據(jù)的集合D就是人名和電話號(hào)碼,它們之間的聯(lián)系R就是按字典順序的排列,其相應(yīng)的數(shù)據(jù)結(jié)構(gòu)就是DS=(D,R),即一個(gè)數(shù)組。

(2)數(shù)據(jù)結(jié)構(gòu)種類

數(shù)據(jù)結(jié)構(gòu)又分為數(shù)據(jù)的邏輯結(jié)構(gòu)和數(shù)據(jù)的物理結(jié)構(gòu)。數(shù)據(jù)的邏輯結(jié)構(gòu)是從邏輯的角度(即數(shù)據(jù)間的聯(lián)系和組織方式)來觀察數(shù)據(jù),分析數(shù)據(jù),與數(shù)據(jù)的存儲(chǔ)位置無關(guān)。數(shù)據(jù)的物理結(jié)構(gòu)是指數(shù)據(jù)在計(jì)算機(jī)中存放的結(jié)構(gòu),即數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)中的實(shí)現(xiàn)形式,所以物理結(jié)構(gòu)也被稱為存儲(chǔ)結(jié)構(gòu)。本節(jié)只研究數(shù)據(jù)的邏輯結(jié)構(gòu),并將反映和實(shí)現(xiàn)數(shù)據(jù)聯(lián)系的方法稱為數(shù)據(jù)模型。

目前,比較流行的數(shù)據(jù)模型有三種,即按圖論理論建立的層次結(jié)構(gòu)模型和網(wǎng)狀結(jié)構(gòu)模型以及按關(guān)系理論建立的關(guān)系結(jié)構(gòu)模型。

2.層次、網(wǎng)狀和關(guān)系數(shù)據(jù)庫系統(tǒng)

(1)層次結(jié)構(gòu)模型

層次結(jié)構(gòu)模型實(shí)質(zhì)上是一種有根結(jié)點(diǎn)的定向有序樹(在數(shù)學(xué)中"樹"被定義為一個(gè)無回的連通圖)。例如圖20.6.4是一個(gè)高等學(xué)校的組織結(jié)構(gòu)圖。這個(gè)組織結(jié)構(gòu)圖像一棵樹,校部就是樹根(稱為根結(jié)點(diǎn)),各系、專業(yè)、教師、學(xué)生等為枝點(diǎn)(稱為結(jié)點(diǎn)),樹根與枝點(diǎn)之間的聯(lián)系稱為邊,樹根與邊之比為1:N,即樹根只有一個(gè),樹枝有N個(gè)。這種數(shù)據(jù)結(jié)構(gòu)模型的一般結(jié)構(gòu)見圖20.6.5所示。

圖20.6.4 高等學(xué)校的組織結(jié)構(gòu)圖 圖20.6.5 層次結(jié)構(gòu)模型

圖20.6.5中,Ri(i=1,2,…6)代表記錄(即數(shù)據(jù)的集合),其中R1就是根結(jié)點(diǎn)(如果Ri看成是一個(gè)家族,則R1就是祖先,它是R2、R3、R4的雙親,而R2、R3、R4互為兄弟),R5、R6也是兄弟,且其雙親為R3。R2、R4、R5、R6又被稱為葉結(jié)點(diǎn)(即無子女的結(jié)點(diǎn))。這樣,Ri(i=1,2,…6)就組成了以R1為樹根的一棵樹,這就是一個(gè)層次數(shù)據(jù)結(jié)構(gòu)模型。

按照層次模型建立的數(shù)據(jù)庫系統(tǒng)稱為層次模型數(shù)據(jù)庫系統(tǒng)。IMS(Information Manage-mentSystem)是其典型代表。

(2)網(wǎng)狀結(jié)構(gòu)模型?

在圖20.6.6中,給出了某醫(yī)院醫(yī)生、病房和病人之間的聯(lián)系。即每個(gè)醫(yī)生負(fù)責(zé)治療三個(gè)病人,每個(gè)病房可住一到四個(gè)病人。如果將醫(yī)生看成是一個(gè)數(shù)據(jù)集合,病人和病房分別是另外兩個(gè)數(shù)據(jù)集合,那么醫(yī)生、病人和病房的比例關(guān)系就是M:N:P(即M個(gè)醫(yī)生,N個(gè)病人,P間病房)。這種數(shù)據(jù)結(jié)構(gòu)就是網(wǎng)狀數(shù)據(jù)結(jié)構(gòu),它的一般結(jié)構(gòu)模型如圖20.6.7所示。在圖中,記錄Ri(i=1,2,8)滿足以下條件:

①可以有一個(gè)以上的結(jié)點(diǎn)無雙親(如R1、R2、R3)。

②至少有一個(gè)結(jié)點(diǎn)有多于一個(gè)以上的雙親。在"醫(yī)生、病人、病房"例中,"醫(yī)生集合有若干個(gè)結(jié)點(diǎn)(M個(gè)醫(yī)生結(jié)點(diǎn))無"雙親",而"病房"集合有P個(gè)結(jié)點(diǎn)(即病房),并有一個(gè)以上的"雙親"(即病人)。

圖20.6.6 醫(yī)生、病房和病人之間的關(guān)系

圖20.6.7 網(wǎng)狀結(jié)構(gòu)模型

按照網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)建立的數(shù)據(jù)庫系統(tǒng)稱為網(wǎng)狀數(shù)據(jù)庫系統(tǒng),其典型代表是DBTG(Data Base Task Group)。用數(shù)學(xué)方法可將網(wǎng)狀數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)化為層次數(shù)據(jù)結(jié)構(gòu)。

(3)關(guān)系結(jié)構(gòu)模型

關(guān)系式數(shù)據(jù)結(jié)構(gòu)把一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡(jiǎn)單的二元關(guān)系(即二維表格形式)。例如某單位的職工關(guān)系就是一個(gè)二元關(guān)系(見表20.6.8)。這個(gè)四行六列的表格的每一列稱為一個(gè)字段(即屬性),字段名相當(dāng)于標(biāo)題欄中的標(biāo)題(屬性名稱);表的每一行是包含了六個(gè)屬性(工號(hào)、姓名、年齡、性別、職務(wù)、工資)的一個(gè)六元組,即一個(gè)人的記錄。這個(gè)表格清晰地反映出該單位職工的基本情況。

表20.6.8 職工基本情況

通常一個(gè)m行、n列的二維表格的結(jié)構(gòu)如表20.6.9所示。

表中每一行表示一個(gè)記錄值,每一列表示一個(gè)屬性(即字段或數(shù)據(jù)項(xiàng))。該表一共有m個(gè)記錄。每個(gè)記錄包含n個(gè)屬性。

作為一個(gè)關(guān)系的二維表,必須滿足以下條件:

(1)表中每一列必須是基本數(shù)據(jù)項(xiàng)(即不可再分解)。

(2)表中每一列必須具有相同的數(shù)據(jù)類型(例如字符型或數(shù)值型)。

(3)表中每一列的名字必須是唯一的。

(4)表中不應(yīng)有內(nèi)容完全相同的行。

(5)行的順序與列的順序不影響表格中所表示的信息的含義。

由關(guān)系數(shù)據(jù)結(jié)構(gòu)組成的數(shù)據(jù)庫系統(tǒng)被稱為關(guān)系數(shù)據(jù)庫系統(tǒng)。

在關(guān)系數(shù)據(jù)庫中,對(duì)數(shù)據(jù)的操作幾乎全部建立在一個(gè)或多個(gè)關(guān)系表格上,通過對(duì)這些關(guān)系表格的分類、合并、連接或選取等運(yùn)算來實(shí)現(xiàn)數(shù)據(jù)的管理。dBASEII就是這類數(shù)據(jù)庫管理系統(tǒng)的典型代表。對(duì)于一個(gè)實(shí)際的應(yīng)用問題(如人事管理問題),有時(shí)需要多個(gè)關(guān)系才能實(shí)現(xiàn)。用dBASEII建立起來的一個(gè)關(guān)系稱為一個(gè)數(shù)據(jù)庫(或稱數(shù)據(jù)庫文件),而把對(duì)應(yīng)多個(gè)關(guān)系建立起來的多個(gè)數(shù)據(jù)庫稱為數(shù)據(jù)庫系統(tǒng)。dBASEII的另一個(gè)重要功能是通過建立命令文件來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的使用和管理,對(duì)于一個(gè)數(shù)據(jù)庫系統(tǒng)相應(yīng)的命令序列文件,稱為該數(shù)據(jù)庫的應(yīng)用系統(tǒng)。因此,可以概括地說,一個(gè)關(guān)系稱為一個(gè)數(shù)據(jù)庫,若干個(gè)數(shù)據(jù)庫可以構(gòu)成一個(gè)數(shù)據(jù)庫系統(tǒng)。數(shù)據(jù)庫系統(tǒng)可以派生出各種不同類型的輔助文件和建立它的應(yīng)用系統(tǒng)。

? 數(shù)據(jù)庫的要求與特性

為了使各種類型的數(shù)據(jù)庫系統(tǒng)能夠充分發(fā)揮它們的優(yōu)越性,必須對(duì)數(shù)據(jù)庫管理系統(tǒng)的使用提出一些明確的要求。

1.建立數(shù)據(jù)庫文件的要求

(1)盡量減少數(shù)據(jù)的重復(fù),使數(shù)據(jù)具有最小的冗余度。計(jì)算機(jī)早期應(yīng)用中的文件管理系統(tǒng),由于數(shù)據(jù)文件是用戶各自建立的,幾個(gè)用戶即使有許多相同的數(shù)據(jù)也得放在各自的文件中,因而造成存儲(chǔ)的數(shù)據(jù)大量重復(fù),浪費(fèi)存儲(chǔ)空間。數(shù)據(jù)庫技術(shù)正是為了克服這一缺點(diǎn)而出現(xiàn)的,所以在組織數(shù)據(jù)的存儲(chǔ)時(shí)應(yīng)避免出現(xiàn)冗余。

(2)提高數(shù)據(jù)的利用率,使眾多用戶都能共享數(shù)據(jù)資源。

(3)注意保持?jǐn)?shù)據(jù)的完整性。這對(duì)某些需要?dú)v史數(shù)據(jù)來進(jìn)行預(yù)測(cè)、決策的部門(如統(tǒng)計(jì)局、銀行等)特別重要。

(4)注意同一數(shù)據(jù)描述方法的一致性,使數(shù)據(jù)操作不致發(fā)生混亂。如一個(gè)人的學(xué)歷在人事檔案中是大學(xué)畢業(yè),而在科技檔案中卻是大學(xué)程度,這樣就容易造成混亂。

(5)對(duì)于某些需要保密的數(shù)據(jù),必須增設(shè)保密措施。

(6)數(shù)據(jù)的查找率高,根據(jù)需要數(shù)據(jù)應(yīng)能被及時(shí)維護(hù)。

2.數(shù)據(jù)庫文件的特征

無論使用哪一種數(shù)據(jù)庫管理系統(tǒng),由它們所建立的數(shù)據(jù)庫文件都可以看成是具有相同性質(zhì)的記錄的集合,因而這些數(shù)據(jù)庫文件都有相同的特性:

(1)文件的記錄格式相同,長(zhǎng)度相等。

(2)不同的行是不同的記錄,因而具有不同的內(nèi)容。

(3)不同的列表示不同的字段名,同一列中的數(shù)據(jù)的性質(zhì)(屬性)相同。

(4)每一行各列的內(nèi)容是不能分割的,但行的順序和列的順序不影響文件內(nèi)容的表達(dá)。

3.文件的分類

對(duì)文件引用最多的是主文件和事物文件。其他的文件分類還包括表文件、備份文件、檔案的輸出文件等。下面將講述這些文件。

(1)主文件。主文件是某特定應(yīng)用領(lǐng)域的永久性的數(shù)據(jù)資源。主文件包含那些被定期存取以提供信息和經(jīng)常更新以反映最新狀態(tài)的記錄。典型的主文件有庫存文件、職工主文件和收帳主文件等。

(2)事務(wù)文件。事務(wù)文件包含著作為一個(gè)信息系統(tǒng)的數(shù)據(jù)活動(dòng)(事務(wù))的那些記錄。這些事務(wù)被分批以構(gòu)成事務(wù)文件。例如,從每周工資卡上錄制下來的數(shù)分批存放在一個(gè)事務(wù)文件上,然后對(duì)照工資清單文件進(jìn)行處理以便打印出工資支票和工資記錄簿。

(3)表文件。表文件是一些表格。之所以單獨(dú)建立表文件而不把表設(shè)計(jì)在程序中是為了便于修改。例如,一個(gè)公用事業(yè)公司的稅率表或國(guó)內(nèi)稅務(wù)局的稅率就可以存儲(chǔ)在表中文件。

(4)備用文件。備用文件是現(xiàn)有生產(chǎn)性文件的一個(gè)復(fù)制品。一旦生產(chǎn)性文件受到破壞,利用備用文件就可以重新建立生產(chǎn)性文件。

(5)檔案文件。檔案文件不是提供當(dāng)前處理使用的,而是保存起來作為歷史參照的。例如,國(guó)內(nèi)稅務(wù)局(IRS)可能要求檢查某個(gè)人最近15年的歷史。實(shí)際上,檔案文件恰恰是在給定時(shí)間內(nèi)工作的一個(gè)"快照"。

(6)輸出文件。輸出文件包含將要打印在打印機(jī)上的、顯在屏幕上的或者繪制在繪圖儀上的那些信息的數(shù)值映象。輸出文件可以是"假脫機(jī)的"(存儲(chǔ)在輔存設(shè)備上),當(dāng)輸出設(shè)備可

用時(shí)才進(jìn)行實(shí)際的輸出。

數(shù)據(jù)庫三大經(jīng)典數(shù)據(jù)模型

3種,層次模型(Hierarchical Model)、網(wǎng)狀模型(Network Model)和關(guān)系模型(Relational Model)

數(shù)據(jù)庫系統(tǒng)的基本組成有哪些

數(shù)據(jù)庫索引文件采用數(shù)據(jù)結(jié)構(gòu)概述:1、非主鍵索引需要在數(shù)據(jù)表本身的存儲(chǔ)空間外額外開銷存儲(chǔ)空間,所以在更新的時(shí)候可能不僅要更新數(shù)據(jù)表本身,還要更新非主鍵索引,更新內(nèi)容更多了,所以導(dǎo)致速度降低。反過來,如果數(shù)據(jù)表中的數(shù)據(jù)按照主鍵索引的順序存儲(chǔ),更新的時(shí)候就沒有額外的開銷。非主鍵索引對(duì)提高查詢速度來講,主要的方面是:檢索的條件(where...)如果命中對(duì)應(yīng)的非主鍵索引的話,就不需要對(duì)數(shù)據(jù)表做全表掃描,效率肯定是大大提高。(索引的創(chuàng)建和使用是數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化的重要部分,是一個(gè)數(shù)據(jù)庫程序員的必修課,不同數(shù)據(jù)庫系統(tǒng)的語法不同,但是原理基本相同);2、如果檢索結(jié)果的字段包含在非主鍵索引中,即使對(duì)非主鍵索引做全掃描,也比對(duì)整表字段做全掃描快,因?yàn)橹挥蟹侵麈I索引本身的數(shù)據(jù)需要從存儲(chǔ)設(shè)備調(diào)入內(nèi)存,節(jié)約了IO時(shí)間。3、不過一般說索引對(duì)查詢速度的影響,主要指第一種情況。關(guān)于數(shù)據(jù)庫索引的數(shù)據(jù)結(jié)構(gòu),大多數(shù)數(shù)據(jù)庫都是采用B樹??蓞⒄瘴恼拢悍侵麈I索引需要在數(shù)據(jù)表本身的存儲(chǔ)空間外額外開銷存儲(chǔ)空間,所以在更新的時(shí)候可能不僅要更新數(shù)據(jù)表本身,還要更新非主鍵索引,更新內(nèi)容更多了,所以導(dǎo)致速度降低。反過來,如果數(shù)據(jù)表中的數(shù)據(jù)按照主鍵索引的順序存儲(chǔ),更新的時(shí)候就沒有額外的開銷。非主鍵索引對(duì)提高查詢速度來講,主要的方面是:檢索的條件(where...)如果命中對(duì)應(yīng)的非主鍵索引的話,就不需要對(duì)數(shù)據(jù)表做全表掃描,效率肯定是大大提高。(索引的創(chuàng)建和使用是數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化的重要部分,是一個(gè)數(shù)據(jù)庫程序員的必修課,不同數(shù)據(jù)庫系統(tǒng)的語法不同,但是原理基本相同);另一方面,也有如下的可能:如果檢索結(jié)果的字段包含在非主鍵索引中,即使對(duì)非主鍵索引做全掃描,也比對(duì)整表字段做全掃描快,因?yàn)橹挥蟹侵麈I索引本身的數(shù)據(jù)需要從存儲(chǔ)設(shè)備調(diào)入內(nèi)存,節(jié)約了IO時(shí)間。不過一般說索引對(duì)查詢速度的影響,主要指第一種情況。

數(shù)據(jù)庫建立索引的原則和目的

關(guān)于數(shù)據(jù)庫索引的數(shù)據(jù)結(jié)構(gòu),大多數(shù)數(shù)據(jù)庫都是采用B樹。

1、非主鍵索引需要在數(shù)據(jù)表本身的存儲(chǔ)空間外額外開銷存儲(chǔ)空間,所以在更新的時(shí)候可能不僅要更新數(shù)據(jù)表本身,還要更新非主鍵索引,更新內(nèi)容更多了,所以導(dǎo)致速度降低。反過來,如果數(shù)據(jù)表中的數(shù)據(jù)按照主鍵索引的順序存儲(chǔ),更新的時(shí)候就沒有額外的開銷。

2、非主鍵索引對(duì)提高查詢速度來講,主要的方面是:檢索的條件(where...)如果命中對(duì)應(yīng)的非主鍵索引的話,就不需要對(duì)數(shù)據(jù)表做全表掃描,效率肯定是大大提高。(索引的創(chuàng)建和使用是數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化的重要部分,是一個(gè)數(shù)據(jù)庫程序員的必修課,不同數(shù)據(jù)庫系統(tǒng)的語法不同,但是原理基本相同)。

3、如果檢索結(jié)果的字段包含在非主鍵索引中,即使對(duì)非主鍵索引做全掃描,也比對(duì)整表字段做全掃描快,因?yàn)橹挥蟹侵麈I索引本身的數(shù)據(jù)需要從存儲(chǔ)設(shè)備調(diào)入內(nèi)存,節(jié)約了IO時(shí)間。

擴(kuò)展資料:

1、選擇唯一性索引 唯一性索引的值是唯一的,可以更快速的通過該索引來確定某條記錄。例如,學(xué)生表中學(xué)號(hào)是具有唯 一性的字 段。為該字段建立唯一性索引可以很快的確定某個(gè)學(xué)生的信息。如果使用姓名的話,可能存 在同名現(xiàn)象, 從而降低查詢速度。

2、盡量使用數(shù)據(jù)量少的索引 如果索引的值很長(zhǎng),那么查詢的速度會(huì)受到影響。例如,對(duì)一個(gè)CHAR(100)類型的字段進(jìn)行全文檢索 需要的時(shí)間肯定要比對(duì)CHAR(10)類型的字段需要的時(shí)間要多。

3、盡量使用前綴來索引 如果索引字段的值很長(zhǎng),最好使用值的前綴來索引。例如,TEXT和BLOG類型的字段,進(jìn)行全文檢 索會(huì)很浪費(fèi)時(shí) 間。如果只檢索字段的前面的若干個(gè)字符,這樣可以提高檢索速度。

掃描二維碼推送至手機(jī)訪問。

版權(quán)聲明:本文由尚恩教育網(wǎng)發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。

本文鏈接:http://www.lmix.com.cn/view/55461.html

標(biāo)簽: 算法

“數(shù)據(jù)庫使用什么數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)庫系統(tǒng)一般由哪三部分組成” 的相關(guān)文章

計(jì)算機(jī)中有向圖是什么 無向圖的邊數(shù)有什么限制么

計(jì)算機(jī)中有向圖是什么 無向圖的邊數(shù)有什么限制么

什么是有向圖????????計(jì)算機(jī)網(wǎng)絡(luò)抽象成有向圖還是無向圖,有向網(wǎng) 有向圖 無向網(wǎng) 無向圖是什么意思? 急?無向圖和有向圖的詳細(xì)講解,網(wǎng)絡(luò)優(yōu)化中的有向圖是指什么呢?數(shù)據(jù)結(jié)構(gòu)問題 什么是有向圖和無向圖?本文導(dǎo)航態(tài)勢(shì)圖什么意思計(jì)算機(jī)網(wǎng)絡(luò)層圖解無向圖轉(zhuǎn)化為有向圖無向圖的邊數(shù)有什么限制么什么是網(wǎng)絡(luò)圖或橫道圖...

數(shù)據(jù)結(jié)構(gòu)b考什么 考研考851數(shù)據(jù)結(jié)構(gòu)與軟件工程

數(shù)據(jù)結(jié)構(gòu)主要考哪方面,廈門大學(xué)計(jì)算機(jī)專碩的903數(shù)據(jù)結(jié)構(gòu)B參考書是哪本啊?只考數(shù)據(jù)結(jié)構(gòu)嗎?還有302數(shù)學(xué)二就是數(shù)學(xué)二嗎?麻煩知道?數(shù)據(jù)結(jié)構(gòu)B是什么?數(shù)據(jù)結(jié)構(gòu)考試重點(diǎn),廈門大學(xué)計(jì)算機(jī)專碩的903數(shù)據(jù)結(jié)構(gòu)B參考書是哪本,(810)數(shù)據(jù)結(jié)構(gòu)B考什么?本文導(dǎo)航程序設(shè)計(jì)與數(shù)據(jù)結(jié)構(gòu)考啥數(shù)據(jù)結(jié)構(gòu)與算法考研考哪個(gè)專...

什么是計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中什么意思

什么是計(jì)算機(jī)數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中什么意思

何為數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)中的數(shù)據(jù)結(jié)構(gòu)指的是啥啊,數(shù)據(jù)結(jié)構(gòu)是什么,舉個(gè)例子?數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中的表示是指什么?數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中的表示是指什么?什么是數(shù)據(jù)的組織方式:數(shù)據(jù)結(jié)構(gòu)?本文導(dǎo)航數(shù)據(jù)結(jié)構(gòu)分哪三種數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)內(nèi)存中什么意思最簡(jiǎn)單最常用的數(shù)據(jù)結(jié)構(gòu)是什么數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的地位和作用計(jì)算機(jī)內(nèi)存...

算法題沒思路怎么搬 C語言編程題沒有思路怎么辦?

算法題沒思路怎么搬 C語言編程題沒有思路怎么辦?

學(xué)C語言,可是算法不行,總是想不出好的解題思路,怎么辦?初學(xué)c語言,算法部分的習(xí)題完全沒思路,你好!請(qǐng)教一下,我的算法非常爛,正在學(xué)js,用到算法時(shí)總是沒有思路,懂了些編程的基本語言,但數(shù)學(xué)差,總是想不到思路,那道題毫無頭緒,想著學(xué)習(xí)些算法但不知道該找什么資料?做數(shù)學(xué)題沒有思路怎么辦?C語言編程題沒...

數(shù)據(jù)結(jié)構(gòu)算法題考什么 數(shù)據(jù)結(jié)構(gòu)本科生筆試題

數(shù)據(jù)結(jié)構(gòu)與算法選擇題,求數(shù)據(jù)結(jié)構(gòu)試題…重點(diǎn),數(shù)據(jù)結(jié)構(gòu)考試重點(diǎn),數(shù)據(jù)結(jié)構(gòu)大概會(huì)考哪些算法題呢?數(shù)據(jù)結(jié)構(gòu)與算法考試 急急急,數(shù)據(jù)結(jié)構(gòu)與算法選擇題。本文導(dǎo)航數(shù)據(jù)結(jié)構(gòu)與算法1800題數(shù)據(jù)結(jié)構(gòu)大題試題及答案完整版數(shù)據(jù)結(jié)構(gòu)本科生筆試題數(shù)據(jù)結(jié)構(gòu)和算法之前先學(xué)什么數(shù)據(jù)結(jié)構(gòu)真題匯總數(shù)據(jù)結(jié)構(gòu)??嫉乃惴〝?shù)據(jù)結(jié)構(gòu)與算法18...

發(fā)表評(píng)論

訪客

◎歡迎參與討論,請(qǐng)?jiān)谶@里發(fā)表您的看法和觀點(diǎn)。