其實呢小九九是小盤算小心思的意思,這里呢就另當(dāng)別用了哈,我是用來指代數(shù)據(jù)庫的特點的。在上一次的隨筆當(dāng)中也提到了數(shù)據(jù)管理技術(shù)發(fā)展到了數(shù)據(jù)庫系統(tǒng)階段是必然,是因為人工管理和文件系統(tǒng)管理已經(jīng)不能適應(yīng)時代發(fā)展提出的新要求。至于它的特點在隨筆(1)中也略有提及,此次隨筆的就詳細的了解一下,與人工管理和文件系統(tǒng)相比數(shù)據(jù)庫系統(tǒng)突出的幾個特點。
第一個呢就是它實現(xiàn)整體數(shù)據(jù)的結(jié)構(gòu)化,這是數(shù)據(jù)庫的主要特點之一,也是數(shù)據(jù)庫系統(tǒng)與文件系統(tǒng)的本質(zhì)區(qū)別。哎呀,又是一個難以理解的概念,還是先來了解一下什么是結(jié)構(gòu)化吧。結(jié)構(gòu)化在網(wǎng)上我沒有找到專門解釋什么是結(jié)構(gòu)化。咱也不是學(xué)習(xí)了曲線解決問題的方法嘛,咱也試一試,不再專門找結(jié)構(gòu)化的解釋,但可以找其他的啊,比如結(jié)構(gòu)化信息、結(jié)構(gòu)化面試、結(jié)構(gòu)化方法等等,那就試一試從這些概念當(dāng)中找到結(jié)構(gòu)化的解釋。
結(jié)構(gòu)化信息是指信息經(jīng)過分析后可分解成多個互相關(guān)聯(lián)的組成部分,各組成部分間有明確的層次結(jié)構(gòu),其使用和維護通過數(shù)據(jù)庫進行管理,并有一定的操作規(guī)范。
結(jié)構(gòu)化方法是一種傳統(tǒng)的軟件開發(fā)方法,它是由結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計和結(jié)構(gòu)化程序設(shè)計三部分有機組合而成的。它的基本思想:把一個復(fù)雜問題的求解過程分階段進行,而且這種分解是自頂向下,逐層分解,使得每個階段處理的問題都控制在人們?nèi)菀桌斫夂吞幚淼姆秶鷥?nèi)。
標(biāo)準(zhǔn)化面試又稱結(jié)構(gòu)化面試,它通過設(shè)計面試所涉及的內(nèi)容、試題評分標(biāo)準(zhǔn)、評分 方法、分數(shù)等對面試者進行系統(tǒng)的結(jié)構(gòu)化的面試。(注明:這里面還有結(jié)構(gòu)化這個詞呢,唉,頭疼)
從以上概念可以看出結(jié)構(gòu)化就是關(guān)系清晰化,組成層次化,內(nèi)容全面化的意思,我也來幾個“化”,我是這樣理解的,不強求任何人也這樣理解,求同存異嘛。言歸正傳,查了查資料知道,文件系統(tǒng)中一個(組)文件基本上是對應(yīng)一個應(yīng)用程序,文件是面向應(yīng)用的。不同的程序用到相同的數(shù)據(jù)時也必須建立各自的文件,也就是文件不是面向全局的。另外,文件系統(tǒng)中每個文件內(nèi)部是結(jié)構(gòu)的,是由記錄構(gòu)成,每個記錄有屬性組成,即記錄也是結(jié)構(gòu)的。但文件之間記錄之間沒有聯(lián)系,是獨立的。好了,到了給出整體數(shù)據(jù)結(jié)構(gòu)化的概念的時候了。所謂整體數(shù)據(jù)結(jié)構(gòu)化是指數(shù)據(jù)庫中的數(shù)據(jù)不再僅僅針對某一個應(yīng)用,而是面向全局;不僅數(shù)據(jù)內(nèi)部是結(jié)構(gòu)化的,而且整體也是結(jié)構(gòu)化的,數(shù)據(jù)之間有聯(lián)系。這時候是不是很清晰很容易理解了呢?不管你理解沒理解,反正我理解了。
之前說過由于人工管理和文件系統(tǒng)管理文件的缺陷,才出現(xiàn)了數(shù)據(jù)庫系統(tǒng)。自然而然,數(shù)據(jù)庫系統(tǒng)所彌補兩者的缺陷的地方也就成了它的特點,就是數(shù)據(jù)共享性高,冗余度低,容易擴充。因為數(shù)據(jù)庫系統(tǒng)的整體結(jié)構(gòu)化的特點,數(shù)據(jù)可以被多個用戶和應(yīng)用程序使用,實現(xiàn)了共享,而共享又大大減少了數(shù)據(jù)冗余,節(jié)約了資源,而且還避免了數(shù)據(jù)之間的不兼容性和不一致性,試想,本是同根生,怎能不兼容?不一致性,就是同一數(shù)據(jù)卻有著不同的值。采用人工管理和文件系統(tǒng)管理時,由于數(shù)據(jù)被重復(fù)存儲,因為不同的應(yīng)用而被修改,而一個程序只能修改自己的文件,那這樣不就亂套了?在文件甲中叫張三,到了文件丙中就又叫了李四了,但卻是同一個人!由于數(shù)據(jù)面向整個全局,數(shù)據(jù)都是結(jié)構(gòu)化的,在多個應(yīng)用共享使用的同時,可以增加新的應(yīng)用,彈性豈不是很大?因為數(shù)據(jù)結(jié)構(gòu)化,只需要重新選取不同子集的數(shù)據(jù)就可以滿足新的需求,豈不是靈活性很大?
數(shù)據(jù)獨立性高也是一個特點,包括數(shù)據(jù)的物理獨立性和邏輯獨立性。這是由DBMS的二級映像功能保證的,這里先不討論哈。物理獨立性是指用戶的應(yīng)用程序與存儲在磁盤上的數(shù)據(jù)庫中的數(shù)據(jù)是相互獨立的,就是這個意思,用戶程序不用管數(shù)據(jù)怎樣存儲,只需要處理數(shù)據(jù)的邏輯結(jié)構(gòu)就行了,從存儲上來說,如果物理存儲改變時,用戶程序也不用改變。邏輯獨立性是指用戶應(yīng)用程序與數(shù)據(jù)庫的邏輯結(jié)構(gòu)是相互獨立的。就是說數(shù)據(jù)的邏輯結(jié)構(gòu)變了,用戶程序也不用改變。邏輯結(jié)構(gòu)就是數(shù)據(jù)之間的關(guān)系。
數(shù)據(jù)由DBMS統(tǒng)一管理和控制,上邊說了數(shù)據(jù)共享,共享會帶來一個問題,我用的數(shù)據(jù)是否是正確的?我修改數(shù)據(jù)之后會不會丟失修改?這當(dāng)然需要解決,但不用擔(dān)心,DBMS全權(quán)處理。DBMS提供安全保護、完整性檢查、并發(fā)控制以及數(shù)據(jù)庫恢復(fù)。安全保護是保護數(shù)據(jù),以防止不合法的使用造成數(shù)據(jù)泄漏和破壞。完整性檢查是指數(shù)據(jù)的正確性、有效性和相容性。完整性檢查將數(shù)據(jù)控制在有效的范圍內(nèi),或保證數(shù)據(jù)之間滿足一定的關(guān)系。當(dāng)多個用戶的并發(fā)進程同時存取、修改數(shù)據(jù)庫時,可能會發(fā)生相互干擾而得到錯誤的結(jié)果或使得數(shù)據(jù)庫的完整性遭到破壞,因此必須對多用戶的并發(fā)操作加以控制和協(xié)調(diào)?;謴?fù)機制就不用說了,計算機系統(tǒng)總有出故障的時候,軟件啊操作員啊或者其它的故意破壞都會影響數(shù)據(jù)的正確性,甚至?xí)斐蓴?shù)據(jù)庫部分或全部數(shù)據(jù)的丟失。所以呢恢復(fù)是必不可少的。
在學(xué)習(xí)的過程中看到一個名詞,叫粒度。對這個詞不是很熟悉,所以從網(wǎng)上找了好多資料來理解這個詞,但只是了解了一下計算機領(lǐng)域的解釋。計算機領(lǐng)域中粒度指系統(tǒng)內(nèi)存擴展增量的最小值。粒度問題是設(shè)計數(shù)據(jù)倉庫的一個最重要方面。粒度是指數(shù)據(jù)倉庫的數(shù)據(jù)單位中保存數(shù)據(jù)的細化或綜合程度的級別。細化程度越高,粒度級就越小;相反,細化程度越低,粒度級就越大。數(shù)據(jù)的粒度一直是一個設(shè)計問題。在早期建立的操作型系統(tǒng)中,粒度是用于訪問授權(quán)的。當(dāng)詳細的數(shù)據(jù)被更新時,幾乎總是把它存放在最低粒度級上。但在數(shù)據(jù)倉庫環(huán)境中,對粒度不作假設(shè)。在數(shù)據(jù)倉庫環(huán)境中粒度之所以是主要的設(shè)計問題,是因為它深深地影響存放在數(shù)據(jù)倉庫中的數(shù)據(jù)量的大小,同時影響數(shù)據(jù)倉庫所能回答的查詢類型。在數(shù)據(jù)倉庫中的數(shù)據(jù)量大小與查詢的詳細程度之間要作出權(quán)衡。粒度在關(guān)系數(shù)據(jù)庫中提到的不多,大都在數(shù)據(jù)倉庫啊數(shù)據(jù)挖掘領(lǐng)域中出現(xiàn)。
了解了數(shù)據(jù)庫系統(tǒng)的特點,也該去糾結(jié)一下它的核心了,就是數(shù)據(jù)模型哦,下一次的隨筆再寫吧。這次就寫到這了。