back to Phil-FAQ
From: "Sem"
Newsgroups: relcom.comp.ai,relcom.sci.philosophy
Subject: Оракл? Кодд? Стихи не натуральны, мой мальчик... :)(
Date: Tue, 1 Dec 1998 22:23:32 +0200

-----Исходное сообщение-----
От: Andrej Bondar
Группы: relcom.sci.philosophy
Дата: 30 ноября 1998 г. 14:33
Тема: oracle
>У нас был довольно хороший преподаватель, в дополнение к курсу
>он притащил несколько книг, среди которых была также книга изобретателя
>этих баз данных. СODD его фамилия. Так вот оказалась что в основе
>релятиональных баз данных лежит модель мышления. Рассуждение которое я
>нашел в этой книге примерно таково. В рамках проекта MIT стартовавшего в
>1958 году Фон Нейман решил задачу о самовоспроизводящихся автоматах,
>решил он ее в формализме таблиц. Кодд использовал этот результат с такой
>призказкой. Самовоспроизведение это существенная часть мышления и так же
>в частности понимания, по сути дела понимание есть воспроизведение
>действительности у нас в мозгу. Если организовать хранение данных так
>что бы формализм организации хранения данных был близок к формализму
>решающую задачу самовоспроизведения, то структуру данных будут прощще
>понимать, так как этот формализм облегчает самовоспроизведение и тем
>самым понимание структуры храниния задач.

Теория Кодда действительно является одним из столпов ортодоксальной теории
ИИ.
Там это называется реляционной алгеброй Кодда. Кодд сформулировал ряд
требований к нормальной реляционной базе данных. По моему их не менее 15.
Следует сказать, что когда DBase или FoxPro (на которых я съел собаку как
программист-прикладник) называют реляционными -это не совсем верно. По
настоящему, в полном объеме, концепция реляционной алгебры Кодда была
реализована и развивалась в СУБД "Oracle".
Попытка довести, скажем FoxPro до идей господина Кодда закончилась на мой
взгляд плачевно. FoxPro 3 и выше - мощный но ерундовый продукт. Былой шарм
потерян. В общем время специализированных языков кануло в лету. Объекты их
сожрали и сделали ненужными. Концепция же Реляционных СУБД выделилась в
самостоятельную тему. И хотя на фоне идеологии "клиент-сервер" Кодд
просматривается не так четко, можно сказать, что до всех потихоньку начинает
доходить великая идея Кодда.
Но меня великая объединяющая идея Кодда всегда смущала. Смущали именно как
прикладника. Закончилось тем, что я глубоко в них усомнился. Более того идеи
Кодда, столь любимые всевозможными западными (и по глупости нашими)
компьютерными журналами на текущем этапе развития компьютеризации У НАС не
просто малополезны, но и попросту ВРЕДНЫ. По тому что не учитывают специфику
НАШЕГО рынка. Как раз тупые буржуи (в силу недостаточности места для ума
заплывшего жирком "общества благоденствия") понятия не имеют о специфике
нашего рынка. А наши не менее малообразованные программисты-самоучки тем
более не вполне понимают в чем дело.
Весь этот разговор следовало бы вести на другой конференции (и видит бог я
там бы могу устроить хорошую склоку), если бы не смыкалась с общефилософской
идеей само развивающихся систем. Коль скоро впомнили Ф-Неймана...

Существует несколько этапов нормировать конструируемую базу данных по Кодду.
В конечном итоге все это сводится к оптимизации базы. "Всякая информация
должна храниться в одном месте". Если она где то нужна еще, то надо сделать
на нее ссылку. Установить реляцию. Связь. Тут появляются, ссылки, индексы,
триггеры, и т.д.. База же состоящая из массы таблиц рассматривается как
некая замкнутая система, всякое изменение в которой влечет за собой массу
изменений. В конце концов это все та же аксиоматическая система с
минимальным, оптимальным, не избыточным набором аксиом. Просто так вытянуть
информацию из нормированной базы не удастся. Заглянуть туда и увидеть ничего
нельзя. Там индексов больше чем данных. Надо сформировать запрос к ней.
Нормированная по Кодду база оптимальна. Т.е. в ней нет ни чего лишнего но с
этой базой можно делать все что угодно. Т.е. она целостна и непротиворечива
(в рамках поставленной задачи).
Когда я писал универсальный бухгалтерский конструктор на СУБД DBase, идеи
Кодда только декларировались, но не были руководством к действию. И мое
чутье подсказало что руководствоваться ими не столь уж необходимо. В общем
моя база была избыточна. Я должен был буферизировать данные из разных мест
во временных базах. Одна и та же информация хранилась в разных местах.
Конечно это обременяло. Следовало поддерживать целостность этой махины
программным способом. Кроме того лишняя информация занимала лишнее место над
диске. Но зато скорость доступа (а это было время 286-х -386-х машин) была
больше. Это тогда мною и двигало. Конечно больше скорость была только для
определенных запросов. В целом (для любого запроса) нормированная база,
конечно была бы оптимальней. Однако мне нужны были не все запросы. Я же все
таки соображал, что может понадобится бухгалтеру на самом деле.
Самое интересное началось потом.
Когда моя программа начала продаваться. Заказчик требовал больших
возможностей. И даже "универсальная" древовидная база знаний не справлялась
со всеми требованиями. ( "Финансы без проблем" помните? Вот такой же язык
описания объектов событий был реализован и у меня. Дерево счетов, дерево
операций).
Законы менялись не по дням а по часам. Пользователь выдвигал новые и
противоречивые требования."Чудеса" нашей идиотской экономики требовали
программистского подвига. И я эти подвиги совершал. Кушать то хотелось.
И тут я обнаружил удивительное свойство своей базы. ЖИВУЧЕСТЬ. Неожиданно
выяснилось, что ряд "подвигов" совершить не так уж и сложно в силу
избыточности данных. Для некоторых задач вдруг обнаруживалось, что вот этот
буферный файл почти все имеет, осталось только выбрать и .. В общем я
кромсал и наращивал свое детище, а оно жило и работало. (И до сих пор кое
где работает).
Порочность идеи нормированных баз данных в том, что будучи разработанной под
не совсем правильно поставленную задачу переделка такой базы (в силу ее
оптимальности) обходится очень дорого. Хорошо нормированная база строится
под задачу оптимально. Если взять несколько иную задачу, то дабы переделать
нормированную базу под эту новую задачу следует перестроить и наращивать
структуру реляций. Опять же оптимально. И это - огромная работа. Малейшие
изменения ведут к массе трудностей. Отдельно менять ни чего не получается.
Приходится заботится о целостности всего. Ибо реляционная база действительно
целостна.
Малосвязанная, аморфная, база, база где реляции не столь уж и жестки таким
корректировкам поддается гораздо легче. Она избыточна и потому не редко эта
избыточность является как бы хорошим поводом для корректировки "всего одним
движением".
Именно избыточность мозга является главнейшим достоинством его -
способностью быстро перестраиваться под новые условия, действием
малозначительных "толчков". ИЗБЫТОЧНОСТЬ- КЛЮЧЬ К ПЛАСТИЧНОСТИ. И других
ключей я просто не вижу.
Одна случайная догадка. Догадка на гране фола, может стать поводом что бы
накатанные пути "вычислений" сменились на новые (а старые остаются. Со
временем они отомрут, но скорее всего будут там висеть и изредка напоминать
о себе, как воспоминания детства). Эти новые пути ни когда не могут
возникнуть в одночасье. Они уже есть. Просто они не задействованы. Они
возникли как лишние, как результат "недостаточной продуманности" предидущих
построений. В оптимальной коддовской структуре такие "излишества" просто
недопустимы. От них избавляются при нормировке.

> Тем самым получается что базы данных являются моделью мышления и
>тем самым в некоторой степени ИИ. К сожалению самовоспроизведение не
>является характеристикой полностью определяющей мышление, но тем не
>менее определяет его в существенной части, и в эом плане это приближение
>мне представляется довольно удачным.

Получается совсем наоборот.
Богу богово, Кесарю- кесорево. Ни кто не станет утверждать, что реляционные
базы не являются идеалом "хранилища данных". Пускай в меня бросит камень
всякий, кто так не думает!
Но переть реляционные базы к интеллекту -абсурд. Задача интеллекта -
порождать новое. И во имя этой задачи природа отказалась от оптимального
хранения данных. Ради этой задачи она отказалась от массы всяких класных
штук, которые мы открыли для компьютеров. В частности она отказалась от
последовательных вычислений, которые как известно отличаются
УНИВЕРСАЛЬНОСТЬЮ. В конце концов нейросети избыточны. Нейролингвистические
структуры не оптимальны, как не оптимален тот естественный язык на котором
мы все разговариваем.
Избыточность хранения данных в нашем мозге очевидна. Люди теряют солидную
часть коры головного мозга но при этом остаются в состоянии сносно
рассуждать. Этот парадокс поражал и продолжает поражать нейрофизиологов. Они
настолько остервенени в поисках "места, где храниться определенная
информация", что склонны полагать что память человека храниться везде и
негде. Скорее всего так оно и есть.
Реляционная, нормированная база на такое не способна! Там конкретная
информация (фамилия, например) храниться в ОДНОМ МЕСТЕ. В остальных местах -
ссылки по индексу. Нарушение индекса ведет к серьезному сбою. Неправильная
ссылка порождает неправильную ссылку, которая порождает неправильную... В
общем все это должно сохранять целостность. Во имя этого там так много и
придумано. Те же транзакции. Тот же "клиент-сервер".
Давайте не будем путать праведное с яишницей. Интеллект - это интеллект. Его
задача - думать. Искать сносные решения для ВЫЖИВАНИЯ в среде. Главнейшее
достоинство мозна -живучесть.
Программа это программа. Это жестко построенная рази на всегда система.
задача которой
1. Механически решать некоторый класс задач (массовость алгоритмов), однажды
уже решенные интеллектом.
2. Всегда решать этот класс задач ( направленность алгоритмов)
Вот пускай и решают. Только некоторый класс, но зато уже всегда. За это мы,
свои программы, любим и уважаем. За то что они делают то что мы их просим
ВСЕГДА. Для этого мы их и строим. Для этого мы и нормируем данные. Для
этого Кодд и старался.

>Честно говоря, была бы моя воля я бы везде развесил плакаты с надписью
>"базы данных это удачная модель мышления" так как раньше в России весели
>плакаты "Слава КПСС".

Андрей, понимаю вашу увлеченность. Идеи Кодда верны ибо всесильны... в
рамках дозволенного. "В рамках". То что "в рамке" - красиво. Это красиво как
стихи.
Но разум - несколько иное. Рамки ему противопоказаны.

К сожалению или к счастью это так. Скорее всего к счастью...
Вы помните хорошую и мудрую сказку "Кот в сапогах?".
Есть великолепный фильм-сказка о ШАХМАТНОМ королевстве (аксиоматическом)
где все разговаривали СТИХАМИ.
Им просто повезло, что нашелся кот, который говорил по человечески...

"Ни кто не разговаривает стихами....
Стихи ненатуральны.
Ни когда не опускайся до стихов, мой мальчик"

(Кажется Диккенс)
:)(
---
Александр Семенов
----- Sem@it-so.poltava.ua