Реляционные базы данных
Реляционная модель данных (РМД) некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между ними. Термины РМД представлены в табл. 1.
Реляционная база данных представляет собой хранилище данных, содержащее набор двухмерных таблиц. Данные в таблицах должны удовлетворять следующим принципам:
1. Значения атрибутов должны быть атомарными (иными словами, каждое значение, содержащееся на пересечении строки и колонки, должно быть не расчленяемым на несколько значений).
2. Значения каждого атрибута должны принадлежать к одному и тому же типу.
3. Каждая запись в таблице уникальна.
4. Каждое поле имеет уникальное имя.
5. Последовательность полей и записей в таблице несущественна.
Таблица 1 – Термины реляционной модели
Термин реляционной модели | Эквивалентный термин |
Отношение | Таблица |
Схема отношения | Строка заголовков столбцов таблицы (заголовок таблицы) |
Кортеж | Строка таблицы, запись |
Сущность | Описание свойств объекта |
Атрибут | Столбец, поле |
Домен | Множество допустимых значений атрибута |
Первичный ключ | Уникальный идентификатор |
Кардинальность | Количество строк |
Степень | Количество столбцов |
Отношение является важнейшим понятием и представляет собой двумерную таблицу, содержащую некоторые данные.
Сущность есть объект любой природы, данные о котором хранятся в базе данных. Данные о сущности хранятся в отношении.
Атрибуты представляют собой свойства, характеризующие сущность. В структуре таблицы каждый атрибут именуется и ему соответствует заголовок некоторого столбца таблицы.
Математически отношение можно описать следующим образом. Пусть даны n множеств Dl, D2, D3,...,Dn, тогда отношение R есть множество упорядоченных кортежей <d1, d2, d3,..., dn>, где dk Î Dk, dk – атрибут, a Dk – домен отношения R.
На рис. 8 приведен пример отношения «СОТРУДНИК».
Рис. 8 – Пример отношения «СОТРУДНИК»
Домен представляет собой множество всех возможных значений определенного атрибута отношения. Отношение «СОТРУДНИК» включает 4 домена:
1) множество всех возможных фамилий сотрудников;
2) множество всех возможных номеров отделов;
3)множество всех возможных названий должностей
4) множество возможных дат рождения сотрудников.
Значения домена принадлежат к одному типу (числовому, символьному и т.д.).
Отношение «СОТРУДНИК» содержит 3 кортежа (кортежу соответствует строка таблицы). Информация о предметной области вносится по 4-м атрибутам.
Схема отношения – перечень имен атрибутов. Например: СОТРУДНИК (ФИО, Отдел, Должность, Дата рождения). Множество кортежей отношения называют телом отношения.
Ключом отношения называется совокупность его атрибутов, однозначно идентифицирующих каждый из кортежей отношения. Иными словами, множество атрибутов К, являющееся ключом отношения, обладает свойством уникальности. Следующее свойство ключа – неизбыточность. То есть никакое из собственных подмножеств множества К не обладает свойством уникальности.
Каждое отношение всегда имеет комбинацию атрибутов, которая может служить ключом. Ее существование гарантируется принципом № 3 РМД. По крайней мере, вся совокупность атрибутов обладает свойством уникальности.
Возможны случаи, когда отношение имеет несколько комбинаций атрибутов, каждая из которых однозначно определяет все кортежи отношения. Все эти комбинации атрибутов являются возможными ключами отношения. Любой из возможных ключей может быть выбран как первичный.
Ключи обычно используют для достижения следующих целей:
· исключения дублирования значений в ключевых атрибутах (остальные атрибуты в расчет не принимаются);
· упорядочения кортежей. Возможно упорядочение по возрастанию или убыванию значений всех ключевых атрибутов, а также смешанное упорядочение (по одним – возрастание, а по другим – убывание);
· организации связывания таблиц.
Важным является понятие внешнего ключа. Внешний ключ можно определить как множество атрибутов одного отношения R2, значения которых должны совпадать со значениями возможного ключа другого отношения R1.
Атрибуты отношения R2, составляющие внешний ключ не являются ключевыми для данного отношения.
С помощью внешних ключей устанавливаются связи между отношениями.
ОТДЕЛЫ
Код отдела | Название | Число сотрудников |
О1 | Производственный | |
О2 | Труда и зарплаты | |
О3 | Кадров |
СОТРУДНИКИ
Код сотрудника | ФИО | Код отдела | Зарплата |
С1 | Волков И.И. | О1 | |
С2 | Петров П.П. | О1 | |
С3 | Ковалева И.С. | О2 | |
С4 | Семенов С.И. | О2 |
Рис. 9 – Связь отношений
Например, имеются два отношения: ОТДЕЛЫ (Код отдела, Название, Число сотрудников) и СОТРУДНИКИ (Код сотрудника, ФИО, Код отдела, Зарплата). Атрибуты, выделенные жирным шрифтом, являются первичными ключами. Атрибут, выделенный курсивом, является внешним ключом (см. рис. 9). Внешний ключ отношения СОТРУДНИКИ – Код отдела» является первичным ключом отношения ОТДЕЛЫ.
Ограничения целостности реляционной модели можно разделить на две группы – ограничения целостности сущностей и ограничения целостности ссылок.
Ограничения целостности сущностей заключаются в требовании уникальности кортежей отношения(записей таблицы). Отсюда вытекают следующие ограничения:
· отсутствие кортежей дубликатов (данное требование предъявляется лишь к атрибутам первичных ключей);
· отсутствие атрибутов с множественным характером значений.
Ограничения целостности ссылок заключаются в том, что для любой записи с конкретным значением внешнего ключа должна обязательно существовать запись связанной таблицы-отношения с соответствующим значением первичного ключа. Примером этого требования является отношение «СОТРУДНИКИ» с внешним ключом «Код отдела» и связанная с ней таблица ОТДЕЛЫ с первичным ключом «Код отдела» (см. рис. 9). Если существует сотрудник Волков И.И., работающий в отделе О1, то соответствующий отдел должен существовать и данные о нем должны храниться в таблице ОТДЕЛЫ.
К отношениям можно применять систему операций, позволяющую получать одни отношения из других. Например, результатом запроса к реляционной БД может быть новое отношение, вычисленное на основе имеющихся отношений. Поэтому можно разделить обрабатываемые данные на хранимую и вычисляемую части.
Основной единицей обработки данных в реляционных БД является отношение, а не отдельные его кортежи (записи).
Отсутствие упорядоченности записей в таблицах усложняет поиск. На практике с целью быстрого нахождения нужной записи вводят индексирование полей (обычно ключевых). Создание индексных массивов заключается в построении дополнительной упорядоченной информационной структуры для быстрого доступа к записям.
Как для самих таблиц, так и для индексных массивов применяются линейные и нелинейные структуры. В качестве линейных структур индексных массивов в большинстве случаев выступают инвертированные списки.Инвертированный список строится по схеме таблицы с двумя колонками – «Значение индексируемого поля» и «Номера строк» (рис. 10).
Инвертированные списки чаще всего применяются для индексации полей, значения которых в разных записях могут повторяться. В этом случае количество ситуаций, при которых требуется добавление или удаление строк индекса, невелико, и затраты на переупорядочение индекса при изменениях данных в базовой таблице незначительны.
Значение индексируемого поля («Год рождения») | Номера строк |
5, 17, 123, 256 | |
31, 32, 77 | |
11, 45, 58, 167, 231 | |
7, 8, 9, 10, 234, 235, 236 |
Рис. 10 – Пример инвертированного списка
Строки инвертированного списка упорядочиваются по значению индексируемого поля. Для доступа к нужной записи исходной таблицы сначала в упорядоченном инвертированном списке отыскивается строка с требуемым значением поля, затем считывается номера соответствующих записей основной таблицы, к которым осуществляется доступ по этим номерам.
Нелинейные структуры индексов применяются для создания индексных массивов ключевых полей или тех полей, значения по которым не повторяются. При организации индексов в таких случаях чаще всего используются древовидные иерархические структуры в виде B-деревьев.
Дата добавления: 2016-06-02; просмотров: 1053;