資料、關係、物件
--評《資料庫原理、程式設計與效能》
楊希煬資料庫--乙個讓人感到多麼熟悉的名詞。似乎懂得一點計算機知識的人都知道它,不少的程式設計師就是在學習資料庫開發語言的過程中,走上程式設計之路的。然而竟有不少電腦科學本科生在臨近畢業時,仍然認為程式設計就是學一門資料庫開發語言,而會使用該語言工作就會掙大錢。多麼幼稚、膚淺的想法!情況真的是如此嗎!程式設計僅僅就是資料庫開發嗎?資料庫就是學一門開發語言那麼簡單嗎?若一位電腦科學專業的學生也要如此認為,我只能感到絕望!
在進入本文的正題之前,先說一些題外話。這些話在心中憋了很久了,如梗在喉,不吐不快。
時值今日,竟然還有這樣多的人認為大學計算機本科開設的課程對於程式設計開發一點用都沒有。作業系統沒用、編譯原理沒用、資料庫原理沒用、組合語言沒用、離散數學沒用、資料結構沒用,總之原理性課程都毫無實用價值,學來浪費時間。雖說我國大學本科電腦科學教育的情況不容樂觀,教材、教學內容確有老化之態,教學深度也遠無法與歐美國家相比較。但這並不意味著學校開設的課程不具備科學性。姑且不論程式設計之於電腦科學,只是其冰山之一角,電腦科學之美亦並不僅侷限於程式設計。
我們先來看看原理性課程是否真的如表面上看起來那樣毫無用處。不懂得程序、執行緒的執行機制,不懂得檔案的邏輯和物理格式,寫得出精緻的程式嗎?沒學過編譯原理,你知道程式設計有多難嗎?沒有經過設計系統程式的磨礪,你的程式設計能力永遠不可能進入高階。資料結構與演算法的重要性更不必多說。可悲的是,無知的人尚情有可原,學過之後還是這樣無知就不知道該如何形容了。
你難道竟然不知道理論之於人,並不僅僅在於知識的傳授,而更重要地方在於其對於自身知識結構體系的變遷、意識形態的昇華與在對真理的漫長探索中思維的一次次碰撞以達至理解的逐層深入嗎!急功近利的學習心態終究要嚐到惡果的!
回到我們文初的話題,資料庫原理課程也絕不是學習一門開發語言那麼簡單。如果真是那樣,資料庫領域中又如何能夠誕生出c.w.bachman、e.f.codd和james gray三位獲得圖靈獎的大師呢?在電腦科學領域,資料庫的理論與技術是發展得最快的,應用得最廣的。因為今日之計算機,其最常見的用途就在於資料的儲存與處理,而這正是資料庫技術的研究與應用範圍。
下面,我們就來看看這本由james gray作序的講授資料庫原理與現實商業性資料庫產品相結合的書吧。本書最具特色的地方在於,兩位作者清晰的筆觸將繁複的資料庫理論融入字裡行間,對一些非常不易理解的地方加以強調和反覆。很多模糊的地方是在學的過程中逐漸清晰起來的,讓人頭疼的知識點也將不再是那麼令人難以捉摸了。
作者在應用領域豐富的開發經驗賦予本書極快的知識更新及與現實大型資料庫產品的巧妙融合。本書作為電腦科學教材,其知識性與理論性是必需的。而它又如何與實踐相結合,這是經過了作者在寫作過程中反覆的思量與考慮。但凡資料庫方面的理論書籍,其內容都特別豐富,本書亦不例外。
資料庫系統是由dbms管理下的具有某種特定資料模式的資料元素集合。資料模式的型別也就決定了資料庫系統的型別。以關係作為資料模式的資料庫系統自然就稱之為關係型資料庫。這是資料庫領域中理論最成熟、用途最廣泛的資料庫系統,也是本書的基礎。而已經走向成熟,並逐漸在業界的高階產品得到應用的物件-關聯式資料庫則成為本書講述的重點。貫穿於全書的關於informix、db2、oracle三種最新的物件-關係型資料庫的模擬講解,使讀者能夠迅速的將理論知識與實際產品聯絡起來。既不會使人覺得理論過於抽象,又不會讓人駐足於應用開發而無法深入理解技術內涵。
正是這本書內容的豐富及其自身所具備深度使得這本書不太適合初學者。看過一兩本資料庫基本原理方面的書自是最好,資料結構方面的知識則是必備的。進入本書高階部分涉及資料庫的邏輯與物理設計時,對指標的理解、搜尋、內排序、外排序、索引技術、雜湊表、b樹和b+樹結構的掌握,無不對你學習資料庫設計有很大的助益。
資料庫自身的理論性很強,關係代數中的除法運算就頗令人費解,有了離散數學的基礎,從而對笛卡爾乘積原理理解的相當透徹的話,除法就不會顯得那麼難懂。因為關係代數中的除法實際上就是笛卡爾乘積的逆運算。阿姆斯特朗公理、函式依賴和正規化理論其理論基礎正好是離散數學領域中的命題邏輯和謂詞邏輯。電腦科學中各子分類學科的結構關係再一次得到體現。
本書既強調理論又強調應用,全書眾多的定義、定理、詳細的證明過程、豐富的應用例項使得本書翻之有望而生畏之感,讀之又有暢快淋漓之覺。實在是一本不可多得的好書,值得大家認真去學。
不積跬步,無以至千里;不積小流,無以成江海。駑馬十駕,功在不捨。沒有紮實的專業基本素養,決不能展翅高飛。學習是苦行僧的自修,是對世界本原、客觀真理的艱苦的探索,是人生最富於生趣的遊戲,是在痛苦與快樂之間來回激盪的水流。--這就是人的追求!
下面再向讀者推薦一些好書:
《資料庫系統導論》(第七版)c.j.date著 機械工業出版社,資料庫領域中的權威著作,專業理論書籍出版至第七版,在業界是罕見的,可以想見該書具有多高的水平。
《資料庫系統概念》(第三版)silberschatz著 機械工業出版社 光看作者的名字就知道這肯定是一本好書。
《資料庫系統基礎教程》清華大學出版社、《資料庫系統實現》機械工業出版社 j.d.ullman著 史丹福大學五門資料庫系列課程的前兩門教材,《資料庫系統實現》一書的層次在我國已相當於研究生課程水平。
《資料庫設計》stephens著 機械工業出版社 一本不太厚也不太難的入門書。
《資料探勘--概念與技術》jiawei han(韓家煒)著 機械工業出版社 資料探勘領域的國際知名專家韓家煒教授最新力作,系統而全面的介紹了資料探勘技術,可讀性甚佳。
《資料庫處理--基礎、設計與實現》(第七版)d.m.kroenke著 電子工業出版社 很少見的使用access作為例項介紹資料庫原理與設計的書,內容清晰易懂。
《資料庫系統概論》(第三版)薩師煊、王珊著 高教出版社 國內本科及研究生專選教材,兩位作者均為我國資料庫界的著名專家。
資料庫原理 程式設計與效能 Indexing
2.聚簇 cluster cluster index 訪問方法 create unique index indexname on tablename colname asc desc eg 1 create an index citiesx on city of the customers tabl...
談資料庫集群的原理與效能
對於應用伺服器集群,應該是非常常見的。通過集群,可以很簡單地通過乘法的方式將服務能力擴大 而且這種擴充的成本要遠低於垂直擴充,你只要比較一下乙個滿配4cpu的pc伺服器與2台滿配2cpu的伺服器的 就知道了 並且,可以提供系統的高可用性,當一台伺服器出現問題時,可以由其他伺服器提供服務,避免了服務的...
NUMA 架構與資料庫效能
在這次的 oracle open world 上,hammerora 的作者 steve shaw 做了乙個關於 linux 平台 oracle 調優的演講,其中重點提到了 numa 架構對於 intel nehalem cpu 上跑 oracle 的效能影響。對於傳統 smp 來說,cpu 增多未...