Структурная часть реляционной модели

Отношение

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

двумерная таблица, имеющая уникальное имя и состоящая из строк и столбцов, где строки соответствуют записям, а столбцы — атрибутам. Каждая строка в таблице представляет некоторый объект реального мира

или соотношения между объектами. Атрибут — это поименованный столбец отношения. Свойства

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

Порядок следования атрибутов не влияет на само отношение.

Пусть имеется отношение r. Схемой отношения r называется конечное множество имен атрибутов R = {A1, A2, ... Аn}. Заголовки столбцов отношения содержат имена его атрибутов и, следовательно, все

вместе отражают его схему. Схема отношения ПРЕПОДАВАТЕЛЬможет быть представлена

следующим образом: {Таб_ном_преп, Фамилия, Должность}Отношение строится с учетом ряда факторов. Каждому имениатрибута Аi, 1 >= i <= n ставится в соответствие множество допустимых

для соответствующего столбца значений. Это множество Di, называется доменом данного имени атрибута.

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

образуют множество:

D = D1 ∪ D2 ∪ ... ∪ Dn.

Отношение r со схемой R — это конечное множество отображений {t1, t2, ... tp) из R в D. Причем каждое отображение t∈ r должно удовлетворять следующему ограничению: t(Ai) принадлежит Di где 1 <= i <= n.

Эти отображения называются кортежами. Каждый кортеж отношения отображает экземпляр сущности, а атрибут отношения отображает атрибут сущности. Множество кортежей называется телом отношения. Тело отношения отражает состояние сущности, поэтому во времени оно постоянно меняется. Тело отношения характеризуется кардинальным числом, которое равно количеству содержащихся в нем кортежей. Одной из главных характеристик отношения является его степень.

Степень отношения определяется количеством атрибутов, которое в нем присутствует. Эта характеристика отношения имеет еще названия: ранг и арность. Отношение с одним атрибутом называется унарным, с двумя атрибутами — бинарным, с тремя — тернарным, с n атрибутами n-арным. Определение степени отношения осуществляется по заголовку отношения.

Свойства и виды отношений

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

􀂃 Отношение имеет имя, которое отличается от имен всех других отношений.

􀂃 Отношение представляется в виде табличной структуры.

􀂃 Каждый атрибут имеет уникальное имя, его значения берутся из одного и того же домена.

􀂃 Каждый компонент кортежа является простым, атомарным значением, не состоящим из группы значений.

􀂃 Упорядочение атрибутов теоретически несущественно, однако оно может влиять на эффективность доступа к кортежам.

􀂃 Все строки (кортежи) должны быть различны.

􀂃 Теоретически порядок следования кортежей не имеет значения.

В реляционной теории встречается несколько видов отношений, но не все они поддерживаются реальными системами. Различают:

􀂃 именованное отношение — это переменная отношения, определенная в СУБД посредством специальных операторов;

􀂃 базовое отношение — это именованное отношение, являющееся частью базы данных;

􀂃 производное отношение — это отношение, определенное посредством реляционного выражения через базовые отношения;

􀂃 представление — это именованное виртуальное производное отношение, представленное в системе исключительно через определение в терминах других именованных отношений;

􀂃 снимки — это отношения, подобные представлениям, но они

сохраняются, доступны для чтения и периодически обновляются;

􀂃 результат запроса — это неименованное производное отношение, получаемое в результате запроса, которое для сохранения необходимо преобразовать в именованное отношение;

􀂃 хранимое отношение — это отношение, которое поддерживается в физической памяти.

Реляционные ключи

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

Говорят, что множество атрибутов К = {Ai, Aj, ..., Ak} отношения r является потенциальным ключом r тогда и только тогда, когда удовлетворяются два независимых от времени условия:

􀂃 уникальность: в произвольный заданный момент времени никакие два различных кортежа r не имеют одного и того же значения для Ai, Aj, ..., Ак;

􀂃 минимальность: ни один из атрибутов Ai, Aj, .... Ак не может быть исключен из K без нарушения уникальности.

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

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

Пример

Пусть рассматривается концептуальная модель, приведенная на рис. 5.2. Пример относится к предметной области, которую можно назвать "Преподавательская деятельность". Данная модель содержит две сущности: ЛЕКТОРи ПРЕДМЕТ, между которыми установлена связь ЧИТАЕТтипа "многие ко многим". Характеристики сущностей представлены изображенными на рисунке атрибутами. Связь ЧИТАЕТне

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

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

ЛЕКТОР, ПРЕДМЕТ, ЧИТАЕТ.

Обновление отношений

Для обновления отношений необходимо иметь возможность выполнять следующие операции;

􀂃 добавление кортежа;

􀂃 удаление кортежа;

􀂃 изменение кортежа.

Рассмотрим их по порядку.

Операция добавления для отношения r со схемой (A1, A2, ..., An) имеет вид:

ADD (r: Al=dl, A2=d2, ..., An=dn).

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

ADD (r: dl, d2,…, dn).

Выполнение этой операции может стать невозможным в ряде случаев:

􀂃 добавляемый кортеж не соответствует схеме определенного отношения;

􀂃 некоторые значения кортежей не принадлежат соответствующим доменам;

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

Операция удаления предназначена для удаления кортежей. Она может быть записана следующим образом:

DEL (r; Al=dl, A2=d2,…, An=dn), или для упорядоченных атрибутов:

DEL (r; dl, d2,…, dn) .

Для удаления некоторого кортежа часто достаточно указать значение некоторого ключа:

DEL (r; ключ) . Если указанный кортеж в отношении отсутствует, то отношение остается неизменным.

Операция изменения предназначена для модификации части кортежа. Для отношения r ее можно при {С1, С2, ... ,Ср} ∈ {А1, A2, ..., Аn} определить так:

СН (r; Al=dl, A2=d2, ..., An=dn; Сl=el, С2=e2, ..., Сp=ep).

Если K = {B1, B2, ..., Bk} является ключом, то запись данной операции может быть сокращена:

СН (r; Bl=dl, B2=d2, ..., Bk=dk; Сl=el, С2=e2, ..., Сp=ep).

Возможные ошибки в данном случае те же, что и у предыдущих операций:

􀂃 указанный кортеж не существует;

􀂃 изменения имеют неправильный формат;

􀂃 используемые значения не принадлежат соответствующим доменам.

Целостность базы данных

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

NULL. при изменении значения первичного ключа в

родительском отношении часто разрешены следующие варианты действий,

из которых два первых — обеспечивают нахождение базы данных в

целостном непротиворечивом состоянии.

􀂃 При изменении значений полей первичного ключа в родительском

отношении автоматически осуществляется каскадное изменение всех

соответствующих значений в дочернем отношении.

􀂃 Не позволяется изменять значения полей первичного ключа в

родительском отношении, если в дочернем отношении имеется хотя

бы одна запись, содержащая ссылку на изменяемую запись.

􀂃 Позволяется изменять значения полей первичного ключа в

родительском отношении, независимо от существования связанных

записей в дочернем отношении. Целостность данных при этом не

поддерживается.

При удалении записи в родительском отношении также возможны

несколько вариантов действий.

􀂃 При удалении записи в родительском отношении автоматически

осуществляется каскадное удаление всех записей из дочернего

отношения, связанных с удаляемой записью.

􀂃 Не позволяется удалять записи в родительском отношении, если в

дочернем отношении имеется хотя бы одна запись, содержащая

ссылку на удаляемую запись. При попытке удаления записи

возникает ошибка, которую можно обработать программно.

􀂃 Позволяется удалять записи в родительском отношении независимо

от существования связанных записей в дочернем отношении.

Очевидно, что целостность данных при этом не поддерживается.

При добавлении новой записи в дочернее отношение или

редактировании в нем существующей записи возможно выбрать один из

вариантов: 􀂃 не позволяется вводить запись, если значение индексного выражения

дочернего отношения не соответствует одной из записей в

родительском отношении;

􀂃 при вводе данных в дочернее отношение не анализируется значение

индексного выражения. Целостность данных при этом не

поддерживается.

Проектирование базы данных

referatsnx.nugaspb.ru referatvcy.nugaspb.ru central.refepic.ru refanzs.ostref.ru Главная Страница