Планы и будущее
SQL:1999 - это еще не стандарт, хотя находится на пути к этому. В прошлом году было проведено голосования по поводу Final Committee Draft (FCD), содержащего четыре части спецификаций SQL (см. [1], [2], [4] и [5]). В ноябре 1998 г. состоялось заключительное редакторское собрание по поводу этих частей. Изменения спецификаций были представлены редактором (Джимом Мелтоном) и теперь рассматриваются участниками редакторского собрания. После завершения этого рассмотрения эти четыре части будут представлены для окончательного голосования (называемого голосованием по поводу Final Draft International Standard, или FDIS), результатом которого будет либо "одобрить и опубликовать без изменений", либо "не обобрять и вернуться к статусу FCD". В настоящее время все участники ожидают, что результатом будет "одобрить и опубликовать", что приведет к появлению пересмотренного стандарта где-то в середине 1999 г.
Другая часть SQL -- SQL/CLI (см. [3]) -- также пересматривается и только что подверглась голосованию как FCD. Ожидается, что она будет опубликована позже в 1999 г. как пересмотренный вариант стандарта CLI-95.
Трудно знать, что принесет будущее, но группы и в ANSI, и в ISO договорились избегать затяжных процессов типа того, который привел к SQL:1999. Мы все уверены, что шесть лет - это просто слишком много, особенно, если учитывать тот факт, что весь мир работает все больше и больше "во времени Web". Разрабатываются планы, в соответствии с которыми пересмотренные варианты стандарта должны появляться примерно через каждые три года, даже если технические усовершенствования будут более скромными, чем в SQL:1999.
В дополнение к развитию основных частей стандарта SQL разрабатываются дополнительные части стандарта, посвященные таким вопросам, как темпоральные базы данных, связь с языком Java (эти вопросы разъяснялись в предыдущем выпуске SIGMOD Record) и управление внешними данными наряду с данными SQL.
Весной 1994 г. Майк Блазген
Весной 1994 г. Майк Блазген (Mike Blasgen) решил, что следует отпраздновать двадцатилетнюю годовщину проекта System R. Осенью 1994 г. Майк привлек Джима Грея (Jim Gray) к локальной подготовке и предложил:
"Пригласить людей, которые работали в IBM над ранними реляционными системами. Это относится к периоду от начала 70-х до начала 80-х: десятилетие прогресса. В число приглашенных следует включить не только исходную группу System R, но и тех, кто работал в IBM над "производными" этой системы - R*, SQL/DS и DB2."
Собрание произошло в Алисомаре, Пасифик Грув (Pacific Grove), Калифорния 28-30 мая 1995 г. вслед за конференцией SIGMOD'95, которая проходила неподалеку в Сан-Хосе. Помимо встреч с давнишними друзьями, прогулок по берегу океана и магической частной вечеринки в аквариуме Монтре понедельник 29-го мая мы провели, вспоминая события двадцатилетней давности.
Я записал и расшифровал разговоры этого дня, попросил выступавших сделать уместные коррективы и выполнил окончательное редактирование. Результатом явился неформальный, но полученный из первых рук устный отчет о рождении SQL, о проекте System R , от которого произошел этот язык, а также о некоторых других реляционных системах баз данных.
Мне хотелось бы поблагодарить выступавших за просмотр документа и внесение поправок. Я также благодарен Кену Бекману (Ken Beckman), Бобу Тейлору (Bob Taylor) и Digital Equipment Corporation за помощь в осуществлении звукозаписи и представленное оборудование. Наконец, я благодарю Майка Блазгена и Джима Грея за то, что воссоединение произошло.
Пол МакДжонс
10 декабрь 1995 г.
Первое издание этого документа было
Первое издание этого документа было опубликовано в World Wide Web. В надежде облегчить его поиск и обеспечить возможность ссылок я повторно выпустил документ в виде SRC Technical Note.
В первое издание я включил ряд библиографических ссылок для читателей, желающих узнать больше, чем то, что охватывают темы документа. В эту редакцию внесены некоторые коррективы и ряд добавок к этим ссылкам. Имеется несколько ссылок, которые могут представлять общий интерес для читателей документа: обзор области баз данных во время выполнения проекта System R и техническая ретроспектива System R.
Предыстория
Майк Блазген
: Итак, теперь мы обсудим, как все это началось и как это происходило. У меня имеется временной ряд - некоторые из вас видели его, поскольку я рассылал один вариант, который поможет мне вспомнить, как приглашать людей, и также поможет вспомнить мне вещи, которые я сам помню. Так я и буду делать. Самое раннее, что я помню, это то, что я был в [Калифорнийском университете] в Беркли, и помню объявление на стене на 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
Признание вклада отдельных участников
В течение этих лет в разработке SQL:1999 принимали участие многие и многие люди. Хотя по соображениям ограниченного объема статьи мы не в состоянии упомянуть всех, кто принимал участие в работе комитета, мы считаем правильным указать, по крайней мере, имена людей, которые написали существенное число изменений к предложениям или просто писали важные предложения.
Mihnea Andrei (France; Sybase) Jon Bauer (USA; Digital and Oracle) David Beech (USA; Oracle) Stephen Cannan (Netherlands; DCE Nederland and James Martin Consulting) Paul Cotton (Canada; IBM) Hugh Darwen (UK; IBM) Linda deMichael (USA; IBM) Judy Dillman (USA; CA) Rudiger Eisele (Germany; Digital, Oracle and independent consultant) Andrew Eisenberg (USA; Digital, Oracle and Sybase) Chris Farrar (USA; Teradata and Compaq) Len Gallagher (USA; NIST) Luigi Giuri (Italy; Fondazione ugo Bordoni) Keith Hare (USA; JCC) Bruce Horowitz (USA; Bellcore) Bill Kelly (USA; UniSQL) Bill Kent (USA; HP) Krishna Kulkarni (USA; Tandem, Informix and IBM) Nelson Mattos (USA; IBM) Jim Melton (USA; Digital and Sybase) Frank Pellow (Canada; IBM and USA; Microsoft) Baba Piprani (Canada; independent consultant) Peter Pistor (Germany; IBM) Mike Pizzo (USA; Microsoft) Jeff Richie (USA; Sybase and IBM) Phil Shaw (USA; IBM, Oracle and Sybase) Kohji Shibano (Japan; Tokyo International University and Tokyo University of Foreign Students) Masashi Tsuchiba (Japan; Hitachi) Mike Ubell (USA; Digital, Illustra and Informix) Murali Venkatrao (USA; Microsoft) Fred Zemke (USA; Oracle)
Каждый из этих людей внес существенный вклад. Некоторые из них разработали основные аспекты архитектуры SQL;1999, другие концентрировались на конкретных технологиях, таких как интерфейс уровня вызовов (SQL/CLI), третьи работали над очень специальными вопросами, такими, как безопасность. Мы поздравляем всех их -- а также и тех людей, которые не упомянуты в приведенном списке -- с успешным завершением большой работы.
Процесс разработки стандартов
Двумя юридически признанными организациями, активно вовлеченными в процесс стандартизации SQL и тем самым разработки SQL:1999, являются ANSI и ISO.
Более точно, международное сообщество работает через ISO/IEC JTC1 (Joint Technical Committee 1), комитет, сформированные Международной организацией по стандартизации совместно с Международной электротехнической комиссией. В сферу ответственности JTC1 входит разработка и поддержка стандартов, связанных с информационными технологиями. Внутри JTC1 недавно был образован подкомитет CS32, названный Data Management and Interchange (управление и обмен данными), чтобы принять дела в связи с несколькими стандартами, связанными с базами данных и метаданными и разработанными другими организациями (такими, как распущенным подкомитетом SC21). В свою очередь, CS32 сформировал ряд рабочих групп для реального выполнения технической работы - WG3 (языки баз данных) отвечает за стандарт SQL3, а WG4 развивает SQL/MM (SQL Multi-Media, набор стандартов, определяющих библиотеки типов с использованием объектно-ориентированных средств SQL3).
В Соединенных Штатах стандарты IT находятся в ведении аккредитованного при ANSI комитета NCITS (National Committee for Information Technology Standardization), ранее называвшегося просто "X3". Технический комитет NCITS H2 (раньше "X3H2") отвечает за несколько стандартов, связанных с управлением данными, включая SQL и SQL/MM.
Когда был разработан SQL первого поколения (SQL-86 и его незначительное развитие SQL-89), большая - а возможно, и основная -- часть работы была выполнена в США в X3H2, а остальные страны широко участвовали в работе в режиме обзоров и критики предложений ANSI. Но ко времени опубликования SQL-89 международное сообщество начало очень активно действовать в написании предложений для спецификации того, что стало SQL-92; ситуация не изменилась во время разработки SQL:1999, и мы надеемся, что не изменится и в будущем -- SQL - это действительно совместная международная работа.
Некоторых пояснений требуют неформальные названия, которые мы применяем к разным редакциям стандарта SQL. Первые версии стандарта широко известны под названиями SQL-86 (или SQL-87, поскольку версия ISO не публиковалась до начала 1987 г.), SQL-89 и SQL-92, в то время версию, разработка которой сейчас завершается, следует называть SQL:1999. Откуда это отличие? … почему не "SQL-99"? Просто потому, что мы должны начать думать о том, как будет называться следующее поколение, и "SQL-02" вполне можно спутать с "SQL2" (название проекта, в рамках которого разрабатывался SQL-92) … не принимая во внимание тот факт, что "02" на самом деле не больше "99". Другими словами, мы не хотим, чтобы название стандарта SQL страдало от проблемы 2000-го года!
Продукты IBM SQL/DS
Майк Блазген
: OK, теперь в эту картину приходит System R, которая, как ты отметил, не очень-то относилась к деле, если не считать того факта, что ты думал о возможности реализации SQL над своей подсистемой. Но кое-что произошло, и неожиданно в Санта-Тереза сказали OK по поводу System R.
Франко Путцолу
: Об этом следует рассказать Бобу Джоллсу. Я действительно не знаю подоплеку этого перехода. Единственное, что я знаю, это то, что если рассматривать компоненты верхнего уровня, то имелись проблемы с выполнением плана, но я не знаю, что побудило переход к SQL и настоящей DB2.
Боб Джоллс
: Я думаю, что лучше всего рассказывать об этом с личных позиций, чтобы показать, что это значит для каждого из нас. Каждый из нас был привлечен к этому делу тем или иным образом. Я прибыл в Санта-Тереза из Нью-Йорка в 1977 г. Я не думаю, что входил в какую-нибудь Нью-Йоркскую мафию, как некоторые из вас. Я приехал для работы менеджером отдела проектирования баз данных в лаборатории Санта-Тереза. У меня имелась некоторая техническая и деловая подготовка, и я чувствовал себя достаточно комфортно, будучи в состоянии выполнять эту работу. Я немного волновался по поводу пребывания в Калифорнии. Вы знаете, все люди на восточном побережье, которых я знал, обладали всем необходимым, чтобы сказать, что им нравится жить в Калифорнии, растить детей в Калифорнии и т.д. Так что я приехал с мыслями, что Калифорния - это страна альтернативного образа жизни, и обнаружил, что в действительности это страна альтернативных моделей данных. [смеется]
У меня была эта группа, и у каждого члена группы была своя модель данных. [смеется] У нас были ребята - поклонники DBMS - это была небольшая группа. У нас были люди, влюбленные в словари данных; они думали, что если поместить информацию в словарь, то нечего беспокоиться об этих базах данных, и так все находится в словаре, верно? Затем, у нас был UDL; Франко упоминал об этом. Идея состояла в том, что реляционный подход может быть OK, если вы подаете его в обличье долго используемых продуктов, таких как PL/1, COBOL, FORTRAN, пока вы не вынуждены говорить о нем отдельно. Так я был по меньшей мере смущен разговорами с этими людьми и их аргументами.
А потом я стал учиться System R у некоторых из моих людей и встречаться с некоторыми из вас. Честно говоря, я начал использовать System R как своего рода испытательный стенд. Я спрашивал: "Как это работает в сравнении с System R?" и всегда узнавал о проблемах System R, начиная с SQL. Мы временами слишком сильно привязываем все наше сегодняшнее обсуждение к тому, что происходило с кодом. С моей точки зрения, то, что происходило с кодом, очевидно важно для тех их вас, кто писал части кода, но реальной вещью, которую мы все делали как цельная группа людей, состояла в том, чтобы сделать реляционный подход действительностью и сделать SQL действительностью, и может существовать множество разных реализаций этого. Я постоянно слышал обо всех ограничениях SQL и о проблемах, которые не решаются на основе SQL. И потом, если вы напишите вопрос и получите корректный ответ на основе синтаксиса и семантики SQL, то имеются ограничения производительности, по причине которых это никогда не будет работать, и т.д. и т.п. Осознавая это, я сказал себе и некоторым другим вовлеченным людям, что здесь помогает мой опыт программиста, потому что я понимаю следующее: "Вот так так, имеется нечто, реально работающее, работающее каждый день в различных средах. Все люди, понимающие, как это могло бы работать, составляют списки причин, почему это неправильно, по отношению к работающей системе". И я думаю, что иногда это тот путь, который мы применяем в программировании.
Я думаю, что самым большим другом System R и SQL в Санта-Тереза была система Eagle. Вы можете считать, что Eagle была ужасным пожирателем ресурсов и т.д., но тот факт, что Санта-Тереза была полностью занята тем, как полностью заменить IMS, сделать нечто, гораздо лучшее, чем IMS и сделать много того, что было в FS, повернул все орудия в нашу сторону, в то время как мы смотрели на то, что могло бы быть лучшим способом достижения наших целей и тогда называлось DS/2. Другими словами, они дали нам все, кроме MVS, и сказали: "Давайте, ребята, разберитесь, что делать с базами данных в средах VM и DOS, а мы побеспокоимся о действительно больших 'производственных' проблемах", что и определило направленность Eagle. Так что я думаю, что эта система была лучшим другом System R в течение всего процесса, и мы занимались ей в своем собственном темпе без ужасного количества помощи от Уайт Плейнс (White Plains), локального менеджмента, Пафкипси или кого-либо еще. Мы были в состоянии принять решение двинуться вперед и использовать System R как основу SQL/DS без того, чтобы это было политически некорректным решением. И если бы мы попытались тогда принять решение о замене Eagle на System R, то я не думаю, чтобы это было возможно.
Майк Блазген
: По моим воспоминаниям, продуктом среднего класса в этой области деятельности была DOS DL/1.
Боб Джойллс
: Да.
Майк Блазген
: И к счастью для нас DOS DL/1 не рассматривалась как успех. В отличие от этого, система IMS была очень успешной.
Боб Джойллс
: Правильно.
Майк Блазген
: Поэтому очень трудно нападать на IMS. Но было очень легко нападать на DOS DL/1, поскольку ее не считали хорошим продуктом. Так что, когда вы взяли на себя ответственность за последователя DOS DL/1, подобно тому, как Eagle была последователем IMS, вам не нужно было преодолевать слишком высокий барьер.
Боб Джойллс: Да, она прибыла без большого багажа.
Джим Грей: Я думаю, что в это время ADABAS сбросила время на часах IBM.
Боб Джойллс
: Да.
Джим Грей
: Европейцы сказали: "Нам нужна небольшая система баз данных". И очаровательно то, что Джим Фрейм (Jim Frame), который, я думаю, был менеджером Санта-Тереза, сделал стандартную вещь: он поставил небольшую базу данных "вне плана". В планировании работы компании IBM было понятие плановой работы (фондируемой) и внеплановой (без отдельного бюджета). Можно было вставить одни любимые проекты в план, а другие оставить вне плана. Вы знаете, что они давали больше денег на то, что хотели от вас получить. Все, чего им хотелось, вы помещали в план, а то, что хотели делать вы, оставалось вне плана, и они давали вам больше денег. Вот как игралась игра с финансированием. Эндикотт - может быть, мы опережаем историю, - но Эндикотт только что прекратил свой проект операционной системы. Они собирались сделать единообразную VM и DOS. Поэтому образовалось семьдесят зомби, блуждающих вокруг без какого-либо дела, и они сказали: "Черт возьми, есть эта штука, которую не могут сделать в Санта-Тереза; они слишком заняты: это маломасштабная база данных. Сейчас мы ничего не знаем о таких базах данных, но, может быть, мы сможем научиться, и тогда у нас будет работа". И они попросились на это дело. Это ...?
Боб Джойллс
: Да, это так, и у меня имеется личная реакция и на это. Это было очень болезненно для меня и моей небольшой группы, поскольку мы окончательно решили базироваться на System R, и мы сказали: "Эй, мы можем сделать из этого интересный, успешный продукт". И из-за этих махинаций с управлением, про которые говорил Джим, хотя в лаборатории было 1200 человек, и для этого проекта требовалось - я не знаю - тридцать человек, он был "внеплановым". Так что, да, он получил все свое от неожиданной миграции в [IBM] Эндикотт.
Вот тогда мы подошли к тому, что назвали Plan B. [смеется] Поскольку наша миссия закончилась, мы сказали: "OK, у нас больше нет этого дела. Мы будем делать часть Eagle, связанную с базами данных". Мы подошли с Plan B говоря, что если что-нибудь случайно должно происходить с оставшейся частью Eagle, то мы могли бы это делать. Если опять говорить о политической корректности и некорректности, то не было правильно сказать, что это произойдет, но было OK сказать: "Ну, если это случится, то мы могли бы это делать", и это было Планом B. Итак, я и моя группа начали работать над Планом B, который, по-существу, состоял в построении DB2. Внутри группы было много дебатов, и я думаю, что об этом может рассказать также Джон Науман, о том, сколько кода мы можем импортировать из System R, а сколько разработать сами, и как всегда имелось множество аргументов в пользу каждой точки зрения. В противоположном направлении произошли неожиданности, по крайней мере, с моей точки зрения. Я должен сказать, что сюрпризом SQL/DS было то, что эта работа ушла от меня или от нас. Сюрпризом проекта MVS было то, что он выполнялся быстрее, чем я ожидал. Другими словами, План A потерпел неудачу, не так ли? Система Eagle рухнула, и неожиданно к нам стали обращаться и говорить: "OK, и когда же вы сможете поставлять этот продукт баз данных?". [смеется] И тогда мы должны были принять какие-то быстрые и трудные решения по поводу ...
Франко Путцолу
: Когда вы поняли, что Eagle не пойдет? Я имею в виду, имеется ли такая дата, которую можно ...
Боб Джойллс
: Когда это поняли? Ну, я не знаю. Я считал весь процесс очень загадочным. Я не знаю, что вы - хорошо, полагаю, что я знаю, что вы чувствовали. Как бывший программист и менеджер по разработкам, я знал, как опрашивать группы, чтобы понять, находятся ли они на беговой дорожке. Для меня было совершенно очевидно, что эта группа никогда не была на беговой дорожке. Такой же феномен в Санта-Тереза, который ты описывал, был связан с Энди [Хеллером], который являлся чем-то вроде великого гуру во всем этом проекте. В этом случае люди не просто старались писать какие-то алгоритмы; программирование ста пятидесяти - двухсот - трехсот людей основывалось на этих собраниях типа летучек. Летучки вел Энди; на собраниях обсуждалось, как предполагается разрабатывать нечто. Энди уходил, и через три недели кто-то имел написанный модуль, не прошедший полного проектирования.
К. Мохан
: В это время он был в Ватсон (Watson)?
Боб Джойллс
: Он проводил много времени в Остине (Austin).
К. Мохан
: Нет, он работал в Йорктаун Вейтс, или где он тогда был?
Франко Путцолу
: Он был везде.
К. Мохан
: Но, может быть, у него где-нибудь был дом.
Майк Блазген
: Он жил в Нью-Йорке.
Боб Джойллс
: Да; он был всегда повсюду. Но он бывал в Санта-Тереза, скажем, один день в месяц - может быть, два дня в месяц - что-то вроде этого. Проходили все эти большие собрания и принимались все эти решения ...
Франко Путцолу
: Масса криков.
Боб Джойллс
: Да, много криков, воплей и тому подобного.
Жозефин Ченг
: Так мы узнавали, что он появился.
Боб Джойллс
: Да, если вы находились поблизости от этого крыла дома, то могли определить, что он здесь. Так что я думаю, что если бы вы спросили любого опытного, профессионального программиста, то он бы сказал вам, что это ведет в кратер вулкана. Но я думаю, что имелось так много уровней управления и, честно говоря, так много политики вокруг, - вы знаете: "Что думают в Пафкипси? Что думают в Гаррисоне?" и тому подобное, чему люди из менеджмента слепо следовали. Когда Майк просил меня придти и выступить на собрании, я говорил ему и говорил Джиму, что во всем этом процессе для меня главное то, что я наивен в политике. Я не относился к элите Пафкипси и Гаррисона, не относился к старой элите Санта-Тереза, поэтому я мог достаточно легко принять решение о том, что нам следует создать на базе System R продукт, который, по моему мнению, был бы наилучшим для компании, для ее заказчиков и т.д.
К. Мохан
: Где ты работал до прихода в STL? В какой организации IBM?
Боб Джоллс
: Пять лет я работал над очень большим внутренним приложением обработки транзакций как программист и менеджер. А потом я работал пять лет или около того в Business Planning в Харрисоне, где занимался прогнозированием продуктов и подобными вещами.
Майк Блазген
: Я расскажу о своем личном впечатлении, потому что все это весьма согласуется с моим представлением о том, что происходило. Моя работа состояла в том, чтобы организовывать продажи, завершать дело, правильно. System R со всеми своими недостатками, возьмите ее, любите ее всю; любите меня, любите мою дочь. Мы много раз встречались с Бобом, лично, не только с группой Боба, я имею в виду Боба как отдельную личность. И он посмотрел на System R и взял ее, а потом мы или он инсталлировали систему; я точно не помню, как это происходило. В любом случае, она предназначалась для DOS DL/1, этой среднемасштабной базы данных, ответственность за которую принял на себя Боб. И как-то он пришел в мой офис или позвонил мне, или что-то в этом роде, и сказал: "Хорошо, мы решили использовать System R". Я даже не думал об этом; самое большее, на что я надеялся, это еще на встречу для еще одного обсуждения. [смеется] Нас не отвергли. В то время не быть отвергнутыми было хорошо; отвечало минимальным надеждам. Но то, что произошло, было больше моих ожиданий, и он был серьезен. Я думал, что он просто не знает, что говорит, но он знал. Он действительно собирался взять System R и организовать ее поставки из Санта-Тереза как среднемасштабного продукта баз данных. Я уверен, что было много вещей, которые собирались переделать и модифицировать.
Потом возникла эта игра, о которой ты говорил - внеплановая работа, и на сцене появился Эндикотт. Очень важным было то, что Эндикотт не изменил решения. Они не сказали: "О, нашей целью является среднемасштабная база данных; давайте проведем массу исследований, чтобы понять требования рынка", поскольку для этого еще два года без прогресса. На самом деле, они сказали: "OK, мы беремся поставлять этот код. Что мы должны сделать, чтобы этот код стал пригодным для использования?" Это было наиболее притягательно в группе Эндикотта. В выполнении этого перехода нам во многом помогла группа Боба, и мы были очень основательно загружены. Мы говорили о посылке людей для проживания в Эндикотте и в результате решили, что это не является хорошей идеей. [смеется] Предложение не пользовалось спросом. Но эти ребята не изменили решения и это сэкономило два года.
Боб Йост
: Они послали двух или трех человек на шесть недель или около того, а потом вернули их обратно.
Майк Блазген
: Они взяли RSS почти без изменений; они взяли RDS почти без изменений, но они полностью ее переписали с PL/1 на PL/S.
Боб Йост
: На самом деле, у них имелись инструкции не делать ничего больше этого.
Майк Блазген
: Когда я жил в Вашингтоне, я отправился в Эндикотт помочь им разобраться с некоторыми проблемами, и я помню, что они считали, что количество ошибок не уменьшалось с той скоростью, с какой бы им хотелось, и у них имелись проблемы с производительностью, проблемы с рабочим набором и тому подобное. Почти до самого конца все весело на волоске. А потом состоялось большое объявление, которое происходило на какой-то конференции в Атланте или подобном месте, и я участвовал в этом мероприятии. В действительности, многие из тех слайдов, которые вы видели раньше, применялись в презентации, которую я делал как участник этого объявления. У меня имеется копия буклета, написанного Тедом Коддом, с названием Significance of the SQL/DS Announcement, который был опубликован в 1981 г. Так что я думаю, что когда произошел этот переход в Эндикотт, и у людей в Эндикотте не было никаких новых идей, то, что они собирались сделать, не было моделью данных на неделю, не было языком данных на неделю, и тогда дебаты закончились. И мы смогли получить преимущество от описанной Бобом ситуации, происшедшей с Eagle, вызвавшей провал Eagle. Хотелось ли бы кому-нибудь высказаться?
53 ADABAS - система баз данных компании Software AG.
54 Детали относительно эволюции System R к SQL/DS см. в
Donald D. Chamberlin, Arthur M. Gilbert, and Robert A. Yost. "A History of System R and SQL/Data System" Proc. VLDB, Cannes, France (September 1981), pages 456-464.
55 Замечание Боба Джоллса: "Ирв Трейджер, поскольку он был прикомандирован к Майку Саранда, имел возможность оценить аргументы как с позиции System R, так и с точки зрения STL. Возможно, он хотел бы добавить свои наблюдения к нашему обсуждению." Ответ Ирва Трейджера: "Это была сложная ситуация. Очевидно, что я был парнем из исследовательского отделения, прикомандированным на год к STL (что позже превратилось в два года). Поэтому все мои разговоры или дела в пользу System R или поддержка "интеллектуальной" обратной связи с исследовательским отделением, очевидно, могли повредить моей полезности для STL. Поэтому я заблаговременно принял решение провести год в качестве адвоката Саранды, помогая ему всем, чем могу, и повышая свою кредитоспособность. Я был привлечен к нескольким вещам, но самая большая работа состояла в том, чтобы помочь ему понять, как работает Eagle, насколько серьезны слабые места системы, можно ли ее улучшить и если да, то как, и т.д. Так что я работал с некоторыми из этих ребят. И в то же время я достаточно хорошо узнал Боба. У нас было много дискуссий по поводу Eagle и насчет работы в области баз данных. Саранда принял решение остановить проект Eagle, что потребовало большого мужества. После принятия этого решения STL сосредоточилась на паре трудных вопросов, в решении которых я мог помочь. Одна задача состояла в том, чтобы помочь определить, что следует спасти из части системных сервисов Eagle. И конечно, другая проблема заключалась в том, чтобы получить быстро развивающуюся работу в области баз данных. Как упоминал Боб, имелись хорошие аргументы относительно того, использовать ли RDS из System R или же так называемую LSS, которая была спроектирована в STL. Но было достаточно ясно, что на самом деле LSS требует доработок, и у них имелись обычные проблемы, возникающие при построении любой сложной системы. А RDS при всех ее погрешностях, по крайней мере, уже существовала, и со временем ее можно было улучшить. Поэтому я помогал Бобу и Майку с этой позиции."
56 E.F. Codd. "The Significance of the SQL/Data System Announcement" Computerworld (February 16, 1981).
Страницы: 6
Проект System R завершается
Майк Блазген
: ... в Eagle, VSS, все эти названия, в DB2, в SQL/DS. Леонард уехал в Нью-Йорк, я переместился в Вашингтон, округ Колумбия, и вы видите, как изменялся размер штата; штат сотрудников начал сокращаться. Образовались новые проекты; мы можем поговорить о новых проектах, но это не относится к теме встречи. Фрэнк [Кинг] - это было за несколько недель до того, как он покинул нас и вернулся на восток, чтобы получить свою работу - устроил обед, чтобы отметить вклад всех участников проекта. И я помню, что я сидел у себя за столом в Вашингтоне, и зазвонил телефон; это был Фрэнк, и он сказал: "Я бы хотел, чтобы ты пришел на этот обед". И я сказал: "Ты имеешь в виду, что это супружеский долг?" Он сказал: "Да", и я сказал: "Ты имеешь в виду, что хочешь отметить наш путь?" И он сказал: "Ну да". И мы все собрались вместе, хотя я находился далеко, и у нас был обед в Ла Хасиенда (La Hacienda), между Лос-Гатосом (Los Gatos) и Сараготой (Saragota).
Дон Чемберлин
: Это происходило, когда у IBM были деньги.
Майк Блазген
: И это было очень приятное событие; оно было очень хорошо проведено. Я полагаю, что это, вероятно, была работа Бреда Вейда: каждый из нас получил памятную медаль - я думаю, что здесь сегодня имеется три и четыре таких медали - с именами людей, внесших вклад в выполнение проекта; это был символ "соединения" - возможно, соединения в стиле QBE. [смеется]
Дон Чемберлин
: Эта лента, которую мы представляли на конференции SIGMOD в 1976 г., демонстрирующая протитип Фазы Ноль, и Бред показывал ее ... и он показывал ее, переводя служащих из Эванстона в Ньюбург. Это была база данных Фазы Ноль.
К. Мохан
: Когда был этот обед? В каком году?
Дон Чемберлин
: Должно быть весной 1980 г., я полагаю.
Майк Блазген
: Немного позже времени действия тех фильмов, которые вы только что видели; на три месяца позже.
К. Мохан
: А это было в декабре 1979 г.
Майк Блазген
: Между прочим, здесь написано "Дон Розенхайм, директор лаборатории". Я наткнулся на Дона Розенхайма неделю назад в Лос-Гатосе в компьютерном магазине; он торговал. Я сказал: "Привет, Дон; сто лет не виделись". Он сказал: "Ты все еще работаешь?" [смеется] Конечно, я все еще работаю. Его слова заставили меня почувствовать себя старым. На самом деле, я пригласил его зайти, но не настаивал на этом. Я не принуждал его, говоря "Ты должен придти". Я сказал ему, что он мог бы и заглянуть.
В любом случае, это был формальный конец проекта, и многие люди переходили ко все более и более крупным вещам. Возникали новые проекты, и Пол МакДжонс покинул наш насест. Том Прайс ушел. Боб Джойллс, поняв в конце концов, что не хочет жить в Калифорнии и работать на компанию, базирующуюся в Нью-Йорке, сменил место и стал работать на Калифорнийскую компанию. Бред и Дон занялись обработкой текстов. Я не знаю, что делал Франко.
Франко Путцолу
: Я ушел в Tandem.
Майк Блазген
: Да, но в каком году? Ведь не сразу.
Франко Путцолу
: В начале 1981 г.
Майк Блазген
: OK, довольно скоро; вскоре после ухода Джима. Джим, конечно, ушел в Tandem. И немногие стойкие приверженцы остались в IBM: Ирв, я, Брюс Линдсей, Раймонд Лори и Пат Селинджер. И это был конец.
И в это время произошло много событий. На самом деле, они происходили в параллель, но в организационных целях их стоит упорядочить ... Я собираюсь попросить Пат Селинджер быть модератором оставшейся части нашей встречи.
Пат Селинджер: Хочу заметить, что Джим ушел из IBM только потому, что меня не было рядом, чтобы остановить его. В этот день я рожала. Это единственная причина, почему ты ушел.
Майк Блазген
: На самом деле, я думаю также, и я говорил это много раз. Я был менеджером Джима и когда был менеджером первого эшелона, и когда был менеджером второго эшелона, и все время, пока я выполнял эту работу, он оставался, хотя говорил, что уж больно далеко ездить. Но он оставался, потому что я ему очень нравился, и когда я ушел, он сказал "Пфффф".
Джим Грей
: Это правда; так оно и было.
(57) M.M. Zloof. "Query by Example". Proc. NCC 44 (1975) pages 431-438
(58) M.M. Zloof and S.P. de Jong. "The System for Business Automation (SBA): Programming Language" CACM 20, 6 (June 1977) pages 385-396.
(59) UFI означает User-Friendly Interface.
(60) IUP означает Installed User Program.
Джим Грей
: Разве не была выполнена повторная реализация как часть DB2?
(61) QMF означает Query Management Facility.
(62) R. Krishnamurthy and M.M. Zloof. "RBE: Rendering By Example", Proc. Eleventh International Conference on Data Endineering (March 1995), pages 288-297.
(63) Пол МакДжонс в конце 1976 г. ушел в Xerox. Том Прайс ушел в отделение офисных продуктов IBM в Остине. Боб Джойллс ушел в Tandem. Дон Чемберлин и Бред Вейд начали проект Janus.
(64) Замечание Джима: "Просто смешно. IBM сдвинулась еще дальше на юг в Скай Ренч (Sky Ranch). Тратить три часа в день на дорогу из Сан-Франциско и обратно было плохо и неправильно."
Страницы: 7
Распространение подхода
Майк Блазген
: Это было в мою эру, и я помню, что люди из Санта-Тереза снова стали обсуждать возможность использования System R для чего-нибудь. Решение было положительным, система им нравилась, но они не хотели генерировать машинный код. Они хотели генерировать вместо машинного кода нечто слегка более высокого уровня; тривиального высокого уровня, вроде символического ассемблера, а затем интерпретировать его, что и сделали. И мы были против этого, да, можно понять, почему мы были против этого; я знаю, почему я был против: потому что не хотел, чтобы они что-нибудь испортили. Я думал, что было бы правильнее не делать работу заново, не распространять заново разработанную систему. У меня имеется дата, в которую они решили начать поставки VS QUERY и DB2; это было в марте 1979 г. В этом месяце была произведена первая поставка заказчику. GA, мы называли это GA.
Джим Грей
: Это была архитектура 811.
Майк Блазген
: Они добились этого на три года позже первой поставки архитектуры System R.
Джим Грей
: Но проект назывался 811 потому, что это была дата поставки: одиннадцатый месяц 1978 г. И я думаю, что [Майк] Саранга ([Mike] Saranga) и я ... Я держал пари, что они никогда ничего не начнут поставлять, и до сих пор так и расплатился за проигрыш.
Франк Путцолу
: Это была VSS?
Джим Грей
: Да, то, что превратилось в DB2. Поставка велась вместе с аппаратурой. Это была архитектура 811, так что XA было частью пакета.
Майк Блазген
: С адресом в тридцать один бит.
Джим Грей
: Было так: "FS потерпела крах; что мы будем делать? Мы вернемся на исходные позиции и сделаем новую систему баз данных для MVS. Мы поставим на 370 архитектуру XA." Адрес был длиной не в тридцать один, а всего лишь в двадцать четыре бит. Адресация была горизонтальной.
Нельзя пропустить тот факт, что Ирв был откомандирован в Пало Альто, я думаю, своевременно.
Разные
: STL.
Майк Блазген
: Нет, дважды; он командировался дважды.
Ирв Трейджер
: Леонард предложил мне и Франко отправиться в Пало Альто, где мы познакомились со Стивом Вейком (Steve Weick), Джоном Науманом (John Nauman), Бобом Джексоном (Bob Jackson) и массой других людей, участвующих в этом гигантском проекте FS. Не знаю, много ли дали эти взаимодействия. Он старался научить нас опыту реальных систем.
Франко Путцолу
: Это были странные взаимодействия. Это было частью большой попытки FS. Предполагалось, что мы будем представителями реляционного знания, реляционной мудрости. Конечно, проект FS покрывал все, что есть на свете, поэтому он должен был покрывать и реляционные базы данных. Мне было очень нелегко, потому что в то время я не обладал большим опытом в области баз данных. С другой стороны, немного поговорив с этими людьми ...
Майк Блазген
: ... ты чувствовал себя немного лучше. [смеется]
Франко Путцолу: Я отдавал себе отчет в уровне своей компетентности, но эти люди, они были экспертами ...
Майк Блазген
: Я работал на FS два или три года в Пафкипси в строении 77.
Франко Путцолу
: Я работал год на FS в Mohansic.
Майк Блазген
: Я участвовал в этом в течение двух лет. Я работал на Рича Ойлера (Rich Oehler), который работал на Пита Шнейдера (Pete Schneider), который работал на Джорджа Рейдина (George Radin), который работал на Дика Кейса (Dick Case), который работал Боб Эванс. Как вы знаете, Боб Эванс заведовал практически всеми разработками в IBM. Потому что Отделение системных разработок разрабатывало все системы. Все, кроме пишущих машинок, все, за исключением Тома [Прайса]. Я ушел из проекта FS, потому что он был слишком сложным, слишком трудным для понимания. Джим написал длинную статью и сказал "Это действительно привлекательно, но не делайте этого". Что-то вроде этого, точно не помню. Что бы это не было, не делайте этого.
Джим Мехл
: Эта штука в Пало Альто: она называлась проектом Dawn Treader?
Джон Науман
: Нет, это был другой проект; тот тоже выполнялся в Пало Альта, но был другим.
Майк Блазген
: У меня есть техническая записная книжка - нечто в картонной обложке, с проставленной на обложке датой: ноябрь 1974 г. В ней содержатся записи обо всех моих встречах в Пало Альто со всеми этими людьми, имена людей. Все эти имена утеряны. Несколько людей находятся неподалеку. Среди них Стив Вейк.
Франко Путцолу
: Да, мы с Ирвом провели там пару месяцев. Я не знаю, почему мы закончили; проект FS умер?
Ирв Трейджер
: Это было нечто вроде продвижения ползком. Мы ни с кем не имели действительно хороших контактов. Мы встречались, и они давали нам подзатыльники, улыбались и возвращались к своей работе.
Том Прайс
: Я помню, что когда FS умер, ходили слухи, что он умер за год до того, как они реально остановили проект. Это было так странно - каждый участник проекта знал, что он умер, но должен был продолжать над ним работать.
Майк Блазген
: Кстати, только что вышла книга. Насколько я знаю, у Пат есть экземпляр. Это книга Эмерсона Пафа (Emerson Pugh) Building IBM. Она начинается с Германа Холлерита. Действительно, в первой сентенции говорится о том, что произошло в 1889 г. в тот день, когда с помощью табуляторов Холлерита были выданы первые патента. А ближе к концу имеется раздел про FS, в котором говорится: "Это был самый дорогостоящий провал разработки в истории IBM". Непривычно видеть напечатанным такой текст по поводу FS. Мы все это знали, но никто никогда не хотел об этом писать. Кроме Джима, который первым сказал: "Не делайте этого".
К. Мохан
: На самом деле, автор говорит, что был обеспечен полный доступ ко всем архивам IBM без каких-либо ограничений на то, о чем можно говорить. От него не требовалось прохождение цензуры IBM до публикации рукописи.
Майк Блазген
: Как вы знаете, Паф уже не сотрудник IBM. Поэтому он написал это как независимый автор. До этого он написал три книги: Memories That Shaped an Industry, IBM's Early Computers, and IBM's 360 and Early 370 Systems, две последние являлись частью проекта IBM Technical History. Он был служащим IBM, имелись люди, которые на него работали, а у него были связи с издателями. А потом он ушел из IBM, но продолжил писать независимо и в результате получил немного большую свободу от редакторов, чем та, которую имел бы, будучи служащим.
Джим, я думаю, что наступило время ланча; что там у нас с ланчем?
Раймонд Лури
: Если говорить про компилятор, то я хотел бы поблагодарить Бреда за ужасную работу. Если вы действительно хотите что-нибудь узнать про 360 и о том, как работают базовые регистры, спросите у него; я думаю, что он еще помнит.
Франко Путцолу
: Ты помнишь это?
Майк Блазген
: Я помню одну историю о базовых регистрах Бреда и прочем. В нашем коде возникали последовательности на языке ассемблера. В такой последовательности встречался текст "Load R1, и т.д.", и это обрабатывалось некоторой программой, преобразующей последовательность в реальный машинный код. Мы выполняли проверку кода в Санта-Тереза, поскольку люди в Санта-Тереза подумывали о том, чтобы взять наш код. Они пришли и сказали, что в этом коде много ошибок, пардон, много дефектов. И в чем же были дефекты? Мы были несколько удивлены, поскольку думали, что кодируем достаточно чисто. Они сказали: "Ну, у вас есть литеральные ссылки на регистры". Другими словами, мы генерировали "Load one".
Том Прайс
: Ты не использовал EQU.
Майк Блазген
: Правильно, мы ничего не сравнивали. [смеется] Но потому, что это был back end компилятора. Я имею в виду нечто, занимающееся назначением регистров. Они были в беспорядке, они пересчитывались, вы знаете, четыре сотни ...
Бред Вейд
: В тысяче строк моего кода было обнаружено пятьсот семь дефектов. [смеется]
Майк Бзазген
: Как вы знаете, в это время имелось правило, пункт семь или что-то вроде этого. И вот Франк или кто-то из нас обратился к парню, который отвечал за качество кода, и сказал: "Мы поработаем над этим". А парень сказал: "Мы будем поставлять этот код только через мой труп". И мы поставляли его. [смеется]
К. Мохан
: Но в SQL/DS, правильно? Не DB2.
Майк Блазген
: Да, его поставлял Эндикотт (Endicott).
Франко Путцолу: Зачем они все переименовали? Насколько я помню, соглашения об именовании в RSS и RDS были достаточно либеральными. В начале имени ставилось Y или X. Ведь они все переименовали после поступления кода в Эндикотт?
Брюс Линдсей: A01, A02, A03, да, они переписали все модули RDS на PL/1 и переименовали все модули в соответствие со соглашением об именовании Эндикотта, в котором требовалось что-то вроде семи символов для имени продукта, один символ для компонента, а последний можно было использовать по своему желанию. [смеется] Помню, как я работал над кодом авторизации Бреда, написанным на PL/1 и PL/S. Время работы над версией PL/S было для меня трудным, поскольку требовалось иметь мнемонические имена - по меньшей мере три символа для мнемоники для всего, что делается - и они решили, что правильными именами являются 01, 02, 03, 04. Они действительно никогда не доходили до 10, но ...
Том Прайс
: Значит, у тебя были перекрестные ссылки между старыми и новыми именами.
Брюс Линдсей
: Да, мне пришлось сделать это. В то время соглашения IBM о кодировании представляли собой нечто.
Джим Грей
: Что у нас будет происходить дальше?
Майк Блазген
: Есть несколько вещей, которые я хочу сделать после ланча, если сейчас мы должны идти на ланч.
Джим Грей
: Мы сейчас должны идти на ланч.
Майк Блазген
: Во-первых, когда мы вернемся, Бред может включить видеозапись, и мы можем кое-что на ней посмотреть. Во-вторых, после ланча я хотел бы немного поговорить о связях между Сан-Хосе и Санта-Тереза в то критическое время, которое в конце концов привело к появлению DB2 и SQL/DS. В особенности SQL/DS, которая, хотя и была завершена в Эндикотте, на самом деле, началась в Санта-Тереза, и за которой последовала DOS DL/1, по крайней мере, по моим воспоминаниям. Менеждером всех этих проектов был Боб Джоллс, он здесь, и никто из присутствующих не может ему возразить. Я думаю, что ты можешь пополнить всю эту историю и рассказать нам, как ты добился всего, что произошло. И мы сделаем это после ланча. Это то, что происходило в начале или в течение 1982 г. и кульминацией чего в конце концов стали SQL/DS и DB2. Имеется еще кое-что для обсуждения; нам следует оставить для этого достаточное время. Нам нужно разобраться в том, почему Ларри Эллисон стал богатым, почему Джим Грей покинул IBM, почему Боб Джоллс живет в Chapel Hills и куда собирается Марио в следующем месяце. Масса интересных вещей. И это будет после того, как мы прокрутим ленты. Посмотрим на Дона Чемберлина с усами Бреда Вейда.[смеется]
Рей Бойс
Дон Чемберлин
: Совместная работа с Реем была одним из величайших наслаждений, которые я получал в течение моей карьеры. Эта работа длилась не очень долгое время, но кое-что я буду помнить всегда. Рей вырос в штате Нью-Йорк на западном берегу Гудзона. Он поступил в колледж в Провиденс шт. Род Айленд. Там он встретил свою будущую жену Санди. Она была студенткой отделения по подготовке медицинских сестер. Рей получил степень доктора философии в университете Пэрдью (Purdue) в Западном Лафайете шт. Индиана, и он был одним из немногих людей из тех, которых я встречал, кому действительно нравился этот университет. После этого он стал членом группы, в которой я работал, в Йорктаун Хейтс шт. Нью-Йорк. Там мы только начмнали работу над проектами баз данных под руководством Фрэнка Кинга (Frank King).
Рей был человеком, умеющим добиваться желаемого. Он был очень умным и очень честолюбивым парнем и обладал большой энергией. На самом деле, я думаю, что если бы он был жив, то он в одном классе со Стивом Джобсом (Steve Jobs), Ларри Эллисоном (Larry Ellison) и Биллом Гейтсом (Bill Gates): каждый знал бы имя Рея, если бы он был жив сегодня. Мы с Реем работали вместе в тесном сотрудничестве в ранние дни языка SQL - в те дни он назывался SEQUEL. Наше сотрдничество было настолько тесным, что в конце дня ни один из нас не мог вспомнить, кому принадлежали идеи этого дня. Так что это было очень тесное партнерство. Основной разницей между нами было то, что Рей гораздо больше меня интересовался управлением, так что, когда пришло время выбрать менеджера для группы, Рей взялся за эту работу, и я думаю, что это было действительно хорошее разделение труда. Так что Рей некоторое время был моим боссом.
Через несколько месяцев после прибытия в Калифорнию у Рея и Санди появилась дочь Кристин. В ранние дни System R Рей и Ирв Трайдер (Irv Traider) были двумя менеджерами под руководством Фрэнка Кинга. У на с Реем был общий автомобиль. В один из дней весны 1974 г. я привез Рея на работу, а после ланча я узнал, что Рей потерял сознание во время ланча. На вид он был здоровым, крепким и энергичным , и я даже не подозревал, что у него проблемы со здоровьем. В один из дней во время ланча он вроде бы всего-навсего споткнулся, и его забрали в госпиталь. Оказалось, что у него аневризм мозга, т.е. лопнули кровеносные сосуды мозга. В медицинском центре Велли ему сделали операцию, после которой он прожил короткое время и скончался в День Отца в 1974 г. Его дочери было всего около девяти месяцев, когда он умер.
Жена и дочь Рея так и живут в Сан-Хосе, и мы поддерживаем с ними близкие отношения. Санди вернулась в школу и получила степень магистра в области клинической психологии. Сейчас она работает консультантом для родных и приемных родителей. Кристен выросла и поступила Калифорнийский университет в Санта-Барбара, где находится и сейчас - и моя дочь там же. В прошлом году она вышла замуж, в этом году закончит университет со степенью бакалавра; собирается остаться в университете и готовиться стать преподавателем.
Итак, я думаю, что наиболее важными вещами для Рея были его работа и его семья. Я думаю, что он действительно гордился бы тем, к чему привела его работа. За тот короткий промежуток времени, который был ему отпущен (меньше двух лет), он придумал нормальную форму Бойса-Кодда, по-прежнему описываемую в учебниках; он разработал язык SQL, который все еще помнят некоторые люди. Я думаю, что он гордился бы этим, как и жизнью своей семьи. Мне хотелось бы, чтобы была известна значимость работы Рея.
Реляционные свойства
Хотя мы называем эту категорию свойств "реляционными", вы быстро поймете, что их более правильно характеризовать как "свойства, связанные с традиционной ролью и моделью данных SQL" … в чем-то менее сильная фраза. Эти свойства не ограничены строго реляционной моделью, но также не связаны с объектной ориентацией.
Часто эти свойства разбиваются примерно на пять групп: новые типы данных, новые предикаты, улучшенная семантика, дополнительная безопасность и активная база данных. Мы рассмотрим их по порядку.
При наличии приведенной исходной информации
При наличии приведенной исходной информации самое время дать обзор реального содержания SQL:1999. Хотя мы понимаем, что большинство читателей этого раздела не знает точного содержания даже SQL-92, ограничения на объем статьи не позволяют нам представить полный набор свойств SQL:1999. Поэтому мы собираемся ограничить свой обзор теми свойствами, которые являются новыми в этом самом современном поколении стандарта SQL.
Свойства SQL:1999 можно грубо разделить на "реляционные" и "объектно-ориентированные". Для удобства мы опишем их в такой последовательности.
Структурные определяемые пользователями типы
Наиболее фундаментальным средством SQL:1999, поддерживающим объектную ориентацию, являются структурные определяемые пользователями типы; слово "структурный" отличает это средство от индивидуальных типов (которые тоже являются "определяемыми пользователями" типами, но в SQL:1999 могут базироваться только на встроенных типах SQL и поэтому не могут иметь ассоциированных с ними структур).
Структурные типы имеют ряд характеристик, наиболее важными из которых являются следующие:
Они могут определяться с одним или более атрибутами, каждый из которых может иметь любой допустимый в SQL тип, включая такие встроенные типы как INTEGER, такие типы коллекции как ARRAY или любой структурный тип (вложенный настолько, насколько это желательно). Все аспекты их поведения характеризуются методами, функциями и процедурами. Их атрибуты инкапсулированы через генерируемые системой функции наблюдения и изменения (функции "get" и "set"), единственные, обеспечивающие доступ к соответствующим значениям. Однако эти генерируемые системой функции нельзя перегружать; все остальные функции и методы могут быть перегружены. Сравнения их значений выполняются только через определяемые пользователями функции. Они могут участвовать в иерархиях типов, в которых более специализированные типы (подтипы) имеют все атрибуты и используют все функции, ассоциированные с более обобщенными типами (супертипами), но могут иметь новые атрибуты и подпрограммы.
Посмотрим на пример определения структурного типа:
CREATE TYPE emp_type UNDER person_type AS ( EMP_ID INTEGER, SALARY REAL ) INSTANIABLE NOT FINAL REF ( EMP_ID ) INSTANCE METHOD GIVE_RAISE ( ABS_OR_PCT BOOLEAN, AMOUNT REAL ) RETURNS REAL
Этот новый тип является подтипом другого структурного типа, который можно было бы использовать для определения людей вообще, включая такие общие атрибуты как имя и адрес; новые атрибуты типа emp_type включают такие вещи, которые нехарактерны для "простых пожилых людей", такие как идентификатор служащего и размер заработной платы. Мы объявляем, что этот тип немедленно пригоден для прямого использования (instantiable) и ему разрешается иметь подтипы (NOT FINAL). Дополнительно к этому мы говорим, что любая ссылка на этот тип (см. ниже обсуждение REF-типов) порождаются из значений идентификаторов служащих. Наконец, мы определяем метод (подробнее об этом ниже), который может быть применен к экземплярам этого типа (его значениям).
После интенсивного флирта с множественным наследованием (когда у подтипов допускается наличие более одного непосредственного супертипа) теперь в SQL:1999 обеспечивается модель типов, тесно соответствующая одиночному наследованию в языке Java. При определении типа разрешается указать либо, что тип является пригодным для немедленного использования (другими словами, что могут создаваться значения этого типа), либо, что тип непригоден для немедленного использования (аналогично абстрактным типам в других языках программирования). И естественно, в любом месте -- например, в столбце -- где допускается появление значения некоторого структурного типа, может появиться и значение любого из его подтипов; это обеспечивает в точности тот тип заменяемости, который свойственен объектно-ориентированным программам.
Кстати, в некоторых объектно-ориентированных языках программирования, таких, как C++, при определении типа допускается спецификация степени инкапсуляции типа: уровень инкапсуляции атрибута PUBLIC означает, что любой пользователь этого типа может иметь доступ к атрибуту, PRIVATE означает, что к атрибуту может иметь доступ только тот программный код, который реализует методы типа, и PROTECTED означает, что к атрибуту могут иметь доступ только методы типа и методы любых его подтипов. В SQL:1999 этот механизм отсутствует, хотя предпринимались попытки его определить; мы ожидаем предложений по поводу этого механизма для будущего пересмотра стандарта.
System R
Майк Блазген
: Итак, мы затронули вспомогательные, периферийные предметы и теперь можем приступить к началу System R, уже представленной Доном вместе с этой оперативной группой и другими случившимися событиями, которых я не знал. Моей исходной идеей было то, что эта двадцатилетняя годовщина должна быть годовщиной некоторого конкретного события, происшедшего в один из дней. Я собирался представить в качестве такого дня тот, в который проект стал именоваться System R. К этому времени проект полностью оперился; существовала представленная здесь мною схема. Некогда была System R; все прочие названия отпали: RDS, RSS. В действительности, исторически это могло произойти другим образом: возможно, эти названия привели к имени System R. Я думаю, что это произошло в конце 1974 г., почти на Рождество. Помнит ли кто-нибудь более точную дату? Ирв, я знаю, что ты принимал в этом участие. Я помню, как вы с Фрэнком ходили по холлу, разговаривая про название.
Ирв Трейджер
: Леонард наказал, чтобы мы все искали имя для проекта. Мы только пожимали плечами: "Это неважно". Он сказал: "Важно иметь имя для целей опознания". В течении недель мы пытались подобрать имя. Одно было Rufus, имя собаки Франко.
Франко Путцолу
: Rufus было бы более хорошим названием. Оно означает Relational User Friendly Universal System.
Майк Блазген
: Это было бы более хорошим названием.
К. Мохан
: Позже у нас действительно был проект под названием Rufus. Курт Шоунс (Kurt Shoens) ...
Ирв Трейджер
: Это было действительно трудно.
Майк Блазген
: Так проект получил название приблизительно в конце 1974 г.?
Ирв Трейджер
: Не помню.
Том Прайс
: Это было в то время, когда Леонард заставил вас всех работать на Рождество? Как-то я слышал историю про то, как он не разрешил никому отсутствовать во время праздника Christmas Eve.
Дон Чемберлин
: Это было в Йорктауне; да, я помню это. [смеется] Это было в пятницу перед Рождеством, и в лаборатории была вечеринка с явствами, Санта Клаусом, музыкой и всем остальным в кафетерии, а Леонард хотел в то же время техническое собрание. Леонард ожидал многих своих людей, и им от него хорошо досталось.
Майк Блазген
: Леонард был оригинальным человеком: много огня и серы, энергии и силы и прочие такие пары слов. Я помню, как в году 1975-м мы сбежали на пляж в Пайаро Дюнс, и Леонард встал и сказал: "OK, и что плохого происходит в отделе? Что плохое делаю я?" И он заставил говорить каждого. Каждый из нас жаловался. А он записывал этот список жалоб. Он ничего не говорил. Он только записывал жалобы. И потом он сказал: "OK, замолчите" и проговорил два часа без перерыва, объясняя нам, главным образом, то, что все наши жалобы были некорректны. [смеется]
Управление на основе консенсуса: я решил; вы соглашаетесь. [смеется] Это было поразительно; он совершенно не обращал внимание на то, что он поступает таким образом. И это работало; у него это очень хорошо работало. На случай, если вы этого не знаете, теперь он является COO (Chief Operating Officer) компании Cadence. IBM - заказчик номер один этой компании. Они продают средства проектирования электроники для размещения наших схем на чипах.
Кстати, эта штука с System R заставила меня показать вот эту картинку. Я не знаю, когда она была нарисована, но это моя любимая картинка. На ней разговаривают кролик и бобер, а за ними вы можете видеть Hoover Dam. Бобер говорит кролику: "На самом деле, я ее не строил, но она основана на моей идее." [смеется] Так вот, это маленький бобер - это System R, поскольку я не думаю, что продолжает использоваться большая часть кода System R; я полагаю, что кое-что - в SQL/DS.
К. Мохан
: Действительно, кое-что используется; главным образом, RSS.
Майк Блазген
: Замечательно, компонент индексации по-прежнему жив. [смеется] Это то, что я писал, и компонент индексации по-прежнему входит в продукт SQL/DS.
К. Мохан
: И все, что связано с теневыми страницами.
Майк Блазген
: О, теневые страницы тоже там? Это штучки Раймонда Лори.
К. Мохан
: И все вещи, относящиеся к управлению записями.
Брюс Линдсей
: Пул памяти.
Брэд Вейд (Brad Wade)
: Хотелось бы знать, может ли кто-нибудь сейчас понять это.
Пат Селинджер (Pat Selinger)
: Мохан по-прежнему читает об этом лекции.
Майк Блазген
: Вам не нужно все это понимать; от вас требуются только обеспечивать оборот и доход. Это то, что нужно сегодня.
???
: Многие из нас живут этим.
Майк Блазген
: Верно. Итак ...
Брэд Вейд
: Прежде, чем мы оставим разговор о названиях, напомню, что были еще имена RDS и RSS. Конечно, Дон был менеджером RDS до того, как это стали называть RDS; Ирв был менеджером RSS до того, как это стали называть RSS. У них был общий автомобиль, и однажды они пришли и сказали: "OK, вот вам названия: Don и Irv - Data Organized Naturally (Естественно Организованные Данные)". А как расшифровывался Irv, я забыл. Что-то вроде Intermediate или Interactive Relational ...
Майк Блазген
: Intermediate Retrieval Vehicle (Промежуточное Устройство Выборки)? Как насчет этого? Звучит хорошо. Нет, существовало Peterlee Relational Test Vehicle, так что буква V уже использовалась как приемлемый термин в Реляционной терминологии. Так что придется использовать Vehicle где-нибудь еще.
Итак, как насчет того, что происходило с System R? Ирв и Дон были менеджерами проекта. Почему бы одному из вас не повести нас по истории System R?
Дон Чемберлин
: Я думаю, что для этого потребуемся мы оба. Я начну.
Это не должен быть монолог; пожалуйста, вставайте и помогайте мне. Как сказал Ирв, в течение долгого времени после прибытия Фрэнка в Калифорнию у нас было много собраний, много обсуждений и оперативных групп; мы старались организовать подход к выполнению этой работы. Что довольно интересно, Тед Кодд не принимал в этом такого участия, которого следовало ожидать. Он занялся обработкой естественных языков и написал очень большую программу на APL под названием Rendezvous,. Он действительно не слишком влезал в болты и гайки System R. Я думаю, что он, возможно, хотел сохранить дистанцию между собой и System R на тот случай, если бы мы не справились с работой. А я думаю, что он сказал бы, что мы и не справились.
Майк Блазген
: О, он говорил это много раз.
Дон Чемберлин
: В результате получилось, что мы организовались в две группы: группу верхнего уровня, которую в конце концов назвали RDS и интересы которой относились главным образом к языковым вопросам, и группа нижнего уровня под названием Research Storage System, которую больше интересовали вопросы физического управления данными. Я в основном могу рассказать о том, что происходило в дни в верхней половинке проекта и я надеюсь, что Ирв и, может быть, кто-нибудь еще - Джим - расскажут о том, что делалось в нижней половинке.
Что действительно произошло в эти ранние дни, это то, что группа Ирва начала разработку нового интерфейса управления данными с поддержкой индексов, блокировок, журнализации, мультидоступа и транзакций и подобного рода вещей. Тем временем языковые ребята хотели построить прототип своего языка и нуждались в базе, а RSS была не готова. Единственно, чем мы могли воспользоваться, - это нечто под названием XRM, разработанное Раймондом Лори в Научном центре Кембриджа. Поэтому в начальные дни мы построили прототип языка над XRM; мы назвали это Фазой Ноль. У Брэда есть замечательная лента, которую многие из вас видели вчера вечером, представляющая полный работающий прототип SEQUEL в 1976 г. В прототипе были реализованы утверждения целостности, которые только сейчас появились в продуктах, спустя двадцать лет. [смеется] И мы продемонстрировали это, по крайней мере, показали ленту на конференции SIGMOD. Это было в 1976 г.?
Брэд Вейд
: В 1976 г.
Дон Чемберлин
: Надеюсь, что сегодня мы сможем увидеть эту ленту снова. Это замечательная лента; вы сможете увидеть Брэда с усами размером в велосипедный руль. Хорошее дело.
Фрэнко Путцолу
: Дон, а у вас был заказчик в Новой Англии?
Дон Чемберлин
: Да, на самом деле, как мне кажется, это было самым высшим достижением Фазы Ноль. Это интересная история. В те дни была куча проблем с дефицитом горючего; организация OPEC только что подняла цены на нефть, бензиновые компании экономили ее, и на заправочных станциях стояли очереди. В Школе управления MIT (MIT Sloan School of Management) имелись некоторые планы в Новой Англии, где они получили грант для производства нечто под названием New England Energy Management Information System, NEMIS, и им была нужна база данных для отслеживания того, насколько полны нефтяные цистерны, и подобных вещей. Научный центр Кембриджа был довольно близко связан с San Jose Research, и они взяли это прототип Фаза Ноль и работали с ним в Школе управления над этой энергетической системой управления. Кстати, одним из студентов MIT, привлеченным к этой работе, был некто по имени Боб Селинджер. Боб, не совал ли ты свои руки в Фазу Ноль и не использовал ли ты ее немножко кое для чего? В результате Боб приехал в Сан-Хосе как летний студент, поскольку у него был опыт обращения с прототипом Фазы Ноль. Когда он приехал в Сан-Хосе, то познакомился с некой особой по имени Пат Гриффитс (Pat Griffits). Вот как Боб попал в IBM.
Так что я думаю, что высшим достижением Фазы Ноль было ... [смеется]
Пат Селинджер
: А эта энергетическая система управления когда-нибудь использовалась?
Боб Селинджер
: В ней были базы данных. Я не уверен, что они широко использовались. Реально они использовали систему как базу данных для разработки проектов. Сохранялись площадь, число окон, а надо всем этим запускались какие-то программы на Фортране. Для извлечения данных существовал мост между Фортраном и, по-моему, PL/1. Это был хороший хоккей.
Дон Чемберлин
: Итак, вот чего хотела делать языковая группа, когда мы первый раз организовались: мы начали с основы SQUARE, но мы были не слишком удовлетворены этим. Прежде всего, было невозможно вводить текст с помощью клавиатуры, поскольку в языке использовалась куча забавных символов. Поэтому мы начали с разговоров, что нужно адаптировать идеи SQUARE к подходу с применением англоязычных ключевых слов. Такой текст было легче вводить, поскольку он основывался на структурах английского языка. Мы назвали этот язык Structured English Query Language (структурированный англоязычный язык запросов) и использовали акроним SEQUEL. И мы приступили к построению прототипа SEQUEL на основе метода доступа Раймонда Лори под названием XRM.
В это время нам захотелось выяснить, годится ли этот синтаксис для чего-либо, а в нашем штате, по непонятным причинам, имелся лингвист. Ее звали Филлипс Райзнер (Phyllips Reisner), и ее любимым делом было проведение экспериментов, связанных с человеческим фактором. И она отправилась в университет Сан-Хосе (Sun Jose State University) и подрядила группу студентов для обучения их языку SEQUEL, чтобы посмотреть, смогут ли они ему научиться. Она занималась этим несколько месяцев и написала об этом статью, получив признание за свою работу в сообществе человеческого фактора,. Я не уверен, что результаты были очень убедительны; они показали, что если достаточно усердно трудиться, то можно обучить SQL студентов колледжа. [смеется] Большее число ошибок, которые они делали, реально не имели никакого отношения к синтаксису. Они делали множество ошибок - они не умели правильно писать печатными буквами и т.п.
Глядя назад, я не думаю, что проблема, которую, как нам казалось, мы решали, была настолько важной. Мы думали, что мы даем возможность взаимодействовать с базами данных непрограммистам. Мы думали, что открываем доступ к данным целому новому классу людей, которые могли бы что-то сделать, но не имели такой возможности, поскольку не умеют программировать. Это происходило до наступления эпохи графических пользовательских интерфейсов, которые, в конечном счете, произвели своего рода революцию; но мы ничего не знали об этом и думали, что мы обогащаем мир, делая данные доступными для непрограммистов. Все это выеденного яйца не стоит. Реальная проблема, над которой мы не думали - или, по крайней мере, которой не уделяли достаточного внимания, состояла в том, как встраивать языки запросов в языки программирования и как сделать язык, который служил бы средством обмена между разными системами. Именно в таких применениях язык SQL добился наибольшего успеха, а совсем не как язык конечных незапланированных пользователей. Так что проблема, которую мы решили, была совсем не той, про которую мы думали, что ее решаем.
Так или иначе, мы работали над этим языком, переделывая для этого SQUARE и подлаживая его к английскому языку, а затем мы начали добавлять к языку кучу вещей типа GROUP BY, которые совсем не были унаследованы от SQUARE. Так что нельзя сказать, что мы были очень удовлетворены SQUARE. Мы написали две статьи: одну про SEQUEL/DML и другую про SEQUEL/DDL. Мы очень тесно сотрудничали в этом. Авторами статьи про DML были Чемберлин и Бойс, авторами статьи про DDL были Бойс и Чемберлин безо всяких на то причин; мы всего лишь хотели их разделить. В тот год мы хотели поехать в Стокгольм, поскольку там проходил конгресс IFIP. У меня был билет до Стокгольма в связи с одной работой, которую я делал в Йорктауне, поэтому Рей представил статью про DDL на конгресс IFIP в Стокгольме, а статью про DML мы представили в SIGMOD. Вот первая страница статьи про SEQUEL/DML. Всего в ней 24 страницы. Мы считали, что это статьи-близнецы. Мы писали их вместе и думали, что они равнозначны. Но с ними обошлись по-разному. Статья про DDL была отклонена конгрессом IFIP; Рей не поехал в Стокгольм. Я все еще храню эту статью у себя в ящике; она никогда не была напечатана. Статью про DML приняли в SIGMOD. Несколько лет спустя мне позвонил парень по имени Ларри Эллисон (Larry Ellison), который читал эту статью; он выгодно использовал некоторые идеи этой статьи. [смеется] Последнее воплощение этих идей подлиннее 24 страниц; это стандарт ISO языка SQL, который описывался на прошлой неделе Нельсоном Маттосом (Nelson Mattos) на конференции SIGMOD. В нем теперь около 1600 страниц.
Джим Грей
: Вон там [ на столе артифактов] лежат две большие папки.
Марио Школьник
: Дон, я помню, ты рассказывал, что Ларри Эллисон позвонил и спросил про коды ошибок; какие коды ошибок будут использоваться в IBM. Ему хотелось быть совместимым.
Дон Чемберлин
: Ларри звонил. В то время его компания не называлась Oracle. Его компания два раза меняла название. Исходным названием было Software Development Laboratories. Он услышал про прототип System R и захотел добиться того, чтобы его продукт был полностью совместим с System R, вплоть до значений кодов ошибок. Он пришел и спросил Фрэнка: "Вы можете дать ваши коды ошибок этому парню Эллисону?", и Фрэнк ответил: "Нет - это конфиденциальная информация IBM".
Франко Путцолу
: Это была единственная конфиденциальная часть.
Майк Блазген
: Знаете, интересна вся история. Когда мы представили статью в TODS, один из рецензентов сказал, что мы должны включить в статью BNF языка SEQUEL, что мы и сделали; но в исходном варианте статьи этого не было. На этом включении настаивал рецензент и этого требовал редактор, и мы его вставили, хотя думали, что было ... что-то не так. Я думаю, что по соображениям человеческого здравого смысла нам не следовало этого делать; нам не следовало включать это дополнение, потому что оно было слишком детальным, облегчая желающим процесс воспроизведения. Я не уверен, что это так, но ...
Джим Грей
: А что вы туда вставили?
Майк Блазген
: BNF - синтаксис. Нет, семантика в статье содержалась; она не менялась, мы всегда ее описывали. Но детали синтаксиса ... Леонард, например, много лет спустя ощущал, что это была большая ошибка; мы никогда не должны были этого делать.
Франко Путцолу
: Еще позже я подумал, что публикация чего-либо была большой ошибкой.
Жозефин Ченг (Josephine Cheng)
: Просто нужно запатентовать материал, прежде чем его публиковать.
Майк Блазген
: Люди должны знать, что патенты были в основном запрещены. В то время патенты были запрещены компанией и Верховным судом. Патенты на программное обеспечение.
Франко Путцолу
: Я помню, что до 1979 г. мы публиковали все, что приходило в голову, независимо от того, было это реализовано или нет, или мы только мечтали об этом; а затем внезапно появился барьер.
Майк Блазген
: Да, в один прекрасный момент мы решили, что могли бы сделать на этом деньги. Ведь это был комплимент, не так ли?
В 1975 г. или около того мы подготовили большой пресс-релиз в связи с началом этого дела. И он был запрещен GPD. Они не разрешили нам публиковать пресс-релиз, вы помните об этом?
Ирв Трейджер
: Я не помню.
Майк Блазген
: У нас было работы со статьями. На самом деле, в этом участвовала Шарон. [смеется] Моя жена была юристом, и она помогала им запрещать публикацию.
Боб Йост
: Вы думаете, что могло бы получиться что-нибудь удачное, если бы IBM держало все закрытым? Я так не думаю. Я не думаю, что в этом случае получилось бы что-нибудь близкое по успеху.
Франко Путцолу
: Я думаю, что решающим является тот факт, что прототип был использован в SQL/DS и DB2, а не то, что он был популярен в университетах.
Майк Блазген
: Обычно я много говорю об этом. В течение долгого времени я был чем-то вроде штатного рассказчика про System R, и многие люди в IBM задавали мне этот вопрос. Мой ответ в точности совпадал с тем, что сказал Йост: если бы мы не опубликовали эти статьи, ничего бы не получилось. И причиной провала было бы то, что IBM проигнорировала бы эту работу.
Все
: Да.
Майк Блазген
: Нет, понятно, что если бы мы могли изменить историю и не публиковать эти статьи, и при этом знать, что появятся SQL/DS и DB2, то было бы лучше, если бы эти ранние статьи не были опубликованы. Но я убежден, что единственное, чем каждый был озабочен ... Джоллс скажет что-нибудь по этому поводу. На самом деле, в то время это было слишком рано; время должно было наступить. Но я убежден, что публикация была правильным делом. Я много знаю об этом, потому что я работал на RISC. Я был и менеджером проекта 801. По поводу этого проекта вообще ничего не публиковалось, и было гораздо труднее его раскрутить. Было гораздо труднее заставить IBM делать что-нибудь по этому поводу. Мы передали разработку компании Sun. SPARC был первым популярным RISC-процессором, и только после того, как компания Sun перешла к применению RISC, нам удалось заставить IBM проснуться.
Том Прайс
: DB2 началась только после того, как Эллисон начал делать Oracle?
Майк Блазген
: Нет, Эллисон не являлся фактором SQL/DS, а насчет DB2 я не знаю.
К. Мохан
: Нет, я говорил, что SQL/DS появилась после появления Oracle.
Майк Блазген
: О, это так, но это только показывает, сколько времени требуется IBM, чтобы что-нибудь сделать.
Ирв Трейджер
: Итак, если вернуться ко времени оперативных групп System R, которая еще так не называлась, существовало это мнение о запуске прототипа Фаза Ноль, о котором говорил Дон. Было понятно, что GAMMA-0, XRM и другие системы не обеспечивают правильную платформу. Все они обладали странной особенностью - каждая из них. Ни одна из них не хранила значения в кортеже. Они сохраняли 32-битовые штуки, которые ссылались на значения. Это было время маленьких дисков и маленькой памяти. Считалось, что если кто-либо был программистом или жил в Пафкипси (Poughkeepsie), нежелательно хранить значения "programmer" и "Poughkeepsie" больше, чем в одном экземпляре. Вы должны были иметь эти классы имен, таких как названия городов, наименования должностей и тому подобное - имена людей. Вы должны были хранить ссылки на элементы этих классов для доступа к строкам переменного размера. Все они делали именно так; все они. RAM была бинарной; идентификатор кортежа, ссылка на одно значение и ссылка на другое значение. Если этого достаточно, прекрасно, но этого оказывается достаточно очень, очень редко. Но что происходит, когда вы ищите всего-навсего один кортеж? Например, "Расскажите-ка мне про Мохана из файла Employee". Накладные расходы могут быть невероятными, поскольку нужно пройти по этому указателю и пройти по тому указателю, и почему бы не хранить все значения вместе, как это в некотором роде делалось в VSAM, IMS и DBTG.
Так что мы быстро пришли к этой реализации, а затем, опять же в режиме оперативной группы, который со временем утомляет, мы пришли к понятию промежуточного уровня, названного SLI - System Logical Interface. Он должен был обеспечить возможность выполнения запросов над множествами, но, насколько я помню, с одним индексом, одним полем и одной таблицей. SEQUEL должен был каким-то образом транслироваться в эти более мелкие штучки, и нужно было склеивать сложные запросы. Над этой идеей приступила работать моя группа, в то время как Дон, Рей, Пол Фехдер (Paul Fehder) и Мортон Астрахан работали над прототипом Фазы Ноль. Но в действительности никому из нас не нравился SLI, поэтому работа постепенно истощалась.
Происходило еще кое-что, что способствовало сворачиванию этой работы: мы вступили в заговорщические отношения с Франко. Франко был отозван из Йорктауна на основе соглашения Леонарда Лью и Гомори (Gomory) о том, кто должен переехать. Он не планировал работать над System R. Эд Альтман (Ed Altman) был одним из руководителей проекта DIAM в отделе Майка Сенко и занимал менее ответственные должности в разных других группах Computer Science. Я думаю, что Франко был вызван для того, чтобы разрабатывать с Альтманов средства физического проектирования баз данных ...
Франко Путцолу
: Да, что-то вроде этого; я никогда не выяснял.
Ирв Трейджер
: ... возможно, этим руководил пришедший из группы Сенко К.П. Ванг (C.P. Wang). Очень деликатным вопросом было то, как Леонард будет балансировать разделение мозгов между ветвями Альтмана и Фрэнка Кинга, поскольку ему не хотелось создавать впечатления, что он отбирает преимущества старой группы DIAM и покровительствует Фрэнку Кингу. Поэтому некоторые пребывающие сильные люди направлялись к Альтману, в том числе и Франко. Как-то днем Леонард сказал мне, чтобы я поговорил с Франко, я не знаю, почему он хотел, чтобы это сделал я; он был застенчивым человеком. И было ясно, что Франко весьма и весьма перспективный парень. Он знал, что делалось в области баз данных раньше, и он беспокоился о приложениях. Он читал эти непонятные небольшие статьи про ...
Франко Путцолу
: Помимо прочего, я изучал IMS; я даже однажды инсталлировал IMS в Йорктауне.
Ирв Трейджер
: Итак, мне пришло в голову, что SLI - это плохая идея и что нам нужен кто-нибудь с более практическим пониманием; я поговорил с Франко и сказал Фрэнку Кингу, что мы должны взять Франко. Но Фрэнк Кинг не хотел касаться этой ситуации по причине этого баланса сил. Каким-то образом нам удалось добиться своего.
Примерно в это время была принята на работу Кепэли Эсваран (Kapali Eswaran), которая, как помню, отчитывалась передо мной, но помогала ребятам, работающим над прототипом Фазы Ноль, в реализации ограничений целостности и триггеров, которые, как отмечалось выше, только сейчас внедрены в линию продуктов IBM. Делались и другие вещи. Мы работали над мультидоступом, стараясь обеспечить эту возможность, поскольку ни в одной из ранних систем она не поддерживалась. А если эта возможность и реализовывалась, то случайным образом. Я сделал кое-какие ранние вещи в GAMMA-0, Джим Грей был очень заинтересован, и он делал некоторые вещи, и Раймонд пришел со вспышкой этой идеи, которая стала называться предикатными блокировками. Смысл идеи был в том, что если запрашиваются множества, то почему бы и не блокировать множества: наиболее естественная вещь, какую только можно представить. И это согласовалось с тем, что мы в конце концов поняли по поводу авторизации и представлений. Вместо того, чтобы авторизовать столбцы таблицы, создайте представление этих столбцов и авторизуйте его. Кепэли услышала про эти предикатные штучки и стала работать и над предикатными блокировками, и мы также начали понимать, что транзакции подобны логическим единицам "все или ничего".
Брюс Линдсей
: В статье о предикатных блокировках, которую я нашел я ящике Джима, есть отличная строка. В небольшом параграфе говорится: "Накладные расходы и сложность конструирования предиката, проверки предиката и планирования предиката ужасают и Мортона, и Франко. Остальных это только пугает." [смеется]
Ирв Трейджер
: Был короткий период, когда мы думали, что предикатные блокировки являются правильным подходом и, хотя мы этого не говорили, можно было бы получить возможность сериального плана, который как вы знаете, представляет логический эквивалент однопользовательской системы. Но это еще не было настоящей картошкой-фри. Я помню другой день, когда я сидел в кресле Джима Грея, похожем на мешок с фасолью. У него был маленький кабинет и это громадное неудобное кресло в качестве обычного сидения. Мы говорили обо всем, что произошло. В этот день в гостях был Марк Ауслэндер (Mark Auslander). Он относился к числу блуждающих людей, любящих заглядывать вам за плечо, и вдруг Джим начал лучше понимать, что означает сериальный план, почему это важно и почему предикатные блокировки, возможно, ничем не смогут помочь. Но они помогли нам это понять. Он ссылался на статью Донована (Donovan), которому пришлось кое-что делать с сериализуемостью операций над кэшем. В статье имелись некоторые натяжки, но, насколько я помню, согласованность и сериализуемость обеспечивались. Это там было. Не прозвонил ли тогда звоночек, Джим?
Джим Грей
: Да. И еще асинхронные коммуникации Карпа & Миллера. Их интересовали вопросы детерминированности, а нас только блокировки для согласованности. Мы хотели какого-нибудь ответа, им был нужен правильный ответ.
Ирв Трейджер
: Вот что было дальше. Насколько я помню, поддержка версий... теневого механизма была очень сильной идеей в системе XRM, которую Раймонд привез нам из Кембриджа. Он перевелся достаточно близко к началу процесса. Поэтому мог ли я думать о чем нибудь еше? Восстановление, журнализация, мы хотели перейти к блокировкам на уровне записей, и мы поняли, что теневой механизм этому не противоречит и ввели запутанную комбинацию блокировок уровня записей, журнализации и теневого механизма, которая действительно работала.
Франко Путцолу
: Вроде того. [смеется]
Ирв Трейджер
: Одна из сильных идей состояла в том, что мы хотели поддерживать все модели данных, поэтому в RSS поддерживались связи, фактически, цепочки указателей, и идея состояла в том, чтобы поддерживать иерархические, сетевые и реляционные структуры данных. Со временем мы отказались от этой благородной цели, но она снова воскресла в Санта-Барбара. Это было очень интересно; мы не хотели знать, куда пойдут данные, nтремясь построить универсальную вещь низкого уровня, независимую от того, что находится на верхнем уровне.
Франко Путцолу
: Да, я бы сказал, что было два важных момента. Первое - это то, что RSS существовала. Мы воспринимаем как данность, что нужно расщепить систему на компонент низкого уровня и компонент высокого уровня. Но только в системах, происходящих от System R, имеется такое явное расщепление. Во многих системах этого нет, и я думаю, что это им вредит.
Ирв Трейджер
: Да, не было очевидно, что следует расщеплять систему и как ее расщеплять. Как я говорил, мы боролись с SLI, которая представляла собой что-то вроде среднего уровня.
Франко Путцолу
: Расщепление было сделано на правильном уровне. И другим важным моментом был упор на то, чтобы многочисленные подсистемы верхнего уровня могли использовать общее ядро нижнего уровня. Такие попытки предпринимались во всех системах, которые появились после System R, и все эти попытки провалились.
Пат Селинджер
: Я помню, Франко, что ты вел по крайней мере одно исследование по поводу того, как отобразить IMS - все конструкции: логические удаления, разреженную индексацию и все такое прочее - на уровень RSS.
Франко Путцолу
: Да, это была потеря времени. [смеется]
Джон Науман (John Nauman)
: Но ты упорно этим занимался, Франко.
Джим Грей
: Следует понимать, что все это происходило на фоне нечто, называемого FS41 - Future System, и люди в FS думали, что работа над реляционной базой данных - это немыслимая растрата исследовательской энергии. Они работали над GRID или каким-то другим проектом, который был гораздо более замысловатым и продвинутым, чем все, что делали мы - там был GUI, и был замечательным.
Джон Науман
: В действительности было три системы: предполагалась поддержка реляционных и сетевых (CODASYL) вещей, а также плоских файлов - должно было делаться все. Но эта работа была прекращена.
К. Мохан
: Но часть этого вошла в System/38, не так ли? По отношению к одним и тем же данным они допустили доступ на уровне файловой системы и с использованием высокоуровневых запросов, что до сих пор поддерживается в AS/400.
Утренний перерыв
(23) K. Shoens, A.Luniewski, P. Schwarz, J. Stamos, J. Thomas. "The Rufus System: Information Organization for Semi-Structured Data" Proc. VLDB, Dublin, Ireland (1993).
(i) Cadence Design Systems. В настоящее время Леонард Лью - президент и CEO компании Walker Interactive Systems. (Прим. переводчика.)
(ii) Hoover Dam - грандиозная плотина на реке Колорадо, построенная около 60 лет тому назад. Окрестности Hoover Dam являются национальным парком. (Прим. переводчика.)
(24) E.F. Codd. "Seven Steps to Rendezvous with the Casual User" Proc. IFIP-TC2 Conference on Data Base Management, Cargese, Corsica (April 1-5, 1974) pages 179-200.
(25) E.F. Codd, R.S. Arnold, J-M. Cadiou, C.L. Chang, N. Roussopoulos. RENDEZVOUS Version 1: An Experimental English Language Query Formulation System for Casual Users of Relational Data Bases. IBM Research Report RJ 2144, San Jose, California (January 1978)
(26) RDS означает Relational Data System.
(27) M.M. Astrahan and D.D. Chamberlin. "Implementation of a structured English query language" CACM, 18, 10 (October 1975), pages 580-588
(28) J.J. Donovan, L.M. Gutentag, S.E. Madnick, and G.N. Smith. "An Application of a Generalized Management Information System to Energy Policy and Decision Making - The User's View" Proc. NCC, AFIPS Vol. 44 (1975), pages 681-686.
(29) Теперь Пат Селинджер.
(30) P. Reisner, R.F. Boyce, and D.D. Chamberlin. "Human Factors Evaluation of Two Data Base Query Languages -- SQUARE and SEQUEL" Proceedings of the AFIPS National Computer Conference, Anaheim, CA (May 1975) page 447.
(31) P. Reisner. " Use of Psychological Experementation as an Aid to Development of a Query Language" IEEE Transactions on Software Engineering, Vol. SE-3 (May 1977) page 218.
(32) D.D. Chamberlin and R.F. Boyce. "SEQUEL: A Structured English Query Language" Proc. ACM SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, Michigan (May 1974), pages 249-264. Обратите внимание статья в TODS35 содержит ссылку, в которой вместо SIGMOD указано SIGFIDET.
(33) R.F. Boyce and D.D. Chamberlin. "Using a structured English query language as a data definition language" IBM Research Report RJ1318. San Jose, California (December 1973).
(iii) Ларри Эллисон основал компанию в 1977 г. (Прим. переводчика.)
(34) Nelson Mattos. "A Overview of the Emerging Third-Generation SQL Standard" SIGMOD'95 Tutorial.
(35) M.M. Astrahan, M.W. Blasgen, D.D. Chamberlin, K.P. Eswaran, J.N. Gray, P.P. Griffiths, W.F. King, R.A. Lorie, P.R. McJones, J.W. Mehl, G.R. Putzolu, I.L. Traiger, B.W. Wade, and V. Watson. "System R: Relational Approach to Database Management" ACM TODS 1, 2 (June 1976), pages 97-137.
(36) GPD означает General Products Division, отделение, под управлением которого находится исследовательская лаборатория в Сан-Хосе.
(iv) Poughkeepsipsie Ошибка! Источник ссылки не найден. небольшой город в штате Нью-Йорк с большой историей. Неподалеку от него находится завод компании IBM по производству мейнфреймов. (Прим. переводчика.)
(v) RAM - Random Access Memory (память с произвольным доступом). (Прим. перводчика.)
(37) VSAM означает Virtual Sequential Access Method.
(38) Ральф Е. Гонори (Ralph E. Gonory) был директором IBM Research с 1970 по 1986 г.
(39) R.M. Karp and R.E. Miller. "Properties of a Model for Parallel Computation: Determinacy, Termination, and Queuing" SIAM JAM 14, 6 (June 1966), pages 1390-1411.
(40) J. Gray, P. McJones, M. Blasgen, R. Lorie, B. Lindsay, T. Price, F. Putzolu, I. Traiger. "The Recovery Manager of the System R Database Manager" ACM Computing Surveys 13, 2 (June 1981), pages 223-242.
Страницы: 3
Tandem
Джон Науман
: В это время Франко работал на меня в Tandem, и я уверяю вас, что мы никуда не посылали его в качестве двойного агента. Это была действительно драматическая потеря для Tandem. Я пришел в Tandem в 1981 г. сразу после Джима. Это был интересный опыт, потому что в это время в Tandem имелись средство запросов ENFORM и файловая система ENSCRIBE, и у них в стадии производства находилось средство управления транзакциями TMF (Transaction Monitoring Facility). Мы с Джимом много работали над TMF - над подготовкой и запуском; немного - над ENSCRIBE. Кроме того, Джим писал телефонный справочник ...
Джим Грей
: TELE.
Джон Науман ... а я писал программу FULIST. Когда и пришел в Tandem, он сказал мне, что я должен внести свой вклад в области кодирования, и я потратил больше времени, чем хотелось, на изучение причудливых особенностей терминала [6520]. Когда я пришел, то надеялся заняться транзакционной системой, которую они начали делать, и превратить ее в нечто, что, как я думал, мы умеем делать, на основе того, что бы сделали в System R: преобразовать ее в DB2. Я думал, что на основе всего опыта работы с Eagle и менеджерами блокировок и восстановления мы многому научились и можем сделать все это лучше в Tandem для их архитектуры NonStop.
Джим Грей
: И мы были уверены, что IBM никогда не будет это поставлять.
Джон Науман
: Верно.
Джим Грей
: Потому что, вы знаете, организация, я имею в виду, что я не знаю, был ли к этому времени План B преобразован в План A ...
Джон Науман
: Да, был. Но ты был уверен, что система никогда не будет поставляться; как я помню, я думал, что это произойдет в течение шести месяцев. Ты был ближе к правде. Мы привлекли Франко к тому, чтобы написать базовые средства управления данными для реляционной системы баз данных, которую мы хотели построить. И в течение следующих, вероятно, трех лет мы пытались собрать группу NonStop SQL, как стали называть в конце концов завершенный продукт. Это было ужасно, поскольку имелся конкурирующий продукт. Та же история, что и FS в IBM; имелся продукт под названием Rainbow, и Rainbow была развивающейся системой. Rainbow включала все, что только ... там работал Джим, когда я присоединился. Вскоре после моего прихода Джим ушел из Rainbow, переехал и занялся реальной работой. Но проект Rainbow всегда оттягивал ресурсы от того, что мы делали, и, если посмотреть на то, что мы могли бы сделать за шесть месяцев, за пять лет, за десять лет, иногда мешал нашему продвижению. Не могу вспомнить, сколько раз Франко приходил в мой офис и внушал мне, что этот нонсенс с Rainbow следует остановить. Мы должны были стать серьезными и делать продукт. К 1983 г. мы, наконец, смогли накопить критическую массу и, как я думаю, стали добиваться действительно хорошего прогресса. Франко работал с Андреа Борр и еще несколькими людьми ...
Джим Грей
: Луиз Мадрид (Louise Madrid) пришла из Britton-Lee через Esvel.
Джон Науман
: Она пришла после ухода и возвращения Франко. Но в любом случае, достигалась критическая масса группы. Андреа отстранилась от TMF для работы над средствами базовой файловой системы, и мы действительно начали достигать существенного прогресса, и затем Франко ушел. Это было ...
Франко Путцолу
: ???
Джон Науман
: Да, но тогда я этого не знал. Это было действительно неприятно. А потом Франко вернулся, и к нам присоединился Дон [Слац], и все стало происходить гораздо лучше.
К. Мохан
: Почему он ушел?
Джон Науман
: Ему не нравился его менеджер.
Том Прайс
: Капали собирался сделать его богатым.
Джон Науман
: Я думаю, что был соблазн раскрутки работы.
Франко Путцолу
: Да, это так.
Джим Грей
: Нет, все было сложнее. Была эта презентация; я сидел в большой аудитории. Деннис МакЭвой, который теперь является главой инженерного отделения в Sybase, поднялся и рассказал о том, какой замечательной системой будет Rainbow. И прямо в середине собрания Франко встал. Он сидел в центре аудитории; он пробрался между людьми; он прошел через проход; он вышел; он ушел в Esvel и принял задание. Это его окончательно достало.
Джон Науман
: Я покинул Tandem до того, как была сделана система NonStop SQL, но она была сделана, и я слышал ото всех, что это была выдающаяся работа. На основе своего опыта работы над FS в IBM и над Rainbow я понял, что в любой компании, на которую мне приходилось работать, существует одна и та же ситуация: всегда имеется продукт следующего поколения. Всегда имеется грядущий продукт, который должен решить все проблемы, и вы должны вкладывать в него все ресурсы и фактически стопорить то, над чем происходит текущая работа. Не беспокойтесь о механизме смены поколений. Это прошлое; вы должны смотреть в будущее. Я никогда не работал в компании, где бы это сработало. Доводом всегда является то, что имеется в настоящее время - это истина также и System R - у нас была System R; это то, с чем нам следовало работать. Мы не должны были беспокоиться об изменении способа работы SYSGEN и об ее устранении, и о полностью новой аппаратной архитектуре, и о полностью новой архитектуре программного обеспечения, и об объектах, поддерживающих реляционные представления, или сетевые представления, или иерархические представления, или что-нибудь еще. Мы должны были стараться делать несколько более мелкие шаги, но в направлении гораздо более достижимой цели. Ужасно говорить это, посколько настолько привлекательно посмотреть на что-нибудь и сказать: "Мы можем изменить мир. Мы можем сделать нечто действительно важное". Но проблема в том, что лишь немногие из этих попыток удаются. Все наиболее успешные программные продукты - происходят ли они из IBM, Tandem или Microsoft - получились со второй или третьей попытки. Не с первого раза, когда это блестящий предмет, который все любят.
Майк Блазген
: На самом деле, одной из причин, по которой мы здесь собрались, является то, что System R относится к одному из немногих случаев, когда новый поход оказался подходящим.
Джон Науман
: Но не продуктом.
Майк Блазген
: Почти всегда правильно улучшать старый подход. Почти правильно было улучшать IMS. Но изредка возникает возможность сделать что-то новое, и у нас она была.
Джон Науман
: Но отличие в том, что System R не была будущим IBM - будущим IBM была FS, и будущим Tandem была Rainbow, и как только вы делаете ставку на что-то от имени всей компании, вы начинаете терять ... Я рассматриваю System R как очень хорошую идею, которая позволила добиться существенного прогресса за кулисами.
Майк Блазген
: Я понимаю разницу; ты прав.
Джон Науман
: Некоторое время я работал в 3Com, и когда я там работал, Ethernet как раз начал становиться тем, что люди воспринимали как нечто важное. Компания 3Com прошла через ряд различных направлений с этими превосходными новыми системами, которые все порождали в компании проблемы, пока не сосредоточилась на том, что составляло ее реальный бизнес. Это был Ethernet. В некотором роде, они изобрели это, а потом стали продвигать. System R представляла собой нечто, что было изобретено, а потом развивалось в очень логичной, разумной последовательности. Это не была вещь, меняющая мир за одну ночь. Я думаю, что такие попытки очень опасны. Об этом говорит мой опыт в Tandem. Франко, не хочешь ли ты рассказать о том, как была завершена работа над NonStop SQL, и как был произведен выпуск?
Франко Путцолу
: На самом деле, проект завершился достаточно успешно. Посмотрите: мы стартовали в 1984 г. и пришли к бета-версии в 1987 г.; я думаю, что это вполне приемлемо.
Джим Грей
: Могу я тебя перебить и сказать кое-что? В 1984 г. мы сказали: "По-видимому, это займет три или четыре года, и мы не рассчитываем иметь продукт до 1987 г.". И Деннис МакЕвой сказал: "Что? Я должен ждать до 1987 г., чтобы получить SQL-систему? Забудьте об этом." И поэтому мы предоставили ему план с пятьюдесятью процентами уверенности и план с девяноста процентами уверенности. По первому плану работа должна была быть завершена в 1986 г., по второму - в 1987 г. И он сказал: "Ох, OK".
Джон Науман
: Но подход Франко заключался в том, что каждый раз я шел к нему и спрашивал, как долго это будет делаться: "Франко, когда ты собираешься сделать это?" "Я сделаю это, когда сделаю."
Франко Путцолу
: Да, но от нас требовалось завершить работу в 1987 г. Мы отстали месяца на три, что не было слишком плохо, и я думаю, что это была хорошая система, по крайней мере, ее низкоуровневое ядро; возможно, я пристрастен, потому что работал над ним. Я имею в виду, что это действительно было ядро, которое масштабировалось насколько угодно, производило восстановление после сбоев в течение секунд, обладало оперативно доступными утилитами всех сортов, включало правильную реализацию блокировок - ни в одной другой системе блокировки не были реализованы правильно. [смеется] С другой стороны, конечно, имелись и некоторые минусы. Минимальная функциональность: действительно базовый, базовый SQL. Мы сделали несколько серьезных ошибок, и я ответственен за некоторые из них. Мы не очень старались приклеиться к ANSI; мы старались сделать систему интегрированной с GUARDIAN: собственное именование; собственная модель безопасности. Я думаю, что виновен в части именования, и это была серьезная, серьезная ошибка. Было приятно работать над системой. Джим, ты хочешь что-нибудь сказать по этому поводу?
Джим Грей
: Да. Вероятно, ключевой особенностью этой системы было то, что первый выпуск предназначался для OLTP; первый выпуск предназначался для обработки транзакций, и это было в 1987 г. Затем люди пошли дальше и сделали параллельный SQL, который поставлялся примерно в 1989 г., и я думаю, что Майк Понг (Mike Pong) мог бы рассказать об этом. В последние четыре или пять лет они усердно работали, чтобы сделать систему оперативной и высоко доступной. Среди средств, которые они сделали, возможность добавлять индексы на фоне изменений базы данных; реорганизация базы данных на фоне обновлений и выборок. Это интересные алгоритмы. У них не было ссылочной целостности; у них не было триггеров; у них не было внешних ключей; и т.д. Но с другой стороны, они имели много вещей, полезных для повседневных сохранения и выборки данных. Интересно посмотреть, что было потом.
Франко Путцолу
: Ядро было хорошим, и действительно интересно, что в 1989 г. у нас имелось параллелльное выполнение; три или четыре года в Tandem не делалось ничего по поводу параллельного выполнения, а потом они неожиданно обнаружили этот большой рынок DSS. Но было немного поздно; к этому времени такое открытие сделали и другие люди.
Джим Грей
: Майк Понг, ты не хочешь сказать что-нибудь о ...
Майк Понг
: Я присоединился к проекту NonStop SQL для работы над оптимизатором через несколько месяцев после начала проекта в 1984 г. Больше всего мне запомнилось то, что к моему приходу Франко завершил большую часть исполнителя. Это застряло у меня в памяти, потому что никто другой даже и не пытался осознать проект в целом! В первом выпуске мы не использовали возможности параллельной архитектуры Tandem для внутреннего распараллеливания запросов. Вскоре после начала поставок первого выпуска мы с еще одним разработчиком начали работать над внутренним распараллеливанием запросов с помощью Джима и Франко. Проектирование и реализация заняли около двух лет. Когда работа была закончена, мы были очень взволнованы, увидев на самом деле линейное масштабирование и ускорение для больших запросов. К несчастью для Tandem, продвижение этой возможности на рынке началось только два года тому назад.
Пат Селинджер
: Есть ли еще истории про Tandem? Боб Джойллс?
Боб Джойллс
: Мне нечего добавить.
Пат Селинджер
: Отлично. Теперь очередь Oracle.
(69) S. Andler, I. Ding, K. Eswaran, C. Hauser, W. Kim, J. Mehl and R. Williams. "System D: A Distributed System for Availability". Eighth International Conference on Very Large Data Bases, Mexico City (September 8-10, 1982).
(70) Замечание Джима Мехла: "Рон Ревель мог непродолжительное время заниматься исследованиями в области аппаратуры в начале System D, но он несомненно не принимал участие в работе над программным обеспечением, которое стало называться System D." Пояснение Дона: "Я вспомнил, что сначала Рон работал над процессором (и я думал, что он будет использоваться в System D). Когда в System D стали использовать Series 1, Рон переключился на работу над средствами сетевых соединений. Вскоре после того, как эта работа прекратилась, я взял Рона обратно.
(71) D. Bitton and C. Turbyfill. "Benchmarking Database Systems, a Systematic Approach", Proc. VLDB, Florence, Italy (1983).
(72) Rainbow была совершенно новой системой (архитектура, операционная система, база данных и т.д.), предназначенной для замены T16. В конечном счете, этот проект был прекращен, и был запущен проект под названием Crystal для создания маломасштабной, простой для использования системы. В свою очередь, Crystal заменила Catalyst, сильно интегрированная, транзакционная, простая для использованию клиент-серверная система (PC/T16). Около 1990 г. на базе Catalyst была образована новая компания Cooperative Solutions, основанная Деннисом МакЭвоем (Dennis McEvoy), его женой Ким Ворсенкрофт (Kim Worsencroft) (которая была лидером и вдохновителем проекта Catalyst) и еще несколькими людьми из Tandem. В конечном счете, они создали продукт с названием Ellipse, основанный на OS/2 и Sybase. Cooperative Solutions была куплена компанией Bachman Information Systems, которая теперь занимается маркетингом Ellipse.
(73) На самом деле, Ethernet был изобретен в Xerox PARC.
(74) DSS обозначает Decision-Support System.
Страницы: 9
Улучшенная безопасность
Новым средством безопасности SQL:1999 основано на понятии роли (role). Привилегии могут предоставляться ролям таким же образом, как если бы они были индивидуальными идентификаторами авторизации, и роли могут предоставляться идентификаторам авторизации и другим ролям. Эта вложенная структура может в громадной степени упростить зачастую трудную работу управления безопасностью в среде баз данных.
В последние несколько лет роли реализованы во многих SQL-продуктах (хотя иногда под другими названиями); в конце концов роли попали и в стандарт.
Вера Ватсон
Майк Блазген
: Спасибо, Дон.
Вера Ватсон. Я встретился с Верой, когда перебрался в Йорктаун для работы Исследовательском отделении в Нью-Йорке. Одним из членов группы была Вера Ватсон. У Веры было очень необычное происхождение. Она родилась в Китае в семье русских. Это была часть русского сообщества, занимавшего часть Китая. Если вам интересно, такое же происхождение у Юла Брайнера (Yul Brynner). Вера говорила по-русски и, добравшись в конце пятидесятых через Англию в Соединенные Штаты, была принята на работу в IBM Research по причине своего знания русского языка. В это время имелся большой оптимизм относительно автоматического языкового перевода, перевода текстов с одного языка на другой. По этому поводу существовал большой исследовательский проект. Ожидалось, что пройдет немного месяцев и все заработает. Так не получилось. Но им был нужен человек с хорошим знанием русского языка, так что Вера подошла. Со временем она вошла в состав нескольких разных групп в Йорктауне; стала программистом, участвующим в нескольких разных проектах, к участию в которых я также был привлечен (проекты в области графики и другие). Она перебралась в Калифорнию где-то в начале 1974 г. или в конце 1973 г., примерно в то же время, когда несколько других человек переехали из Нью-Йорка в Сан-Хосе. Вскоре после этого я тоже переехал с начал работать вместе с ней в одном отделе под руководством Трейджера.
У Веры имелся интерес помимо работы - альпинизм. Она была очень серьезной альпинисткой, членом Альпийского клуба в Нью-Йорке. Она была очень серьезной альпинисткой и скалолазкой. В 1975 или 1976 г. она освободилась от работы на три или четыре месяца и отправилась в Южную Америку для одиночного восхождения на Аконкагва, самую высокую гору западного полушария. Я помню, что Франсис Кинг написала стихотворение о Верином восхождении на Аконкагва. На следующий год, вероятно, это был 1977 г., у нее появилась удачная возможность присоединиться к женскому штурму Аннапурна. Аннапурна - это одна и главных вершин Гималаев. Многие из нас были вовлечены в это и сохранили в памяти начало Вериного дела. Одной из необычных вещей, которую я помню в связи с этим, состоит в том, что тогда для получения неоплачиваемого отпуска (в нашем случае на три или четыре месяца, которые требовались для штурма главного пика Гималаев) нужно было заявить IBM, что это связано с возможностью, предоставляемой один раз в жизни. Конечно, это так и было, если не учитывать того, что поход на Аконкагва тоже был возможностью, возникающей один раз в жизни. Так что у Веры были две возможности, возникающие один раз в жизни, на протяжении двух лет.
Итак, она присоединилась к группе для восхождения на Аннапурна и вошла во вторую штурмовую группу. Восхождения происходят парами, производятся парные попытки штурма вершины. Это элементы гималайского стиля с оборудованием базового лагеря. Она продвигалась к верхнему лагерю, в то время как первая штурмовая группа спускалась к предыдущему лагерю. Они прошли, и она потерялась - она и ее партнер. Мы почти уверены, что они сорвались. Они шли в связке; ?ы думаем, что одна сорвалась и утянула вторую за собой.
Я узнал об этом из телефонного звонка Джона МакКарти (John McCarthy). Вера бы замужем за Джоном МакКарти, отцом Лиспа и искусственного интеллекта. Джон позвонил мне в офис, чтобы сказать, что он только что узнал об этой беде. Помню, что я собирался на собрание отдела. Я даже помню конференц-зал в строении 28, где мы собирались. Я кратко сказал, что Вера потерялась. Они послали других постараться найти ее. Они смогли разглядеть тела на снегу внизу, но сочли опасным спускаться, и даже если бы они спустились к телам, не было возможности извлечь их без использования вертолетов и подобных вещей, а это не сочли возможным. Итак, памятник Вере установлен в базовом лагере в Аннапурна, как и других людей, погибших во время этого восхождения; Аннапурна - это серьезная гора.
Я думаю, хорошо, что мы можем вместе вспомнить о Вере. Вера многое внесла в этот проект. Если вы посмотрите на этот листок бумаги, на нем написано VM+. Этот знак плюс есть Вера. Она проделала работу по модификации операционной системы IBM, чтобы на ней можно было запустить многопользовательскую версию System R. Мы все помним Веру.
Теперь я возвращаю слово Дону для разговора о Мортоне Астрахане.
Воспоминания
Майк Блазген
: Я хотел бы занять некоторое время, чтобы почтить память троих людей, которые участвовали в проекте, но не смогли быть сегодня здесь, потому что их нет в живых; троих людей, которые внесли существенный вклад на разных стадиях проекта. Эти три человека, которые не могут быть здесь, - Рей Бойс (Ray Boyce), Вера Ватсон (Vera Watson) и Мортон Астрахан (Morton Astrahan). Могу я попросить Дона Чемберлина (Don Chamberlin) сказать несколько слов о Рее Бойсе?
Воссоединение SQL в 1995 г.: люди, проекты, политика
Под редакцией
Перевод: Сергей Кузнецов
Страницы: 4
Майк Блазген: Вот брошюра отдела Computer Science [IBM San Jose Research], которую мы издали в конце 1978 или начале 1979 г. В ней имеется фотография всего отдела - все люди, находящиеся в этой комнате, присутствуют на фотографии. Она была сделан в нескольких шагах отсюда, за строением 28. Эрик Карлсон (Eric Carlston), Т.К. Чен (T.C. Chen). Здесь имеется еще и список публикаций, интересно посмотреть, у кого он самый длинный. Ответ на этот вопрос, вероятно, не изменился. Вероятно, в этом году он такой же, каким был в том году. Это публикации отдела Computer Science за 1977-1978 г.г. Как вы думаете, как зовут человека, у которого больше всего публикаций?
Все
: Aстрахан [смеются]
К моему удовольствию, у Блазгена две, так что я не пустомеля. У Чемберлина имеется "Data Base System Authorization" в Foundations of Secure Computing. Вероятно, ее даже нет в его CV. Здесь имеются Чемберлин, Грей, Гриффитс, Мресс, Трейджер и Вейд. Но, конечно, правильный ответ - Рон Фейджин (Ron Fagin), у которого около десяти публикаций. Эти ребята-теоретики всегда побивают нас, ребят-системщиков. А Фрэнк Кинг написал "The phonetic encoding of word-components for the computer input of Chinese characters". Это его единственная публикация в списке. Я пущу его по кругу, и люди смогут посмотреть. В нем много хороших вещей.
Вернемся к основной теме. Несмотря на наличие некоторой оппозиции, мы планируем посвятить по крайней мере часть этой дневной сессии материалу до 1982 г. Есть ли замечания или предложения? Потому что мы не все сделали; мы не поговорили про совместные исследования; мы не упомянули взаимодействия с Санта-Тереза. И поскольку ланч начнется в полдень, у нас имеется всего 40 минут. У нас есть видеоленты, которые мы собираемся вам показать. Мы покажем вам небольшой набор слайдов до того, как идти на ланч. OK? Некоторые из вас могли видеть слайды прошлым вечером. У нас имеются видеоленты той эпохи, начиная с 1979 г., и вы можете увидеть, как выглядели тогда, если окажетесь на ленте.
Под редакцией
Перевод: Сергей Кузнецов
Страницы: 5
Под редакцией
Перевод: Сергей Кузнецов
Страницы: 6
Под редакцией
Перевод: Сергей Кузнецов
Страницы: 7
VS/QUERY (QMF)
Пат Селинджер
: Итак, мы переходим к следующему пятнадцатилетию. Сейчас мы находимся где-то в середине 80-х. Мы собираемся завершить обсуждение VS/QUERY, а затем Джон Науман приступит к эпохе DB2. Боб? VS/QUERY.
Боб Джойллс
: Спасибо, Пат. После Плана B наступило время Плана A, меня попросили заняться новой работой по управлению проектами VS/QUERY и языков в Санта-Тереза. Может быть, ты не можешь быть отверженным - человеком, ответственным за внеплановую работу, и когда они решают, что ты прав, то не могут оставить тебя ответственным, это слишком затруднительно. Поэтому меня попросили заняться управлением VS/QUERY, проектом, находящимся в глубоко аварийном состоянии. VS/QUERY был продуктом, про который люди из отделения маркетинга в последние четыре или пять лет говорили: "Вы знаете, на самом деле, мы не понимаем все то, что вы делаете в Санта-Тереза, но мы хотим одну эту вещь. Дайте нам ее". И год за годом группа VS/QUERY как-то управлялась, но не была в состоянии поставить продукт. Они были в некотором роде в ловушке: встречались в Йорктауне с Мойше и другими людьми и решили, что QBE - это замечательно и что им необходимо иметь все функции QBE работающими в первом выпуске. И поскольку они знали, что язык SQL важен, им нужно было иметь SQL в своем продукте, и они хотели иметь еще и некоторые другие вещи. У них было около сорока человек и гора работы, которую нужно было сделать, а также убеждение, что все это должно быть сделано для первого выпуска. И у них всегда был повод - я думаю, опирающийся на одно и то же, о чем Пат говорила мне во время перерыва - у них имелся список проблем System R. Вы знаете, вот причина того, что мы не можем взять это готовым; в System R имеются эти проблемы и т.д. и т.п. И когда эта группа стала отчитываться передо мной, я задал вопрос типа: "Хорошо, и что же произошло, когда вы встречались с людьми из System R?" "О, мы не делали этого." Так что у них были проблемы, но они не пытались их разрешать.
Пат Селинджер: Я думаю, что одной из них было то, что при каждой ошибке диска система останавливалась и говорила "YSYSTERR".
Джим Грей
: У нас было тысяча семьсот обращений к SYSTERR. Это была большая помеха.
Пат Селинджер
: Мы сообщили Брюсу Линдсею об этой проблеме, он пришел, все пересчитал и поменял их на какой-то другой код ошибки. [смеется]
Боб Джойллс
: И они не сказали Ларри Эллисону.
Джим Грей
: Все они вызывали одну подпрограмму, называемую PANIC, и когда эта подпрограмма вызывалась ...
Боб Джойллс
: Я бы сказал, что имелось нечто вроде синдрома, который одинаково проявлялся у людей с разными моделями данных. И я надеюсь, что это не прозвучит цинично, но должен сказать, что многим людям был свойственен тот синдром, что они считали допустимым не добиваться прогресса, пока для этого имеется причина. И конечно, всегда имелась масса причин, поэтому значительный прогресс не достигался. Я бы сказал, что ребята из VS/QUERY ощущали себя пойманными в ловушку, потому что они думали, что приняли на себя обязательства за все эти вещи перед отделением маркетинга, и люди из маркетинга сказали им, что они должны иметь все эти функции QBE и т.д., а иначе они "не будут иметь продукт". В конце концов, после многочисленных обсуждений этого и собраний по поводу того, что в QBE не может транслироваться через SQL и, следовательно, какие функции из числа требуемых маркетингом будут отсутствовать, я впал в замешательство и перестал что-либо понимать. Я попросил дать мне список из десяти вещей, которые были бы недоступны в первом выпуске, поскольку их нельзя было транслировать через SQL. Потом я встретился с людьми из маркетинга и выяснил, что они не понимают, что это за вещи, а потому определенно не могут требовать их присутствия в продукте. И мы стали снижать масштабность системы до того уровня, на котором можно было получить пригодный к использованию продукт. Поскольку я ушел из IBM, то не знаю точно, как этот продукт был сделан, но, по крайней мере, когда он был выпущен, то являлся вполне успешным продуктом.
Пат Селинджер
: Это было очень прибыльное дело.
Боб Джойллс
: У них были все правильные составляющие для хорошего продукта: System R, некоторые идеи из QBE и, возможно, из других вещей ...
Роджер Миллер
: Боб, QMF - потрясающе успешный продукт. У нас была огромные затраты, поэтому мы были должны иметь высокую цену. Заказчики покупали продукт, и он стал очень выгодным.
Боб Джойллс
: Кто говорит, что ценообразование с учетом затрат не является правильным способом? Я полагаю, что с точки зрения System R мы годами испытывали с группой VS/QUERY массу переживаний и неприятностей. Я думаю, что это завершилось достаточно быстро, и они закончили проект, получив успешный продукт.
К. Мохан
: Так он отличается от QMF?
Боб Джойллс
: Нет, VS/QUERY было кодовым названием; прошу прощения: QMF.
Пат Селинжер
: И затем мы перешли к DB2.
Боб Йост
: Вы действительно запускали это на незаконнорожденной версии System R? В течение долгого времени не было DB2. Вы взяли некоторый код, заставили его работать в своей среде, получив возможность реально тестировать средства запросов.
Боб Джойллс
: Правильно. Я не помню, поставляли ли они QMF вместе с черным ящиком, содержащим старую версию System R.
Боб Йост
: Это было только для целей тестирования, поскольку в это время опорная система не существовала.
Боб Джойллс
: Итак, мы собираемся послушать, что скажет Джон про DB2? Хорошо.