1973年ACM圖靈獎演講引文

圖靈獎引文,由1973年圖靈獎委員會主席Richard G. Canning在8月28日於Atlanta舉行的ACM年會上宣讀:

過去五到八年間,電腦領域發生了一個重大變革,體現在我們處理和管理資料的方式上。在我們領域的早期,資料與使用它的應用程式緊密綁定。現在我們看到,我們想要打破這種綁定。我們想要資料獨立於使用它的應用程式——也就是說,資料的組織和結構設計應服務於眾多應用程式和使用者。我們所尋求的正是資料庫。

這個邁向資料庫的運動尚處於起步階段。即便如此,目前全球似乎已有1,000到2,000個真正的資料庫管理系統安裝。十年內,極有可能會有成千上萬個此類系統。僅從安裝系統的數量來看,資料庫的影響力有望是巨大的。

今年的A.M.圖靈獎得主是資料庫技術真正的先驅之一。沒有其他個人對我們領域的這一方面產生過他如此巨大的影響。我挑選他成就中的三個主要例子。他是首個商業上可用的資料庫管理系統——the Integrated Data Store——的創始人和主要架構師,該系統最初於1961年至1964年間開發1,2,3,4。I-D-S至今仍是三大最廣泛使用的資料庫管理系統之一。此外,他是CODASYL Data Base Task Group的創始成員之一,並於1966年至1968年間在該任務組工作。該任務組的規範正由世界各地的許多供應商實施5,6。事實上,目前這些規範代表了資料庫管理系統通用架構唯一具有重要地位的提案。值得稱讚的是,這些規範在經過廣泛辯論和討論後,體現了Integrated Data Store的許多原創思想。第三,他創建了一種強大的方法來顯示資料關係——這是一種為資料庫設計者和應用系統設計者提供的工具7,8。

他的貢獻代表了想像力與實用性的結合。他工作的豐富性已經並且將繼續對我們領域產生實質性影響。我非常高興將1973年A.M.圖靈獎頒發給Charles W. Bachman。

程式設計師作為導航員

作者:Charles W. Bachman

今年,全世界都在慶祝著名的波蘭天文學家和數學家Nicolaus Copernicus誕辰五百週年。1543年,Copernicus出版了他的著作《天體運行論》(Concerning the Revolutions of Celestial Spheres),該書描述了一個關於地球、行星和太陽相對物理運動的新理論。這與1400年前由Ptolemy建立的以地球為中心的理論直接矛盾。

Copernicus提出了日心說,即行星繞太陽以圓形軌道運行。這個理論受到了巨大而持久的批評。將近100年後,Galileo被勒令前往Rome接受宗教裁判所的審訊,並被迫聲明他已放棄對Copernican理論的信仰。即便如此也未能安撫他的審訊官,他被判處無限期監禁,而Copernicus的書則被列入《禁書目錄》(Index of Prohibited Books),並在那裡停留了另外200年。

我今天提出Copernicus的例子,是為了說明我認為在電腦領域,或更確切地說,資訊系統世界中存在的一個相似之處。我們在過去的50年裡,幾乎都在使用像Ptolemy時代一樣的資訊系統。這些系統,以及關於系統的大部分思考,都基於「電腦中心化」的概念。(我之所以選擇談論50年的歷史而不是25年,是因為我認為今天的資訊系統應追溯到有效的打孔卡設備的開端,而不是儲存程式電腦的開端。)

就像古人看待地球時認為太陽繞著它轉一樣,我們的資訊系統的古人看待製表機或電腦時,認為循序檔案流經其中。兩者都是當時當地適當的模型。但過了一段時間,兩者都被發現是不正確和不充分的,必須被另一個更準確地描繪真實世界及其行為的模型所取代。

Copernicus為我們提供了一個新的觀點,並為現代天體力學奠定了基礎。那個觀點為我們理解曾經神秘莫測的太陽和行星在天空中軌跡提供了基礎。在資訊系統領域,一種新的理解基礎正在顯現。它是通過從電腦中心化轉向資料庫中心化的觀點轉變而實現的。這種新理解將為我們的資料庫問題帶來新的解決方案,並加速我們征服最能模擬真實世界複雜性的n維資料結構。

從檔案到資料庫的視角轉變

最早的資料庫,最初是在打孔卡上用循序檔案技術實現的,當它們先從打孔卡轉移到磁帶,然後再轉移到磁碟時,並沒有發生顯著改變。改變的幾乎只有檔案的大小和處理它們的速度。

在循序檔案技術中,搜尋技術是成熟的。從感興趣記錄的主資料鍵值開始,將檔案中的每個記錄依次通過核心記憶體,直到找到所需的記錄或具有更高鍵值的記錄。(主資料鍵是記錄中的一個欄位,它使得該記錄在檔案中是唯一的。)社會安全號碼、採購訂單號碼、保險單號碼、銀行帳戶號碼都是主資料鍵。幾乎無一例外,它們都是為了獨一性而專門設計和創建的人造屬性。自然屬性,例如人名地名、日期、時間和數量,不能保證獨一,因此無法使用。

直接存取儲存設備的可用性為Copernican式的觀點轉變奠定了基礎。「輸入」和「輸出」的方向被顛倒了。在循序檔案世界中,「輸入」概念意味著「從磁帶進入電腦」,而新的「輸入」概念變成了「進入資料庫」。這場思維革命正在將程式設計師從一個靜態地觀看對象在他面前經過核心記憶體的人,轉變為一個能夠隨意探測和遍歷資料庫的移動導航員。

直接存取儲存設備也開闢了通過主資料鍵檢索記錄的新方法。第一種方法被稱為隨機化(randomizing)、計算定址(calculated addressing)或雜湊(hashing)。它涉及使用一個特殊的演算法處理主資料鍵,該演算法的輸出識別了該記錄的首選儲存位置。如果在首選位置未找到所需的記錄,則使用溢出(overflow)演算法搜尋該記錄可能被替代儲存的位置,如果它確實存在的話。溢出發生在記錄最初儲存時首選位置已滿的情況下。

作為隨機化技術的替代方案,開發了索引循序存取技術(index sequential access technique)。它也使用主資料鍵來控制記錄的儲存和檢索,並通過使用多級索引來實現。

從循序檔案處理進步到索引循序或隨機化存取處理的程式設計師,已大大減少了他的存取時間,因為他現在可以探測記錄而無需循序通過檔案中的所有中間記錄。然而,他仍然處於一維世界中,因為他只處理一個主資料鍵,這是他控制存取的唯一手段。

從這一點開始,我想開始程式設計師作為n維資料空間中全面導航員的訓練。然而,在我成功描述這個過程之前,我想回顧一下什麼是「資料庫管理」。

資料庫管理的功能

它涉及在人事和生產、機票預訂或實驗室實驗等檔案中儲存、檢索、修改和刪除資料的所有方面——這些資料被重複使用並隨著新資訊的可用而更新。這些檔案通過某些儲存結構映射到磁帶或磁碟組及其支援驅動器。

資料庫管理有兩個主要功能。首先是查詢或檢索活動,它重新存取先前儲存的資料,以確定某些真實世界實體或關係的記錄狀態。這些資料是在數秒、數分鐘、數小時甚至數天前由其他作業儲存的,並由資料庫管理系統保管。資料庫管理系統對資料從儲存到隨後被要求檢索之間的時間負有持續維護的責任。這種檢索活動旨在產生決策所需的資訊。

查詢活動的一部分是報告準備。在循序存取儲存設備的早期以及隨之而來的批次處理中,除了生成格式化為報告的大量檔案轉儲之外,沒有其他可行的替代方案。無法有效地處理檢查特定支票帳戶餘額、庫存餘額或生產計劃的臨時需求,因為必須遍歷整個檔案才能提取任何資料。這種形式的查詢目前相對重要性正在下降,並最終將消失,除非是為了歸檔目的或滿足帕金森式官僚主義的胃口。

資料庫管理的第二個活動是更新,它包括資料的原始儲存、隨著事物變化而重複修改,以及最終在不再需要資料時從系統中刪除它。

更新活動是對真實世界變化必須記錄的響應。僱用新員工會導致儲存新記錄。減少可用庫存會導致庫存記錄被修改。取消機票預訂會導致記錄被刪除。所有這些都在預期未來查詢的情況下記錄和更新。

檔案的排序一直占用大量電腦時間。它用於在批次循序更新之前排序交易,以及用於準備報告。轉變為交易模式更新和按需查詢和報告準備正在降低檔案級排序的重要性。

運用資料庫結構進行導航

現在讓我們回到關於程式設計師作為導航員的故事。我們離開時,他正使用隨機化或索引循序技術來加快基於主資料鍵對檔案的查詢或更新。

除了記錄的主鍵外,經常希望能夠根據某些其他欄位的值來檢索記錄。例如,在規劃十年獎項時,可能希望選擇所有「僱用年份」欄位值等於1964年的員工記錄。這種存取是通過次資料鍵(secondary data key)檢索。通過次資料鍵檢索的實際記錄數量是不可預測的,可能從零到可能包含整個檔案不等。相比之下,主資料鍵最多只會檢索一個記錄。

隨著次資料鍵檢索的出現,先前的一維資料空間獲得了與記錄中欄位數量相等的附加維度。對於小型或中型檔案,資料庫系統對檔案中的每個記錄在每個欄位上建立索引是可行的。這種完全索引的檔案被歸類為倒排檔案(inverted files)。然而,在大型活動檔案中,對每個欄位建立索引是不經濟的。因此,謹慎的做法是選擇其內容將經常被用作檢索標準的欄位,並僅為這些欄位建立次級索引。

檔案與資料庫的區別尚未明確確立。然而,有一個區別目前與我們的討論有關。在資料庫中,擁有幾種或多種不同類型的記錄是很常見的。例如,在人事資料庫中,可能會有員工記錄、部門記錄、技能記錄、扣款記錄、工作歷史記錄和教育記錄。每種類型的記錄都有其自己獨一無二的主資料鍵,其所有其他欄位都是潛在的次資料鍵。

在這樣的資料庫中,當一種記錄類型的主鍵是另一種記錄類型的次鍵時,主鍵和次鍵之間會產生有趣的關係。回到我們的人事資料庫作為例子——名為「部門代碼」的欄位出現在員工記錄和部門記錄中。它是員工記錄的幾個可能的次資料鍵之一,也是部門記錄的唯一主資料鍵。

主資料鍵欄位和次資料鍵欄位的這種相等性反映了真實世界的關係,並為重新建立這些關係以供電腦處理提供了途徑。將相同資料值用作一個記錄的主鍵和一組記錄的次鍵,是聲明和維護資料結構集(data structure sets)的基本概念。Integrated Data Store(I-D-S)系統以及所有基於其概念的其他系統,都將它們對程式設計師的基本貢獻視為能夠將記錄關聯到資料結構集中,以及能夠使用這些集作為檢索路徑的能力。所有COBOL Database Task Group系統的實現都屬於這一類。

從幾個單一記錄類型的檔案轉換為包含幾種記錄類型和資料庫集的資料庫,可以獲得許多好處。其中一個好處源於使用資料庫集代替主索引和次索引來存取具有特定資料鍵值的所有記錄,從而顯著提高了效能。使用資料庫集,所有冗餘資料都可以被消除,減少了所需的儲存空間。如果為了提高檢索效能而故意保留冗餘資料,代價是維護,那麼可以控制冗餘資料以確保一個記錄中值的更新能正確反映在所有其他相關記錄中。效能通過資料庫所謂的「聚類」(clustering)能力得到增強,其中一個集的所有者記錄和部分或大部分成員記錄物理地儲存在一起並在同一塊或頁面上存取。這些系統自1962年以來一直在虛擬記憶體中運行。

另一個重要的功能和效能優勢是能夠根據聲明的排序欄位或插入時間指定集合中記錄的檢索順序。

導航機會:程式設計師的存取命令

為了突顯程式設計師作為導航員的角色,讓我們列舉他存取記錄的機會。這些代表了他可以給予資料庫系統的命令——單獨使用、組合使用或彼此組合使用——在他尋找資料以解決查詢或完成更新時。

  1. 他可以從資料庫的開頭,或從任何已知記錄開始,循序存取資料庫中的「下一個」記錄,直到到達目標記錄或到達末尾。
  2. 他可以使用資料庫鍵(database key)進入資料庫,該鍵提供對記錄物理位置的直接存取。(資料庫鍵是記錄創建時分配給它的永久虛擬記憶體位址。)
  3. 他可以根據主資料鍵的值進入資料庫。(索引循序或隨機化存取技術會產生相同的結果。)
  4. 他可以使用次資料鍵值進入資料庫,並循序存取該欄位具有特定資料值的所有記錄。
  5. 他可以從集合的所有者(owner)開始,循序存取所有成員(member)記錄。(這相當於將主資料鍵轉換為次資料鍵。)
  6. 他可以從集合中的任何成員記錄開始,存取該集合的下一個或上一個成員。
  7. 他可以從集合中的任何成員開始,存取該集合的所有者,從而將次資料鍵轉換為主資料鍵。

這些存取方法中的每一種本身都很有趣,而且都非常有用。然而,正是整個集合的協同使用賦予了程式設計師強大且擴展的能力,使其能夠在大型資料庫中自由進出,同時僅存取與回應查詢和更新資料庫以預期未來查詢相關的記錄。

想像以下情景來說明處理單一交易如何涉及遍歷資料庫。交易攜帶了用於進入資料庫的記錄的主資料鍵值或資料庫鍵。該記錄將用於存取該集合的其他記錄(所有者或成員)。這些記錄中的每一個又被用作起點來檢查另一個集合。

例如,考慮一個給定部門代碼後要求列出特定部門員工的請求。這個請求可以由一個僅包含兩種不同類型記錄的資料庫支援:人事記錄和部門記錄。為了簡單起見,可以將部門記錄設想為只有兩個欄位:作為主資料鍵的部門代碼,以及作為描述性欄位的部門名稱。人事記錄可以設想為只有三個欄位:作為記錄主資料鍵的員工號碼,作為描述性欄位的員工姓名,以及作為控制集合選擇和記錄在集合中位置的次級鍵的員工部門代碼。部門代碼被這兩種記錄共同使用,以及基於這個資料鍵聲明一個集合,為部門記錄與該部門所有員工記錄之間的集合關係的創建和維護提供了基礎。因此,使用員工記錄集提供了在通過主資料鍵檢索相應部門記錄後,便捷地列出特定部門所有員工的機制。無需存取其他記錄或索引。

在部門記錄中添加部門經理的員工號碼大大擴展了導航機會,並為第二類集合提供了基礎。這類新集合的每個實例都包含由特定員工管理的_所有_部門的部門記錄。單個員工號碼或部門代碼現在提供了進入企業整合資料結構的入口點。給定一個員工號碼和所管理部門的記錄集,可以列出他管理的所有部門。每個這類部門的人事可以進一步列出。可以反覆詢問這些員工中每個人管理的部門,直到顯示所有下屬員工和部門。反之,相同的資料結構可以輕鬆識別員工的經理、經理的經理、經理的經理的經理,等等,直到達到公司總裁。

對於已經掌握在n維資料空間中操作的程式設計師來說,前方還有額外的風險和冒險。作為導航員,他必須勇敢地在他們的海洋中闖過隱約可見的淺灘和暗礁,這是因為他必須在共用資料庫環境中導航。沒有其他明顯的方式可以讓他達到所需的效能。

共用存取的挑戰:干擾與污染

共用存取是多程式或分時的一種新的複雜變體,這些技術是為了允許對電腦資源進行共用但獨立的使用而發明的。在多程式設計中,一個作業的程式設計師並不知道也不在意他的作業可能正在共用電腦,只要他確定他的位址空間獨立於任何其他程式的位址空間即可。操作系統負責確保每個程式的完整性,並充分利用記憶體、處理器和其他物理資源。共用存取是多程式設計的一種專門版本,其中關鍵的共用資源是資料庫的記錄。資料庫記錄與主記憶體或處理器根本不同,因為它們的資料欄位通過更新改變值,並且之後不會恢復其原始狀態。因此,重複使用資料庫記錄的作業可能會發現該記錄的內容或集合成員資格自上次存取以來已經改變。結果,試圖進行複雜計算的演算法可能會得到一個有些不穩定的畫面。想像一下,試圖收斂到一個迭代解決方案,而變數正在隨機改變!想像一下,試圖進行試算平衡(trial balance),而有人仍在向帳戶過帳交易!想像一下,在機票預訂系統中有兩個並行作業正試圖出售航班上的最後一個座位!

人們的第一反應是,這種共用存取是胡說八道,應該被遺忘。然而,要求使用共用存取的壓力是巨大的。今天和可預見的未來可用的處理器預計將比可用的直接存取儲存設備快得多。此外,即使儲存設備的速度趕上了處理器,另外兩個問題也會保持成功共用存取的壓力。第一個問題是將許多單用途檔案整合到少數整合資料庫的趨勢;第二個問題是互動式處理的趨勢,其中處理器只能以手動創建的輸入消息允許的速度推進作業。如果沒有共用存取,整個資料庫將被鎖定,直到批次程式或交易及其人機互動終止。

今天直接存取儲存設備的效能受使用模式的影響很大。如果使用模式是交替的:存取、處理、存取、處理...,並且每次存取都取決於前一次存取的解釋,則效能會相當慢。通過多程式設計生成許多獨立的存取時,它們通常可以並行執行,因為它們指向不同的儲存設備。此外,當同一設備的存取請求隊列時,通過尋道和延遲減少技術,可以實際提高該設備的傳輸能力。這種提高吞吐量的潛力是共用存取的終極壓力。

在資料庫管理的兩個主要功能——查詢和更新中,只有更新會產生共用存取的潛在問題。無限數量的作業可以同時從資料庫中提取資料而不會有麻煩。然而,一旦單一作業開始更新資料庫,就存在潛在問題。處理一個交易可能只需要更新資料庫中數千甚至數百萬記錄中的幾個記錄。在此基礎上,數百個作業可以同時處理交易,並且實際上不會發生衝突。然而,總會有兩個作業想要同時處理同一記錄的時候。

共用存取問題的兩個基本原因是干擾(interference)和污染(contamination)。干擾定義為一個作業的更新活動對另一個作業結果的負面影響。我舉例說一個作業正在運行會計試算平衡,而另一個作業正在過帳交易,這說明了干擾問題。當一個作業受到干擾時,必須中止並重新啟動它,以便它有另一個機會生成正確的輸出。先前執行的任何輸出也必須刪除,因為將會創建新的輸出。污染定義為組合了兩個事件對作業產生的負面影響:另一個作業已中止,並且其輸出(即對資料庫的更改或發送的消息)已被第一個作業讀取。中止的作業及其輸出將從系統中刪除。此外,被中止作業的輸出污染的作業也必須中止並重新啟動,以便它們可以使用正確的輸入資料進行操作。

解決共用存取問題:死鎖與未來

設計共用存取問題解決方案的一個關鍵問題是應用程式設計師應該擁有多大程度的可見性。Weyerhaeuser Company的I-D-S共用存取版本基於程式設計師不應該意識到共用存取問題的前提而設計。該系統自動阻止每個更新的記錄和作業發送的每條消息,直到該作業正常終止,從而完全消除了污染問題。這種記錄動態阻塞的一個副作用是可能產生死鎖(deadlock)情況,即兩個或更多作業都想等待另一個作業解除阻塞所需的記錄。偵測到死鎖情況後,I-D-S資料庫系統通過中止創建死鎖情況的作業,恢復該作業更新的記錄,並將這些記錄提供給等待的作業來響應。被中止的作業本身隨後會重新啟動。

這些死鎖情況真的存在嗎?據我所知,Weyerhaeuser基於交易的系統中約有10%的啟動作業因死鎖而被迫中止。每小時約有100個作業被中止並重新啟動!這很糟糕嗎?這太低效了嗎?這些問題很難回答,因為我們在這一領域的效率標準尚未明確定義。此外,結果取決於應用程式。Weyerhaeuser的I-D-S系統在成功完成的作業方面效率達90%。然而,真正的問題是:

  • 避免共用存取是否會允許每小時完成更多或更少的作業?
  • 基於偵測而不是避免污染的另一種策略是否會更有效?
  • 讓程式設計師意識到共用存取是否會讓他圍繞問題編程,從而提高效率?

所有這些問題都開始影響作為導航員的程式設計師以及設計和實現其導航輔助工具的人員。

我今天的論點是,應用程式設計師應該放棄記憶體中心化的視角,接受在n維資料空間中導航的挑戰和機遇。支援這種能力的軟體系統今天已經存在,並且越來越容易獲得。

英國著名的數學家和哲學家Bertrand Russell曾表示,相對論要求我們改變我們對世界的想像圖景。在我們的資訊系統世界中,需要類似的想像圖景變革。主要問題是資料處理人員思維的重新定位。這不僅包括程式設計師,還包括規劃基本應用程式設計任務的應用系統設計者以及將創建未來操作系統、消息系統和資料庫系統產品的產品規劃師和系統程式設計師。

Copernicus在400多年前為天體力學奠定了基礎。正是這門科學使得我們在導航前往月球和其他行星時使用的最低能量解決方案成為可能。必須發展一門類似的科學,它將為資料庫存取產生相應的最低能量解決方案。這個主題雙重有趣,因為它包括遍歷現有資料庫的問題、如何從一開始構建一個資料庫的問題以及如何隨後重組它以最適合不斷變化的存取模式。你能想像重組我們的太陽系以最小化行星之間的旅行時間嗎?

重要的是將這些資料結構力學發展成為基於健全設計原則的工程學科。重要的是它可以被教授並且正在被教授。據估計,1980年代將安裝的資料庫系統設備成本高達1000億美元(按1970年價值計算)。進一步估計,缺乏有效的標準化可能會額外增加20%或200億美元。因此,謹慎的做法是拋棄目前阻礙進步的保守主義、情感主義和神學爭論。大學很大程度上忽視了資料結構力學,而偏向於更符合研究生論文要求的問題。大型資料庫系統是昂貴的專案,大學預算根本無法負擔。因此,需要大學/產業和大學/政府的聯合專案來提供取得進展所需的資金和持續力。在Weyerhaeuser系統中埋藏著足夠六個博士論文的材料,等待有人來挖掘。我所指的不是關於新的隨機化演算法的研究。我所指的,是對近十億字元的真實商業資料進行力學研究,這些資料以目前已知最純粹的資料結構組織。

技術文獻的出版政策也是一個問題。ACM SIGBDP和SIGFIDET的出版物是目前最好的,這些組織的成員資格應該增加。Communications of the ACM的審稿規則和慣例導致從提交到出版之間延遲一年到18個月。再加上作者準備發表其想法所需的時間,從發現重要結果到最早可能出版之間至少有兩年的延遲。

進步的最大單一障礙可能在於電腦使用者中很大部分人普遍缺乏資料庫資訊,這是由於單一供應商主導市場造成的。如果這個群體能夠在完全開放的資訊交流中運用他們的經驗、需求和問題解決能力,變革的速度肯定會加快。SHARE最近開放會員資格給所有供應商和使用者,是一個重要的進步。SHARE贊助的於7月在Montreal(1973年)舉行的資料庫系統工作會議,提供了一個論壇,讓使用各種設備和資料庫系統的使用者可以描述他們的經驗和需求。

更廣泛的對話已經開始。我希望並相信我們可以繼續下去。如果本著這種精神進行,沒有任何組織試圖主導思想,那麼我確信我們可以為程式設計師提供有效的導航工具。

Key Words and Phrases: access method, attributes, calculated addressing, celestial mechanics, clustering, contamination, database, database key, database set, deadlock, deadly embrace, entity, hash addressing, overflow, owner, member, primary data key, Ptolemy, relationship, retrieval, secondary data key, sequential file, set, shared access, update, Weyerhaeuser CR Categories: 3.74, 4.33, 4.34, 5.6, 8.1

第653頁圖靈獎引文的註腳如下:

  1. A general purpose programming system for random access memories (with S.B. Williams). Proc. AFIPS 1964 FJCC, Vol. 26, AFIPS Press, Montvale, N.J., pp. 411-422.
  2. Integrated Data Store. DPMA Quarterly (Jan. 1965).
  3. Software for random access processing. Datamation (Apr. 1965), 36-41.
  4. Integrated Data Store—Case Study. Proc. Sec. Symp. on Computer-Centered Data Base Systems sponsored by ARPA, SDC, and ESD, 1966.
  5. Implementation techniques for data structure sets. Proc. of SHARE Working Conf. on Data Base Systems, Montreal, Canada, July 1973.
  6. The evolution of data structures. Proc. NordDATA Conf., Aug. 1973, Copenhagen, Denmark, pp. 1075-1093.
  7. Data structure diagrams. Data Base 1, 2 (1969), Quarterly Newsletter of ACM SIGBDP, pp. 4-10.
  8. Set concepts for data structures. In Encyclopedia of Computer Science, Amerback Corp. (to be published in 1974).

相關文章如下: The evolution of storage structures. Comm. ACM 15, 7 (July 1972), 628-634. Architectural Definition Technique: its objectives, theory, process, facilities and practice (with J. Bouvard). Proc. 1972 ACM SIGFIDET workshop on Data Description, Access and Control, pp. 257-280. Data space mapped into three dimensions; a viable model for studying data structures. Data Base Management Rep., InfoTech Information Ltd., Berkshire, U.K., 1973. A direct access system with procedurally generated data structuring capability (with S. Brewer). Honeywell Comput. J. (to appear).