Ключи и связи, ссылочная целостность в реляционной модели данных



Любая таблица реляционной базы данных состоит из строк (называемых также записями) и столбцов (называемых также полями).

Строки таблицы содержат сведения о представленных в ней фактах (или документах, или людях, одним словом, — об однотипных объектах). На пересечении столбца и строки находятся конкретные значения содержащихся в таблице данных.

Ключи и связи

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

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

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

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

Если каждый клиент в таблице «Клиенты» может разместить только один заказ, говорят, что эти две таблицы связаны соотношением один-к-одному. Если же каждый клиент в таблице «Клиенты» может разместить ноль, один или много заказов, говорят, что эти две таблицы связаны соотношением один-ко-многим. Группа связанных таблиц называется схемой базы данных.

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

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

Нормализация данных, нормальные формы

Операции,кот. Выполняются при проектировании таблиц.

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

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

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

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

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

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

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

18. Объекты баз данных.

Таблицы(сост. из полей)

Таблицы поддерживаются всеми реляционными СУБД, и в их полях могут храниться данные разных типов. Наиболее часто встречающиеся типы данных: текст, числовой, денежный, дата и время, MEMO-поле, OLE-поле (в таком поле можно хранить любые данные), логический.

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

Служат для управления доступом к записям табл. Содерж. Значения индексного выражения и №а записей в таблице

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

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

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

Триггеры и процедуры.Предназнач. для обработки данных.

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

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

Предназнач. для хранения описания объектов БД.


Дата добавления: 2018-04-15; просмотров: 402; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!