編者按:Don Chamberlin 是IBM院士,還是關系數據庫標准化查詢語言(SQL)和Quilt語言(後來演變為XQuery查詢語言的基礎)的核心發明者之一。在本次訪談中,他向大家介紹了IBM的歷史、XQuery規范與xml(標准化越來越近了)數據模式、XML(標准化越來越近了)數據庫的性能和安全。另外,還邀請到復旦大學計算機科學與工程系教授、博士生導師周傲英老師,探討中、美數據庫教育的差異,以及如何學好數據庫開發技術。
XQuery規范與XML(標准化越來越近了)數據模式
熊建國(主持人):各位網友大家好,今天有幸請到IBM院士、IBM阿馬丹(Almaden)研究中心高級工程師Don Chamberlin先生和復旦大學的周傲英老師做客IT168,與大家交流。
IT168是專業的傳播媒體,2000年我們成立了企業服務群組,定位為企業用戶提供一流權威的咨詢,IT168有中國最大的一個社區,即ITPUB,有65%會員是數據庫開發人員和管理人員。
我們知道Don Chamberlin先生是SQL語言的發明人,目前在W3C組織中從事XQuery規范的制定和研究工作。Don Chamberlin先生從事數據庫據相關的研究工作已經有30多年的,可以說是目睹了數據管理幾十年的發展和變遷,下面我們首先請Don帶我們回顧一下這些歷史?
Don Chamberlin:非常感謝各位,能有機會來到這裡感到非常榮幸。我在IBM工作差不多有30年的歷史了,最大的興許愛好就是研究數據庫技術與研究數據庫的歷史和現在。
Don Chamberlin 先生
數據庫已經成為普通人生活中的一部分,如果大家去銀行取錢、乘坐飛機,或者去商店裡面購買物品,都不可避免的要和後台的數據庫打交道。數據庫雖然已經滲透到了生活各個方面,但從整個產業來看,數據庫產業現在還是一個非常年輕的產業,只有40-50年的歷史。
在過去的40---50年裡,數據庫發展受到很多創新型想法的影響,接下來會總結一下數據庫50年產生的重要思想。
最早的電子化的數據是來自於美國的統計局,大概每隔十年左右的時間,國家會對工作的狀態,家庭人員結構做一個全國性的普查和統計。但是有挑戰性的是,雖然法律要求每十年做一個全國性的統計和普查,但是要對收集過來數據進行處理的時間往往會超過10年,所以每到下一次普查,上一次普查的數據還沒處理完,所以國家需要一個新的方案來解決這個問題。
麻省理工的教授霍列瑞斯博士發明一種方法,就是我們最早熟悉的打孔機,把數據的結構用打孔機讀下來,然後加快數據處理的過程。發明這個想法的霍列瑞斯博士,後來申請這個專利,然後開了一家公司。這家公司與另外一家公司在1924年合並了,這就是IBM公司。
從最開始IBM創立的時候就可以看到,IBM整個歷史從一開始就和信息、數據的應用密切聯系在一起。人們開始用打孔機記錄數據一直延續到20世紀40年代,從現在觀點來看,這是一個有非常悠久歷史的產品,因為一個產品能超過15年的歷史,應該算是一個非常好的產品。
但是這種打孔機的卡本身有一個缺陷,它只能按照一個方法讀取,不能隨機讀取,這導致第二個重要思想產生,就是采用磁盤的技術,使得對數據的讀取可以隨機讀取。
隨著磁盤的產生,使得我們對數據的管理可以走向集成化的管理方式,使數據不再屬於單個具體的應用,同時提供集中和管理模式,集中的備份等相關的內容。最早的數據庫系統我們稱為嵌套式數據庫,它基本的原理,你要獲取數據要編寫一段代碼,這段代碼讀取很多指針的鏈條,然後把數據找回來。很多那個時代的公司基於這樣一個原理構建輸出的系統,IBM是其中一家,我們基於這樣一個技術構建了IBM的XML(標准化越來越近了)的系統。
另外一次對數據庫影響深遠的變化,由E.F.Codd博士,也是IBM院士,提出的關系型數據庫理論。Codd的想法是希望構建這樣的系統,不是讓用戶告訴計算機如何找到這個信息,而是讓用戶把想找什麼樣的信息告訴這個系統,系統自動找尋。 在關系型模式下,數據是放在表裡面一系列的值,用戶通過高層的語言去描述他想去找什麼樣的數據,而不是去描述如何找到這樣的數據。
在這樣一種設計下,比較重要的是物理存儲的方式可以改變,用戶可以自己添加數據或刪除數據,這些都不影響應用訪問數據的模式,這個想法最後稱為數據獨立性的想法。一開始人們認為這樣的想法不現實,這裡面最主要的原因,大家認為很難構建這樣一種編譯系統自動找尋訪問數據的路徑。我參與了IBM最早期關系型數據庫的嘗試——內部研究計劃叫“Record System” ——去實現這個想法。我和Codd以及其他早期的研究人員一起共同構建一個實現關系型理論的系統,這裡面的重點是側重構建基於成本的編譯器,可以按照語言的描述找到數據。這方面的研究產生的技術最後導致關系型數據庫一系列產品的產生。
在過去20年裡,關系型數據庫在全球范圍內非常廣泛的被應用,大多數的商業型數據被存儲在關系型數據庫中。但是我們現在正在另一次大的變革門口,會改變整個對信息系統的管理,這樣一種變革的動力來自於互聯網的發展,使得信息的量以及信息的類型和復雜度和以前大大不同。
在傳統的關系型數據庫裡,對數據的存儲是片斷式的信息存儲,銀行的賬號、乘坐航空機票的預定以及產品信息都是要按照同樣的結構來進行存儲。但是由於互聯網的發展,使得上述的情況發生了很大的變化,比如電子病歷或健康檔案,每個人每種病的描述情況都不一樣,治療的歷史以及擁有醫療保險的情況都不同,采用傳統的用表格結構化的模式來描述非常大差異型數據就面臨非常巨大的挑戰。
在互聯網上大多數的信息都通過HTML語言描述,但是HTML在標簽上有一些限制,不能夠把很豐富的數據內容完全涵蓋。未來會發展非常快的一種數據模式就是XML(標准化越來越近了),它是對Html這種標准的擴展,使得他們在標簽上不再有固定的限制,可以很大程度的擴充很多新的類型的標簽。
隨著越來越多信息會采用xml(標准化越來越近了)格式,這就產生強烈的需求,需要針對這種數據提供查詢的語言,在xml(標准化越來越近了)信息集裡找到相應的信息。W3C是全球負責互聯網相關標准的組織,他們建立了一個工作組來專門制定針對XML(標准化越來越近了)查詢的語言標准。在參加這個工作組裡面的人員包括從很多大的公司人員,以及一些主要的大學。
我代表IBM參加了這個工作組,在開發一種有點類似SQL的語言,但比傳統理解的SQL語言更靈活更有擴展性。在今年1月份的時候,第一個版本的查詢語言叫XQuery 1.0已經被采納。現在這個工作組還在繼續工作,在現有XQuery版本基礎上增加很多新的功能,從SQL語言標准組產生有25年的歷史,現在XQuery兩個標准都會存在。現在我們所處的時代從數據庫的角度來看是非常令人興奮的時代,從數據庫的技術和這方面的演進會對整個社會生活產生深遠的影響。
數據庫歷史的二次革命
熊建國(主持人):非常感謝Don先生帶我們回顧了數據管理的歷史,剛才談到xml(標准化越來越近了)可能成為數據庫第二次大的變革,為什麼是xml(標准化越來越近了)而不是其他的(比如面向對象的數據庫),為什麼XML(標准化越來越近了)會是第二次數據庫革命呢?
Don Chamberlin:我認為xml(標准化越來越近了)是一個非常重要的技術,其中最重要的幾點,一個是非常強的靈活性。這裡面來源一個重要的特點,xml(標准化越來越近了)數據是自我描述的,根據XML(標准化越來越近了)數據本身可以理解數據以及數據之間的結構。
與此相對應的面向對象的技術,基礎是針對對象來說,但是OO(Object –OrIEnted,面向對象)技術來說對對象的描述遵循更為嚴格的體系,從這個點來看,我們認為XML(標准化越來越近了)重要的要點在於“X”,使得這個技術能有更好的擴展性。
XQuery 1.0新標准
熊建國(主持人):今年年初發布了新的標准XQuery 1.0,目前商用數據庫對這些標准的支持情況怎樣?我們了解IBM去年發布了DB2 9,它對相關標准的支持是怎樣的?其他廠商對這些標准支持情況怎樣?
Don Chamberlin:你的問題讓我想起SQL在過去25年被業界采納的過程,目前W3C有一個網站,列出現階段商用采納的標准,支持的有超過50個,其中有IBM的產品,也包括其他廠商的產品。
SQL面臨的挑戰
熊建國(主持人):您作為SQL語言的發明人,面對新的查詢語言XML(標准化越來越近了),SQL有哪些問題和挑戰,如何看待SQL語言的發展前景,它會往什麼方向去走?
Don Chamberlin:首先關系型數據庫會存在下去,而且會長久存在下去,關系型數據庫經過很長時間的發展,已經證明對非常規律的結構化數據,在這個領域會比XQuery做得更好,關系型數據庫數據獨立性的原則會永遠存在下去。
XQuery語言的產生,更多適應一些需要有更強數據靈活性的結構,以及靈活數據需求的產品。從SQL語言發展的挑戰來說,目前技術上大的挑戰,是如何將這兩項技術很好整合在一起,在用戶應用中可能一部分數據要來源於關系型的信息,另外一部分來自半結構化非關系型的XML(標准化越來越近了),如何很好的把這樣兩個技術無縫的整合在一起,這是目前面臨最大的挑戰。
熊建國(主持人):IBM去年發布了DB2 9,IBM是否已經解決了這個問題,混合型數據庫的發展方向是怎樣?
Don Chamberlin:DB2 9在這方面是很好的開端,但並不是結束,就像SQL一樣,還會有很多新的特性不斷往這個標准裡填充。目前第一個版本XQuery的制定主要的規范表述是如何訪問數據,還沒有包括一些重要的內容,比如如何更新這些數據,這些工作正在進行,一旦這個標准完成,DB2就會采用這些成熟的技術。
XML(標准化越來越近了)數據庫的性能和安全
熊建國(主持人):剛才談到xml(標准化越來越近了)適合比較靈活性的應用,對一些不變的還是采用關系型數據庫,現在大家對xml(標准化越來越近了)技術還是持觀望的態度,一個是性能問題,在XML(標准化越來越近了)數據庫在性能方面是否會有很大的問題,另外安全問題XML(標准化越來越近了)安全性如何?在新的標准制定,核心產品的研發過程當中,我們對性能如何考慮的,會達到怎樣的級別?
Don Chamberlin:這個問題好像30年前剛剛出現SQL語言的時候,大家對這個技術所產生的不確定性以及懷疑是類似的。
xml(標准化越來越近了)數據類型比傳統關系型數據庫可以解決更多、更復雜的問題,現在側重對xml(標准化越來越近了)的研究,是側重於對xml(標准化越來越近了)優化器方面的突破。另外一個重要的問題,現在從研究體系裡正在關注的是對於xml(標准化越來越近了)數據的安全性,由於xml(標准化越來越近了)信息存儲很多普通人的信息,這些信息對人們生活產生重要的影響,包括財務信息、保險信息,以及醫療相關的信息,這些信息通過XML(標准化越來越近了)的方式進入數據庫進行管理的時候,需要考慮更多私秘性的問題,需要考慮數據完整性、准確性等相關的問題。
熊建國(主持人):關於XML(標准化越來越近了)的性能,現在關系型數據庫處理數據非常快的,Oracle(大型網站數據庫平台)出了一個新的技術fast file,XML(標准化越來越近了)技術以後會不會達到這樣的速度,性能會不會達到這樣的性能?
Don Chamberlin:我主要的研究領域是語言而不是性能,但根據過去的經驗非常有信心,因為現在技術人員在參與這個研究,在不久的將來,就像30年前,當大家剛剛實現SQL語言的時候有很多性能方面的擔心,今天在XML(標准化越來越近了)領域,隨著人們在這方面研究力量的投入,這方面的性能問題一定能夠解決。
pureXML(標准化越來越近了)的實現方式
熊建國(主持人):現在其他的商業數據庫都提供對xml(標准化越來越近了)的支持,IBM和甲骨文也都提出了支持,這些不同的廠商對xml(標准化越來越近了)的支持有哪些不一樣?去年IBM發布了DB2 9,申請了pureXML(標准化越來越近了)的專利,請您分析一下它們實現的不同方式。
Don Chamberlin:IBM把xml(標准化越來越近了)數據看成一個戰略性的方向,我們采用的方式不是用關系型的方式,我們采用的是完全按照xml(標准化越來越近了)原生態的方式處理這種技術,不是其他的通過關系型把XML(標准化越來越近了)分解成關系型來實現。
在這個領域也提供兩種語言都支持,支持SQL也支持XQuery,而且都是用原生態的方式支持,我們這裡面專門針對XML(標准化越來越近了),另外不依附於關系型數據庫,有對應的編譯方式,有對應數據庫的優化方式,有相應的索引的技術和存儲技術,而不是通過數據轉換和翻譯的方式把xml(標准化越來越近了)翻譯成關系型,或者把關系型的信息翻譯成XML(標准化越來越近了)。
中、美數據庫教育的差異
熊建國(主持人):今天我們請到復旦大學的周老師,目前中美數據庫教育有哪些差異,都講哪些內容,如何做實踐?
周傲英:今天很高興和Don Chamberlin一起來到IT168。
周傲英 老師
我們讀書的時候就知道SQL,數據庫發展30多年,在中國的教育,從20世紀80年代初的時候,中國就開始在大學裡面有數據庫這門課程。
這麼多年以來,數據庫的變化很大,特別教材的變化特別快,幾十年發展過程,現在我們的課程主要包括的內容,總結起來有三個部分。第一部分主要講理論部分,理論部分講的是數據模型,主要講關系型數據的模型。在我讀書的時候(20世紀80年代初)還是講網狀的,所謂層次型的數據庫。現在那些東西都放棄了,那些更多是技術實現的問題,從建模的角度來說沒有特別的理論根基,為什麼關系型數據庫能那麼流行,最主要的是有它強大、堅實的理論基礎,結合了數據邏輯。加上在這上面的一些操作,比如關系代數,關系演算,我們理論部分講模型,主要講這些內容,這很抽象的主要從建模角度來說。理論的另外一部分就是講數據庫的設計,我們學數據庫都要講這一部分,要講數據庫的設計,范式理論函數依賴。在教學的過程當中,如果光講理論部分,講完了以後,學生畢業了,還不知道數據庫怎麼用的。
現在情況有很大的變化,因為我們有更多的機會可以動手,我們有實驗室,很多學校安裝了比如IBM的系統,DB2的系統或者甲骨文的系統,再早一點的還有很多的系統,大家有動手的機會,再理解這些理論。除了理論以外,要把數據庫變得實用,我們課程裡面還要介紹一部分,也就是我們講的實現,關系型模型提出來,當時經過了10年,從E.F.Codd提出這個系統,到這個系統真正實現,開發這個實驗系統,到SQL到 DB2,這些系統出現在差不多20世紀80年代,經過了10年,這10年主要解決性能的問題,本身是導航的,是人來做的,要讓它怎麼存儲數據,現在關系型模型,不來存儲,要系統來做,這系統就要變得很聰明,要有技術,查詢優化的技術,主要為了解決性能的問題,所以在數據庫課程裡面介紹第二部分就是實現技術,要講優化,要實現,要講索引。
數據庫講DBMS的應用要講另外一部分,事務的處理。最早的Navigational數據庫裡最早就是事務處理,我們在操作系統就有這個問題,只不過在數據庫裡變得更為嚴重,我要解決安全,要能恢復,系統出錯不丟失,不出問題,現在把所有數據庫放在以前,以前用文件系統個人管個人的,一家出了問題,另外一家不受影響,現在整個大的企業,整個都是中心數據庫,如果一出問題可能整個數據庫都要癱瘓,所以如何保證這個問題,這就是實現的內容一定要講清楚,對學數據庫的學生來說,出來以後不見得實現DBMS,但是要知道工作的機理和機制。
第三部分要講應用,也就是我們怎麼動手,這方面我們跟國外比是比較欠缺的部分,因為要做一個好的設計,要做一個實驗要花很多的時間,要有一個很好的開放實驗室,有一些學校做到了,有一些學校沒有做到,我們現在數據庫的教學主要這三個部分。我們新技術的教學來看,比如XML(標准化越來越近了),數據倉庫,數據挖掘這一塊,會包括一些,但本科生的課程只是引導性的。
Don Chamberlin:在美國大學裡面教授數據庫的模式跟周老師談到的情況比較類似的,首先美國對於本科的學生會從用戶角度介紹基本數據庫的知識,包括關系型數據庫的模型,包括SQL語言的介紹,包括范式性的數據建模等基本概念。比較高級的課程主要側重於數據庫系統的實現,這裡包括數據庫優化技術,數據庫索引技術,數據庫鎖技術,數據庫交易系統以及數據庫的訪問系統等等。
還有一些是相對比較專門性的課程,其中包括對於非結構化數據的訪問,這裡面比較典型的就是搜索技術,我們知道查詢技術一般訪問結果有明確定義的結果,一般只有兩種情況,是或否的判斷,對於搜索技術適用的范圍是更模糊的范圍,通過一系列的方式,不是完全結構化的數據,不會提供特別嚴格精確的結構。這個領域每個大學都提供一些這些方面的課程。
數據庫技術人才的培養
熊建國(主持人):周老師剛才談到,我們這邊偏重的數據庫應用的教學,我們培養的本科生是否能培養數據庫的研發人員和設計人員的培養?
周傲英:應該說這和學校有關系,比如數據庫研究歷史比較久,師資力量比較強的學校都是有意識的做這方面,比如我們學校以及北京的很多學校都是這樣的。但是對於絕大多數學校來說,主要的是要培養一個理念,讓學生出來以後知道,數據庫從某種意義來說是一種理念,要把數據都放在一起,大家在學數據庫以前沒有這種感覺,大家覺得自己管自己的數據,去在日常生活、學習當中,學校裡面數據庫,學校裡面成績登錄,包括選課都是數據庫在後台,他有體會但是沒有這個感覺,所以培養他們一種理念和技術。
更多的他們知道建模,知道SQL語言,知道SQL語言可以跟C語言結合在一起用,可以做一些應用的開發,絕大多數學校是這樣一種方式,從研究角度來說中國需要數據庫研究人員。但為什麼不像美國那樣大規模的培養,因為DBMS在中國,我們沒有形成自己的產業,沒有這個產業就沒有人才的需求,包括IBM在中國的研究院,各種各樣公司都成立研究機構,他們對數據庫研究的核心慢慢移過來,前幾年還是在本土。所以從研究的角度來說,人才的去向不是特別明確,現在一些學校培養的博士畢業,碩士畢業慢慢加入這些研究機構,比如國內的一些大公司也會成立自己的研究院、研究所或研究中心,會吸引這樣一些人進去,隨著我們應用水平的提高,和整個技術的提高需要這方面人才的培養。
熊建國(主持人):如果我們產業起來,或國外研發公司在數據庫方面的需求,本土人才的培養會加快。
周傲英:對,現在從本科生角度來看,一般設計課程的時候,數據庫作為基礎核心課、操作系統、數據庫和網絡這是三大核心專業課程,每個學校都是很重要,要把它提升到跟後面的研究。因為本科生如果讀研究生,比如我們招研究生就要看數據庫背景怎樣,有沒有研究的感覺,不是只會寫SQL語言,要知道問題在什麼地方。
另外一個角度來說,在中國做,因為我們沒有自己DBMS,為什麼國外有那麼多數據庫研究人才,我們從研究的角度來說,數據庫研究還是走在前沿的,我們在國際上沒有那麼落後,只是深度廣度不夠,是受我們產業的限制,我們對國外的了解以及關注的問題都差不多,他們有很多的貢獻,我們要想深入下去要靠國內應用需求的推動,這不僅是DBMS產業,從數據庫研究人員的角度,要關注中國特有的應用,其實現在國際上數據庫研究前沿的裡面,真正核心技術,DBMS相關的東西不見得特別多,更多的是數據庫部署那麼多,在應用中有各種各樣的問題,這些問題你要研究它,我們有意識得,在國內的數據庫研究人員,從本科生、研究生教學,我們也有意識安排應用驅動的研究,這樣可以把教學研究和應用結合起來,這樣形成一個良性循環,我相信整個應用水平,研究水平都會有相當的提高。
數據庫技術教育
熊建國(主持人):我們目前中國使用數據庫的教材,據我了解沒有xml(標准化越來越近了)的技術,您覺得是否有必要,以後在新的教材有必要把XML(標准化越來越近了)數據庫加進去,甚至把XQuery語言加進去,有沒有這個必要?現有教材有哪些需要補充的?
周傲英:其實我們的教材更新不夠快,如果從教材內容來看,去年年底的時候就接到過邀請,劉晶炜跟我們討論寫DB2的書,xml(標准化越來越近了)的書的時候我們接受到高教社的邀請寫一本新的數據庫教材,當時我們很感興趣也答應了,因為數據庫有DB2和XML(標准化越來越近了)在前面,寫一本書相當難,特別寫教材,但是我們想把IBM這兩本書寫好,我們會積累一些經驗,因為IBM的書相對是技術成份多一些,但是從教學角度來說,可以考慮的少一些,這部分寫完了我們可以積累一些經驗。所以數據庫教材這本書我們還在策劃當中,我們希望早一點把DB2書交稿了,我們可以馬上寫教材。
從內容來看,從我理解來說,我可以分成兩大階段的變化,第一階段的變化是80年代中後期,當時很大的變化,包括從王姗老師的書,最早的版本很多在講導航,講指針,講邏輯兒子,邏輯父親那都是指針,物理指針只有一個,其他就要靠邏輯指針做,那就是網狀數據庫和層次數據庫,因為那跟語言有關,跟操縱語言有關,那個語言非常復雜,有很多指針和新的概念在裡面,而那些概念沒有一個邏輯性,完全是為了做到這一點,必須要做,沒有任何理由,你必須要去用,然後變得熟練,所以當時是那樣的特點。
差不多到了20世紀90年代,那本書包括王老師的書和其他老師的書就變化了,那部分變成介紹歷史的時候才會提,這是一個大的變化,這變化持續到現在,為什麼那麼多老師和學生包括出版社覺得要有新的教材,因為數據庫演化到今天中間有很多新的故事,當時大家沒有迫切的要求必須放在數據庫教材裡面,用來取代關系,或並駕齊驅,當時只是讓大家做一個了解性的認識。
現在已經到了一個階段,我們必須把xml(標准化越來越近了)放進去,並且和關系型數據庫並駕齊驅的介紹,因為XML(標准化越來越近了)所解決的問題是原來努力想解決的問題,其實關系數據庫一成熟,大家就考慮關系數據庫建模不夠靈活,把所有東西變成關系表會有很多問題,丟失語義,並且不自然。包括語義的模型,圖的模型面向對象的模型都沒解決這個問題。xml(標准化越來越近了)從建模角度來說,跟關系模型是互補的,有它的靈活性,但是關系模型在很多方面有它的優勢,它有很好的可擴展性,高可用性, xml(標准化越來越近了)可以彌補它的不靈活,如果有一種技術支持把這兩種東西放在一起,DB2 9做到這一點,以前的系統,DB2 9以前的系統,所謂可擴展的實現,甲骨文裡面的XML(標准化越來越近了)的一些支持,都是把它當成一個大對象,或者當成一個特殊的,或者是硬打碎放裡面的,這些不自然。我們開始做研究也是這麼做的,現在這種情況下,有過德國的系統,當時吸引了大家很多的注意力,大家覺得看到曙光了。
DB2 9給出一個很好的解決辦法,讓它與關系型數據共存,以前把XML(標准化越來越近了)放在一個數據庫裡面,用數據庫的話來說是二等公民,不是一等公民,它是特殊的,我們或者叫ADT(抽象數據類型)來解決,它要有相關額外的措施來解決,沒有得到一等公民的待遇。現在這種情況都是一等的,在這種情況下是共存的,SQL要想辦法支持XQuery的功能,XQuery有自己獨立的語言,希望可以跟SQL有密切的結合,他們可以互操作,兩種數據類型,結構化的和半結構化的可以互操作。這樣我們對整個數據庫建模的時候,就不是一種模式來建,可以有兩種辦法來建模,這時候問題變得相對簡單,建模問題解決,系統可以支持這兩種模型,整個現實當中的問題解決就會比較容易。剛才說到DB2 9是好的開始,但絕對不是故事的結束,會有很多新的問題發生。傳統的數據庫解決那麼多問題,如果把xml(標准化越來越近了)變成一等公民加進去會帶來很多問題,一個是設計的問題,原來的設計,要做成范式,現在的選擇,你可以把它做成范式也可以變成XML(標准化越來越近了),現在到底怎麼選擇,以前有設計的工具、規則、原理,這些規則就會發生變化,因為你可以選擇,有選擇就會靈活。
另外一個問題就是事務模型,以前事務模型考慮到DBMS應用的場合,原來要增加、刪除、更新,打電話記錄要記下去,銀行取錢賬戶要減掉,這是很自然的,在商業系統裡面,商業數據庫有這樣的要求。xml(標准化越來越近了)是樹的結構,是自描述的結構,它的刪除、增加、修改是什麼樣的,有沒有那麼頻繁,原來在做事務處理的時候,可以加鎖,可以加一個表,一個頁或一行,現在加鎖怎麼加?你鎖的機制,或事務處理的機制,有沒有辦法直接搬過來用,事務處理這一塊,最重要的是,我們所說對XML(標准化越來越近了)的操縱是什麼,要做什麼操縱,有沒有刪除,有沒有增加,有沒有更改等,根據使用情況,使用場合才能決定做什麼事務模型,我是不是關系事務模型有了就行,這是一個問題,我們沒有解決,我相信DB2 9裡面會解決這個問題。
另外一種是優化,優化是永恆的話題,因為優化涉及索引,還有各種各樣的機制,就像原來學對象數據庫一樣,對象數據庫很大的優化就是沿著路徑優化。我在xml(標准化越來越近了)裡面,就是有路徑表達式,這就代替了原來在關系數據庫裡面的交易,這是一個代價最大的問題,你怎麼解決它,為了解決這個問題需要一個什麼索引,這些東西都解決了,才有可能真正把xml(標准化越來越近了)和關系數據庫放在一起,所以面臨著很多,我相信在IBM的研究部門,IBM的產品部門,可能都會考慮這些問題。從研究的角度來說,xml(標准化越來越近了)的研究最熱的時候已經過去了,它完全是站在研究的角度來說,從實現的角度來說可能會引發新一輪XML(標准化越來越近了)原生態數據庫技術的研發。
XML(標准化越來越近了)+XQuery新的未來?
熊建國(主持人):也就是說數據庫還有很多東西要做,另外教學方面Don也贊同把XML(標准化越來越近了)技術,包括XQuery技術跟關系型數據庫放在一起介紹。
周傲英:我們介紹模型不僅介紹SQL模型,也要介紹XML(標准化越來越近了)的類型,作為本科生教材比較容易,如果細下去查詢優化,我們可以講我們了解的,做研究的東西,那些東西不是現在主流的。我看過DB2 9很多技術報告、白皮書,但並沒有介紹太多,它並沒有講優化,也可能是商業機密,或者沒有成熟的東西在裡面。
從XML(標准化越來越近了)的角度來說,如果從建模的角度來說,完全可以和關系型數據放在一起。講數據庫講ER模型,講ER模型要轉過來,轉到關系模型有一套轉換的規則,如果我們轉換成xml(標准化越來越近了)的模型是更自然的,自然而然讓學生知道。我們有各種各樣辦法,我們講ER模型是概念模型,最終用戶和設計人員之間,我為了刻劃現實世界比較容易,先有ER模型,ER模型過來到物理世界到xml(標准化越來越近了)是很自然的,那xml(標准化越來越近了)有沒有標准,我們說有這樣的標准,那XML(標准化越來越近了)有沒有類似的操縱語言?我們說XQuery也是類似這樣的。國外的教材盡管更新比較快,但也沒有這樣的考慮。我去年在高教社主辦計算機教學教材討論會中,我提出這麼一個觀點,很多人很贊成,但是要把這個事情做的比較平滑的連接,跟原來知識整體性考慮我們還要有一些考慮,這是很好的問題。
熊建國(主持人):那國外教材對XML(標准化越來越近了)添加的情況,這部分內容取捨是怎麼取捨的?Don請您談談?
Don Chamberlin:在斯坦福大學已經開設XML(標准化越來越近了)相關的課程,這裡請到麥克凱瑞,是Wisconsin大學著名的教授。這只是一個開始,這裡有非常大的空間,使大學教育部門開始引入這個新的技術。在教育領域裡面,關系型數據庫由於非常成熟,所以有非常大的群體來了解,這裡面所涵蓋的知識也比較成熟,尤其在數據庫設計等相關的技術在大學教育裡面比較容易開展。而xml(標准化越來越近了)領域剛剛產生,所以目前來說沒有很多的人才能夠了解這個技術,同時有一些問題還沒有得到完全的回答,比如XML(標准化越來越近了)技術可以很好解決靈活性,可以用新的方式表達數據,如何表達這些數據,什麼是最好的方式可能要新的研究,這需要一些科研性、研究性的項目在前面做先導,進行大規模普及型教育會在研究性項目完成之後展開和推廣。
SQL語言設計過程中的故事
熊建國(主持人):這裡有一個網友的問題,問道:Don Chamberlin先生您作為SQL語言主要設計者,想了解一下在設計過程中有什麼信息和故事可以分享一下。
Don Chamberlin:在SQL發明過程中有很多故事,事實上在SQL發明過程中和另外一個SQL發明人Ray Boyce一起共同發明了SQL語言,那時候都很年輕,當時E.F.Codd提出關系型數據IBM非常重視,就把全美的技術精英集中在一起,開始做技術性的實現。那時候是在紐約工作,為了參加這個工作同時到了加州。
你們可能聽說過Boyce,比較遺憾的是,Boyce在SQL語言發明過程中,因為他頭部的一個疾病去世了。當IBM啟動System R項目的時候,很重要的步驟是要獲得真實用戶的反饋,一開始做了一個簡單的原型,其中實現一小部分SQL語言子集的功能,IBM在北美選擇不同的地區、行業選擇三個客戶,歷時3年時間,以他們作為原型實現,了解這些用戶的功能和反饋,我在那段時間親自拜訪了那些客戶。
與此同時,在研究一些基礎的技術,尤其是優化器的技術,這部分內容是部門的一個成員,構建一個基於成本的優化器,這裡面有一個有趣的故事,關於萬聖節的故事,萬聖節是美國一個比較有名的節日。這個節日很多家庭的小孩都要出去買一些禮物,這就和當時研究一個內容聯系在一起,當時研究如何更新數據庫裡面的數據,比如在萬聖節之前需要給員工增加工資,如果工資小於10萬美金的需要提高工資。在這裡實現的技術是通過數據庫的索引技術非常快的找到記錄,然後進行更新,比如要對於收入低於10萬美金的員工加薪,先找到這些記錄,更新記錄的時候會找到索引,索引的位置就會產生變化,又跳到前面去了。由於索引更新以後記錄往後延了,繼續往下搜索又會碰到再一次加薪,這樣就會給很多員工加很多次薪水,所以碰到這個事這種算法不起作用的。那是星期五,又是萬聖節,小孩要買禮物,我們把這個問題叫萬聖節的問題,過了萬聖節再來解決吧。後來這個問題被正式命名為萬聖節的問題,即使在大學的教學中也是引用了這個問題。
下一版的XQuery標准
熊建國(主持人):還有網友提問到下一版的XQuery標准想解決什麼問題,預計什麼時候發布?
Don Chamberlin:在下一版XQuery標准裡面要補充的重要內容就是對XQuery更新的語言,包括更新XML(標准化越來越近了)信息重新放置,重新命名的操作,目前關於更新的語言在做最後的征求意見,新的版本出來之前會有一個草案,這個草案會放到網上公示,有機會讓大家提一些建議。
另外要增加的內容是全文的搜索功能,這是對XQuery的擴充,提供一些基於語義的搜索能力,比如查機場,就會把飛機相關的同義詞信息放在裡面一起查詢,這種模式會提供Ranking的機制和標准,如何采用數據來驗證Ranking的標准。這些數據考慮如何把全文搜索技術和現在XML(標准化越來越近了)標准整合在一個整體,而不是把它作為分開的技術來使用。這兩個部分都處在最後一次征求意見的階段,一般來說我們會等待三個月時間采集大家的意見,如果一切順利的話應該在明年年初確定下來,把這兩個內容加入到XQuery中。
我們還有一些長期的計劃,其中就包括分組匯總這些內容,這些內容可能按照一些分類對產品的信息進行匯總,它會在多維分析、商業智能裡面非常有價值,目前也正在制定計劃中。另外一個特性叫錯誤恢復的功能,由於XQuery比較強大,也可以處理比較復雜的情況,如果在查詢的過程中出現錯誤,現在的機制,這個查詢就會被中止,現在標准組織希望做到類似於Java的出錯機制,用開啟錯誤的模式進行對錯誤的處理,使得即使碰到錯誤也不會中斷整個查詢。
另外有一個正在研究制定的標准就是XQuery的腳本語言,如同現在看到Java要調動XQuery,Java是一套自己的語言,跟數據打交道是XQuery,在傳統關系型數據庫層面也面臨同樣的情況,不管是用C或其他語言調用SQL語句,我們使用的編程也不是完全匹配,中間要很多處理,在傳統SQL方式下有一套機制提供一個針對SQL的控制模式,實現循環,實現分支處理和判斷的因素,現在XQuery的標准也正在制定,希望把一些控制性的系統,和語言等內容放進去,可以由更多業務內容基於其中。
IBM與Oracle(大型網站數據庫平台),誰占得先機
熊建國(主持人):有網友問到;每一次數據庫技術的更新換代,IBM都站在最前端,但第一次關系型數據庫發布的時候,IBM沒有搶到先機反而讓甲骨文搶到機會。這次IBM是不是認為已搶到先機?
Don Chamberlin:IBM在開放的標准上面做了很多的投入,我們和很多其他的公司一起,以及學校的研究機構一起共同制定和推廣技術標准工作,在參與這些工作的同時也給我們自己建立了非常強大的技術實力以及為未來的產品奠定了很好的基礎。
另外一方面也聽取很多用戶實際的需求。這和我們當年推廣關系型非常類似,IBM從技術研究來講是比較開放的公司,當時關系型數據庫突破之後,沒有把這技術封鎖在IBM,而是開放出來,對整個產業而言後來又了一系列關系型數據庫的廠商,我們從這個過程學到經驗,一旦標准出來,IBM需要把產品實現好,通過更好的技術實現建立起更好的競爭優勢。
周傲英:Don意思是說他們制定標准公開有很多人會去跟蹤,他們會實現,他們再來做的時候,他們不在意一開始是不是領先,這是IBM的策略。
現在當然DB2占的份額很大,特別是在中國,在幾年前,我們跟IBM合作通過教育部有比較長的合作,我就跟他們說,數據庫從你們那發源的,為什麼沒有特別好推自己的系統,現在他們已經加強DB2在這一塊的力量,在市場的份額越來越大。當時他們為什麼沒有搶得先機,一個與Don說的“比較開放”有關,另外當時IBM其他能夠盈利的點特別多,它的軟件、硬件,其實以前真正盈利的是硬件,別人原來批評它最早的IBM軟件是封閉的,包括大型機,一些系統都是封閉的,沒有開放,這可能是一個原因,他們的系統,DB2也是一樣,只在自己的上面運轉,沒有可以在其他的系統上裝,所以占不了太大的份額。去年我參加了他們一個IOD,我們知道他們在信息這一塊,軟件這一塊,服務這一塊,有很大的改變,他們營業收入點早也不只是計算設備制造了,原來IBM給人感覺是國際商用機器公司,現在可能軟件在加強、服務也在加強,可能在這些方面會更開放,跟市場的結合會起一些作用。包括現在提的SOA,IBM也是起領頭的作用。
熊建國(主持人):現在DB2 9是不是應該抓住這次機會,占得了先機?
周傲英:原來DB2 UBD出來的時候,在之前我很了解,他們做一個系統,遞歸查詢優化那一塊,覺得他們功能做的很好,那時候覺得這個東西很快會在產品裡面體現出來,過不了多久他們就出來了。DB2 9推出來之前,我還不知道他們在這方面有那麼多的積累,所以我不知道,原來我感覺到,他們是順理成章的,很自然的。是不是采用另外一種措施,把這個做得很好,一下子加到產品裡面公布,所以給我們感覺,原來並沒有意識到這一點。後面的問題在於怎麼樣推廣應用,怎麼樣得到業界的認可,特別是合作者,第三方合作者,也就是那些開發商願意用DB2 9做各種各樣的應用,如果用的越來越多,自然而然對其他數據庫公司造成很大的壓力,如果對其他公司有壓力,它就是領先的,因為先走一步,並且有IBM的實力。
推薦數據庫書籍和經驗
熊建國(主持人):今天由於時間關系,聊天活動差不多了,最後兩位給我們ITPUB的網友推薦一些數據庫的書籍和經驗。
Don Chamberlin:十年前就寫過一本關於DB2的書,在這個領域,因為在中國,可能周老師在這個領域對國內數據庫的教學和書籍層面會有更多的了解,而且周老師目前正在寫幾本有關數據庫的書。請周老師回答這個問題。
周傲英:如果從綜合全面的學數據庫來說,國內有一些教材,書店裡面可以看的到,國外教材更新很快的,有5、6本書,從ChinaPub可以找到。
因為數據庫的觀念在變化,技術也在變化,所以更新比較快,可以看新一點的書,原版的書會更新比較快一些。如果從專門一點來看,xml(標准化越來越近了)書很多的,xml(標准化越來越近了)更多的是講怎麼用xml(標准化越來越近了)語言來標注,其實xml(標准化越來越近了)最早不是數據庫的人做的,最早是圖書館的人做的,做情報系統和圖書館的人,要把文檔、資料存起來怎麼標注,後面才是數據庫接入,如果想學數據庫,從XML(標准化越來越近了)角度看數據庫,比如《Data On the Web》。
其實看書是一方面,如果IBM公布的白皮書,用戶手冊在網站上都可以拿到,這些書如果細的了解技術,我相信在其他數據庫廠商裡面也有類似的東西。如果在不同層次現在比較方便應該可以找到所需要的。
熊建國(主持人):各位網友,今天的聊天活動到此結束,感謝Don和周老師。謝謝!