Модели данных
Для использования в практической жизни человека cведения можно накапливать и систематизировать в какой-то знаковой форме, т.е. в виде данных. Данные — это объект, обладающий определенной структурой, объемом и ценностью. Понятия «данные» и «информация» неразрывно связаны между собой, но нетождественны. Данные представляются в виде зарегистрированных сигналов (знаков) и являются составной частью информации. Следовательно, информация – это совокупность данных, систематизированных с определенной целью.
База данных (БД) — это структурированная упорядоченная совокупность данных, которыми управляют централизованно. В качестве ее признаков называют следующие:
• информация хранится и обрабатывается в вычислительной системе;
• данные структурированы для эффективного поиска и обработки;
• имеется схема, описывающая базу данных в формальном виде;
• средства работы ориентированы на максимальное быстродействие и защиту информации от повреждений.
В составе базы данных можно выделить следующие подсистемы. Подсистема хранения данных обеспечивает создание и манипуляции с таблицами. Подсистема управления доступом позволяет управлять пользователями базы данных, формировать пользовательские роли на основании наборов полномочий, схемы для определения части базы данных, доступных для каждой роли. Подсистема обработки реализует команды, необходимые для манипуляций объектами базы данных и данными
Простейший некомпьютерный вариант базы данных – это деловой ежедневник, в котором каждому календарному дню выделена специальная страница для внесения данных. Поиск нужной информации в таких «текстовых файлах» затруднен, в то время, как база данных рассчитана именно на поиск конкретных данных и выдачу их пользователю. Возрастание объемов получаемой информации требует их систематизации и обеспечения перевода данных из одной знаковой системы в другую. Это возможно при соответствующем структурировании данных, т.е. их группировании по определенным параметрам. Это привело к построению баз и банков данных, а также к разработке и созданию компьютерных устройств, способных накапливать большие массивы данных и их систематизировать для выполнения соответствующих целей. К одной базе данных возможен доступ сразу нескольких пользователей одновременно.
Чтобы создать структурированную базу данных, удобную для применения для работы в компьютерных сетях, а также на персональных компьютерах, были использованы основы теории моделирования объектов.
Можно по-разному характеризовать понятие модели данных. С одной стороны, модель данных – это способ структурирования данных, которые рассматриваются как некоторая абстракция в отрыве от предметной области. С другой стороны, модель данных – это инструмент представления концептуальной модели предметной области и динамики ее изменения в виде базы данных.
В классической теории баз данных, модель данных есть формальная теория представления и обработки данных в системе управления базами данных (СУБД), которая включает, по меньшей мере, три аспекта:
аспект структуры: методы описания типов и логических структур данных в базе данных;
аспект манипуляции: методы манипулирования данными;
аспект целостности: методы описания и поддержки целостности базы данных.
Аспект структуры определяет то, что из себя логически представляет база данных, а аспект манипуляции - способы перехода между состояниями базы данных (то есть способы модификации данных) и способы извлечения данных из базы данных. Аспект целостности характеризует средства описаний корректных состояний базы данных.
Модель данных — это абстрактное, самодостаточное, логическое определение объектов, операторов и прочих элементов, в совокупности составляющих абстрактную машину доступа к данным, с которой взаимодействует пользователь. Эти объекты позволяют моделировать структуру данных, а операторы — поведение данных.
Выделяют информационно-логическую, концептуальную и физическую модели данных.
Логические представления о свойствах и отношениях объектов предметной области определяют построением внешней, информационно-логической модели, которая не зависит от способов физического размещения данных. В такой модели объекты представлены типами записей, свойства – полями записей, а отношения – связями между типами и полями записей. Наглядное изображение логической модели возможно двумя способами: графическим, когда схема строится в виде ориентированного графа с вершинами типов записей и дугами связей, и табличными, когда каждому типу записи (объекту) соответствует таблица с множеством полей записи (свойств).
Концептуальная (содержательная) модель — это абстрактная модель, определяющая структуру моделируемой системы, свойства её элементов и причинно-следственные связи, присущие системе и существенные для достижения цели моделирования.
Важнейшим понятием концептуальной модели является понятие связи между сущностями (наборами сущностей). В моделях данных соответствующее понятие отражается понятием «групповое отношение».
Групповое отношение – поименованное бинарное отношение, заданное на двух множествах экземпляров рассматриваемых групп. По характеру бинарных связей различают групповые отношения вида 1:1, 1:M, M:1, M:N. Пары чисел называют коэффициентами группового отношения. В групповом отношении один член группы назначается владельцем отношения, а другой – членом.
Логические связи между таблицами дают возможность объединять данные из разных таблиц. Связь каждой пары таблиц задается одинаковыми полями в них — ключом связи. Таким образом обеспечивается рациональное хранение недублированных данных и их объединение в соответствии с требованиями решаемых задач. В нормализованной реляционной базе данных связь двух таблиц характеризуется отношениями записей типа “один-к-одному” (1 : 1) или “один-ко-многим” (1 : M). Отношение 1 : 1 предполагает, что каждой записи одной таблицы соответствует одна запись в другой. Отношение 1 : М предполагает, что каждой записи первой таблицы соответствует много записей во второй, но каждой записи второй таблицы соответствует только одна запись в первой. Для двух таблиц, находящихся в отношении типа 1 : M, связь устанавливается по уникальному ключу таблицы, представляющей в отношении сторону “один”, — главной таблицы в связи. Во второй таблице, представляющей в отношении сторону “многие” и называемой подчиненной, этот ключ связи может быть либо частью уникального ключа, либо не входить в состав ключа. В подчиненной таблице ключ связи называется еще внешним ключом.
Для представления группового отношения используется две формы:
- Графовая. Группы изображаются вершинами графа, связи между группами – дугами, направленными от группы-владельца к группе-члену с указанием имени отношения и коэффициента.
По типу графов различают:
иерархическую модель (граф без циклов – дерево);
сетевую модель (ориентированный граф общего вида).
- Табличная. Связь между группами изображается таблицей, столбцы которой представляют ключи соответствующих групп. Для формального описания таблицы используется математическое (теоретико-множественное) понятие отношения. Соответствующая модель данных называется реляционной моделью.
Иерархическая модель данных основана на графическом способе и предусматривает поиск данных по одной из ветвей «дерева», в котором каждая вершина имеет только одну связь с вершиной более высокого уровня. Для осуществления поиска необходимо указать полный путь к данным, начиная с корневого элемента.
Сетевая модель данных также основана на графическом способе, но допускает усложнение «дерева» без ограничения количества связей, входящих в вершину. Это позволяет строить сложные поисковые структуры.
К поисковым структурам относят следующие виды:
Линейный список. Файл базы данных рассматривается как строго определенная последовательность записей, поиск которых происходит с помощью алгоритма вычисления адреса. Этот способ обеспечивает наиболее экономное использование памяти, но не отличается быстродействием.
Цепной список. В конце каждой записи файла, в дополнительном поле указывается адрес связи для перехода к другой записи, что позволяет задавать любую последовательность выборки. Для начала поиска в цепной структуре необходимо войти в запись заголовка или фиксатор списка, где хранится адрес начала списка. В дополнительном поле последней читаемой записи указывается адрес конца списка. Список можно сделать кольцевым (цепным), если поместить в дополнительное поле последней записи адрес фиксатора списка. Кроме того, в запись может быть добавлено любое количество адресов, что обеспечивает множество вариантов выборки.
Инвертированный файл, в котором записи упорядочены по неключевому полю. Создание инвертированного файла заключается в изменении порядка следования записей основного файла в соответствии со значениями неключевого поля. Полное инвертирование основного файла происходит при создании инвертированных структур для каждого из неключевых полей. С помощью инвертирования достигается наиболее быстрый поиск информации, но многократное дублирование информации ведет к перерасходу памяти;
Индексный файл, который представляет собой инвертированный файл адресов записей основного файла. Замена инвертирования самих записей инвертированием адресов позволяет осуществить поисковые операции с меньшими ресурсами памяти.
Рассмотрим основные элементы структуры модели данных.
Элемент данных (поле) – наименьшая поименованная единица данных. Используется для представления значения атрибута.
Запись – поименованная совокупность полей. Используется для представления совокупности атрибутов сущности (записи о сущности).
Экземпляр записи – запись с конкретными значениями полей.
Агрегат данных – поименованная совокупность элементов данных внутри записи, которую можно рассматривать как единое целое.
Фундаментальным понятием реляционной модели данных является отношение.
Отношение – структура, которая формально определяет свойства различных однородных объектов и их взаимосвязи. Один и тот же объект может быть описан с разных точек зрения, обладая отличными атрибутами. Например, разные документы, принадлежащие одному и тому же человеку, описывают его как разные отношения. Для получения полного описания объекта средствами реляционной модели данных используют связи отношений.
Связь – правило, описывающее способ объединения разных отношений для получения полного описания объекта средствами базы данных. Группа данных, описывающая какой-либо объект с помощью отношений и связей, образует кортеж данных, входящие в в его состав элементы данных называются атрибутами.
Формой представления отношений являются таблицы базы данных, строки которых соответствуют записям, а столбцы — полям.
В настоящее время существуют три вида баз данных: сетевые, иерархические и реляционные. Они различаются способом реализации связей между данными. Сетевые БД реализуют связи посредством отношений, т. е. в них одни данные связаны с другими, другие — с третьими и т. д.; возможны также множественные связи. В результате данные в базе связаны между собой подобно сети. Иерархические БД являются некоторой разновидностью сетевых БД, поскольку в них допустим только один вид связи — «владелец — подчиненный». В итоге связи получаются направленными строго «сверху вниз» (на рисунке это можно изобразить в виде дерева). Реляционные БД реализуют связи между данными посредством ссылок (или реляций), т. е. одни данные хранят ссылки на другие данные. Такие БД имеют жесткую структуру и могут быть представлены в виде таблиц.
Реляционные БД нашли наибольшее распространение. Даже если в базе нет никаких данных (пустая база), то это все равно БД. БД имеет свою структуру, которая определяется методами занесения данных и их хранения в базе. Наиболее простая реляционная база – это содержание одной таблицы, структура которой соответствует структуре БД. Структуры двухмерной и более сложных таблиц включает столбцы и строки. Их аналогами в структуре в БД являются поля и записи. Каждая строка является записью, а каждый столбец содержит значения полей. Безусловно, значение каждого поля любой записи таблицы можно изменить, отредактировать, удалить.
В настоящее время наиболее широко распространены реляционные базы данных (базы данных в Microsoft Access являются реляционными). В них используется ряд специфических терминов, смысл которых следует пояснить.
Поле — это наименьший элемент данных, имеющий имя и значение.
Запись — более сложный элемент данных, состоящий из значений нескольких полей. В отличие от поля запись не имеет имени, но имеет номер. Еще одна особенность записи заключается в том, что количество полей в ней может изменяться: к записи можно добавлять поля и удалять их из нее. Например, запись с полями Фамилия, Имя, Отчество может быть дополнена полем НомерТелефона. В записи не может быть меньше одного поля.
Таблица — еще более сложный элемент данных, представляющий собой набор записей одного типа. Таблица всегда имеет имя и может быть пустой, т. е. не содержать записей.
Реляционная база данных — это совокупность взаимосвязанных таблиц. Данные, которые необходимо хранить, обычно неоднородны. Это значит, что, например, объекты Поезд и Машинист неодинаковы, поскольку у любого поезда есть номер, время прибытия и время отправления, а у машиниста — фамилия, имя, отчество и номер телефона. Поэтому если в одной базе данных нужно хранить информацию о поездах и машинистах, которые управляют ими, то эти данные хранят в разных таблицах, но при этом таблицы являются взаимосвязанными. Так как машинист управляет поездом, то СУБД по номеру поезда должна выдавать фамилию машиниста и наоборот.