logo
ОИТ_Учебник

4.2 Модели данных

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

Известны следующие модели данных: иерархические, сетевые, реляционные, постреляционные, объектно-ориентированные, объектно-реляционные, многомерные.

Иерархическая модель данных

Иерархическая модель данных представляет собой многоуровневую древовидную структуру БД. Пример схемы представлен на рис. 4.1.

Рис. 4.1.Древовидная структура данных

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

Узлы, связанные с узлами более высокого уровня называются порожденными. К каждому узлу дерева существует только один путь от корневого узла. Например, для узла D2 таким путем будет А1, ВЗ, С4.

К достоинствам иерархической модели относятся: логичность построения, большая информационная емкость, легкость формализованного описания.

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

Сетевая модель данных

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

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

Примером простой сетевой структуры является взаимосвязь между сегментами «Профессия», «Цех», «Личность» (рис.4.2.). Слева на рисунке изображены уровни структуры. Справа – экземпляр сетевой структуры.

Рис. 4.2.Простая сетевая структура данных

Из рис. 4.2. видно, что порожденный узел «Цех № 2» связан с двумя исходными узлами. Пример описывает случай, когда каждая личность работает только в одном цехе и имеет только одну профессию, в тоже время одна и та же профессия может соответствовать многим работающим одного и того же цеха.

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

Рис. 4.3. Сложная сетевая структура данных.

Реляционная модель данных

Реляционные модели данных получили свое название от английского слова relation, которое переводится как отношение (соотношение, связь). Отношением в реляционных БД называют таблицы с данными. Табличное представление данных является принципиальной особенностью реляционных моделей.

Реляционная таблица отражает некоторый объект, процесс или явление, то есть некоторую сущность. Она состоит из строк и столбцов и имеет имя, уникальное внутри БД, например СОТРУДНИКИ. Столбец в таблице представляет собой поле, а строка – это логическая запись. Записи с конкретными значениями полей являются экземплярами сущности. Реляционная таблица обладает следующими свойствами:

Таблица 4.1 иллюстрирует пример реляционной таблицы.

Таблица 4.1 Реляционная таблица СОТРУДНИКИ

Табельный номер

Фамилия

Имя

Отчество

Дата рождения

Код специальности

Код цеха

001

Авдеев

Сергей

Егорович

12.03.1965

11

1

002

Бородин

Олег

Иванович

17.09.1980

05

2

003

Король

Андрей

Матвеевич

30.11.1975

01

2

004

Медведев

Яков

Петрович

06.08.1961

05

1

005

Семашко

Алла

Федоровна

04.07.1970

02

1

Структурные компоненты таблицы СОТРУДНИКИ:

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

В приведенной выше таблице 4.1 простым первичным ключом может быть поле «Табельный номер», составным ключом – совокупность полей «Фамилия», «Имя», «Отчество».

Связи поддерживаются внешними ключами. Внешний ключ– это ключ второй таблицы. Он однозначно характеризует значения первичного ключа первой таблицы. Чтобы связать две реляционные таблицы, необходимо ввести в структуру первой таблицы внешний ключ. Для понимания внешнего ключа возьмем вторую таблицу 4.2.

Таблица 4.2 Реляционная таблица ЦЕХ

Код цеха

Наименование цеха

Вид

Начальник

цеха

1

Литейный

Основной

Кривцов А.А.

2

Механический

Основной

Заворотнюк Е.С.

3

Ремонтный

Вспомогательный

Воложин Ф.И.

В таблице ЦЕХ в качестве первичного ключа выбрано поле «Код цеха». Это поле при связи таблиц СОТРУДНИКИ и ЦЕХ выступает в роли внешнего ключа таблицы СОТРУДНИКИ.

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

В соответствии с терминологией реляционной алгебры отношение рассматривается как множество, строки таблицы называютсякортежами, столбцы –атрибутами.

Отношения, являющиеся исходными для формирования нового отношения, называются отношениями-операндами.

Над отношениями выполняются традиционные операции теории множеств: объединение, пересечение, выборка, проекция, разность, соединение, произведение, деление.

Объединение отношений – это создание нового отношения, содержащего все кортежи отношений-операндов. При этом операнды должны иметь одинаковые атрибуты.

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

Ограничение отношения (выборка) – создание нового отношения отбором в него кортежей отношения-операнда, которые удовлетворяют условию ограничения.

Проекция отношения – создание нового отношения отбором в него определенных атрибутов отношения-операнда.

Разность отношений – создание нового отношения, содержащего те кортежи первого отношения-операнда, которые отсутствуют во втором отношении-операнде.

Соединение отношений – создание нового отношения, кортеж которого является результатом сцепления кортежей отношений-операндов. Условием для соединения отношений является наличие в них общего атрибута.

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

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

Объектно-ориентированная модель

Объектно-ориентированные модели позволяют организовать хранение данных, не раскладывая их по таблицам.

Основными понятиями объектно-ориентированных моделей являются класс, объект, поле, свойство и метод.

Классом(объектным типом) называется особый тип записи, который может иметь в своем составе поля, методы и свойства.Пример класса – Предприятия города

Объект (экземпляр класса)– это переменная объектного типа.Пример объектов внутри класса:

Поля объектааналогичны полям записи (в реляционной таблице). Это данные, уникальные для каждого объекта.Примеры полей: адрес предприятия, расчетный счет в банке.

Методы– это процедуры и функции, описанные внутри класса и предназначенные для операций над полями. В отличие от полей, методы у двух объектов одного класса общие.

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

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

Постреляционная модель

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

Пространственная модель

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

Объектно-реляционная модель

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

Многомерная модель

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

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

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

В многомерной модели вводятся следующие основные операции манипулирования измерениями: 1) сечение; 2) вращение; 3) детализация; 4) свертка.

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

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

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

У многомерных моделей есть недостатки, сдерживающие их применение: