如果將企業(yè)的數(shù)據(jù)與生命所需的血液進(jìn)行比較,那么數(shù)據(jù)庫(kù)的設(shè)計(jì)將是應(yīng)用程序中最重要的部分。那么什么是數(shù)據(jù)庫(kù)設(shè)計(jì)?大型數(shù)據(jù)庫(kù)設(shè)計(jì)有哪些需要注意事項(xiàng)?當(dāng)前,數(shù)據(jù)庫(kù)設(shè)計(jì)通常采用生命周期方法,即整個(gè)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的開(kāi)發(fā)分為具有獨(dú)立目標(biāo)的幾個(gè)階段。它們是:需求分析階段,概念設(shè)計(jì)階段,邏輯設(shè)計(jì)階段,物理設(shè)計(jì)階段,編碼階段,測(cè)試階段,操作階段以及進(jìn)一步的修改階段。
什么是數(shù)據(jù)庫(kù)設(shè)計(jì)?
數(shù)據(jù)庫(kù)有很多種類(lèi)型,從最簡(jiǎn)單的存儲(chǔ)有各種數(shù)據(jù)的表格到能夠進(jìn)行海量數(shù)據(jù)存儲(chǔ)的大型數(shù)據(jù)庫(kù)系統(tǒng)都在各個(gè)方面得到了廣泛的應(yīng)用。那么要得到各個(gè)方面的數(shù)據(jù)庫(kù),就要按照需求對(duì)數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),轉(zhuǎn)變成用戶(hù)所需要的各種數(shù)據(jù)管理。
數(shù)據(jù)庫(kù)設(shè)計(jì)(Database Design)是指根據(jù)用戶(hù)的需求,在某一具體的數(shù)據(jù)庫(kù)管理系統(tǒng)上,設(shè)計(jì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)和建立數(shù)據(jù)庫(kù)的過(guò)程。就是規(guī)劃和結(jié)構(gòu)化數(shù)據(jù)庫(kù)中的數(shù)據(jù)對(duì)象以及這些數(shù)據(jù)對(duì)象之間關(guān)系的過(guò)程。
大型數(shù)據(jù)庫(kù)設(shè)計(jì)有哪些需要注意事項(xiàng)?
1、事務(wù)的陷阱
事務(wù)是在一次性完結(jié)的一組操作。盡管這些操作是單個(gè)的操作,SQL Server能夠確保這組操作要么全部都完結(jié),要么一點(diǎn)都不做。恰是大型數(shù)據(jù)庫(kù)的這一特性,使得數(shù)據(jù)的完整性得到了極大的確保。
事務(wù)能夠嵌套,能夠經(jīng)過(guò)全局變量檢索到銜接的事務(wù)處理嵌套層次。需求加以特別注意而且極簡(jiǎn)單使編程人員犯錯(cuò)誤的是,每個(gè)顯示或隱含的事物開(kāi)端都使得該變量加1,每個(gè)事務(wù)的提交使該變量減1,每個(gè)事務(wù)的回滾都會(huì)使得該變量置0,而只有當(dāng)該變量為0時(shí)的事務(wù)提交,這時(shí)才把物理數(shù)據(jù)寫(xiě)入磁盤(pán)。
2、索引(Index)的使用原則
大型數(shù)據(jù)庫(kù)有兩種索引即簇索引和非簇索引,一個(gè)沒(méi)有簇索引的表是按堆結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),一切的數(shù)據(jù)均添加在表的尾部,而建立了簇索引的表,其數(shù)據(jù)在物理上會(huì)按照簇索引鍵的次序存儲(chǔ),一個(gè)表只允許有一個(gè)簇索引。所以對(duì)索引較多的表進(jìn)行頻頻的刺進(jìn)、更新、刪去操作,建表和索引時(shí)因設(shè)置較小的填充因子,以便在各數(shù)據(jù)頁(yè)中留下較多的自由空間,削減頁(yè)切割及重新組織的工作。
3、數(shù)據(jù)的一致性和完整性
為了確保數(shù)據(jù)庫(kù)的一致性和完整性,設(shè)計(jì)人員往往會(huì)規(guī)劃過(guò)多的表間相關(guān),盡可能的下降數(shù)據(jù)的冗余。表間相關(guān)是一種強(qiáng)制性辦法,樹(shù)立后,對(duì)父表和子表的插入、更新、刪去操作均要占用系統(tǒng)的開(kāi)銷(xiāo),別的,最佳不要用Identify 特點(diǎn)字段作為主鍵與子表相關(guān)。
4、命名的規(guī)范
不同的數(shù)據(jù)庫(kù)產(chǎn)品對(duì)對(duì)象的命名有不同的要求,因此,數(shù)據(jù)庫(kù)中的各種對(duì)象的命名、后臺(tái)程序的代碼編寫(xiě)應(yīng)采用大小寫(xiě)敏感的形式,各種對(duì)象命名長(zhǎng)度不要超過(guò)30個(gè)字符,這樣便于應(yīng)用系統(tǒng)適應(yīng)不同的數(shù)據(jù)庫(kù)。
5、數(shù)據(jù)類(lèi)型的選擇
數(shù)據(jù)類(lèi)型的合理選擇關(guān)于數(shù)據(jù)庫(kù)的功能和操作具有很大的影響,有關(guān)這方面的書(shū)本也有不少的論述,這兒首要介紹幾點(diǎn)經(jīng)歷。
Identify字段不要作為表的主鍵與其它表關(guān)聯(lián),這將會(huì)影響到該表的數(shù)據(jù)搬遷。Text 和Image字段屬指針型數(shù)據(jù),首要用來(lái)存放二進(jìn)制大型目標(biāo)(BLOB)。這類(lèi)數(shù)據(jù)的操作對(duì)比其它數(shù)據(jù)類(lèi)型較慢,因而要避開(kāi)運(yùn)用。
日期型字段的優(yōu)點(diǎn)是有很多的日期函數(shù)支撐,因而,在日期的巨細(xì)對(duì)比、加減操作上十分簡(jiǎn)略。但是,在依照日期作為條件的查詢(xún)操作也要用函數(shù),對(duì)比其它數(shù)據(jù)類(lèi)型速度上就慢很多,由于用函數(shù)作為查詢(xún)的條件時(shí),服務(wù)器無(wú)法用先進(jìn)的功能戰(zhàn)略來(lái)優(yōu)化查詢(xún)而只能進(jìn)行表掃描遍歷每行。
上述就是關(guān)于什么是數(shù)據(jù)庫(kù)設(shè)計(jì),以及大型數(shù)據(jù)庫(kù)設(shè)計(jì)有哪些需要注意事項(xiàng)的全部?jī)?nèi)容,想了解更多古關(guān)于數(shù)據(jù)庫(kù)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。