Недостатками сетевой модели данных является высокая сложность и жесткость схемы БД, построенной на ее основе, а так же сложность для понимания и выполнения обработки информации обычным пользователем. Кроме того, в сетевой модели ослаблен контроль целостности связей вследствие допустимости произвольного установления связей между записями.
Реляционная модель данных
Как уже отмечалось выше, приведенные модели данных достаточно сложны для понимания обычного пользователя. Реляционная модель, описываемая ниже, в этом смысле имеет большое преимущество перед приведенными моделями. Именно по этому, а так же по ряду других причин, эта модель в настоящее время является самой распространенной для построения баз данных. А так же по этим причинам именно эта модель будет использована для решения задачи поставленной темой дипломного проектирования. Рассмотрим основы реляционной модели данных более подробно.
Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Элементы РМД и формы их представления приведены в таблице 2.
Таблица 2.
Элементы реляционной модели
Элемент реляционной модели | Форма представления |
Отношение | Таблица |
Схема отношения | Строка заголовков таблицы (заголовок таблицы) |
Кортеж | Строка таблицы |
Сущность | Описание свойств объекта |
Атрибут | Заголовок столбца таблицы |
Домен | Множество допустимых значений атрибута |
Значение атрибута | Значение поля в записи |
Первичный ключ | Один или несколько атрибутов |
Тип данных | Тип значений элементов таблицы |
Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.
Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
В общем случае порядок картежей в отношении, как и в любом множестве, не определен. Однако, в реляционных СУБД для удобства кортежи все же упорядочивают. Для этого выбирают некоторый атрибут, по которому система автоматически сортирует кортежи (записи) по убыванию или возрастанию. Если пользователь не назначает атрибута упорядочивания, то система автоматически присваивает номера кортежам в порядке их добавления. Формально, если переставить атрибуты в отношении, то получится новое отношение. Однако в реляционных БД простановка атрибутов к этому результату не приводит.
Домен представляет собой множество всех возможных значений определенного атрибута отношения. Например, отношение «Сотрудник» включает 4 домена. Домен 1- содержит фамилии всех сотрудников, домен 2 – номера всех отделов фирмы, домен 3 – названия всех должностей, домен 4 – даты рождения всех сотрудников. Каждый домен образует значения одного типа, например, символьные или числовые, из всех записей отношения.
Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Множество собственно кортежей отношения часто называют содержимым (телом) отношения.
Первичным ключом (ключом отношения, ключевым атрибутом) называют атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Ключ может быть простым, состоящим из одного атрибута, и сложным (составным), то есть состоять из нескольких атрибутов.
Каждое отношение обязательное имеет комбинацию атрибутов, которая может служит ключом. Ее существование гарантируется тем, что отношение – это множество, которое не содержит одинаковых элементов (кортежей), а это означает, что вся совокупность атрибутов обладает свойством однозначной идентификации кортежей отношения.
Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых может являться первичным ключом. Такие комбинации атрибутов являются возможными ключами.
Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов, то такой ключ является не избыточным.
Ключи обычно используются для следующих целей:
· Исключение дублирования значений в ключевых атрибутах;
· Упорядочивание кортежей. Возможно упорядочение по возрастанию или убыванию, а так же одних атрибутов по убыванию, других по возрастанию одновременно;
· Ускорение работы с кортежами отношения;
· Организации связывания таблиц;
Кроме первичного ключа в реляционной модели имеется внешнего ключа. Пусть в отношении R1 имеется не ключевой атрибут A, значения которого являются значениями ключевого атрибута B отношения R2, тогда атрибут A отношения R1 является внешним ключом. С помощью внешних ключей устанавливаются связи между отношениями. Реляционная модель накладывает на внешние ключи ограничение для обеспечения целостности данных, называемое ссылочной целостностью. Это означает, что каждому значению внешнего ключа обязательно должно быть поставлено в соответствие хотя бы одно значение в связываемом отношении.
Для ускорения функций поиска и автоматической сортировки записей в реляционных СУБД часто применяются индексы.
Под индексом понимают средство ускорения операции поиска записей в таблице, а следовательно, и других операций, использующих поиск: извлечение, модификация, сортировка и т.д.
Индекс играет роль оглавления таблицы, просмотр которого предшествует обращению к записям таблицы. Ключевые поля во многих СУБД индексируются автоматически. Индексы, создаваемые пользователями для не ключевых полей, часто называют вторичными (пользовательскими) индексами.
Главная причина повышения скорости выполнения различных операций с индексированными таблицами заключается в том, что основная часть работы происходит не с самими таблицами, а с небольшими индексными файлами. Наибольший эффект производительности от использования индексов, возникает при работе с большими по объему данных таблицами. Индексирование требует незначительных затрат системных ресурсов, что в сочетании с эффектом который оно дает, делает его очень удобным механизмом по повышению производительности работы с базой данных.
Как отмечалось выше, в реляционных базах данных широко используется связывание таблиц. При связывании двух таблиц выделяют основную и подчиненную таблицы. Логическое Связывание производится при помощи ключа связи. Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые называют полями связи (ПС).
Вообще, суть связывания состоит в установлении соответствия полей связи основной и подчиненной таблицы.
В зависимости от того, как определены поля связи основной и подчиненной таблицы (как соотносятся поля связи к ключевым полям), между двумя таблицами могут устанавливаться следующие четыре основных вида связи (характеристика видов связей приведена в таблице 3):
· Связь «ОДИН К ОДНОМУ» (1:1). Связь вида 1:1 образуется в случае, когда все поля связи основной и подчиненной таблицы являются ключевыми. Поскольку значения в ключевых полях не повторяются, обеспечивается взаимо-однозначное соответствие записей из этих таблиц. Сами таблицы при использовании такого вида связи становятся равноправными. На практике связь вида 1:1 используется сравнительно редко, так как хранимую в двух таблицах информацию, в этом случае, легко объединить в одну, что позволяет сэкономить ресурсы компьютера.
· Связь «ОДИМ КО МНОГИМ» (1:М). Связь вида 1:М имеет место в случае, если когда одной записи основной таблицы ставится в соответствие несколько записей подчиненной таблицы.
· Связь «МНОГИЕ К ОДНОМУ» (М:1). Этот вид связи образуется, если одной или нескольким записям основной таблицы ставится в соответствие одна запись подчиненной таблицы. Вид связи (1:М или М:1) зависит от того, какая таблица является основной, а какая подчиненной
· Связь «МНОГИЕ КО МНОГИМ» (М:М). Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной таблицы ставится в соответствие несколько записей подсиненной таблицы. Очевидно, аналогично связи 1:1, связь М:М, делает связываемые таблицы по сути равноправными.
Таблица 3
Характеристика видов связей таблиц в РМД
Характеристика полей связи по видам | 1:1 | 1:М | М:1 | М:М |
Поля связи основной таблицы | Являются ключом | Являются ключом | Не являются ключом | Не являются ключом |
Поля связи подчиненной таблицы | Являются ключом | Не являются ключом | Являются ключом | Не являются ключом |
Необходимо заметить, что на практике в связь обычно включается сразу несколько таблиц. При этом одна таблица может иметь различного рода связи с другими таблицами.
При образовании различного рода связей возникает необходимость соблюдения ссылочной целостности или целостности связей, и, соответственно, организация контроля этой самой целостности. Так как наиболее распространенным видом связи является связь вида 1:М, то далее речь пойдет именно о таких связях. Контроль целостности связей обычно означает анализ связанных таблиц на соблюдение следующих правил:
· Каждой записи связанной таблицы соответствует нуль или более записей подчиненной таблицы;
· В подчиненной таблице не должно быть записей, ссылающихся на несуществующие записи в основной таблице;
Существует три основные операции над данными двух связанных таблиц.
· Ввод новых записей;
· Модификация записей;