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

Основные компоненты модели данных

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

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

Познакомимся с наиболее важными понятиями основных компонентов модели данных.

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

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

Бит

Байт

Поле

Лес

Слово

15 8 7 О

Физическая запись

Блок 512 байт 256 слов

Физический том

(диск)

Логическая запись

Лес

Хвойный

150

Куб.м

поле поле поле поле

Файл

1

Лес

Хвойный

150

Куб.м

2

Металл

Цветной

75

т.

3

Кирпич

Красный

85000

шт.

Библиотека

Файл

GRUZ

DAT

Файл

GRUZ

MAC

Файл

GRUZ

OBJ

Файл

SUDA

DAT

б)

Рис.11. Физическая (а) и логическая (б) организация данных

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

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

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

Например, когда речь идет о грузе как объекте предметной области, в качестве атрибутов (в зависимости от решаемой задачи) могут быть использованы характеристики (наименование, количество, единицы измерения). Для определенного вида груза они принимают конкретные значения. Например, “лес - хвойный, 150 м3.”

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

  • • число объектов равно числу записей в файле;
  • • число атрибутов, описывающих объект, равно числу полей в каждой записи.

Кроме перечисленных терминов, используемых для обозначений определенных типов структур данных, широко распространена терминология предложенная КОДАСИЛ - Ассоциацией по языкам систем обработки данных. В ней аналог поля в файловых системах представляет элемент данных. Существует понятие агрегат данных, которое определяется как совокупность элементов данных внутри записи, рассматриваемых как единое целое. Например, ai’peraT данных ДАТА, который состоит из элементов данных - Число, Месяц, Год. Вводится также понятие набор, представляющий совокупность записей, образующих двухуровневую иерархическую структуру. Этот термин не является аналогом набора файлов.

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

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

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

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

Каждому данному любого простого типа в любой момент времени соответствует всегда только одно значение.

Структурированные типы данных предназначены для конструирования из конечного набора базисных типов сложных структурных данных. К этим типам данных относят: массивы (одно- и многомерные), последовательноети (файлы, стеки).

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

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

Одним из основных способов структуризации данных является использование абстракций.

Абстракция предполагает, что внимание должно быть сконцентрировано на основных общих свойствах множества объектов, а несущественные детали должны быть опущены. Так, общее понятие СУДНО - есть абстракция, отражающая множество наших представлений о конкретных судах. Абстракция монет быть многоуровневой, т.е. объект абстракция одного уровня может рассматриваться как объект абстракция другого уровня и т.д. Таким образом, абстракция может использоваться для формирования нового типа из других типов. Например, ГРУЗ определяется как абстракция типов: ЛЕС, МЕТАЛЛ, КИРПИЧ, ПЕСОК и т.д. Механизм абстракций широко используется при построении моделей данных.

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

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

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

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

Связь один к одному (1:1). Она характеризует такой тип связи между двумя видами сущностей А и В, при котором каждому экземпляру сущности А соответствует только один В, и наоборот. Например, связь сотрудник - табельный номер (рис. 12а). Здесь каждый экземпляр одного вида сущности однозначно определяет другой.

Связь один ко многим (1:М). Она характеризует такой тип связи для двух видов сущностей А и В при котором одному экземпляру сущности А соответствует несколько (0,1,2...,М) экземпляров сущности В. Однако каждому В соответствует только один экземпляр сущности

А. Например, связь судно - фамилия, имя, отчество члена команды (рис. 12,6).

Связь многие к одному (М:1). Данный тип связи предусматривает случай, когда многим экземплярам сущности типа А соответствует только один В. Например, связь фамилия, имя, отчество члена команды - судно (рис. 12,в).

Связи типа 1:1, 1:М, М:1 называют функциональными.

Связь многие ко многим (М:М). Это такая связь, когда каждому экземпляру сущности А может соответствовать несколько экземпляров сущности В, и наоборот. Например, судно - узел (рис. 12,г).

Сотрудник 1: ]

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

Судно

1А'Г

Ф.И.О. члена команды

  • 6) Связь один ко многим.
  • а) Связь один к одному.

в) Связь многих к одному. г) Связь многих ко многим.

Рис. 12. Типы связей между двумя видами сущностей А и В

Наряду с двусторонними связями между типами сущностей существуют еще связи, которые называют ассоциациями. Ассоциации рассматривают одностороннюю связь от сущности А к сущности В. Их подразделяют на три типа: простая, сложная и условная (рис. 13).

Тип А Тип В в) Условная ассоциация по типу С.

а) Ассоциация прос тая по типу I

Тип В

Тип Л

Сотрудник

Дата увольнения

Рис. 13. Типы ассоциаций

Ассоциация простая (тип I). При этой связи экземпляр сущности А определяет один и только один экземпляр сущности В, т.е. идентификация экземпляра сущности В является уникальной. Например, связь типа судно - фамилия капитана судна (рис. 13,а). Естественно, что в частном случае может оказаться, что на разных судах могут оказаться капитаны с одинаковыми фамилиями, и поэтому обратная связь (от В к А) здесь не рассматриваются.

Сложная ассоциация (тип М). При этой связи каждый экземпляр сущности А определяет несколько (нуль, один, два и т.д.) экземпляров сущности В. И идентификация экземпляра типа В не обязательно является уникальной. Например, связь между сущностями узлы судна и поставщик (рис. 13,6).

Условная ассоциация (тип С) соответствует случаю, когда для двух типов сущностей А и В может не существовать экземпляра типа сущности В, но если существует, то он относится к единственному экземпляру сущности А. Например, связь между сущностями сотрудник - дата увольнения (рис. 13,в).

Рассмотренные типы связей представляют собой лишь часть ограничений всего множества видов ограничений, которые могут иметь место. Конкретная модель данных, как будет показано ниже, характеризуется целым набором ограничений;. В связи с чем контроль выполнения ограничений в моделях данных является сложной задачей, требующей от СУБД целого набора актов доступа к БД и использования средств реляционного исчисления.

Операции над данными

При обработке данных в ЭВМ, в процессе решения прикладных задач АС необходимо производить различные над ними операции.

Селекция может производиться на основе использования логической позиции данного, его значений и связей между ними.

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

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

Имя атрибута - оператор условия - значения атрибута.

В качестве оператора - условия выступает один из арифметических операторов (=, <, >, <, >). Например, простое

условие средний балл успеваемости студента > 4,5.

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

Критерии селекции могут быть более сложными и задаваться выражениями, построенными на простых условиях с помощью логических операторов ( И, ИЛИ, ИЛИ-И). Например, условие: средний балл успеваемости студента > 4,5 и высшая математика = 5, предусматривает селекцию тех студентов, у которых средний балл не менее 4,5 и по высшей математике отлично.

Селекцию данных можно осуществлять также на основе логических связей между ними. Например, связь типа РАБОТАЕТ между сущностями ПРЕПОДАВАТЕЛЬ и КАФЕДРА позволяет выявить всех лиц, работающих преподавателями на кафедрах академии и все кафедры, имеющиеся в академии.

Данный тип селекции называется селекцией по связности данных.

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

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

По характеру способа получения результата различают навигационные и спецификационные операции.

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

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

Классификация операций надданными

Рис. 14. Классификация операций надданными

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

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

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

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

Функция агрегации - вычисление значений, которые непосредственно в ней нс хранятся, например вычисление сумм, подсчет числа экземпляров, определение минимума, максимума.

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

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

Анализируя различия между процедурами БД и операциями, можно отмстить следующее:

  • • процедуры при своем выполнении могут захватывать обширные области данных;
  • • процедуры могут реализовать широкий круг действий;
  • • вызовы процедур нс выполняются пользователем;
  • • процедуры обычно описываются в схеме данных, в то время как операции включаются в пользовательскую программу.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >