Logo    
Деловая газета CitCity.ru CITKIT.ru - все об Open Source Форумы Все публикации Учебный центр Курилка
CitForum    CITForum на CD    Подписка на новости портала Море(!) аналитической информации! :: CITFORUM.RU
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

23.04.2017

Google
WWW CITForum.ru
С Новым годом!
2006 г.

Обсуждение некоторых критических замечаний в адрес Третьего Манифеста

К. Дж. Дейт
Перевод -
Сергей Кузнецов

Оригинал: A Discussion of Certain Criticisms Concerning The Third Manifesto

Поскольку эта заметка сама является введением к трем статьям, перевод которых также предлагается вашему вниманию, я ограничусь очень кратким текстом. Мне кажется, что эти статьи Дейта являются очень полезным дополнением к книге Databases, Types, and the Relational Model (про нее см. ниже и в других статьях этой серии). Вместе с тем, мне показалось, что статьи можно с пользой читать и без предварительного знакомства с этой книгой. В любом случае, я надеюсь, что эти статьи дадут вам представление о некоторых проблемах, существующих в области языковых и модельных основ баз данных, и о путях решения этих проблем, предлагаемых Хьюго Дарвеном и Кристофером Дейтом.

С.Д. Кузнецов

Задайте нелепый вопрос, и вы на полпути к уместному ответу

Джейкоб Броновски

Эта заметка является кратким введением в серию из трех отдельных, но взаимосвязанных статей, относящихся к Третьему Манифесту. Третий Манифест – для краткости, просто Манифест – это наше с Хью Дарвеном формальное предложение основания для систем управления данными и базами данных (СУБД). Подобно исходным статьям Кодда, посвященным реляционной модели данных, наш Манифест можно считать абстрактной моделью для разработки СУБД. По сути, он состоит из набора тщательно подобранных принципов, представленных в форме предписаний и запретов, приверженность к которым мы с Хью требуем в гипотетическом языке программирования баз данных, называемом нами языком D. Различные предписания и запреты подробно описаны в нашей книге Databases, Types, and the Relational Model: The Third Manifesto, 3rd edition (Addison-Wesley, 2006), которую я далее буду называть «книгой о Манифесте».

Далее, любая научная попытка почти обязательно подвергается анализу и сомнениям, и в этом отношении Манифест и язык D не являются исключениями. На самом деле, некоторые исправления, которые мы смогли сделать в последние годы, являются прямым результатом критических замечаний, прозвучавших в разное время. В ряде других случаев мы смогли показать, что по некоторым причинам критика была безосновательной; в некоторых же случаях вопрос еще не решен в том смысле, что остается неясным, требуются ли какие-либо изменения. Три представляемые вашему вниманию статьи связаны с критическими замечаниями, частично или полностью относящимися к этой третьей категории. Эти критические замечания выявились в ходе частной переписки в конце 2005 – начале 2006 гг. между Хью и двумя людьми (имена которых здесь умышленно не приводятся). По существу, эти два критика утверждают следующее:

  1. В языке D допускаются неразрешимые (являющиеся парадоксальными) выражения.
  2. От языка D требуется вычислительная полнота.
  3. От языка D требуется поддержка переменных отношений (relvar) и операции присваивания отношений.

Сразу скажу, что второе и третье утверждения являются, безусловно, верными (по крайней мере, они верны настолько, насколько верно наше допущение (явно выраженное в книге о Манифесте) о том, что язык D обладает императивным стилем). Вероятно, верным является и первое утверждение (по крайней мере, такое допущение не повредит целям этой вводной заметки). Поэтому в каждом случае проблему представляет не само утверждение, а выводимые из него следствия. Я посвящаю каждому из этих утверждений по одной из следующих трех статей:

  1. Гедель, Рассел, Кодд: Рекурсивная золотая чехарда (Gödel, Russell, Codd: A Recursive Golden Crowd)
  2. А теперь про нечто полностью вычислительное (And Now for Something Completely Computational)
  3. Быть или не быть значению переменной (To Be Is to Be a Value of a Variable)

Пожалуйста, примите к сведению, что эти статьи не представляют собой последнее слово по поводу обсуждаемых вопросов, это всего лишь моя немедленная реакция на три критических замечания (в частности, на вынесенные ими на поверхность различные проблемы, которые могут быть тщательно проанализированы). Как я уже говорил, статьи являются взаимосвязанными; однако я писал их таким образом, чтобы обеспечить их независимость друг от друга – частично потому, что соответствующие вопросы можно, в известной мере, обсуждать по отдельности, но главным образом, по той причине, что в противном случае было труднее воспринимать мои аргументы. Однако я должен предупредить вас, что это мое решение не означает, что материал статей не перекрывается.

Есть еще пара предварительных замечаний, которые мне следует привести в этом введении. Первое относится к тому, что мы называем Tutorial D и его связи с языком D. Название D является родовым – оно используется в книге о Манифесте для обозначения любого языка, соответствующего принципам, которые заложены в Манифесте. Таким образом, может существовать любое число различных языков, оцениваемых как допустимый D. Язык Tutorial D является одним из таких языков; он определяется, более или менее формально, в самой книге о Манифесте и используется во всей книге (и в других публикациях) как базис для примеров. Однако, к сожалению, наши критики часто не проводят должного различия между D и Tutorial D, хотя между ними существует явное логическое различие. В результате иногда трудно сказать, направлена ли критика на Манифест в целом или же на Tutorial D, рассматриваемый как конкретная и, возможно, дефектная попытка определения D. В этой ситуации иногда бывает трудно отвечать на критические замечания.

Что касается второго предварительного замечания, я начну с немного измененной выдержки из самой книги о Манифесте:

Мы должны подчеркнуть, что мы не предлагаем какую-либо разновидность «новой» или «расширенной» реляционной модели. Скорее, мы говорим о том, что можно было бы назвать «классической» версией этой модели; мы стараемся предоставить настолько тщательное и точное описание этой модели, насколько способны на это. Действительно, мы пользуемся возможностью расставить точки над несколькими i и черточки в нескольких t (т.е. немного прибраться там и сям); однако модель в том виде, в котором мы ее описываем, в существенных аспектах не отличается от исходной версии Кодда, зафиксированной [в его ранних статьях] … Идеи Манифеста ни в коей мере не направлены на замену идей реляционной модели; скорее, идеи реляционной модели используются как основа для построения идей Манифеста … По нашему мнению, Манифест соответствует духу исходных работ Кодда и следует заложенному им пути. Нас интересует эволюция, а не революция.

Причина, по которой я процитировал здесь этот длинный пассаж, объясняется феноменом, наблюдаемом нами в некоторых критических замечаниях по поводу нашей работы, а именно, в тенденции к жалобам на то, что наши предложения в чем-то конфликтуют с собственными статьями Кодда – из чего, вероятно, должна следовать ложность наших предложений. Мы отвергаем существование такого конфликта как возможного повода для критики, и мы отвергаем выводимое из этого следствие. С нашей точки зрения, гений Кодда проявился, прежде всего, в его изобретении реляционной модели, а также в его исключительной серии статей по этому поводу в 1969-1974 гг. Однако из этого не следует, что мы безоговорочно согласны со всем, что написал Кодд о реляционной модели данных. Поэтому, безусловно, в некоторых аспектах Манифеста наши идеи отклоняются от идей Кодда – спешу добавить, что не во многих аспектах, а лишь в некоторых. Показательным примером является поддержка неопределенных значений; Кодд этого требовал (кроме как в ранних статьях о реляционном подходе), а Манифест отвергает.

Заканчивая это введение, я бы хотел поблагодарить Хью Дарвена за его анализ и критику ранних вариантов всех трех статей.

Первая статья цикла

Размещение рекламы — тел. +7 495 4119920, ICQ 232284597

Подписка на новости IT-портала CITForum.ru
(библиотека, CITKIT.ru, CitCity)

Новые публикации:

24 декабря

CITKIT.ru:

  • Новогодние поздравления
  • Сергей Кузнецов. Цикл Операционные системы: Ностальгия по будущему:

  • Алексей Федорчук. OpenSolaris 2008.11 Release

  • Сергей Голубев:

  • Евгений Чайкин aka StraNNik (Блогометки):

    17 декабря

  • С.Д.Кузнецов. Базы данных. Вводный курс

    10 декабря

    CITKIT.ru:

  • OpenSolaris 2008.11 Release

  • Альтернативные ОС: две грустные истории (С.Кузнецов)
  • Nokia N810 — доведение до ума
  • CitCity:

  • Платформа 2009: заоблачные перспективы Microsoft

    4 декабря

  • Лекция С.Д.Кузнецова Понятие модели данных. Обзор разновидностей моделей данных

    CITKIT.ru:

  • OpenSolaris 2008.11 Release. Первые впечатления

  • Linux vs FreeBSD: продолжим "Священные войны"?

  • Nokia N810 as is

  • Индульгенция для FOSS

  • Друзья СПО'2008

    26 ноября

  • Нечеткое сравнение коллекций: семантический и алгоритмический аспекты

    CitCity:

    CITKIT.ru:

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • 19 ноября

  • Проблемы экономики производства крупных программных продуктов

  • Язык модификации данных формата XML функциональными методами

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Заметки к книге:

  • FreeBSD: монтирование сменных устройств и механизм HAL
  • Текстовый редактор ee

    12 ноября

  • Правило пяти минут двадцать лет спустя, и как флэш-память изменяет правила (Гоц Грейф, перевод: Сергей Кузнецов)

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:
  • OSS в России: взгляд правоведа (В.Житомирский)

  • Новая статья из цикла С.Голубева "Железный марш":

    29 октября

  • О некоторых задачах обратной инженерии

  • Веб-сервисы и Ruby

  • Тестирование web-приложений с помощью Ruby

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

  • PuppyRus Linux - беседа с разработчиком (С.Голубев)

  • Сергей Кузнецов. Заметка не про Linux

    22 октября

  • Обзор методов описания встраиваемой аппаратуры и построения инструментария кросс-разработки

    CITKIT.ru:

  • Сергей Кузнецов. Почему я равнодушен к Linux

  • Глава из книги А.Федорчука
    Сага о FreeBSD:
  • Что надо иметь
    3. Базовые познания

    CitCity:

  • Управление IT-инфраструктурой на основе продуктов Microsoft

    15 октября

  • Методы бикластеризации для анализа интернет-данных

    CitCity:

  • Разъемы на ноутбуках: что они дают и зачем их так много?
  • AMD Puma и Intel Centrino 2: кто лучше?

    CITKIT.ru:

  • Новый цикл статей С.Голубева
    Железный марш:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    8 октября

  • Автоматизация тестирования web-приложений, основанных на скриптовых языках
  • Опыт применения технологии Azov для тестирования библиотеки Qt3

    Обзоры журнала Computer:

  • SOA с гарантией качества
  • Пикоджоуль ватт бережет
  • ICT и всемирное развитие

    CitCity:

  • Пиррова победа корпорации Microsoft

    CITKIT.ru:

  • Главы из книги А.Федорчука
    Сага о FreeBSD:

    Статья из архива:

  • Я живу в FreeBSD (Вадим Колонцов)

    Новые Блогометки:

  • Перекройка шаблона Blogger или N шагов к настоящему
  • Blogger. Comment style
  • Screenie или глянцевый снимок экрана

    2 октября

    CITKIT.ru:

  • Сага о FreeBSD (А. Федорчук)

    Zenwalk: пакет недели

  • Банинг — интеллектуальное развлечение (С.Голубев)

    CitCity:

    25 сентября

  • Клермонтский отчет об исследованиях в области баз данных

    CITKIT.ru:

  • Пользователям просьба не беспокоиться... (В.Попов)

  • Снова про ZFS: диск хорошо, а два лучше
  • Командная оболочка tcsh (А.Федорчук)

    Zenwalk: пакет недели

    17 сентября

  • T2C: технология автоматизированной разработки тестов базовой функциональности программных интерфейсов
  • Технология Azov автоматизации массового создания тестов работоспособности

    CITKIT.ru:

  • FreeBSD: ZFS vs UFS, и обе-две — против всех (А.Федорчук)

    Zenwalk: пакет недели

  • Дачнет — практика без теории (С.Голубев)

    10 сентября

  • За чем следить и чем управлять при работе приложений с Oracle
  • Планировщик заданий в Oracle
    (В.Пржиялковский)

    CITKIT.ru:

  • Microsoft: ответный "боян" (С.Голубев)

  • Причуды симбиоза, или снова "сделай сам" (В.Попов)

  • Файловые системы современного Linux'а: последнее тестирование
  • Zsh. Введение и обзор возможностей
    (А.Федорчук)

    Описания пакетов Zenwalk: Zsh, Thunar, Thunar-bulk-rename, Xfce4-places-plugin, Xfce4-fsguard-plugin

    Блогометки:

  • Google Chrome
  • Лончер для ASUS Eee PC 701

    3 сентября

    CITKIT.ru:

  • Заметки о ядре (А.Федорчук):

    Добавлены описания пакетов Zenwalk: Galculator, Screenshot, Gnumeric, Pidgin

    В дискуссинном клубе:

  • И еще о Википедии и Google Knol

  • Лекция для начинающего линуксоида (С.Голубев)

    26 августа

  • Транзакционная память (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Открыт новый проект Zenwalk: пакет недели

  • Статья Текстовые процессоры и их быстродействие: конец еще одной легенды?

    21 августа

    CITKIT.ru:

  • Почему школам следует использовать только свободные программы (Ричард Столлман)
  • Беседа Сергея Голубева с учителем В.В.Михайловым

  • Википедия или Гуглезнание? Приглашение к обсуждению (Алексей Федорчук)
  • Народная энциклопедия от Google (StraNNik)

  • Обзор Mandriva 2009.0 Beta 1 Thornicrofti
  • Новичок в Линукс: Оптимизируем Mandriva 2008.1

  • Книга Zenwalk. Приобщение к Linux:

    13 августа

    CitCity:

  • Мирный Atom на службе человеку. Обзор платы Intel D945GCLF с интегрированным процессором
  • Обзор процессоров Intel Atom 230 на ядре Diamondville

  • iPhone - год спустя. Скоро и в России?

    CITKIT.ru:

  • Интермедия 3.4. GRUB: установка и настройка (из книги Zenwalk. Приобщение к Linux)

    6 августа

  • СУБД с хранением данных по столбцами и по строкам: насколько они отличаются в действительности? (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • Интермедия 2.2. Что неплохо знать для начала (из книги Zenwalk. Приобщение к Linux)

  • И снова про шрифты в Иксах (А.Федорчук)

  • 20 самых быстрых и простых оконных менеджеров для Linux

  • Дело о трех миллиардах (С.Голубев)

    30 июля

  • OLTP в Зазеркалье (Пересказ: С. Кузнецов)

    CitCity:

  • Будущее BI в облаках?
  • Тиражные приложения и заказная разработка. Преимущества для заказчика
  • Дискуссия со сторонниками заказной разработки

    CITKIT.ru:

  • Новые главы книги Zenwalk. Приобщение к Linux:
  • Глава 8. Пакеты: средства установки, системы управления, системы построения
  • Глава 9. Zenwalk: репозитории, пакеты, методы установки

    23 июля

    CITKIT.ru:

  • Все против всех. 64 vs 32, Intel vs AMD, tmpfs vs ext3
  • Две головы от Intel

  • Zenwalk: обзор штатных приложений (глава из книги "Zenwalk. Приобщение к Linux")

  • Нормально, Григорий...

    16 июля

    Обзоры журнала Computer:

  • Перспективы и проблемы программной инженерии в XXI веке
  • Большие хлопоты с большими объемами данных
  • Перспективы наноэлектроники

    CITKIT.ru:

  • Интермедия о лицензиях (А.Федорчук. "Zenwalk. Приобщение к Linux")

  • Есть ли будущее у KDE?

  • Linux в школе: альтернативный вариант в задачах

  • Шифр (приключения агента Никодима)

    10 июля

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия вступительная. Linux или GNU/Linux? Как вас теперь называть?
  • Глава 5. Среда Xfce
  • Глава 6. Xfce: приложения и плагины

  • ZUR (Zenwalk User Repository) FAQ

    2 июля

  • Персистентность данных в объектно-ориентированных приложениях (С. Кузнецов)

    CITKIT.ru:

  • Новые разделы книги А. Федорчука Zenwalk. Приобщение к Linux:
  • Интермедия 1.2. Дорога к Zenwalk'у. Период бури и натиска
  • Интермедия 3.3. Немного о Linux'е и "железе"
  • Глава 4. Настройка: инструментами и руками
  • Интермедия 4.1. Zenpanel и конфиги: поиски корреляции

  • Интервью с Жан-Филиппом Гийоменом, создателем дистрибутива Zenwalk

  • Linux в школе: первые итоги (С. Голубев)

    25 июня

    CITKIT.ru:

  • Zenwalk. Приобщение к Linux (А. Федорчук)

  • Логика и риторика (С.Голубев)

  • Технология Tru64 AdvFS

  • Ханс Райзер предлагает отвести полицейских к телу Нины

    18 июня

  • Проекты по управлению данными в Google (Пересказ: С. Кузнецов)

    CITKIT.ru:

  • ОС и поддержка "железа": мифы и реальность (А. Федорчук)

  • Linux в школе: другие дистрибутивы

  • Пинок (С. Голубев)

    4 июня

  • Ландшафт области управления данными: аналитический обзор (С. Кузнецов)

    CITKIT.ru:

  • Linux в школе: слово заинтересованным лицам

  • SlackBuild: пакеты своими руками

  • Linux от компании Novell. Установка и обзор openSUSE Linux

    Все публикации >>>




  • IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

    Информация для рекламодателей PR-акции, размещение рекламы — тел. +7 495 4119920, ICQ 232284597 Пресс-релизы — pr@citcity.ru
    Послать комментарий
    Информация для авторов
    Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
    Copyright © 1997-2000 CIT, © 2001-2007 CIT Forum
    Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...