Kolokvium / KOR_3
.DOCБАЗА ДАННЫХ
Под базой данных (БД) будем понимать именованную совокупность данных, отображающую состояние объектов и их отношений в рассматриваемой предметной области. Предметная область представляет собой часть информационного пространства, отображающую потребности некоторого ограниченного круга пользователей базы данных.
База данных должна удовлетворять требованиям контролируемой избыточности, независимости и целостности данных, а также учитывать информационные потребности ее пользователей.
Под избыточностью информации понимается наличие в сообщении таких сведений, которые превосходят некоторый минимум, необходимый для представления или передачи сообщения. Позитивная сторона избыточности определяется возможностью быстрого восстановления данных при сбое вычислений и существованием нескольких способов обработки запроса на основе избыточных данных, когда практически реализуется наиболее эффективный способ, требующий минимального машинного времени. К недостаткам следует отнести повышенный расход памяти для хранения избыточных данных и высокую трудоемкость одновременного внесения изменений во все копии данных. Контролируемая избыточность означает избирательное сокращение избыточности данных таким образом, чтобы остающиеся избыточные сведения можно было использовать для ускорения выборки информации.
Независимость данных означает возможность изменения структуры базы данных без изменения алгоритмов обработки данных. Подструктурой базы данных понимается множество единиц информации, отображающих функционирование экономического объекта, и множество отношений, определенных на этих единицах информации. Наиболее частые изменения структуры представляют собой создание новых единиц информации и новых отношений, преобразование единиц информации из одного формата в другой, изменение способов представления данных в памяти ЭВМ. При изменениях структуры должна сохраняться последовательность операций над данными, однако способ реализации отдельных операций может измениться. Важность свойства независимости данных объясняется тем, что практически все действующие ЭИС подвергаются усовершенствованию в процессе эксплуатации.
Свойство независимости базы данных обеспечивается только в том случае, если существующий способ организации базы данных заменяется на эквивалентный. Эквивалентность представлений требует, чтобы в обоих случаях можно было выразить все необходимые пользователям взаимосвязи между данными и формально перейти от одной структуры к другой.
В предыдущих разделах учебника, по существу, была обоснована эквивалентность следующих представлений: системы отношений в 1НФ и системы отношений в 4НФ
(3.2);
реляционной и бинарной реляционной моделей данных (3.2);
отношений между СЕИ и веерных отношений в сетевой модели данных (3.3);
последовательной, строчной и бинарной древовидной организации данных при доступе по одному ключу (4.2).
Для обеспечения высокой степени независимости описания данные не должны содержать указаний на способ их представления в памяти ЭВМ и применяемые методы доступа.
Поддержание целостности базы данных рассматривается как защита данных от внесения ошибочных изменений или разрушений. Причины нарушений целостности достаточно многочисленны, поэтому даже в надежных информационных системах возможна потеря целостности данных. Поддержание целостности включает не только контроль соответствия данных, поступающих с объекта, и хранимых в ЭИС данных, но и контроль соблюдения многочисленных отношений, существующих между значениями данных. Целостность данных необходимо проверять после введения сведений о новых объектах и взаимосвязях после каждой корректировки информации.
Условия, которые необходимо проверить в процессе поддержания целостности данных, называются ограничениями целостности. Рассмотрим типичные ограничения целостности:
целостность отношения в реляционной модели данных считается не нарушенной (после корректировки), если сохраняются множества реквизитов, образующих в нем первичный и вероятные ключи, а также функциональные зависимости. Поэтому свойства реквизита быть ключом и вступать в функциональную зависимость являются ограничениями целостности;
ограничение целостности в веерном отношении состоит в том, что множества значений ключей СЕИ - владельцев и СЕИ - членов, входящих в различные вееры, не должны пересекаться ;
значения некоторых реквизитов должны находиться в определенном интервале (О < ВОЗРАСТ < 160) либо множество допустимых значений невелико (например, у реквизита СЕМЕЙНОЕ ПОЛОЖЕНИЕ);
ограничениями целостности могут служить любые множественные и арифметические отношения - упорядоченность реквизитов, неравенство значений реквизитов (СУММА НАЧИСЛЕНО >= СУММА ВЫДАНО), наличие всех значений одного реквизита в множестве значений другого реквизита и т. п.;
динамические ограничения целостности, которые определяют соотношение между прежними значениями реквизита и его новым (скорректированным) значением. Например, выработка продукции в расчете на одного работающего за год не должна уменьшаться с течением времени;
отложенные ограничения целостности, которые могут не соблюдаться в процессе вычислений, но обязаны выполняться по окончании вычислений. Так при отражении хозяйственных операций в счетах бухгалтерского учета баланс денежных средств в пассиве и активе должен проверяться после выполнения всех бухгалтерских проводок.
Совместное использование данных многими пользователями значительно усложняет разработку ц эксплуатацию базы данных. Каждый потребитель может по-своему интерпретировать и обрабатывать доступные ему данные. Поэтому сведения, хранимые в базе данных, должны быть значимыми для всех и допускать необходимые пользователям представления. Обработка и корректировка информации разными пользователями по различным алгоритмам способны создать большое число противоречивых ситуаций, например потерю обновления данных» зависимость от незавершенных корректировок.
Потеря обновления данных возникает, если двум или нескольким пользователям разрешена корректировка одного и того же отношения. Изменения, которые производятся позже, способны разрушить результаты предыдущих корректировок. Обычное решение этой проблемы состоит в том, что пользователь, выполняющий корректировку отношения, получает на некоторое время монопольное проведение любых операций над отношением (захват отношения). Захват отношения вторым пользователем может произойти только по окончании работы первого пользователя и яр помешает выполнению его запросов. Однако способ захвата данных вести к тупиковой ситуации, когда
пользователь А захватывает отношение R;
пользователь В захватывает отношение S;
для продолжения корректировки пользователю А требуется отношение S и он попадает в состояние ожидания;
для продолжения корректировки пользователю В требуется отношение R и он попадает в состояние ожидания.
В результате ни один из них не может продолжить свою работу. Поэтому система поддержки захвата должна содержать средства обнаружения и преодоления тупиковых ситуаций.
До выполнения запроса пользователя и после его выполнения база данных, естественно, должна находиться в состоянии целостности. Однако возможно отсутствие целостности в период выполнения запроса. Следовательно, необходимо, чтобы любые изменения в базе данных, происходящие при выполнении одного запроса, не оказывали влияния на реализацию одновременно поступающих запросов, иначе их результат будет зависеть от незавершенной корректировки (и вообще любой операции по изменению значений данных). Большую сложность в условиях интенсивного потока запросов представляет возврат базы данных в непротиворечивое состояние, если обнаружится, что выполнение одного из запросов привело к нарушению целостности данных.
Для отображения структуры базы данных используются модели данных, рассмотренные в гл. 3.
Для обеспечения высокой независимости данных и учета требований многих пользователей разработана трехуровневая иерархия моделей базы данных (рис. 5.4). Внутренняя модель данных наиболее тесно связана со способом физического представления данных, внешняя модель определяет требования пользователя к необходимым ему данным, концептуальная модель занимает промежуточное положение.
Концептуальная модель является формализованным описанием полного информационного содержания базы данных.
Внешняя модель может пользоваться любым аппаратом понятий для формализации и описания информационного пространства пользователя. Единственное требование состоит в возможности взаимно-однозначного преобразования внешней модели в концептуальную. Состав единиц информации и отношений в каждой внешней модели определяется потребностями пользователей. В концептуальной модели эти структурные зависимости могут быть изменены.
Цель концептуальной модели -создать такое формальное представление о базе данных, чтобы любая внешняя модель являлась подмножеством этого представления. В процессе интеграция внешних моделей устраняются двусмысленности и противоречия в представлении данных различными пользователями. Допускаются много внешних моделей, каждая из которых содержит сведения о некоторой части базы данных, и единственная концептуальная модель, определяющая абстрактное представление всей базы данных.
Рис. 5.4. Взаимосвязь моделей базы данных
Минимальный состав концептуальной модели должен включать описания экономических объектов, сведения о которых содержатся в ЭИС, отношений между этими объектами и операций формирования производной информации. Дополнительно могут указываться средства обеспечения целостности данных и некоторые другие.
К концептуальной модели предъявляется требование устойчивости. Это означает, что изменения в модели допускаются только тогда, когда произошли существенные изменениям в соответствующей предметной области. Наиболее важный тип изменений в концептуальной модели - это ее расширение, когда появляется информация о новых объектах либо новые сведения об уже имеющихся объектах.
Концептуальная модель должна быть достаточно абстрактной, т. е. не содержать ограничений, вытекающих из программной реализации требуемых методов обработки данных.
Одним из существенных требований к концептуальной модели является ее конструктивность, которая означает, что информации, зафиксированной в ней, должно быть достаточно для последовательного формализованного перехода от концептуальной модели к действующей системе машинной обработки данных.
В качестве основы концептуальной модели может служить реляционная, сетевая, иерархическая и бинарная модели данных.
Для представления данных в реляционной модели используется лишь одна конструкция - отношение. В сетевой модели минимальным набором необходимых конструкций являются СЕИ, веерное отношение и упорядоченность. Следовательно, описание данных в модели организовано сложнее, так как использует более обширный набор конструкций (понятий) .
Операндами в реляционной алгебре служат отношения, а у сетевых операторов (в большинстве реализованных систем) - отдельные значения СЕИ или кортежи отношений. Поэтому один реляционный оператор эквивалентен некоторой подпрограмме, состоящей из сетевых операторов, и с этой точки зрения реляционный язык манипулирования данными является более мощным, чем сетевой.
Расширение сетевой концептуальной модели в ряде случаев значительно затруднено. Рассмотрим сетевую базу данных о станциях метрополитена. Допустим, что взаимный порядок станций на линии метрополитена совпадает с последовательностью записей СЕИ (каждая запись описывает одну станцию). Если требуется дополнить модель сведениями о расстояниях между соседними станциями, то возможны два решения. Первое - добавить в СЕИ новый реквизит РАССТОЯНИЕ ДО СЛЕДУЮЩЕЙ СТАНЦИИ. Тогда при вычислении расстояния между станциями надо предварительно найти ранее расположенную станцию и сформировать пары станций с указанием расстояния между ними, что создаст избыточную информацию по отношению к уже имеющейся СЕИ. В реляционной модели, не содержащей понятия упорядоченности, требуемая информация выражается только указанием пар соседних станций, и добавление расстояний между ними является очень простой операцией, сводящейся к включению в структуру отношения нового реквизита. Выполнение запросов к сетевой концептуальной модели в реализованных системах обычно занимает меньше времени по сравнению с реляционной моделью. Совершенствование структур данных и методов доступа к ним может изменить это соотношение.
Рассмотрим формирование концептуальной модели из двух заранее известных внешних моделей А и В, структура которых показана на рис. 5.5 (используются следующие обозначения: КЗ - код заказа; КИ - код изделия; КП - код поставщика; ИЛ - имя поставщика; АП - адрес поставщика; НАИ - наименование изделия; К - количество изделий на складе; ЗК - заказанное количество изделий; Ц - цена изделия по данному заказу; ДЗ - дата заказа; ДП - дата поставки; И - итоговая сумма заказа).
Рис. 5.5. Диаграмма функциональных зависима стай для внешних моделей данных А и В
Пользователи, работающие с внешней моделью А, в основном извлекают из базы данных информацию о получении отдельных заказов на изделия. Модель В используется другой группой пользователей для получения информации о выдаче изделий со склада.
Совмещение внешних моделей А и В основано на включении в модель А реквизитов и функциональных зависимостей, имеющихся в В и отсутствующих в А. В рассматриваемом случае - это реквизит К. Отсутствие в модели В реквизита КП не приводит к появлению новых функциональных зависимостей и в получаемой концептуальной модели, так как связь КЗ®ИП присутствует в модели А согласно теоремам Армстронга. Результат совмещения моделей А и В показан на рис. 5.6 сплошными стрелками. Пунктирные стрелки показывают расширение концептуальной модели дополнительными сведениями, которые могут потребоваться для новых внешних моделей (СП - спецификация поставщика; СИ - спецификация изделия; СО - сумма оплаты изделий поставщикам).
Рис. 5.6. Диаграмма функциональных зависимостей концептуальной модели данных, объединяющей представления внешних моделей А и В
Окончательный вид концептуальной модели для рассматриваемого примера приведен на рис. 5.6. Реляционное представление модели содержит следующие отношения в ЗНФ:
R1 (КЗ, КИ, ЗК, Ц);
R2 (КП, КИ, СО);
RЗ (КЗ, КП, ДЗ, ДП, И);
R4(КП, ИЛ, АП, СП);
R5 (КИ, НАИ, СИ, К).
Переход к внутренней модели данных -это переход от абстрактного концептуального описания к указанию структуры данных и методов доступа к данным. Применяемые в этом случае решения рассматриваются в 4.3.
Проектирование базы данных в соответствии с трехуровневой системой моделей данных включает ряд крупных этапов, которые описаны выше. Только один из этих этапов - согласование внешних моделей в единую модель - достаточно полно формализован и существуют машинные методы его реализации. Получаемая единая модель не является концептуальной в полном смысле, поскольку обычно не удовлетворяет требованию устойчивости и не содержит средств для поддержания целостности и безопасности данных. Поэтому необходимы обширные исследования, которые должны привести к созданию систем автоматизированного проектирования концептуальных и внутренних моделей реальных баз данных.