Конспект лекции по теме "Определение реляционной модели. Индексирование"
Оценка 4.8

Конспект лекции по теме "Определение реляционной модели. Индексирование"

Оценка 4.8
Лекции
pdf
информатика +1
Взрослым
22.10.2018
Конспект лекции по теме "Определение реляционной модели. Индексирование"
Данная разработка представляет собой конспект лекции на тему "Определение реляционной модели. Индексирование" по дисциплине "Базы данных". Она раскрывает в полном объеме данную тему (рассмотрено понятие реляционной модели, ее элементы и форма их представления, а также понятие индексирования и с для чего оно используется). Также данная разработка может использоваться преподавателями информатики, как общеобразовательных учебных заведений, так и преподавателями среднеспециальных учебных заведений.Конспект лекции по теме "Определение реляционной модели. Индексирование"
Определение реляционной модели. Индексирование.pdf

Тема: Определение реляционной модели. Индексирование

 

Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Элементы РМД и формы их представления приведены в табл. 1.

 

Таблица 1 Элементы реляционной модели

Элемент реляционной модели

Форма представления

Отношение 

Таблица 

Схема отношения 

Строка заголовков столбцов таблицы (заголовок таблицы) 

Кортеж 

Строка таблицы 

Сущность 

Описание свойств объекта 

Атрибут 

Заголовок столбца таблицы 

Домен 

Множество допустимых значений атрибута 

Значение атрибута 

Значение поля в записи 

Первичный ключ 

Один или несколько атрибутов 

Тип данных 

Тип значений элементов таблицы 

 

Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.

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

сущности хранятся в отношении.

Атрибуты - это свойства, характеризующие сущность.

В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.

На рис. 1 приведен пример представления отношения СОТРУДНИК.

 

 

Рис. 1 Представление отношения СОТРУДНИК

 

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

Формально, если переставить атрибуты в отношении, то получается новое отношение. Одна-

ко в реляционных БД перестановка атрибутов не приводит к образованию нового отношения.

Домен - это множество всех возможных значений определенного атрибута отношения.

Отношение СОТРУДНИК включает 4 домена. Домен 1 содержит фамилии всех сотрудников, домен 2 - номера всех отделов фирмы, домен 3 - названия всех должностей, домен 4 - даты рождения всех сотрудников. Каждый домен образует значения одного типа данных, например, числовые или символьные.

Отношение СОТРУДНИК содержит 3 кортежа. Кортеж рассматриваемого отношения состо-

ит из 4-х элементов, каждый из которых выбирается из соответствующего домена. Каждому кортежу соответствует строка таблицы (рис. 1),

Схема отношения (заголовок отношения) - это список имен атрибутов.

Например, для приведенного примера схема отношения имеет вид СОТРУДНИК (ФИО, Отдел, Должность, Д_Рождения).

Множество собственно кортежей отношения часто называют содержимым (телом) отношения.

Первичным ключом (ключом отношения, ключевым атрибутом) называется атрибут от-

ношения, однозначно идентифицирующий каждый из его кортежей.

Например, в отношении СОТРУДНИК(ФИО, Отдел, Должность, Д_Рождения) ключевым является атрибут "ФИО".

Ключ может быть составным (сложным), т. е. состоять из нескольких атрибутов.

Каждое отношение обязательно имеет комбинацию атрибутов, которая может служить клю-

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

Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из ко-

торых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными ключами отношения. Любой из возможных ключей может быть выбран как первичный.

Если выбранный первичный ключ состоит из минимально необходимого набора атрибутов,

говорят, что он является не избыточным

Ключи обычно используют для достижения следующих целей:

 исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет

не принимаются);

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

ний всех ключевых атрибутов, а также смешанное упорядочение (по одним - возрастание, а по другим - убывание);

 ускорения работы с кортежами отношения;

 организации связывания таблиц.

Пусть в отношении R1 имеется не ключевой атрибут А, значения которого являются значе-

ниями ключевого атрибута В другого отношения R2. Тогда говорят, что атрибут А отношения R1 есть

внешний ключ.

С помощью внешних ключей устанавливаются связи между отношениями. Например, имеются два отношения СТУДЕНТ(ФИО, Группа, Специальность) и ПРЕДМЕТ(Назв.Пр, Часы), которые связаны отношением СТУДЕНТ_ПРЕДМЕТ(ФЖ1 Назв. Пр., Оценка) (рис. 2). В связующем отношении атрибуты ФИО и Назв. Преобразуют составной ключ. Эти атрибуты представляют собой внешние ключи, являющиеся первичными ключами других отношений.

 

 

Рис. 2 Связь отношений

 

Реляционная модель накладывает на внешние ключи ограничение для обеспечения целост-

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

Поскольку не всякой таблице можно поставить в соответствие отношение, приведем усло-

вия, выполнение которых позволяет таблицу считать отношением.

1.             Все строки таблицы должны быть уникальны, т, е. не может быть строк с одинаковыми первичными ключами.

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

З. Все строки одной таблицы должны иметь одну структуру, соответствующую именам и ти-

пам столбцов.

4. Порядок размещения строк в таблице может быть произвольным.

Наиболее часто таблица с отношением размещается в отдельном файле. В некоторых СУБД

одна отдельная таблица (отношение) считается базой данных, В других СУБД база данных может содержать несколько таблиц.

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

Таблица данных обычно хранится на магнитном диске в отдельном файле операционной

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

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

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

У большинства СУБД файл таблицы включает управляющую часть (описание типов полей,

имена полей и другая информация) и область размещения записей.

К отношениям можно применять систему операций, позволяющую получать одни отноше-

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

Основной единицей обработки данных в реляционных БД является отношение, а не отдель-

ные его кортежи (записи).

 

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

Как отмечалось выше, определение ключа для таблицы означает автоматическую сортировку

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

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

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

чие.

Индекс - это средство ускорения операции поиска записей в таблице, а следовательно, и дру-

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

Таблицу, для которой используется индекс, называют индексированной.

Индекс выполняет роль оглавления таблицы, просмотр которого предшествует обращению к

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

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

новном от следующих факторов:

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

В поле ключа индексного файла можно хранить значения ключевых полей индексируемой

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

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

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

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

При одноуровневой схеме в индексном файле хранятся короткие записи, имеющие два поля:

поле содержимого старшего ключа (хеш-кода ключа) адресуемого блока и поле адреса начала этого блока (рис. 3). В каждом блоке записи располагаются в порядке возрастания значения ключа или свертки. Старшим ключом каждого блока является ключ его последней записи.

 

 

Рис. 3 Одноуровневая схема индексации

 

Если в индексном файле хранятся хеш-коды ключевых полей индексированной таблицы, то

алгоритм поиска нужной записи (с указанным ключом) в таблице включает в себя следующие три этапа.

1.  Образование свертки значения ключевого поля искомой записи.

2.  Поиск в индексном файле записи о блоке, значение первого поля которого больше полу-

ченной свертки (это гарантирует нахождение искомой свертки в этом блоке).

3.  Последовательный просмотр записей блока до совпадения сверток искомой записи и запи-

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

Основным недостатком одноуровневой схемы является то, что ключи (свертки) записей

хранятся вместе с записями. Это приводит к увеличению времени поиска записей из-за большой длины просмотра (значения данных в записях приходится пропускать).

Двухуровневая схема в ряде случаев оказывается более рациональной, в ней ключи (свертки)

записей отделены от содержимого записей (рис. 4). В этой схеме индекс основной таблицы распределен по совокупности файлов: одному файлу главного индекса и множеству файлов с блоками ключей.

 

Рис. 4 Двухуровневая схема индексации

 

На практике для создания индекса для некоторой таблицы БД пользователь указывает поле

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

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

Индексы, создаваемые пользователем для не ключевых полей, иногда называют вторичны-

ми (пользовательскими) индексами.

Введение таких индексов не изменяет физического расположения записей таблицы, но влия-

ет на последовательность просмотра записей.

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

Связь вторичного индекса с элементами данных базы может быть установлена различными

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

Некоторыми СУБД, например Access, деление индексов на первичные и вторичные не про-

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

Главная причина повышения скорости выполнения различных операций в индексированных

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

 

Тема: Определение реляционной модели

Тема: Определение реляционной модели

Если пользователь не назначает атрибута упорядочения, система автоматически присваивает номер кортежам в порядке их ввода

Если пользователь не назначает атрибута упорядочения, система автоматически присваивает номер кортежам в порядке их ввода

Возможно упорядочение по возрастанию или убыванию значе- ний всех ключевых атрибутов, а также смешанное упорядочение (по одним - возрастание, а по другим - убывание); ускорения…

Возможно упорядочение по возрастанию или убыванию значе- ний всех ключевых атрибутов, а также смешанное упорядочение (по одним - возрастание, а по другим - убывание); ускорения…

В общем случае можно считать, что

В общем случае можно считать, что

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

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

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

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

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

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