Предыстория
Майк Блазген
: Итак, теперь мы обсудим, как все это началось и как это происходило. У меня имеется временной ряд - некоторые из вас видели его, поскольку я рассылал один вариант, который поможет мне вспомнить, как приглашать людей, и также поможет вспомнить мне вещи, которые я сам помню. Так я и буду делать. Самое раннее, что я помню, это то, что я был в [Калифорнийском университете] в Беркли, и помню объявление на стене на 2-м или 4-м этаже [Кори-холла], в котором говорилось, что в Сан-Хосе происходят интересные вещи. Я был еще студентом, значит, это могло быть примерно в 1968 г. Итак, в Сан-Хосе уже велась работа над базами данных. Я не думаю, что тогда это так называлось. Это называлось управлением данными или файловыми системами - я не помню, как это называлось. Но это имело отношение к работе, которой руководил Майк Сенко (Mike Senko). И конечно, исследовательская лаборатория всегда ассоциировалась с данными, поскольку первая разработка дисковых устройств была выполнена именно там в начале пятидесятых. Так что уже в конце шестидесятых уделялось внимание программному обеспечению для управления данными. Я совсем незнаком с этим, и я не принимал никакого участия в работе до начала Фазы Ноль прототипа SEQUEL. Но в компании выполнялось много работ.
Ирв, что привело к статье Кодда (Codd), которая была опубликована в 1970 г.?
Ирв Трейджер
: Честно говоря, я не знаю. Тогда существовали два отдела, отдел систем, которым руководил Гленн Бэкон (Glenn Bacon) и другой - я думаю, что он назывался отделом информационных систем или как-то вроде этого, которым руководил Сенко, и это были совсем другие миры. Люди могли играть в пинг-понг во время ланча - тогда много играли в пинг-понг, но безо всяких технических разговоров. Вы слышали о таких вещах. В одном из отделов существовал большой проект под названием DIAM, с очень сложной структурой, сложным языком запросов. Я знаю, что там был человек по имени Тед Кодд и что существовали какие-то разногласия, но я действительно не знаю, что к чему привело. Однажды Тед Кодд неожиданно появился в отделе систем и после некоторого времени образован небольшую группу - сначала в нее входили три человека: Динес Бьернер (Dines Bjorner), Кен Декерт (Ken Deckert) и я. Мы начали работать над проектом GAMMA-0, и я взял с собой сюда статью о GAMMA-0.
Майк Блазген
: На самом деле? Она на столе артифактов?
Ирв Трейджер
: Пока нет, но будет там. GAMMA-0 замышлялась как средство самого низкого уровня, которое могло кому-нибудь пригодиться, но даже в нем присутствовало понятие поддержки разных вещей на более высоких уровнях, что потом повторилось в System R и Eagle, большом проекте в Санта-Тереза. Тем не менее, эта работа привела к появлению ключевой статьи Теда Кодда - она была опубликована в 1970 г.?
Майк Блазген
: Да.
Ирв Трейджер
: Некоторые из нас из отдела систем пытались читать ее - и не смогли разобраться ни с началом, ни с концом. [смеется] По крайней мере тогда статья казалась очень плохо написанной: какая-то промышленная мотивация, а потом прямой переход к математике. [смеется]
Боб Йост
: Я пришел туда вместе с несколькими другими людьми - я был в отделении разработки развитых систем - и я помню, что происходило около 1970 г., поскольку в это время мы работали с ребятами из IMS. Мы не поверили статье; мы думали, что пройдет не меньше десяти лет, пока что-нибудь получится. И это заняло десять лет. [смеется]
Ирв Трейджер
: Итак, у нас была эта статья; было еще несколько других статей, которые Тед написал позже; одна из них была посвящена языку DSL/Alpha, который основывался на реляционном исчислении. Гленн Бэкон, возглавлявший отдел систем, сомневался, что Тед сумеет обосновать возможность широкого использования этого языка, основанного на математическом исчислении предикатов с кванторами всеобщности и существования и переменными.
Опять же, каким-то образом, я не знаю, каким, вокруг IBM образовался ряд районов активности. Имелся проект в Научном Центре Петерли (Peterlee) в Англии. Петерли был промышленным городом. Английское правительство старалось равномерно распределить индустрию и бизнес в разных частях Соединенного Королевства, и они придумали кооперацию Петерли и IBM, говоря: "Безусловно, мы обустроим там лабораторию". Был такой человек - Терри Борден? - Терри Роджерс (Terry Rogers), который возглавил этот проект, основанный на реляционной алгебре - очень странный язык, который, как не странно, используется даже сейчас на промежуточном уровне системы. Был проект в Хесли (Hursley) (интересно, как много активности в Англии), называвшийся Прототип Хесли - это был Питер Кинг?
Раймонд Лори (Raymond Lorie):
Питер Тилман (Peter Tilman).
Ирв Трейджер:
OK, Тилман. Имелся проект в Научном Центре Кембриджа, Массачусетс. Раймонд Лори, Андрью Саймондс (Andrew Symonds) и другие принимали в нем участие. И еще был предыдущий проект, который выполнялся в Лаборатории Линкольна в MIT Полом Ровнером (Paul Rovner) (который учился в Беркли вместе с Майком, Джимом Греем, Марио [Школьником] и мною) и Джерри Фельдманом (Jerry Feldman), который позже стал профессором в Стэндфорде, а сейчас возглавляет ICSI в Беркли. Так что было имелись эти очаги, и Теду Кодду захотелось построить свой собственный очаг, что и обернулось проектом GAMMA-0.
Как-то Кодд решил организовать симпозиум в Йорктауне - как вы знаете, месте начальства исследовательского отделения, смысл был в том, чтобы отследить все активности в IBM, связанные с реляционными идеями Кодда. Мы сделали это; были представлены разные лаборатории, и каким-то образом спустя немного месяцев начался этот проект. Ему суждено было состояться в Сан-Хосе; ему суждено было получить вливание людей из Йорктауна; и мы не знали, на что это будет похоже, но это не являлось проблемой. Такие люди как Фрэнк Кинг, Дон Чемберлин и Рей Бойс, безусловно, осознавали тот факт, что представляют собой нашествие орды, но они очень чутко относились к этому и очень-очень старались привлечь людей из Сан-Хосе. Майк Сенко и его отдел были слиты с отделом систем, который переименовали в Computer Science; руководил отделом Леонард Лью (Leonard Liu). Гленн Бэкон ушел в SSD или в подразделение, которое сейчас называется SSD. Майк Сенко уехал на восток, оставаясь в IBM, и вскоре после этого умер, я думаю, во время командировки в Европу. Фрэнк Кинг держал нас несколько месяцев в режиме оперативной группы, перебирая все виды сумасшедших схем управления, таких как менторы, внутренние циклы и группы. Из этого выросла System R. Это длинная история. Я не хочу целиком захватывать эту сцену. Таковы мои смутные воспоминания о том, как все началось.
Майк Блазген
: Здорово. На самом деле, вы упомянули многие пункты моего списка: у меня числятся Майк Сенко, статья Теда Кодда, PRTV, Кембридж, ... Но откуда происходит вещь Кодда-Бахмана? Откуда взялась эта драка? Связано ли это с DBTG?
Ирв Трейджер
: Да, велась работа над этим стандартом. Она была организована Database Task Group, и все это называлось CODASYL: Common Data что-то - System Language - как это называлось? Это разновидность daja vu, потому что вы слышите сегодня, как важно следовать стандартам, и если мы так и делали, то ничего бы не сделали, потому что DBTG была богаче, чем IMS; она была сетевой, что, конечно, включает иерархию; и если бы вам были нужны плоские файлы, вы бы имели их в DBTG. Вам пришлось бы только отказаться от именованных связей. Это же здорово, правда? Вы хотите хороший язык, мы дадим вам язык. Техническое сообщество, которое тогда включало немного специалистов в области баз данных, имело свою собственную SIG, я не помню, как она называлась. SIGMOD была новой.
Раймонд Лори
: SIGFIDET.
Ирв Трейджер
: SIGFIDET. SIGMOD была своего рода источником, революционным и не воспринимаемым всерьез кружком, а SIGFIDET вела всю игру, и Бахман был мистером CODASYL. В нескольких случаях - я не помню их все, может быть, на одной из первых конференций SIGMOD, эти люди забрасывались друг на друга. Я имею в виду всего-навсего метание молний: что лучше и что хуже, что сложнее и что проще, каковы математические основы и кому это нужно.
Майк Блазген
: Один из этих дебатов был опубликован и широко распространялся.
К. Мохан (C. Mohan)
: Я думаю, дискуссия NCC. National Computer Conference.
Дон Чемберлин
: Это было на конференции SIGFIDET в Анн Арбор, Мичиган в 1974 г.
Франко Путцолу (Franco Putzolu)
: Я думаю, что некоторые люди, которые в конце концов работали на System R, работали над методами проектирования баз данных DBTG. Кроме того, как я помню, существовал проект в Йорктауне, посвященный тому, как проектировать базы данных DBTG.
Дон Чемберлин
: Я работал над этим. В 1971 г. в Йорктауне Леонард Лью привлек меня к работе над проектом операционной системы под названием System A. В те дни Леонард Лью был менеджером верхнего уровня, и я работал на Леонарда около года, пока в 1972 г. проект System A не был закрыт. Все время казалось, что имеются сдвиги, Леонард получал повышения, и вот что случилось в 1972 г. [смеется] Леонард продвинулся до должности второстепенного менеджера, а я начал работать на Фрэнка Кинга. В Йорктауне в 1972 г. мы находились в состоянии хаоса, поскольку наш проект операционной системы был закрыт, и нам было нечего делать. Леонард был довольно хитрым политиком, и он думал, что базы данных представляют достаточно важную область, чтобы ими заняться. Поэтому он реорганизовал нас в исследовательскую группу для изучения того, что нужно сделать в этой области. Я получил конкретное задание. Мне казалось, что это лакомый кусочек. Задание состояло в изучении этого предложения CODASYL DBTG. Я должен был научиться рассказывать об этом, оценить, что нужно делать со всем этим, и т.д. Итак, я стал экспертом по DBTG, мне понравилось, и я думал, что эта работа сделана хорошо. В предложении CODASYL DBTG имелись все виды сложных ссылок и ориентированные на множества правила выборки, и можно было изучать все это все дни напролет. Это была настоящая головоломка. Я относился к типу программистов; я копался во всем этом и много говорил про подобные вещи. В нашей группе был экспертом CODASYL; другие люди изучали другие вещи: CICS, IMS и прочее.
Мы знали, что где-то в провинции, в Сан-Хосе, выполняется некоторая работа. Был этот парень, Тед Кодд, у которого имелась некоторая строгая математическая нотация, но никто не относился к этому слишком серьезно. Примерно в это время был принят на работу Рей Бойс, и мы втянулись в эту игру под названием Игра с Запросами, размышляя о способах выражения сложных запросов. Но еще до начала этой игры у меня имелся опыт обращения в новую веру, и я еще помню про это. В Йорктаун приехал Тед Кодд, я думаю, на тот симпозиум, который упоминал Ирв. Он провел семинар, и многие из нас пришли его послушать. Я считаю, что для меня это было откровением, поскольку у Кодда был набор запросов, очень сложных запросов, и поскольку я занимался CODASYL, я мог представить, что для выражения этих запросов в CODASYL потребовалась бы программа в пять страниц, производящая навигацию в лабиринте ссылок и подобных вещей. Кодд мог написать их в одной строке. Это могли быть запросы типа "Найти служащих, зарабатывающих больше своих начальников". [смеется] Он вколачивал их, вы могли прочитать, обнаружить, что запросы-то совсем не сложные и сказать "Ооо". Для меня это был опытом обращения, давший мне понять значение реляционных штучек.
В это время Рей Бойс был только что принят на работу, и мы стали играть с ним в эту игру, которую мы назвали Игрой с Запросами, раздумывая над различными вопросами, которые нужно было бы выразить, и пытаясь найти соответствующий синтаксис. В эти дни возникли некоторые оригинальные идеи, которые мы собрали вместе, чтобы опробовать их и убедиться в осмысленности. Мы назвали нотацию SQUARE, что означало Specifying Queries as Relational Expressions. Мы знали, что Кодд разработал два языка, называемые реляционной алгеброй и реляционным исчислением. В реляционной алгебре основными объектами были таблицы, и вы комбинировали эти таблицы, используя операции типа соединения и проекции и подобные вещи. Реляционное исчисление было видом строгой математической нотации с кучей кванторов. Мы думали, что нам нужен язык, отличающийся от того и другого, в котором базовыми объектами были бы множества значений, и работать с этими значениями можно было бы путем отображения одного множества в другое с использованием таблиц. При наличии обычной базы данных продаж и отделов с возможностью расположения продаваемых предметов на разных этажах мы могли бы взять значение "два" и отобразить его с использованием этой нотации на отделы, находящиеся на этом этаже, а затем снова произвести отображение на предметы, продаваемые этими отделами. Мы старались показать, что эта нотация отображений проще тех сложных способов, которые позволяют выразить этот запрос в реляционном исчислении, или, существенно хуже, с использованием чего-то типа CODASYL.
Все это лежало в основе идеи SQUARE, и над этим мы Реем работали, когда перебрались в Сан-Хосе в 1973 г., вместе с Леонардом, Фрэнком, Верой Ватсон и Робином Уильямсом (Robin Williams), которые прибыли в Сан-Хосе в то же время. Джим Грей приехал на год раньше, потому что ему нравилось западное побережье. Франко и Майк, мне кажется, на следующий год, в 1974 г. Вот что происходило в Йорктауне в то самое время, когда Ирв работал с Тедом Коддом в Сан-Хосе.
Майк Блазген
: Это здорово; я узнаю вещи, которых не знал.
Ирв упоминал о том, что некоторые из нас были связаны с университетом Беркли; число этих людей поразительно велико. Вам не могло бы придти это в голову, возможно, это произошло по географическим причинам. Это Ирв, Брюс [Линдсей] (Bruce Lindsay), Пол [МакДжонс], я, Марио [Школьник], позже Боб Селинджер (Bob Selinger), Боб Йост и, конечно, Джим Грей, который, как мы говорим, был стипендиатом МакКея, не правда ли?
Джим Грей
: Как мы говорим, до полуночи.
Майк Блазген
: Его последним днем было 31 мая.
Если это кому-нибудь интересно, здесь имеется Общий Каталог университета Беркли за 1968 г. В этот год я преподавал в Беркли. Моего имени здесь нет. Присутствует имя Балтера Лампсона (Bulter Lampson), у которого был курс по операционным системам.
Брюс Линдсей
: Я слушал этот курс.
Марио Школьник
: Я слышал сплетни, что можно было завалить этот курс только по причине наличия описок в отчетах. Я очень чувствительно относился к этому, потому что только что переехал в Беркли из Чили.
Франко Путцолу
: Вы знаете, когда началась INGRES?
Майк Блазген
: Не могу сказать точно, примерно в это же время. Я поступил в Беркли в начале 1975 г. Моим руководителем в Беркли был Джин Вонг (Gene Wong). Он был одним из разработчиков. У Вонга имелась процедура оптимизации, которую он отстаивал, и эта процедура была реализована в INGRES. Стоунбрейкер (Stonebraker) разработал QUEL. QUEL был отображен на этот трюк, который я на самом деле не помню и который не является основным вкладом, внесенным в мир INGRES.
Ирв Трейджер
: Идея заключалась в оптимизации на основе того, как запрос ведет себя в динамике, так?
Майк Блазген
: Ну, это был своеобразный метод...
Раймонд Лори
: Запрос с единственной переменной.
Майк Блазген
: Да, это так, трюк с единственной переменной. Я видел это в работающем виде в 1975 г. Можно было ввести текст на QUEL и получить нечто, похожее на UFI. Они поддерживали только запросы - возможности обновлений отсутствовали. Я полагаю, что можно было иметь нескольких одновременных пользователей, это была система с разделением времени. Она работала на PDP-11/45.
Джим Грей
: Примерно в 1972 г. Стоунбрейкер получил грант для разработки системы баз данных с гео-запросами. Ее намеривались использовать для изучения городского планирования. В проекте не делался какой-либо инструмент географических баз данных; очень быстро центр тяжести переместился на построение системы реляционных баз данных. Результатом стала система INGRES. Проект стартовал где-то в 1972 г., и от него произошло много вещей: Ingres, Britton-Lee и Sybase. Между группой IBM в Сан-Хосе и группой Беркли установились враждебные отношения, поскольку они работали на очень-очень похожими вещами и имели очень-очень похожие идеи. Почти все были молодыми и неуверенными в себе (новичками), поэтому имелось сильное беспокойство за приоритет публикаций. В результате дело дошло до того, что лучшие идеи не рассказывались даже друг другу. Разговоры могли привести к появлению статей без указания имен рассказчиков. Порой люди метались в разные стороны; Ренди Кац (Randy Katz) был в обоих лагерях. Временами на лето в IBM приходили студенты, и временами мы все выступали, но всегда очень осторожно. В архиве сохранились слова Стоунбрейкера: "Балодарим за указание на то, что в параграфе таком-то статьи такой-то мы забыли сослаться на ???" Конечно, это не относилось только к одной стороне. Ребята из Беркли думали, что парни из IBM сдирают идеи из проекта INGRES. У нас были натянутые отношения.
Майк Блазген
: Лично у меня остались довольно приятные воспоминания об этих отношениях. Но я знаю многих других, таких как Фрэнк и прочие, у которых по этому поводу остались плохие воспоминания, поскольку у нас, вероятно, заимствовались идеи и использовались ими безо всякого разрешения.
Джим Грей
: И наоборот.
Франко Путцолу
: Vice versa.
Майк Блазген
: OK, и наоборот. Но я всегда слышал обвинение в адрес другой стороны. [смеется]
Но лично у меня были только хорошие отношения - ну, Джин Вонг был руководителем моих исследований и одним из ключевых игроков в этом деле. Джон Пол Джакоб (John Paul Jacob) организовал мероприятие в Католическом университете Рио в 1975 г., я думаю, летом 1975 г., но может быть, и летом 1976 г. Шарон и я отправились в Рио, это было действительно приятное путешествие с остановками в других местах Южной Америки.Там были Майк Стоунбрейкер в течение месяца, Деннис Цикридзис (Dennis Tsichridzis) из университета Торонто с женой, мы с Шарон и другие. Я не помню, кто еще из IBM были там; кто-нибудь из этой комнаты ездил? Джима не было. Я провел в Рио, возможно, три недели: одну неделю читал лекции на этой конференции, другую неделю с Шарон, просто болтаясь и снова читая лекции. Мы держались вместе впятером: Деннис с женой, мы с Шарон и Майк Стоунбрейкер (он был один). И так мы вместе и крутились. И я подружился с Майком, поскольку был приклеен к этому далекому месту, где было нечего делать, кроме как выпивать, чем мы много и занимались. Так что мы с Майком очень сблизились; я всегда думал, что он относится ко мне очень хорошо. Конечно, я не знаю, не говорил ли он что-нибудь за моей спиной.
Джим Грей
: Хорошо то, что вы работали над B-деревьями, а они не сделали B-деревья. [смеется] Я работал над блокировками, а они не сделали блокировок, поэтому я тоже был OK.
(4) E.F. Codd. "A Relational Model of Data for Large Shared Data Banks" CACM 13, 6 (June 1970 pages 377-387.
(5) M.M. Astrahan, E.B. Altman, P.L. Fehder, and M.E. Senko. "Concepts of a Data Independent Access Model" 1972 ACM SIGFIDET Workshop Report, pages 349-362.
(6) E.B. Altman, M.M. Astrahan, P.L. Fehder, and M.E. Senko. "Specifications in a Data Independent Access Model" 1972 ACM SIGFIDET Workshop Report, pages 363-376
(7) D. Bjorner, E.F. Codd, K.L. Deckert, and I.L. Traiger. The GAMMA-0 n-ary Relational Data Base Interface: Specifications of Objects and Operations. IBM Research Report RJ1200. San Jose, California (April 1973).
(8) IMS - это аббревиатура от Information Management System, первой системы управления базами данных IBM.
(9) E.F. Codd. A database sublanguage founded on the relational calculus. Proc. ACM SIGFIDET Workshop on Data Description, Access, and Control, San Diego, California (November 1971) pages 35-68.
(10) Система RM (Relational Memory) поддерживала бинарные отношения; см.:
A.J. Symonds and R.A. Lorie. "A schema for description a relational data base" Proc. ACM SIGFIDET Workshop on Data Description, Access, and Control, (November 1970) pages 201-229.
R.A. Lorie and A.J. Symonds. "A Relational Access Method for Interactive Applications." Courant Computer Science Symposia, Vol. 6: Data Base Systems. Prentice-Hall, Englewood Cliffs, New Jersey (1971).
Следующая система XRM (Extended Relational Memory) поддерживала n-арные отношения; см.: R.A. Lorie. XRM - An Extended (N-ary) Relational Memory. IBM Technical Report G320-2096. Cambridge Scientific Center, Mass. (January 1974).
(11) J.A. Feldman and P.D. Rovner. "An Algol-Based Associative Language" CACM 12, 8 (August 1969) pages 439-449
(12) International Computer Science Institute.
(13) SSD означает Storage Systems Division.
(14) PRTV означает Peterlee Relational Test Vehicle. См.:
Stephen Todd. "PRTV, an efficient implementation for large relational data bases" Proc. VLDB, Florence, Italy (1975), pages 554-556
(15) На самом деле CODASYL расшифровывается как Conference on Data Systems Languages, которая была образована в 1959 г. для проектирования языка обработки данных COBOL, ориентированного на применение в бизнесе. Входящая в состав CODASYL Data Base Task Group определила то, что стали называть моделью баз данных DBTG:
CODASYL Data Base Task Group. Report of the CODASYL Data Base Task Group. ACM (April 1971).
R.W. Taylor and R.L. Frank. "CODASYL Data-Base Management Systems" ACM Computing Surveys 8, 1 (March 1976) pages 67-103.
(16) IMS - иерархическая система.
(17) C. Bachman. "The programmer as navigator" (Turing Award lecture) CACM 16, 11 (November 1973) pages 653-658.
(18) " Data Models: Data Structure Set versus Relational" Supplement to Proc. ACM SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan (May 1974).
(19) CICS обозначает Customer Information Control System, монитор обработки транзакций компании IBM, среда написания приложений оперативной обработки транзакций.
(20) M. Stonebraker, E. Wong, P. Kregs, and G. Held. "The Design and Implementation of INGRES" ACM TODS 1, 3 (September 1976) pages 189-222.
(21) Сначала компания называлась Relational Technology Inc., а затем была переименована в Ingres Corporation. Ingres была куплена компанией ASK, которую саму купила Computer Associates International, Inc.
(22) В 1988 г. премию ACM Software System Award разделили System R (Donald Chamberlin, James Gray, Raymond Lorie, Gianfranco Putzolu, Patricia Selinger and Irving Traiger) и INGRES (Gerald Held, Michael Stonebraker and Eugene Wong).
Страницы: 2