精通數(shù)據(jù)庫(kù)系列之入門(mén)-基礎(chǔ)篇2
2019-09-08 23:34:27
供稿:網(wǎng)友
數(shù)據(jù)庫(kù)系統(tǒng)的產(chǎn)生和發(fā)展
眾所周知,數(shù)據(jù)庫(kù)系統(tǒng)并不是在計(jì)算機(jī)產(chǎn)生的同時(shí)就出現(xiàn)的,而是隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,在特定的歷史時(shí)期、特定的需求環(huán)境下出現(xiàn)的。人類(lèi)在1946年發(fā)明了世界上的第一臺(tái)計(jì)算機(jī)到20世紀(jì)60年代這漫長(zhǎng)的20年里,計(jì)算機(jī)操作系統(tǒng)還主要局限于文件的操作,同樣,對(duì)數(shù)據(jù)的管理也主要是通過(guò)文件系統(tǒng)來(lái)實(shí)現(xiàn)。進(jìn)行計(jì)算所需要的各種數(shù)據(jù)存放在各自的文件里面。當(dāng)要使用這些數(shù)據(jù)的時(shí)候,將文件打開(kāi),讀取文件中的數(shù)據(jù)到內(nèi)存中。當(dāng)計(jì)算完畢后,將計(jì)算結(jié)果仍舊寫(xiě)入到文件中去。
雖然這種在文件中存放數(shù)據(jù)的方式目前在很多系統(tǒng)中還在使用,但是,這樣的數(shù)據(jù)存放方式在三四十年前的當(dāng)時(shí),就已經(jīng)顯示出了非常明顯的不足。這些不足主要集中在無(wú)法對(duì)數(shù)據(jù)進(jìn)行有效的統(tǒng)一管理。具體表現(xiàn)在這樣幾個(gè)方面:
程序員編寫(xiě)應(yīng)用程序非常不方便。應(yīng)用程序的設(shè)計(jì)者需要對(duì)程序所使用的文件的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)都了解的非常清楚。而計(jì)算機(jī)操作系統(tǒng)只提供將文件打開(kāi)、關(guān)閉、保存等非常低級(jí)的操作,而對(duì)數(shù)據(jù)的修改、查詢(xún)操作則需要應(yīng)用程序來(lái)解決,如果程序所需要的數(shù)據(jù)存放在不同的文件里,而且這些文件的存儲(chǔ)格式又迥然不同。這樣就給應(yīng)用程序的開(kāi)發(fā)帶來(lái)了巨大的麻煩,程序員要為程序中所用到的每一個(gè)文件都寫(xiě)好相應(yīng)的接口,而且不同的文件格式相差很大,這樣就大大的增加了編程的工作量,從而使得在文件級(jí)別上開(kāi)發(fā)應(yīng)用程序的效率非常低下,嚴(yán)重影響應(yīng)用軟件的發(fā)展。
文件結(jié)構(gòu)的每一處修改都將導(dǎo)致應(yīng)用程序的修改,從而使得應(yīng)用程序的維護(hù)工作量特別大。編過(guò)程序的人都有這種體會(huì),就是每當(dāng)自己開(kāi)發(fā)完畢的程序需要修改的時(shí)候,又不得不將源程序重新修改、編譯、鏈接。其麻煩程度可想而知。因?yàn)橛腥藨蚍Q(chēng)編程人員為“老改”人員,個(gè)中滋味,外人恐怕很難體會(huì)到的。
計(jì)算機(jī)操作系統(tǒng)中的文件系統(tǒng)一般不支持對(duì)文件的并發(fā)訪(fǎng)問(wèn)。而在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,為了充分發(fā)揮計(jì)算機(jī)系統(tǒng)的資源使用效率,一般都允許多個(gè)程序“同時(shí)”運(yùn)行,即并發(fā)性。對(duì)數(shù)據(jù)庫(kù)系統(tǒng)同樣有并發(fā)性的要求,現(xiàn)在比較大型的數(shù)據(jù)庫(kù)都有非常強(qiáng)的并發(fā)訪(fǎng)問(wèn)機(jī)制,這樣可以充分利用數(shù)據(jù)庫(kù)服務(wù)器的軟、硬件資源,避免浪費(fèi)。
由于基于文件系統(tǒng)的數(shù)據(jù)管理缺乏整體性、統(tǒng)一性,在數(shù)據(jù)的結(jié)構(gòu)、編碼、表示格式等諸多方面不能做到標(biāo)準(zhǔn)化、規(guī)范化,不同的操作系統(tǒng)有風(fēng)格迥異的表示方式,因此在一定程度上造成了數(shù)據(jù)管理的混亂。另外,基于文件系統(tǒng)的數(shù)據(jù)管理在數(shù)據(jù)的安全性和保密性發(fā)面難以采取有效的措施,在一些對(duì)安全性要求比較高的場(chǎng)合,這種安全上的缺陷是完全不允許的。
針對(duì)文件系統(tǒng)的這些重要缺點(diǎn),人們逐步發(fā)展了以統(tǒng)一管理數(shù)據(jù)和共享數(shù)據(jù)為主要特征的系統(tǒng),這就是數(shù)據(jù)庫(kù)系統(tǒng)。數(shù)據(jù)庫(kù)系統(tǒng)就是在這樣的背景下發(fā)展起來(lái)了。1964年,美國(guó)通用電氣公司開(kāi)發(fā)成功了世界上的第一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)――IDS(Integrated Data Store)。IDS奠定了網(wǎng)狀數(shù)據(jù)庫(kù)的基礎(chǔ),并且得到了廣泛的發(fā)行和應(yīng)用,成為數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史上的一座豐碑。1969年,美國(guó)國(guó)際商用機(jī)器公司(IBM)也推出世界上第一個(gè)層次數(shù)據(jù)庫(kù)系統(tǒng)IMS(Information Management System),同樣在數(shù)據(jù)庫(kù)系統(tǒng)發(fā)展史上占有重要的地位。
七十年代初,E.F.Codd在總結(jié)前面的層次、網(wǎng)狀數(shù)據(jù)庫(kù)優(yōu)缺點(diǎn)的基礎(chǔ)上,提出了關(guān)系數(shù)據(jù)模型的概念。他提出了關(guān)系代數(shù)和關(guān)系演算(直到今天,在E.F.Codd的這些基本理論還在左右這數(shù)據(jù)庫(kù)系統(tǒng)的發(fā)展,也依然是高校計(jì)算機(jī)專(zhuān)業(yè)課堂上所要講述的重要內(nèi)容)。在整個(gè)七十年代,關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)無(wú)論從理論上還是實(shí)踐上都去的了豐碩的成果。在理論上,確立了完整的關(guān)系模型理論、數(shù)據(jù)依賴(lài)?yán)碚摵完P(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)理論(在后面將重點(diǎn)講述這些關(guān)系數(shù)據(jù)庫(kù)的基本理論);在實(shí)踐上,世界上出現(xiàn)了很多著名的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),比較著名的如System R,INGRES,Oracle等。
和文件系統(tǒng)相比,數(shù)據(jù)庫(kù)系統(tǒng)有一系列的特點(diǎn),具體表現(xiàn)在以下幾個(gè)方面:
數(shù)據(jù)庫(kù)系統(tǒng)向用戶(hù)提供高級(jí)的接口。在文件系統(tǒng)中,用戶(hù)要訪(fǎng)問(wèn)數(shù)據(jù),必須了解文件的存儲(chǔ)格式、記錄的結(jié)構(gòu)等。而在數(shù)據(jù)庫(kù)系統(tǒng)中,這一切都不需要了。數(shù)據(jù)庫(kù)系統(tǒng)為用戶(hù)處理了這些具體的細(xì)節(jié),向用戶(hù)提供非過(guò)程化的數(shù)據(jù)庫(kù)語(yǔ)言(即通常所說(shuō)的SQL語(yǔ)言),用戶(hù)只要提出需要什么數(shù)據(jù),而不必關(guān)心如何獲得這些數(shù)據(jù)。對(duì)數(shù)據(jù)的管理完全由數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS: Database Management System)來(lái)實(shí)現(xiàn)。
查詢(xún)的處理和優(yōu)化。查詢(xún)通常指用戶(hù)向數(shù)據(jù)庫(kù)系統(tǒng)提交的一些對(duì)數(shù)據(jù)操作的請(qǐng)求。由于數(shù)據(jù)庫(kù)系統(tǒng)向用戶(hù)提供了非過(guò)程化的數(shù)據(jù)操縱語(yǔ)言,因此對(duì)于用戶(hù)的查詢(xún)請(qǐng)求就由DBMS來(lái)完成,查詢(xún)的優(yōu)化處理就成了DBMS的重要任務(wù)。
并發(fā)控制。前面曾經(jīng)提到,文件系統(tǒng)一般不支持并發(fā)操作,這樣大大的限制了系統(tǒng)資源的有效利用。在數(shù)據(jù)庫(kù)系統(tǒng)中,情況就不一樣了?,F(xiàn)代的數(shù)據(jù)庫(kù)系統(tǒng)都有很強(qiáng)的并發(fā)操作機(jī)制,多個(gè)用戶(hù)可以同時(shí)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),甚至可以同時(shí)訪(fǎng)問(wèn)同一個(gè)表中的不同記錄。這樣極大的提高了計(jì)算機(jī)系統(tǒng)資源的使用效率。
數(shù)據(jù)的完整性約束。凡是數(shù)據(jù)都要遵守一定的約束,最簡(jiǎn)單的一個(gè)例子就是數(shù)據(jù)類(lèi)型,例如定義成整型的數(shù)據(jù)就不能是浮點(diǎn)數(shù)。由于數(shù)據(jù)庫(kù)中的數(shù)據(jù)是持久的和共享的,因此對(duì)于使用這些數(shù)據(jù)的單位來(lái)說(shuō),數(shù)據(jù)的正確行顯得非常重要。在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,比較重要的完整性約束有實(shí)體完整性、域完整性、參照完整性和用戶(hù)自定義的完整性等,在后面的文章中將有重點(diǎn)講述。
進(jìn)入二十世紀(jì)八十年代之后,計(jì)算機(jī)硬件技術(shù)有了飛速的提高。計(jì)算機(jī)技術(shù)的提高促使計(jì)算機(jī)應(yīng)用不斷深入,產(chǎn)生了許多新的應(yīng)用領(lǐng)域,例如計(jì)算機(jī)輔助設(shè)計(jì)、計(jì)算機(jī)輔助制造、計(jì)算機(jī)輔助教學(xué)、辦公自動(dòng)化、智能信息處理、決策支持等。這些新的領(lǐng)域?qū)?shù)據(jù)庫(kù)系統(tǒng)提出了新的要求。但是由于應(yīng)用的多元化,不能設(shè)計(jì)出一個(gè)統(tǒng)一的數(shù)據(jù)模型來(lái)表示這些新型的數(shù)據(jù)及其相互關(guān)系,因而出現(xiàn)了百家爭(zhēng)鳴的局面,產(chǎn)生了演繹數(shù)據(jù)庫(kù)、面向?qū)ο髷?shù)據(jù)庫(kù)、分布式數(shù)據(jù)庫(kù)、工程數(shù)據(jù)庫(kù)、時(shí)態(tài)數(shù)據(jù)庫(kù)、模糊數(shù)據(jù)庫(kù)等新型數(shù)據(jù)庫(kù)的研究和應(yīng)用。
不過(guò)到目前為止,在世界范圍內(nèi)得到主流應(yīng)用的還是經(jīng)典的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),比較知名的如Sybase,Oracle,Informix,SQL Server,DB2等。在本系列專(zhuān)題文章中,我們也將根據(jù)數(shù)據(jù)庫(kù)系統(tǒng)的實(shí)際應(yīng)用情況,重點(diǎn)介紹關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)。其他的數(shù)據(jù)庫(kù)系統(tǒng),也將作簡(jiǎn)單的介紹。
猜你喜歡的關(guān)注
- u盤(pán)無(wú)法識(shí)別怎么辦,小編告訴你U盤(pán)無(wú)法識(shí)別
- usb無(wú)線(xiàn)網(wǎng)卡怎么用,小編告訴你安裝教程
- usb調(diào)試在哪,小編告訴你usb調(diào)試在哪
- 優(yōu)盤(pán)不顯示,小編告訴你優(yōu)盤(pán)不顯示怎么辦
- 低級(jí)格式化,小編告訴你硬盤(pán)怎么低級(jí)格式化
- 分區(qū)表丟失,小編告訴你分區(qū)表丟失如何修復(fù)
- 進(jìn)入bios,小編告訴你戴爾筆記本進(jìn)入bios設(shè)
- 怎么刷bios,小編告訴你華碩怎么刷bios
- 讀卡器怎么用,小編告訴你如何使用讀卡器
- bios升級(jí),小編告訴你華碩主板bios怎么升級(jí)