Типы модели данных.

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

В начале 60-х годов XX столетия в системах управления базами данных стали применяться иерархическая и сетевая модели данных.

Иерархические модели позволяют строить базы данных с иерархической древовидной структурой. Они строятся по принципу иерархии типов объектов, т.е. один тип объектов является главным, а остальные , находящиеся на низших уровнях иерархии, - подчиненными. (рис 5.2.1). Между главным и подчиненными объектами устанавливается связь «один-ко-многим»

 

 


Рис 5.2.1. Схема иерархической модели данных

Иными словами для каждого главного типа объекта существует несколько подчиненных типов объектов.

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

Экземпляр дерева базы данных не обязательно должен содержать все свои сегменты. При необходимости можно добавлять или удалять экземпляры типов записей в соответствии с требованиями приложения. Предположим, что типы записей А, В, С, D и Е (рис.5.2.2) интерпретируются как типы записей «Курс», «Предварительная регистрация», «Семестр», «Преподаватель» и «Студент». Информация о некотором курсе может отсутствовать (например, Rn-i), либо для курса может быть известна лишь предварительная регистрация (Ri). Предположим, что распределение преподавателей но курсам в различные семестры и предварительная регистрация студентов на курсы проводятся независимо, а решение о необходимости чтения курса принимается позже.

 

 


Рис 5.2.2 Иерархическая база данных

 

Сетевые СУБД используют сетевую модель данных. С точки зрения теории графов сетевой модели соответствует произвольный граф. В узлах графа помещаются типы записей, а ребра соответствуют связям между типами записей (рис 5.2.3)

 

 

 
 

 


 

Рис 5.2.3 Схема сетевой модели данных

 

а сетевые - базы данных, структура которых представляется графом общего вида.

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

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

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

В сетевой модели важное значение имеют средства автоматики для многошаговой навигации и распространения изменений по структуре данных.

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

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

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

Были созданы первые поддерживающие ее СУБД. С появлением персональных ЭВМ реляционные системы стали доминировать на рынке программного обеспечения систем баз данных. В соответствии с реляционной моделью данных база данных представляется в виде совокупности таблиц, над которыми могут выполняться операции, формулируемые в терминах реляционной алгебры или реляционного исчисления. В реляционной модели данных объекты и взаимосвязи представляются с помощью таблиц. Взаимосвязи также рассматриваются в качестве объектов. Каждая таблица представляет один объект и состоит из строк и столбцов (рис 5.2.4). С помощью уже введенных понятий можно рассматривать отношение как набор связей между п атрибутами, т. е. как парную атрибутную связь. В соответствующее представление данных включаются только имеющие смысл и/или допустимые комбинации связей атрибутов.

 
 

 

 


Рис 5.2.4 Схема реляционной модели данных

Рассмотрим ряд формальных определений:

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

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

f Пусть имеется п доменов D1, D2, ..., Dn (необязательно различных). Отношение R определяется как множество упорядоченных кортежей, являющееся подмножеством декартова произведения доменов. Домен (множество) D; представлен в кортежах i-м элементом. Требование упорядоченности элементов кортежа можно устранить, идентифицируя в кортеже каждое вхождение домена уникальным именем атрибута.

Приведенный ниже пример иллюстрирует тот факт, что отношение представляет подмножество декартова произведения доменов. Пусть необходимо построить бинарное отношение (т. е. отношение с двумя атрибутами), содержащее атрибуты «имя» и «возраст». Предположим, что в соответствующих доменах определены следующие значения:

Домен имен Домен возраста (целые числа)
Андреев
Смирнов
Шевцова

Отношение R (ИМЯ, ВОЗРАСТ) - имена атрибутов могут перечисляться в любом порядке - представляет подмножество декартова произведения доменов ИМЯ и ВОЗРАСТ, состоящего из девяти кортежей, R Í ИМЯ Ä ВОЗРАСТ (Ä обозначает операцию декартова произведения):

ИМЯÄВОЗРАСТ=<Андреев,25>,Смирнов,25>,<Шевцова,25>,<Андреев,37>,<Смирнов,37>,<Шевцова,37>, <Андреев, 43>, <Смирнов, 43>,<Шевцова, 43>.

Поскольку возраст человека определен однозначно, смысл имеют лишь три варианта сочетания возраста и имени. Например, отношение R(ИМЯ,ВОЗРАСТ)=<Андреев,25>,<Смирнов,37>,<Шевцова,43> представляет модель реальной ситуации, являясь подмножеством рассмотренного декартова произведения.

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

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

В большинстве коммерческих СУБД используются ставшие классическими реляционная модель и разновидности графовых моделей данных - сетевая модель данных CODASYL