Глава 2. Элементы теории нормализации

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

Честно говоря, и у самих математиков не все так аккуратно, как хотелось бы. Ближайший тому пример - понятие функции, которое может трактоваться двояко:

  • в смысле, приписываемом Дирихле, - как указание соответствия между значениями и аргументами функции, или множеством пар аргумент - значение функции, или графиком функции
  • в смысле λ-исчисления (предложенного Алонсо Чёрчем, см. Барендрегт Х. Ламбда-исчисление. Его синтаксис и семантика: Пер. с англ. - М.: Мир, 1985. - 606 с.), трактующего функцию, как правило или закон, и подразумевающего переход от аргумента к значению: процесс, закодированный некоторым определением (от стандартного символа или алгоритма, вплоть до текстового описания или названия) функции.

  •          Но, не будем лазать в чужой огород.

    Поскольку специалисты по базам данных, в первую очередь, занимаются вопросами интерпретации реального мира, строят его модели, причем не только для себя, но и для лиц, далеких от чистой математики, постольку им приходится уделять большое внимание связи вводимых ими формализмов с этим реальным миром, возможности объяснить и использовать их в диалоге с неспециалистом, обычным человеком, для которого, собственно, и строятся все эти модели.

    А это значит, что, оперируя математическими понятиями, все время приходится не забывать о той смысловой нагрузке, или (как любят говорить специалисты по базам данных и философы) семантике, которая увязана с этими понятиями и о необходимости выразить их на обычном, не математическом языке. Это приводит к различным парадоксам и двусмысленностям, одним из корней которых является подмеченное в конце теперь уже позапрошлого века еще Готлобом Фреге (Gottlob Frege. Uber Sinn und Bedeutung. - Im: Zeitschrifft fur Philosophie und philosophische Kritik, № 100, 1892, p.p. 25-50, русский перевод: Г.Фреге. Смысл и денотат. - В кн.: Семиотика и информатика, вып.8. М.: ВИНИТИ, 1977. - с. 181 - 210) различие между самим объектом и его именем. Впрочем это напрямую признают и сами теоретики баз данных, например, в [13] прямо говорится о "запутанных традициях баз данных".

    Но, вернемся к отношению. В общем случае, математики редко определяют это понятие, в связи с его первичным характером. Хотя у отдельных авторов и имеется формальное определение отношения, как подмножества декартова произведения (см. далее текст ) множеств, на которых задано отношение. Это рабочее определение, когда речь идет о конечных или хотя бы счетных множествах. Но пользы от него (именно, определения, а не отношения, на одном из представителей которого - порядке, в частности, зиждутся метрические и топологические пространства) для случая непрерывных множеств немного. Однако, для баз данных характерны дискретные конечные множества, поэтому для них вполне подходит названное определение.

    Если теперь формально встать на позиции этого определения, то любое новое подмножество, даже отличающееся от первого одним элементом, будет новым отношением. Этот факт, с практической точки зрения, не очень удобен.

    Ни один пользователь, да и обычный программист тоже, для которого отношение - это, попросту, некоторый список (таблица), не поймет теоретика баз данных, если тот будет утверждать, что, добавив, изменив или удалив какой-либо элемент этого отношения мы получим новое отношение.

    И действительно, с точки зрения пользователя или программиста занесение в таблицу новой строки либо изменение или удаление существующей строки саму эту таблицу, как таковую, не меняют. И это разумно, хотя, строго говоря, не меняется только форма таблицы, содержание же ее становится другим. Но, с точки зрения здравого смысла (а, как впоследствии будет показано, и при правильном построении базы данных), это все-таки не есть изменение таблицы.

    Чтобы избежать подобных проблем, в теории баз данных приходится, с одной стороны, придерживаться свойств математического понятия отношение, чтобы можно было использовать аппарат (очень нужные операции) теории множеств и алгебраические понятия, а с другой стороны, “выкручиваться”, пытаясь сказать, что различные подмножества одного и того же декартова произведения, суть одно и то же отношение, что напрямую противоречит исходному определению.

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

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

    [ Назад  Начало раздела  Далее  Содержание]