logo search
Informatics

8.2. Модели данных

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

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

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

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

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

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

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

Иерархическая модель данных. Более удобного представление данных можно достигнуть за счет увеличения информационной избыгочности на уровне модели данных. Шагом на пути к увеличению информационной избыточности является переход от сетевого к иерархическому представлению данных. Такая возможность опирается

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

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

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

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

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

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

Реляционная модель данных. Наиболее абстрактной моделью является реляционная модель данных. Абстрактна она в том смысле, что в значительной степени ориентирована на интересы пользователя (программиста) и совершенно не несет в себе черт реального отображения на физическую память. Эта модель исторически возникла позже других, и ее появление оправдывается тем, что по мере усложнения информационных систем и прогресса в устройствах долговременной памяти поддержание математического обеспечения, несущего в себе черты <суеты представления>, обходится очень дорого.

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

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

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

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

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

Таким образом, реляционная модель предполагает очень высокую степень <интеллектуальности> систем управления базой данных.

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

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

Степень реализации принципа независимости данных определяет гибкость системы управления базами данных. Учет особенностей обработки данных в какой-либо предметной области позволяет спроектировать специализированные СУБД, ориентированные на применение в АСУ предприятий с дискретным характером производства.

Существуют и универсальные системы управления базами данных, используемые для различных приложений. При настройке универсальных СУБД для конкретных приложений они должны обладать соответствующими средствами. Процесс настройки СУБД на конкретную область применения называется генерацией системы. К универсальным системам управления базами данных относятся, например, системы dBase, Paradox, Microsoft Access, MS DOS, UNIX, Windows, Oracle.