Тема: Реляционная модель данных: определение, индексирование.

Цель: формирование знаний о реляционной модели данных, об элементах реляционной модели, индексировании.

План:

  1. Определение реляционной модели.
  2. Индексирование.
  3. Выполнить лабораторно-практическую работу 2.

 

  1. Определение реляционной модели.

Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. Элементы РМД и формы их представления приве­дены в табл. 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.Порядок размещения строк в таблице может быть произвольным.

Если задаваемое таблицей отношение имеет ключ, то считается, что таб­лица тоже имеет ключ и ее называют ключевой или таблицей с ключевы­ми полями.

Основной единицей обработки данных в реляционных БД является от­ношение, а не отдельные его кортежи (записи).

 

  1. Индексирование.

Как отмечалось выше, определение ключа для таблицы означает авто­матическую сортировку записей, контроль отсутствия повторений зна­чений в ключевых полях записей и повышение скорости выполнения операций поиска в таблице. Для реализации этих функций в СУБД при­меняют индексирование.

Термин «индекс» тесно связан с понятием «ключ», хотя между ними есть и некоторое отличие.

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

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

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

вида содержимого в поле ключа записей индексного файла;

типа используемых ссылок (указателей) на запись основной таблицы;

метода поиска нужных записей.

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

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

На практике для создания индекса для некоторой таблицы БД пользова­тель указывает поле таблицы, которое требует индексации. Ключевые поля таблицы во многих СУБД как правило индексируются автоматически. Ин­дексные файлы, создаваемые по ключевым полям таблицы, часто называ­ются файлами первичных индексов.

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

 

 

Контрольные вопросы:

  1. Дайте определение реляционной модели и назовите составляющие е элементы.
  2. Охарактеризуйте составные элементы реляционной модели данных и формы их представления.
  3. Что такое домен отношения.
  4. При каких условиях таблица будет являться отношением?
  5. Что представляет собой первичный ключ отношения, для чего он задается?
  6. Что представляет собой внешний ключ отношения, для чего он задается?
  7. Что такое индекс, для чего используется индексирование?
  8. Что называется хэш-кодом? Где он используется?
  9. В чем состоит различие файлов первичных индексов от файлов вторичных индексов?
  10. Выполните лабораторно-практическую работу 2 «Реляционная модель данных. Ключи»

 

 

Hosted by uCoz