Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пример. Конспект лекций - копия.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
585.48 Кб
Скачать

Лекция 6. Реляционная модель данных

Основные понятия и термины реляционной модели данных: (отношение, схема отношения, кортеж, домен, потенциальный ключ, первичный ключ, внешний ключ). Сущность реляционной модели данных: структурный аспект, аспект целостности, аспект обработки.

Шестая лекция курса «Реляционная модель данных» посвящена знакомству с основами реляционной модели баз данных. В данной лекции приводятся определение ключевых понятий реляционной модели данных, общие сведения о её основных компонентах.

Реляционная модель данных, как и любая другая даталогическая модель данных, предоставляет средства описания данных на основе только их естественной структуры, т.е. без потребности введения какой-либо дополнительной структуры для целей машинного представления. В реляционной модели данных такое представление данных, не зависящее от способа их физической организации, достигается за счет использования математической теории отношений и логики предикатов (использование теории отношений предопределило название рассматриваемой модели: «реляционная» происходит от английского relation – «отношение»).

Сущность реляционной модель данных определяется следующими компонентами: 1) структурный аспект (составляющая) – данные в базе данных представляют собой множество взаимосвязанных отношений; 2) аспект (составляющая) целостности – отношения отвечают определенным условиям целостности; 3) аспект (составляющая) обработки (манипулирования) – модель поддерживает операторы манипулирования отношениями (реляционная алгебра, реляционное исчисление).

Структурный аспект реляционной модели данных

Отношение в теории множеств – математическая структура, которая формально определяет свойства различных объектов и их взаимосвязи.

Базовое понятие реляционной модели данных «отношение» (R), определенное на множествах , определяется как подмножество декартова произведения .

Полное декартово произведение – это набор всевозможных сочетаний из (n =>1) элементов каждое, где каждый элемент берется из своего исходного множества. Теоретико-множественного отношения (R, далее – отношение) содержит лишь подмножество (часть набора всевозможных сочетаний) полного декартова произведения, которое моделирует реальную ситуацию.

Пример 6.1. Понятие полного декартова произведения и теоретико-множественного отношения

Имеются три исходных множества: D1 (фамилии студентов), D2 (факультеты), D3 (курсы).

Допустим, содержимое исходных множеств следующее:

D1 = {Иванов, Петров, Степанов};

D2 = {Физический, Химический};

D3 = {3, 4, 5}

Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент – это одна из фамилий, второй – это название факультета, а третий – один из курсов:

<Иванов, Физический,3>; <Иванов, Физический,4>; <Иванов, Физический,5>; <Иванов, Химический,3>; <Иванов, Химический,4>; <Иванов, Химический,5>; <Петров, Физический,3>; <Петров, Физический,4>; <Петров, Физический,5>; <Петров, Химический,3>; <Петров, Химический,4>; <Петров, Химический,5>; <Степанов, Физический,3>; <Степанов, Физический,4>; <Степанов, Физический,5>; <Степанов, Химический,3>; <Степанов, Химический,4>; <Степанов, Химический,5>.

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

<Иванов, Физический,3>; <Петров, Химический,4>; <Степанов, Физический,5>.

Основные термины, используемые в контексте работы с отношениями: 1) исходные множества называются доменами отношения; 2) элементы декартова произведения называются кортежами; 3) число n определяет степень отношения (n=1 - унарное, n=2 - бинарное, ..., n-арное); количество кортежей называется мощностью отношения

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

В самом общем виде домен определяется заданием некоторого базового типа данных, к которому относятся элементы домена, и произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат «истина», то элемент данных является элементом домена.

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

Схема отношения – это именованное множество пар {имя атрибута, имя домена}. Схема базы данных (в структурном смысле) – это набор именованных схем отношений.

Кортеж, соответствующий данной схеме отношения, - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения. «Значение» является допустимым значением домена данного атрибута. Попросту говоря, кортеж - это набор именованных значений заданного типа.

Отношения имеют следующие свойства: 1) отсутствие кортежей-дубликатов (из этого свойства вытекает наличие у каждого кортежа первичного ключа); 2) отсутствие упорядоченности кортежей; 3) отсутствие упорядоченности атрибутов; 4) атомарность значений атрибутов, т.е. среди значений домена не могут содержаться множества значений (отношения).

Так как реляционная модель представляет базу данных в виде множества взаимосвязанных отношений, то между отношениями поддерживаются связи. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны. В основном отношении это первичный ключ отношения (PRIMARY KEY), а в подчиненном – внешний ключ (FOREIGN KEY).

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

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

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

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

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

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

Потенциальные ключи служат единственным средством адресации на уровне кортежей в отношении. Точно указать какой-нибудь кортеж можно только зная значение его потенциального ключа.

Первичный ключ (англ. primary key) – в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию). Все другие потенциальные ключи отношения (если они есть) называют альтернативными ключами

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

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

В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом (FOREIGN KEY).

Свойства внешнего ключа: 1) может быть простым и составным; 2) должен быть определен на тех же доменах, что и соответствующий первичный ключ родительского отношения; 3) как правило, не обладает свойством уникальности (в дочернем отношении может быть несколько кортежей, ссылающихся на один и тот же кортеж родительского отношения, что, собственно, и дает тип отношения «один-ко-многим»; 4) может обладать свойством уникальности (связь между отношениями имеет тип «один-к-одному»); 5) каждое значение внешнего ключа обязано совпадать со значениями потенциального ключа в некотором кортеже родительского отношения, однако обратное – неверно. Например, могут существовать поставщики, не поставляющие никаких деталей; 6) не требуется, чтобы он был компонентом некоторого потенциального ключа; 7) Null-значения для атрибутов внешнего ключа допустимы только в том случае, когда атрибуты внешнего ключа не входят в состав никакого потенциального ключа.

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

Наглядно теоретико-множественное отношение можно представить в виде двумерной таблицы, каждая строка которой содержит конкретные примеры объектов, связанных данным отношением.

Рисунок 6. Основные компоненты реляционного отношения

Необходимо помнить, что «таблица» есть понятие нестрогое и неформальное и часто означает не «отношение» как абстрактное понятие, а визуальное представление отношения на бумаге или экране. Некорректное и нестрогое использование термина «таблица» вместо термина «отношение» нередко приводит к недопониманию.

Исходя из этого, основные понятия реляционной модели можно определить следующим образом: 1) отношение это таблица, состоящая из строк и столбцов и имеющая вверху строку, называемую заголовок отношения; 2) cтроки таблицы-отношения называются кортежами, а столбцы атрибутами; 3) количество кортежей в отношении называется кардинальным числом отношения, а количество атрибутов называется степенью отношения; 4) каждый атрибут в отношении имеет наименование, которое указывается в заголовочной части отношения; 5) ключ отношения – это атрибут или набор атрибутов отношения такие, что в любой момент времени в отношении не существует строк, для которых значение или комбинация значений ключевых атрибутов являются одинаковыми; домен отношения – это множество значений, из которого могут браться значения конкретного атрибута. То есть конкретный набор значений атрибута в любой момент времени должен быть подмножеством множества значений домена, на котором определен этот атрибут. Значения атрибута, которые отсутствуют в множестве, задаваемом доменом, являются недопустимыми.

Аспект целостности реляционной модели данных

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

Ограничения целостности можно классифицировать несколькими способами: 1) по способам реализации; по времени проверки; по области действия.

Различают два способа реализации поддержки ограничений целостности: 1) декларативная поддержка ограничений целостности заключается в определении ограничений средствами языка определения данных; 2) процедурная поддержка ограничений целостности заключается в использовании триггеров и хранимых процедур.

По времени проверки ограничения делятся на: 1) немедленно проверяемые ограничения (проверяются непосредственно в момент выполнения операции, могущей нарушить ограничение); 2) ограничения с отложенной проверкой (проверяется в момент фиксации транзакции).

По области действия ограничения делятся на: ограничения домена; ограничения атрибута; ограничения кортежа; ограничения отношения; ограничения базы данных.

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

Поддержание целостности сущностей обеспечивается средствами системы управления базой данных (СУБД). Это осуществляется с помощью двух ограничений: 1) при добавлении записей в таблицу проверяется уникальность их первичных ключей; 2) не позволяется изменение значений атрибутов, входящих в первичный ключ.

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

Подробное изложение теоретических вопросов, затронутых в первой лекции, можно найти в литературе [1,3,5,6]. Практические аспекты этих вопросов можно отыскать в работах [2,4].

Знания следует самостоятельно проверить путем ответов на контрольные вопросы (список контрольных вопросов приведен в Методических рекомендациях по самостоятельному изучению дисциплины «Базы данных», которые являются неотъемлемой частью учебно-методического комплекса дисциплины «Базы данных»).