|
| ||||||||||||
| ||||||||||||
|
2000 г
Воспоминания о влиятельных статьяхRichard Snodgrass, editor Кинокартина Норы Эфрон "Вы получили послание от Бога" является хвалебной песней Всемирной Паутине, возможно, наиболее видимому вкладу компьютерной науки, в частности, в связи с созданием средств общения небольших сообществ этого разрозненного мира. В основной сцене третьего акта главная героиня Кэтлин Келли, роль которой исполняет Мег Райен, говорит: "Что бы и где бы не происходило, оно должно начинаться с индивидума". Эта колонка посвящена процессу обогащения научных знаний на основе изучения сугубо частных мнений о способах распространения и развития идей. В предыдущих выпусках содержались впечатляющие воспоминания по поводу влияния некоторых публикаций на известных и авторитетных в сообществе баз данных людей. В данном выпуске я возвратился к истокам и попросил авторов высказаться о том, как повлияли влиятельные статьи на их собственное влияние. Поэтому правильным подзаголовком было бы следующее "Воспоминания о статьях, повлиявших на создание влиятельных статей". Упоминаемые статьи охватывают всю историю баз данных, начиная с работ конца 1950-х и заканчивая статьей про AlphaSort. Поскольку у меня имеется список имен 40-летних людей, которых хотелось бы спросить об их любимых статьях, мне кажется разумным передать бразды правления. Следующие выпуски будут редактироваться Кеном Россом, который уже появлялся в этой колонке. Я рассчитываю на его вклад и благодарю всех, кто участвовал в колонке под моим редактированием. Rakesh Agrawal. IBM Almaden Research Center, ragrawal@almaden.ibm.com [A.V. Aho and J.D. Ullman. "The Universality of Data Retrieval Languages", inProceedings of Symposium on Principles of Programming Languages, pp. 110-117, 1979] Ключевым вопросом, касающимся разработки языков запросов, является требуемая мощность этих языков. В этой блистательной статье Ахо и Ульман провозглашают два принципа, которым должны соответствовать языки запросов. Затем они показывают, что хотя реляционная алгебра и исчисление Кодда удовлетворяет их принципам, имеются запросы с ближайшей неподвижной точкой, которые не противоречат этим принципам, но не могут быть выражены на предложенных языках. Далее в статье рассматриваются расширения реляционной алгебры для возможности формулировки подобных запросов и обсуждаются методы их оптимизации в расширенной алгебре. Наконец, авторы определяют язык программирования, который может служить моделью вычислений операторов выборки из реляционной базы данных. Путем определения четырех разных интерпретаций оператора for в этом языке: for t in R do <statement> они показывают, что имеются разные классы вычислимых функций. При одной интерпретации язык эквивалентен реляционным исчислению или алгебре; при другой, более общей интерпретации язык по прежнему не менее мощен, чем алгебра, но включает операцию взятия фиксированной точки. В этом состоит огромное богатство этой 8-страничной статью. Хотелось бы смочь написать нечто подобное. Philip Berrstein, Microsoft Research, philbe@microsoft.com [R.H. Thomas, "A Majority Consensus Approach to Concurrency Control for Multiple Copy Databases", ACM TODS 4 (2), pp. 1800-209, June, 1979] В 1976 г. люди только начали размышлять о том, как можно было бы добавить распределенные транзакции и репликацию к возможностям системы баз данных. Я уверен, что первая хорошая статья - и до сих пор одна из лучших - была написана Бобом Томасом. Первый раз она была опубликована в 1976 г. в виде технического отчета Bolt Baranek and Newman и широко распространилась в этой форме. В статье были выдвинуты две очень важные идеи, которые активно используются сегодня. Во-первых, был определен консенсус большинства как способ определения возможности использования процессов при условии коммуникационных сбоев. Впоследствии эта идея была расширена Дейвом Гиффордом (Dave Gifford) в виде взвешенного большинства, или кворума. В большинстве современных алгоритмов распознавания сбоев используется этот метод. Во-вторых, в статье была введена возможность использования временных меток для пометки транзакций, изменений и элементов данных. Правило, основанное на временных метках, позволяют изменениям распространяться в любом порядке, хотя все реплики элемента данных в конце концов принимают одно и то же значение. Сегодня этот метод применяется в большинстве справочных сервисов мирового уровня, а также в некоторых интегрированных алгоритмах репликации в системах баз данных. Статья очень сильно повлияла на начальные работы в области распределенных транзакций и репликации, в особенности на мои работы. Подход временных меток обосновал нашу работу над распределенной СУБД SDD-1 в Computer Corporation of America (iрошло, но не забыто). Перед нами стояла трудная задача разработать теорию сериализации при учете аспектов репликации и консенсуса большинства. Эти проблемы мотивировали некоторые ранние работы Лезли Лампорт (Leslie Lamport) в области надежных распределенных вычислений. Более того, многие интегрированные алгоритмы репликации основываются на векторах временных меток и непосредственных потомках этого алгоритма. Высокая концентрация новых идей и влияние как исследовательских работ, так и продуктов позволяют мне считать эту статью любимой в литературе о транзакциях. Don Chamberlin, IBM Almaden Research Center, chamberlin@almaden.ibm.com [E.F.Codd. "A Relational Model of Data for Large Shared Data Banks", Communications of the ACM, 13 (6): 377-387, June, 1970] Статьей, изменившей направление моей карьеры, была знаменитая статья Теда Кодда, в которой он ввел реляционную модель данных, определил концепцию независимости данных и описал как можно использовать реляционную алгебру в качестве языка запросов. В этой же статье Кодд заложил основу теории нормализации баз данных и предложил использовать исчисление предикатов как критерий лингвистической мощности. Я не знаю ни одной другой статьи, где было бы введено столько значимых концепций. До прочтения статьи Кодда я работал над навигационными интерфейсами к базам данных, которые тогда использовались. Статья открыла мне глаза на то, что реляционный подход дает возможность привести сложную программу к простому и элегантному логическому выражению. Мне стало понятно, что реляционная модель произведет то же воздействие на управление базами данных как то, что произвели языки высокого уровня на программирование в целом. Как кажется, задачи, поставленные в статье Кодда состоят в определении синтаксиса, понятного для непрограммистов, и в нахождении методов реализации такого синтаксиса без утраты эффективности интерфейсов низкого уровня. В большой степени решением этих задач я занят со времени прочтения статьи Кодда. Jim Gray, Microsoft Research, gray@microsoft.com [D. Bitton, D.J. DeWitt, and C.Turbifill. "Bechmarking Database Systems: A Systematical Approach". In Proceedings of the International Conference on Very Large Data Bases, M. Schkolnick and C. Thanos, eds, Florence, Italy, Morgan Kaufmann, October, 1983] Эта статья оказала громадное влияние на всех нас. Она заложила основу исследований в области оценки производительности баз данных. В статье была предложена методология тестовых наборов и был предложен свободно доступный в исходных текстах тестовый набор, используемый даже сегодня. Своевременно были установлены критерии производительности для сообщества принятия решений. Статья также привела к добавлению статьи ДеВитта к продуктам производителей, поэтому подобную статью больше никогда невозможно написать (статья не дает возможности пользователям публиковать без разрешения результаты производительности). Я любил и ненавидел эту статью. Мне нравился тот факт, что это настоящая наука. Статья была посвящена хорошо документированным и воспроизводимым экспериментам и интересным и удивляющим результатам. Предложенный тестовый набор стал стандартной составляющей моих инструментальных средств измерения производительности. Но мне ужасно не нравилось то, для сканов и соединений использовались неявно определенные базы данных. Эта модель казалась слишком далекой от реально используемых баз данных (в моем мире). В ней отчетливо проявлялась дихотомия DSS и OLTP. Я создавал системы обработки транзакций и чувствовал себя брошенным. Поэтому я организовал неформальную группу исследователей и практиков (включая авторов этой статьи) для определения тестового набора для режима оперативной обработки транзакций (DebitCredit, Copy, Sort). Результаты этой работы были отражены в статье в Datamation ("A Measure of Transaction Processing Performance", Anon. et al., Datamation, 31 (7), pp. 112-118, April 1985) и в результате привели к TPC-A. Don Haderle, IBM Santa Teresa Lab, haderle@us.ibm.com [T. Haerder and A. Reuter. "Principles of Transaction-Oriented Database Recovery". In ACM Computing Surveys, 15 (4), pp. 287-318, December, 1983] Много лет я занимался в IBM разработкой коммерческих операционных систем реального времени и систем управления данными. В 1976 г. я прочитал мартовский номер ACM Computing Survey, посвященный системам управления базами данных. Я был взволнован. При том, что я работал над основами программного обеспечения, другие люди говорили о работе с данными простым и дисциплинированным способом. Меня удивило, что за углом от меня толпятся исследователи System/R. В течение года я вошел в зарождающуюся группу, целью которой было создание менеджера баз данных следующего поколения, из которого вышла DB2. Несколько лет я занимался разработкой компонентов DB2. Статья Хейрдера и Рейтера дала ясную абстракцию управления базами данных и основные требуемые свойства: атомарность, согласованность, изолированность и надежность. Эта статья предоставила мне основу к рассмотрению управления базами данных с точки зрения пользователя, а не производителя. При наличии четких определений свойств проще развивать возможности системы с целью решения проблем заказчика. Won Kim, Cyber Database Solutions, Inc., won.kim@cyberdb.com [T. Atwood, "An Object-Oriented DBMS for Design Support Applications", In Proceedings of the IEEE CompInt Conference, Montreal, Canada, Septemper, 1985] За последние двадцать лет около дюжины статей помогло формированию моих собственных идей в области исследований баз данных Однако при том, что десять лет я связан с направлением объектно-ориентированных и объектно-реляционных баз данных, я должен отметить, что наибольшее влияние на меня оказала статья Тома Этвуда (в статье тома описывались планируемые возможности объектно-ориентированной системы баз данных, основанной на Vbase C++, которую позже стали называть Ontos; соответствующий доклад был признан лучшим на конференции). Летом 1985 г., когда я работал в MCC, меня попросили переориентировать свой проект по базам данных для CAD в сторону объектно-ориентированных баз данных, поскольку в MCC программы CAD, Human Interface и AI все разрабатывались с использованием CommonLISP на LISP-машинах Flavors и Symbolics, и от них поступил запрос к программе Database, к которой относился я, разработать объектно-ориентированную базу данных, если люди из программы Database рассчитывают на то, что разрабатываемая ими технология будет встроена в другие технологии MCC. Когда я приступил к проекту объектно-ориентированной базы данных, первое, что требовалось понять, это то, что такое объектно-ориентированная база данных, а еще раньше -- что такое "объект". В течение нескольких месяцев меня смущало и огорчало, когда люди из MCC говорили мне всего лишь, что "любая вещь по нашим солнцем есть объект", "объект может быть до метода, после метода, во время метода", "объектно-ориентированная база данных делает объекты долговременно хранимыми", "объектно-ориентированная база данных делает SQL полностью бесполезным", "блокировки очень опасны" и т.д. Вся эта тарабарщина привела к тому, что объектно-ориентированные базы данных казались мне чем-то ужасно загадочным. Когда я выслушал доклад Тома Этвуда, а потом во время банкета, сидя рядом с ним, услышал его рассказ про язык определения типов, экземпляры типов, вложенные транзакции, я неожиданно понял, что нужно делать. Описанная Томом Этвудом система, конечно, была системой баз данных, но в первых выпусках Vbase отсутствовали разные возможности традиционных баз данных, а упор делался на поддержку долговременного хранения объектов Си++, что приводило к путанице на рынке. В любом случае в течение примерно года после этого дня я вместе со своей группой по разработке объектно-ориентированной базы данных ORION занимался систематическим переосмыслением всех архитектурных аспектов систем баз данных и старался понять, как влияют на архитектуру системы баз данных такие понятия как наследования, типы, ссылки и т.д. Bruce Lindsay, IBM Almaden Research Center, bruce@almaden.ibm.com [C. Nyberg, T. Barclay, Z. Cvtanovic, J. Gray, and D. Lomet. "AlphaSort: A RISC Machine Sort". In Proceedings of the ACM SIGMOD International Conference on Management of Data, R. Snodgrass and M. Winslett, eds, pp. 233-242, June, 1994] Статья про AlphaSort впечатляюще иллюстрирует важность ответственного кодирования кэша. До прочтения этой простой статьи я был в состоянии беспечно игнорировать тот неприятный факт, что системы памяти процессоров развиваются в сторону иерархий, что должно приниматься во внимание при проектировании и разработке систем. Под влиянием этой статьи я осознал, что для настройки баз данных потребуются новые инструменты (такие, как реструктуризация кода в расчете на обратную связь) и новый упор на стратегии обработки запросов. Например, продуманное кэширование приводит к возможности конвейерных планов выполнения запросов! C. Mohan, IBM Almaden Research Center, mohan@almaden.ibm.com [R. A. Crus. "Data Recovery in IBM Database 2". IBM Systems Journal, 23(2) : 178-188, 1984] В середине 80-х в контексте проекта Starburst в Almaden Research Center я решил вернуться к некоторым оставшимся открытыми со времени System R проблемам в области управления согласованностью и восстановления (Concurrency Control and Recovery - CC&R). Я пытался понять, как устроены CC&R в существующих СУБД, и наткнулся на статью Дика Краса. Статья предоставила мне очень хорошее введение в то, как были реализованы различные виды восстановления в раннем выпуске DB2. Без использования необходимых терминов в статье обсуждались такие понятия как журнализация с упреждающей записью, компенсационные журнальные записи и восстановление на основе журнальных последовательных номеров (Log Sequence Numbers - LSN). Эти описания дали мне возможность понять, чем эти базовые понятия стратегии восстановления в DB2/MVS отличаются от соответствующего подхода в System R. Статья также сделала явными для меня сложные проблемы (например, проблемы частичной записи страницы на диск), которые должны решаться в реальной системе и которым ранее не посвящались исследовательские публикации. Хотя в статье не разъяснялись обоснования принятия того или иного проектного решения, я взял на себя задачу выработки таких обоснований, а потом началась серия исследований, которая в конце концов привела к созданию семейства алгоритмов CC&R ARIES и появлению многочисленных статей, как моих собственных, так и статей соразработчиков из IBM. Хотя немного людей в сообществе исследователей читало статью Дика, на меня она оказала очень большое влияние. В то время, когда среди разработчиков коммерческих СУБД не было принято писать подробные технические статьи, Дик опубликовал статью с необычным числом деталей про внутреннюю организацию СУБД DB2/MVS для мейнфреймов. Ron Morrison, University of St. Andrews, ron@st-and.ac.uk Эта статья появилась в "серой" литературе примерно за год до публикации. В это время я пытался обрисовать связь между сложной системой типов и схемами баз данных. В своих системах программирования с долговременным хранением мы уже хранили код в базе данных, в форме функций и сложных данных. Мы обнаружили, что для реализации долговременного хранения требуется один динамический тип, но хотели в целом сохранить безопасность статической типизации, не беспокоясь о ее ограниченииях. Статья представляет собой обзор новых подходов к размышлениям о типах. Конечно, мы знали про полиморфизм (универсальную квантификацию) по работе Стрейчи (Strachey), но на основе этой статьи поняли связь этого понятия с параметризованными типами и абстрактными типами данных (квантификация по существованию). Это придало нам уверенность при поиске новых и эффективных способов реализации полиморфизма в языке с долговременным хранением Napier88 и при реализации квантификации по существованию в системах баз данных. Теперь я знаю, что все концепции этой статьи отразились в других статьях. Однако это единственная статья, в которой идеи собраны вместе и выражены в виде, понятным для компьютерного ученого. Я по-прежнему рекомендую ее своим студентам. Raymond Reiter, Department of Computer Science, University of Toronto, reiter@ai.toronto.edu [J. McCarthy. "Programs with Common Sense", in Proceedings of the Teggington Conference on the Mechanization of Thought Processes, December, 1958. Available at http://www-formal.stanford.edu/jms/mcc59.html] Мне следует начать с небольшого замечания. Хотя я опубликовал несколько работ в "основной" литературе баз данных, я не рассматриваю их как непосредственно относящиеся к базам данных. И я не отношу себя к исследователям баз данных. Мои интересы всегда относились к проблематике представления знаний о мире и к методам использования этого представления. С этих позиций аспекты представления в теории баз данных, искусственном интеллекте, высокоуровневой роботехнике, естественных языках и даже некоторых языках программирования очень близки. Разделение этих сообществ в computer science является неудачным и вредным. Все это привело меня к статье 1958 года МакКарти, в которой, по-видимому, впервые была предложена математическая логика как язык представления знаний для искусственного интеллекта. В этой статье МакКарти отчетливо обосновал преимущества декларативных предложений для представления знаний и предложил свою систему-"советчика", которая "инструктирует" по поводу предложений исчисления предикатов и использует дедукцию для определения того, как это впоследствии подействует на поведение системы. Фактически все мои исследования и те, которые делались во многих подкомитетах по искусственному интеллекту и базам данных, основывались на этой очень ранней работе МакКарти. Carlo Zaniolo, Computer Science Department, UCLA, zaniolo@cs.ucla.edu [J.M. Smith and D.C.P. Smith. "Database Abstractions: Aggregation and Generalization". TODS 2(2), pp. 105-133, June, 1977] По мере того как реляционный подход к организации баз данных становился все более широко распространенным, возникли серьезные опасения, что "спартанская простота" этого подхода сможет обеспечить поддержку более богатой семантики связей в базе данных. В 1977 г. Джон и Диана Смит опубликовали новаторскую статью, в которой предлагалось моделировать связи в базе данных на основе ортогональных измерений агрегации и обобщения. Простота и элегантность их модели убедила меня в том, что такая обогащенная семантика может поддерживаться при минимальных расширениях реляционной модели данных и соответствующих языков запросов. И действительно, в GEM была достигнута упомянутая цель путем комбинирования простых понятий, уже известных исследователям реляционных баз данных, таких как идентификаторы кортежей, неопределенные значения и путевые выражения (на что также повлияли функциональные языки запросов). Многие из этих идей в настоящее время пересмотрены и применяются при разработке объектно-реляционных баз данных и ориентированных на них расширениях SQL: И в этом выражается признание значимости статью Джона и Дианы Смит. C. Zaniolo. "The Database Language GEM", in Proceedings of the ACM SIGMOD International Conference on Management of Data. D.J. DeWitt and G. Gardarin, eds, pp. 207-218, 1983. S. Tsur and C. Zaniolo. "An Implementation of GEM-Supporting a Semantic Data Model on a Relational Back-End", in Proceedings of the SIGMOD International Conference on Management of Data, B. Yormark, edd, pp. 286-295, 1984. Ошибки В информации о статье, обсуждавшейся Патриком Вальдурезом (Patrick Valduriez) в мартовском выпуске 1999, была допущена неверная ссылка. Вот правильный вариант: M.M. Zloof. "Query-By-Example: Operations on the Transitive Closure", IBM Research Report RC 5526, Yorktown Heights, New York, October, 1976. |
|
CITForum © 1997–2025