|
2009 г.
И снова о вечной проблеме отсутствующей информации
Сергей Кузнецов Кузнецов (Кузнецова)— одна из самых распространённых русских фамилий. В «Списке общерусских фамилий», занимает 3 место. Самым распространённым сочетанием фамилии имени и отчества в России в XX веке считался Кузнецов Николай Иванович
В сентябрьском номере журнала ACM SIGMOD Record за 2008 г. опубликованы сразу две небольших статьи, формальным поводом к написанию которых явилась статья Клода Рубинсона (Claude Rubinson) NULL, трехзначная логика и неопределенность в SQL: критика критики Дейта, которая, в свою очередь Очередь— определённый порядок в следовании или в движении чего-либо или кого-либо., была опубликована в декабрьском номере того же журнала за 2007 г. Когда мы публиковали мой пересказ этой статьи в нашей библиотеке, я написал небольшую собственную заметку Критика критики критики Дейта, в которой постарался показать, что претензии Рубинсона к Дейту не основательны, а доводы Дейта относительно несоответствия требованиям реального мира подхода к управлению отсутствующей информации, принятого в SQL, безупречны.
На этот раз на статью Рубинсона откликнулись сам Кристофер Дейт (C. J. Date), а также Джон Грант (John Grant), известный своими многочисленными серьезными работами, в частности, на эту тему. Обе статьи очень небольшие по объему, но, как мне кажется, любопытные и полезные для более полного понимания сути проблемы и путей ее решения. Поэтому я решил опубликовать переводы их обеих в библиотеке CITForum, сопроводив их этой краткой заметкой со своими пояснениями и комментариями.
Начну с одного чисто переводческого пояснения. В переводе статьи Дейта Критика статьи Клода Рубинсона «NULL, трехзначная логика и неопределенность в SQL: критика критики Дейта» везде в русском тексте я использую (и даже склоняю) только слово null, не пытаясь заменять его, например, словосочетанием неопределенное значение. В то же время, в переводе статьи Гранта Неопределенные значения в SQL я спокойно иду на такие вольности. Это связано с тем, что авторы статей по-разному относятся к проблеме отсутствующей информации и к соответствующей терминологии.
Для Дейта одним из наиболее серьезных поводов к неприятию null в SQL является как раз то, что null – это не значение, а обозначение отсутствия значения. По мнению же Дейта (совершенно справедливому) в реляционной базе данных могут храниться только типизированные значения. Поэтому называть null неопределенным значением в переводе статей Дейта просто нельзя, поскольку это не значение вообще. И сам Дейт в последние годы никогда не использует словосочетание null value, всегда только null.
Грант в гораздо меньшей степени формалист. Его не очень беспокоит термин Термин (от лат.terminus — предел, граница) — слово или словосочетание, точно и однозначно именующее понятие и его соотношение с другими понятиями в пределах специальной сферы. Термины служат специализирующими, ограничительными обозначениями характерных для этой сферы предметов, явлений, их свойств и отношений. В отличие от слов общей лексики, которые зачастую многозначны и несут эмоциональную окраску, термины в пределах сферы применения однозначны и лишены экспрессии.ология. В его статье "базы данных выполняют запросы", и совершенно спокойно используется термин null value. Поэтому я и в переводе не стесняюсь использовать привычный оборот неопределенное значение. Для Гранта гораздо важнее дефекты трехзначной логики в том виде, в котором она применяется в SQL.
В статье Дейта, в общем-то, и нет критики статьи Рубинсона. Он даже и не пытается опровергнуть нападки в свою сторону, что, дескать он (Дейт) не понимает трехзначной логики SQL. Дейт снисходительно соглашается, что готов признать (условно!) безупречность Безупречность — концепция, использованная мыслителем эзотерической ориентации и мистиком Карлосом Кастанедой в своих книгах, одно из ключевых понятий в учении толтеков. Психофизическое состояние, характеризующееся отсутствием чувства собственной важности и жалости к себе. Любой поступок должен производиться с осознанием своей смертности (как если он является последним в жизни человека). Этому состоянию присущи необычная эффективность любого действия. Безупречность напрямую связана с понятием дисциплины, которая является состоянием особой целеустремленности, а также эмоционального и умственного спокойствия. Безупречность вместе со Сталкингом и Перепросмотром, являются ключевыми элементами в пути толтека. Они приводят к усилению энергии осознания, делая возможным процесс целостной Трансформации человеческой природы — обретения Свободы восприятия всего диапазона Реальности. логики SQL. Он всего лишь говорит, что если null является обозначением отсутствия значения, то для таблиц SQL не работает традиционная интерпретация отношений, принятая в реляционной модели.
Дейт показывает, что при интерпретации каждого отношения степени n как n-местного предиката, а каждого кортежа этого отношения – как истинного высказывания, являющегося инстанциацией предиката отношения, логически правильным подходом для поддержки в реляционных базах данных отсутствующей информации является подход к горизонтальной декомпозии, предложенный несколько лет назад соратником Дейта Хью Дарвеном (Hugh Darwen), см. его материал How To Handle Missing Information Without Using NULL.
Грант, напротив, начинает свою статью с того, что Рубинсон совершенно не прав, утверждая, что Дейт не умеет писать запросы на SQL. Просто SQL не умеет правильно выполнять запросы, формулируемые Дейтом. И он поясняет, почему так получилось. Оказывается, во всем виноват Кодд, который тридцать с лишним лет тому назад не послушал Гранта, когда тот говорил, что нельзя использовать трехзначную логику, основанную на таблиц Богуслав Таблиц (словацк. Bohuslav Tablic (Tablicz); 6 сентября 1769, Ческе Брезово, Словакия — 21 января 1832, Костолне Моравце, Словакия) — чешско-словацкий писатель, священник, деятель возрождения словаков-лютеран, подобно тому как Бернолак является деятелем возрождения словаков-католиков. Таблиц учредил в Пресбурге «Общество чешско-словацкой литературы и языка» с целью издавать на понятном народу чешском языке простонародные и школьные книги. Учреждение этого общества было причиной если не процветания словацкой литературы, то появления в пресбургском лицее кафедры словацкого языка, для чего общество собрало большой капитал. Занять кафедру приглашен был Юрай Палкович. Общество скоро распалось, но кафедра продолжала существовать. Молодёжь имела возможность слушать историю своего народа на родном языке. В 1812 г. Таблиц был одним из основателей нового «Литературного общества Горных Городов» (Bergstdte), задававшегося прежней целью; результатом было открытие кафедры словацкого языка и в Банской Штьявнице. Это общество также скоро распалось. Таблиц писал очень много и по различным специальностям. Первое место занимают его «Poesie» (Вацов, 1806-1812). К ним приложены биографии известных словацких деятелей. Его «Sloventi verovci» (Вацов, 1805-1809) — отрывки из произведений древних словацких писателей, в то время почти уже позабытых. Перу Таблица принадлежит также много книг для народа, изданных двумя упомянутыми обществами.ах истинности. А потом ошибочный подход Кодда попал в стандарт SQL, и отсюда и пошли все неприятности. К сожалению, я не читал статьи Гранта, написанные в 1970-е гг., и не смог найти их в Internet. Наверное, стоит устанить этот недочет.
Затем Грант кратко описывает два подхода к организации баз данных (дизъюнктивный и вероятностный), которые позволяют справляться с отсутствующей информацией без дефектов, свойственных SQL. По крайней мере, он показывает, что на основе этих подходов запрос из примера Примера Дивизион (исп.Primera Divisin) профессиональной футбольной лиги Испании (исп.Liga de Ftbol Profesional, LFP), известный также как Примера и Ла Лига (исп.La Liga), является профессиональным футбольным турниром клубов высшего уровня в системе футбольных лиг Испании. Ла Лига считается одной из лучших футбольных лиг в мире. Дейта выполнился бы корректно.
В общем, понятно одно. В SQL имеется ряд дефектов, связанных с поддержкой null'ов. Рано или поздно эти дефекты нужно устранить. Наверное, уже всем ясно, что от этого языка нам никуда не деться. Значит, нужно его, по мере возможности, приводить в порядок.
Итак, Вашему вниманию предлагаются статьи:
|