資料庫系統和檔案系統的分別


早期的資料(數據、文字、圖片、聲音…)單獨以檔案的方式(.txt.doc.jpg.wav……)存在於電腦系統中,這樣做的好處是這些獨立存在的檔案彼此之間是獨立的,彼此間的資料作異動時對其他檔案間不會有太大的影響,而缺點是在資料量越來越多的情形下,每個檔案裡的資料沒有辦法用很簡單的方式取出來作分析及統計,當資料要作異動的時候會對使用者產生很大的困擾,因此後來發展出了檔案型的資料庫系統,可將不同的資料包裹成單一個檔案(就很像ACCESS資料庫),可以透過各種的程式語言進行資料的查詢、分析,這也是最早的資料庫系統。


 


早期的資料庫因為是從檔案系統演變過來的,所以底層的資料庫結構(SCHEMA)均是以檔案結構的觀念在擺放資料,由於檔案系統是呈現樹狀階層式,所以早期的資料庫都是稱作階層式資料庫(直到現在為止,就連關聯式資料庫搜尋上背後運作的資料結構也是遵循B-TREE的模式作資料搜尋)。由於階層式資料庫系統在操作及資料存取上操作非常的不方便,對專業的程式設計師來說或許不會造成太大的困擾,但是對一般使用者而言,在操作上就會造成很大的不方便。


 



在資料庫技術發展的歷史上,1 9 7 0年是發生偉大轉折的一年。這一年的6月,I B M聖約瑟研究實驗室的高級研究員埃德加·考特 (Edgar Frank Codd) Communications of ACM 上發表了《大型共用資料庫資料的關係模型》一文。A C M後來在1 9 8 3年把這篇論文列爲從 1 9 5 8 年以來的2 5 年中最具里程碑意義的2 5篇論文之一,因爲它首次明確而清晰地爲資料庫系統提出了一種嶄新的模型,即關係模型。“關係”( r e l a t i o n ) 是數學中的一個基本概念,由集合中的任意元素所組成的若干有序偶對表示,用以反映客觀事物間的一定關係。如數之間的大小關係、人之間的親屬關係、商品流通中的購銷關係等等。在自然界和社會中,關係無處不在;在電腦科學中,關係的概念也具有十分重要的意義。電腦的邏輯設計、編譯程序設計、演算法分析與程式結構、資訊檢索等,都應用了關係的概念。


 



由於關係模型既簡單、又有堅實的數學基礎,所以一經提出,立即引起學術界和産業界的廣泛重視,從理論與實作兩方面對資料庫技術産生了強烈的衝擊。在關係模型提出之後,以前的基於層次模型和網狀模型的資料庫産品很快走向衰敗以至消亡,一大批商品化關聯資料庫系統(包括ACCESSDB2MS-SQLORACLE…)很快被開發出來並迅速佔領了市場。


1 9 7 2 年,提出了關係代數和關係演算的概念,定義了關係的並、交、投影、選擇、連接等各種基本運算,爲日後成爲標準的結構化查詢語言(S Q L)奠定了基礎。


 


到了近期,「物件」(OBJECT)的觀念逐漸被一般大眾所接受,所以後來又衍生出了物件導向程式語言以及物件導向資料庫,逐漸將物件的觀念(繼承)帶入資料庫的世界裡,最著名的是UNISQLCACHE


 


SQL的標準化


在關聯式資料庫模型被提出後,各家關聯式資料庫廠商也就這套關聯式資料模型與關係代數間的演算關係,開發出各自的資料查詢與定義語言,形成各自為政的狀況,發展到後來各家廠商即開始尋求整合以及標準化,所以在1992年由ANSI組織出面將各家廠商的資料描述語言整合統一制定出ANSI-SQL92的標準,到現在則已經推出了SQL99的標準,而SQL99則是在SQL92版本上加入一些特殊的功能,基本上SQL99以支援ODBMS以及RODBMS資料庫管理系統。


 


資料庫程式語言的簡介


ANSI組織提出SQL92SQL99標準後,雖然可以解決一般使用者操作便利性的問題,逐漸的使用者想將部分的運算交由資料庫來完成,但很快的就發現SQL並不支援完整的結構化邏輯(也就是沒有IF-ELSEFOR NEXTLOOPWHILE…等),基於這些SQL先天上的缺點,各家廠商即針對自己家的產品開發出一套可以跟SQL結合的資料運算語言,也各自賦予其代表性的名稱,即MS SQLT-SQLORACLE裡的PL/SQL。透過這些資料庫程式語言,就可以將SQL查詢標準化(這和後面即將談到的資料庫效能調校很大的關係),並且將部分的運算交由資料庫來執行,可簡化前端程式的負載及部分人工處理上的不便。



 
arrow
arrow
    全站熱搜

    噗噗噗的潛水珽 發表在 痞客邦 留言(0) 人氣()