Модель данных - интегрированный набор понятий
для описания и обработки данных, связей
между ними и ограничений, накладываемых
на данные в некоторой организации.
Модель является представлением
"реального мира" объектов и событий,
а также существующих между ними связей.
Это некоторая абстракция, в которой акцент
делается на самых важных и неотъемлемых
аспектах деятельности организации, а
все второстепенные свойства игнорируются.
Таким образом, можно сказать, что модель
данных представляет саму организацию.
Модель должна отражать основные концепции,
представленные в таком виде, который
позволит проектировщикам и пользователям
базы данных обмениваться конкретными
и недвусмысленными мнениями о роли тех
или иных данных в организации. Модель
данных можно рассматривать как сочетание
трех указанных ниже компонентов.
Структурная часть, т.е. набор
правил, по которым может быть построена
база данных.
Управляющая часть, определяющая
типы допустимых операций с данными (сюда
относятся операции обновления и извлечения
данных, а также опе рации изменения структуры
базы данных).
Набор (необязательный) ограничений
поддержки целостности данных, гарантирующих
корректность используемых данных.
Цель построения модели данных
заключается в представлении данных в
понятном виде. Если такое представление
возможно, то модель данных можно легко
применить при проектировании базы данных.
Модели данных подразделяются
на три категории:
объектные (object-based) модели данных,
модели данных на основе записей
(record-based),
физические модели данных.
Первые две используются для
описания данных на концептуальном и внешнем
уровнях, а последняя — на внутреннем
уровне.
Объектные
модели данных
При создании объектных моделей
данных используются следующие понятия:
Сущность — это отдельный элемент
деятельности организации (сотрудник
или клиент, место или вещь, понятие или
событие), который должен быть представлен
в базе данных.
Атрибут — это свойство, которое
описывает некоторый аспект объекта и
значение которого следует зафиксировать.
Связь — это ассоциативное
отношение между сущностями.
Ниже перечислены некоторые
наиболее общие типы объектных моделей
данных.
Модель типа "сущность-связь",
или ER-модель (Entity-Relationship model).
В настоящее время ER-модель
стала одним из основных методов концептуального
проектирования баз данных.
Объектно-ориентированная модель.
Объектно-ориентированная модель
расширяет определение сущности с целью
включения в него не только атрибутов,
которые описывают состояние объекта,
но и действий, которые с ним связаны, т.е.
его поведение. В таком случае говорят,
что объект инкапсулирует состояние и
поведение.
Модели
данных на основе записей
В модели на основе записей
база данных состоит из нескольких записей
фиксированного формата, которые могут
иметь разные типы. Каждый тип записи определяет
фиксированное количество полей, каждое
из которых имеет фиксированную длину.
Существуют три основных типа
логических моделей данных на основе записей:
реляционная модель данных
(relational data model),
сетевая модель данных (network
data model),
иерархическая модель данных
(hierarchical data model).
Физические
модели данных
Физические модели данных описывают
то, как данные хранятся в компьютере,
представляя информацию о структуре записей,
их упорядоченности и существующих путях
доступа. Физических моделей данных не
так много, как логических, а самыми популярными
среди них являются обобщающая модель
(unifying model) и модель памяти кадров (frame memory).
2.2 Иерархическая
модель данных
Иерархическая модель является ограниченным
подтипом сетевой модели. В ней данные
также представлены как коллекции записей,
а связи — как наборы. Однако в иерархической
модели узел может иметь только одного
родителя.
Иерархическая модель может быть представлена
как древовидный граф с записями в виде
узлов (которые также называются сегментами)
и множествами в виде ребер.
Рисунок 1. Представление
связей в иерархической модели.
Основанные на записях (логические) модели
данных используются для определения
общей структуры базы данных и высокоуровневого
описания ее реализации. Их основной недостаток
заключается в том, что они не дают адекватных
средств для явного указания ограничений,
накладываемых на данные. В то же время
в объектных моделях данных отсутствуют
средства указания их логической структуры,
но за счет предоставления пользователю
возможности указать ограничения для
данных они позволяют в большей мере представить
семантическую суть хранимой информации.
При использовании сетевой или иерархической
моделей от пользователя требуется знание
физической организации базы данных, к
которой он должен осуществлять доступ.
Сетевые и иерархические системы используют
навигационный подход (т.е. они указывают,
как их следует извлечь).
Данная модель характеризуется такими
параметрами, как уровни, узлы, связи. Принцип
работы модели таков, что несколько узлов
более низкого уровня соединяется при
помощи связи с одним узлом более высокого
уровня.
Также можно встретить следующее описание
типов иерархической модели.
Тип «дерево» является составным. Он
включает в себя подтипы («поддеревья»),
каждый из которых, в свою очередь, является
типом «дерево». Каждый из типов «дерево»
состоит из одного «корневого» типа и
упорядоченного набора (возможно пустого)
подчиненных типов. Каждый из элементарных
типов, включенных в тип «дерево», является
простым или составным типом «запись».
Простая «запись» состоит из одного типа,
например, числового, а составная «запись»
объединяет некоторую совокупность типов,
например, целое, строку символов и указатель
(ссылку).
К достоинствам иерархической модели
данных относятся эффективное использование
памяти ЭВМ и неплохие показатели времени
выполнения основных операций над данными.
Иерархическая модель данных удобна для
работы с иерархически упорядоченной
информацией. Недостатком иерархической
модели является ее громоздкость для обработки
информации с достаточно сложными логическими
связями, а также сложность понимания
для обычного пользователя.
Автоматически поддерживается целостность
ссылок между предками и потомками. Основное
правило: никакой потомок не может существовать
без своего родителя. Заметим, что аналогичное
поддержание целостности по ссылкам между
записями, не входящими в одну иерархию,
не поддерживается.
2.3 Сетевая модель
данных
Сетевая модель данных – модель,
состоящая из записей, элементов данных
и связей типа “один ко многим” (1:М), установленных
между записями.
а)
б)
Рисунок 2. Пример связей двух
типов: а) «один ко многим»;
б) «один к одному»
В сетевой модели данные представлены
в виде коллекций записей, а связи - в виде
наборов. В отличие от реляционной модели,
связи здесь явным образом моделируются
наборами, которые реализуются с помощью
указателей. Сетевую модель можно представить
как граф с записями в виде узлов графа
и наборами в виде его ребер. Наиболее
полно концепция сетевых БД впервые изложена
в предложения группы CODASYL.
Для описания схемы сетевой
БД используется две группы типов: "запись"
и "связь". Тип "связь" определяется
для двух типов "запись": предка и
потомка. Переменные типа "связь"
являются экземплярами связей.
Сетевая БД состоит из набора
записей и набора соответствующих связей.
На форматирование связи особых ограничений
не накладывается. Если в иерархических
структурах запись-потомок могла иметь
только одну запись-предка, то в сетевой
модели данных запись-потомок может иметь
произвольное число записей-предков (свободных
родителей).
Физическое размещение данных
в базах сетевого типа может быть организовано
практически теми же методами, что и в
иерархических базах.
Рисунок 3. Представление связей
в сетевой модели.
К числу важнейших операций
манипулирования данными баз сетевого
типа можно отнести следующие:
переход от предка к первому
потомку;
переход от потомка к предку;
обновление текущей записи;
включение записи в связь;
исключение записи из связи;
Достоинством сетевой модели
данных является возможность эффективной
реализации по показателям затрат памяти
и оперативности. В сравнении с иерархической
моделью сетевая представляет большие
возможности в смысле допустимости образования
произвольных связей.
Недостатком сетевой модели
данных является высокая сложность и жесткость
схемы БД, построенной на ее основе, а также
сложность для понимания и выполнения
обработки информации в БД обычным пользователем.
Кроме того, в сетевой модели данных ослаблен
контроль целостности связей вследствие
допустимости установления произвольных
связей между записями.
Системы на основе сетевой модели
не получили широкого распространения
на практике.
2.4 Объектно-ориентированная
база данных
Объектно-ориентированная база
данных — база данных, в которой данные
оформлены в виде моделей объектов, включающих
прикладные программы, которые управляются
внешними событиями. Результатом совмещения
возможностей (особенностей) баз данных
и возможностей объектно-ориентированных
языков программирования являются Объектно-ориентированные
системы управления базами данных (ООСУБД).
ООСУБД позволяет работать с объектами
баз данных также, как с объектами в программировании
на ООЯП. ООСУБД расширяет языки программирования,
прозрачно вводя долговременные данные,
управление параллелизмом, восстановление
данных, ассоциированные запросы и другие
возможности.
Некоторые объектно-ориентированные
базы данных разработаны для плотного
взаимодействия с такими объектно-ориентированными
языками программирования как Python, Java,
C#, Visual Basic .NET, C++, Objective-C и Smalltalk; другие имеют
свои собственные языки программирования.
ООСУБД использую точно такую же модель,
что и объектно-ориентированные языки
программирования.
Объектно-ориентированные базы
данных обычно рекомендованы для тех случаев,
когда требуется высокопроизводительная
обработка данных, имеющих сложную структуру.
В манифесте ООБД (Atkinson et al.,
1989) предлагаются обязательные характеристики,
которым должна отвечать любая ООБД. Их
выбор основан на 2 критериях: система
должна быть объектно-ориентированной
и представлять собой БД.