Тема: Реляционная модель данных: определение, индексирование.
Цель: формирование знаний о реляционной модели данных, об элементах реляционной модели, индексировании.
План:
Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. Элементы РМД и формы их представления приведены в табл. 1.
Таблица 1 Элементы реляционной модели
Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.
Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
Математически отношение можно описать следующим образом. Пусть даны п множеств D1, D2, D3,..., Dn, тогда отношение R есть множество упорядоченных кортежей <dl, d2, d3 ,..., dn>, где dk e Dk, dk — атрибут, a Dk -домен отношения R.
На рис.1 приведен пример представления отношения СОТРУДНИК.
ФИО |
Отдел |
Должность |
Д_рождения |
Иванов И.И. |
002 |
начальник |
27.09.51 |
Петров П.П. |
001 |
заместитель |
15.04.55 |
Сидоров С.С. |
003 |
инженер |
13.01.70 |
Рис1. Пример представления отношения СОТРУДНИК.
Домен представляет собой множество всех возможных значений определенного атрибута отношения. Отношение СОТРУДНИК включает 4 домена. Домен 1 содержит фамилии всех сотрудников, домен 2 — номера всех отделов фирмы, домен 3 — названия всех должностей, домен 4 — даты рождения всех сотрудников. Каждый домен образует значения одного типа данных, например, числовые или символьные.
Отношение СОТРУДНИК содержит 3 кортежа. Кортеж рассматриваемого отношения состоит из 4 элементов, каждый из которых выбирается из соответствующего домена. Каждому кортежу соответствует строка таблицы (рис.1).
Схема отношения (заголовок отношения) представляет собой список имен атрибутов. Например, для приведенного примера схема отношения имеет вид СОТРУДНИК(ФИО, Отдел, Должность, Д_Рождения). Множество собственно кортежей отношения часто называют содержимым (телом) отношения.
Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут отношения, однозначно идентифицирующий каждый из его кортежей. Например, в отношении СОТРУДНИК(ФИО, Отдел, Должность, Д_Рождения) ключевым является атрибут "ФИО". Ключ может быть составным (сложным), т. е. состоять из нескольких атрибутов.
Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными ключами отношения. Любой из возможных ключей может быть выбран как первичный.
Ключи обычно используют для достижения следующих целей:
1)исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются);
2)упорядочения кортежей. Возможно упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним — возрастание, а по другим — убывание);
3)ускорения работы к кортежами отношения (подраздел 3.2);
4)организации связывания таблиц (подраздел 3.3).
Пусть в отношении R1 имеется не ключевой атрибут А, значения которого являются значениями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 есть внешний ключ.
С помощью внешних ключей устанавливаются связи между отношениями. Например, имеются два отношения СТУДЕНТ(ФИО. Группа, Специальность) и ПРЕДМЕТУ Назв. Пр. Часы), которые связаны отношением СТУДЕНТ ПРЕДМЕТСФИО. Назв.Пр. Оценка) (рис. 2). В связующем отношении атрибуты ФИО и Назв.Пр образуют составной ключ. Эти атрибуты представляют собой внешние ключи, являющиеся первичными ключами других отношений.
Рис.2. Установление связей между отношениями
Реляционная модель накладывает на внешние ключи ограничение дл обеспечения целостности данных, называемое ссылочной целостностью. Эт означает, что каждому значению внешнего ключа должны соответствоват строки в связываемых отношениях.
Существуют условия, при которых таблица будет являться отношением.
l.Bce строки таблицы должны быть уникальны, т. е. не может быть стро: с одинаковыми первичными ключами.
2.Имена столбцов таблицы должны быть различны, а значения их просты ми, т. е. недопустима группа значений в одном столбце одной строки.
З.Все строки одной таблицы должны иметь одну структуру, соответству ющую именам и типам столбцов.
4.Порядок размещения строк в таблице может быть произвольным.
Если задаваемое таблицей отношение имеет ключ, то считается, что таблица тоже имеет ключ и ее называют ключевой или таблицей с ключевыми полями.
Основной единицей обработки данных в реляционных БД является отношение, а не отдельные его кортежи (записи).
Как отмечалось выше, определение ключа для таблицы означает автоматическую сортировку записей, контроль отсутствия повторений значений в ключевых полях записей и повышение скорости выполнения операций поиска в таблице. Для реализации этих функций в СУБД применяют индексирование.
Термин «индекс» тесно связан с понятием «ключ», хотя между ними есть и некоторое отличие.
Под индексом понимают средство ускорения операции поиска записей в таблице, а следовательно, и других операций, использующих поиск: извлечение, модификация, сортировка и т. д. Таблицу, для которой используется индекс, называют индексированной.
Индекс выполняет роль оглавления таблицы, просмотр которого предшествует обращению к записям таблицы. В некоторых системах, например Paradox, индексы хранятся в индексных файлах, хранимых отдельно от табличных файлов.
Варианты решения проблемы организации физического доступа к информации зависят в основном от следующих факторов:
• вида содержимого в поле ключа записей индексного файла;
• типа используемых ссылок (указателей) на запись основной таблицы;
• метода поиска нужных записей.
В поле ключа индексного файла можно хранить значения ключевых полей индексируемой таблицы либо свертку ключа (так называемый хеш-код). Преимущество хранения хеш-кода вместо значения состоит в том, что длина свертки независимо от длины исходного значения ключевого поля всегда имеет некоторую постоянную и достаточно малую величину (например, 4 байта), что существенно снижает время поисковых операций. Недостатком хеширования является необходимость выполнения операции свертки (требует определенного времени), а также борьба с возникновением коллизий (свертка различных значений может дать одинаковый хеш-код).
Для организации ссылки на запись таблицы могут использоваться три типа адресов: абсолютный (действительный), относительный и символический (идентификатор).
На практике для создания индекса для некоторой таблицы БД пользователь указывает поле таблицы, которое требует индексации. Ключевые поля таблицы во многих СУБД как правило индексируются автоматически. Индексные файлы, создаваемые по ключевым полям таблицы, часто называются файлами первичных индексов.
Индексы, создаваемые пользователем для не ключевых полей, иногда называют вторичными (пользовательскими) индексами. Введение таких индексов не изменяет физического расположения записей таблицы, но влияет на последовательность просмотра записей. Индексные файлы, создаваемые для поддержания вторичных индексов таблицы, обычно называются файлами вторичных индексов.
Контрольные вопросы: