Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_Infa.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
487.94 Кб
Скачать

30. Связи между таблицами базы данных. Целостность данных.

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

Отношение “один-ко-многим”: такая связь является наиболее часто используемым типом связи между таблицами. В такой связи каждой записи в таблице A могут соответствовать несколько записей в таблице B, а запись в таблице B не может иметь более одной соответствующей ей записи в таблице A и создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс.

Отношение “многие-ко-многим”: при этом виде связи одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Связь с отношением “многие-ко-многим” фактически является двумя связями с отношением “один-ко-многим” через третью таблицу, ключ которой состоит из по крайней мере двух полей, которые являются полями внешнего ключа в двух других таблицах. Например, между таблицами “Заказы” и “Товары” имеется отношение “многие-ко-многим”, которое определяется путем создания двух связей с отношением “один-ко-многим” для таблицы “Заказано”.

Отношение “один-к-одному”: при таком отношении запись в таблице A может иметь не более одной связанной записи в таблице B и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением “один-к-одному” используют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице. Например, такой тип связей между таблицами подходит для сохранении сведений о характеристиках товаров и создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы.

Для баз данных важно обеспечение целостности данных.

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

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

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

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

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

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

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

Если при определении связи установить флажок Каскадное обновление связанных полей, любое изменение значения в ключевом поле главной таблицы приведет к автоматическому обновлению соответствующих значений во всех связанных записях. Например, при изменении кода клиента в таблице “Клиенты” будет автоматически обновлено поле “КодКлиента” во всех записях таблицы “Заказы” для заказов каждого клиента, поэтому целостность данных не будет нарушена. Microsoft Access выполнит каскадное обновление без ввода предупреждающих сообщений.

31. Принцип нормализации отношений. Нормализация отношений – формальный аппарат ограничений на формирование отношений (таблиц), который позволяет устранить дублирование, обеспечивает непротиворечивость хранимых в базе данных, уменьшает трудозатраты на ведение (ввод, корректировку) БД. Основные принципы нормализации отношений.  Задача группировки атрибутов в отношении при условии, что набор возможных отношений не фиксирован, допускает большое количество вариантов и приводит к проблеме рационального выбора. Рациональный вариант группировки атрибутов в отношении должен отвечать требованиям: 1. выбранные для отношений первичные ключи должны быть min; 2. выбранный состав отношений БД должен быть min;  3. не должно возникать трудностей при выполнении операций добавления, удаления, редактирования; 4. разброс времени ответа на запросы в БД должен быть min. Отсутствие рациональной структуры хранения может привести к ряду проблем (изменение данных). Для решения проблем выполняется нормализация исходных схем отношений проекта. Существует 5 нормальных форм (НФ) в теории реляционных БД. Эти формы подчиняются правилам вложенности номеров, т.е. если отношение будет находиться в 5 НФ, то оно будет находиться в 1, 2, 3, 4 НФ. 1 нормальная форма. Отношение называется нормализованным или приведенным к 1 НФ, если все его атрибуты простые (неделимы). Преобразование отношения к 1 НФ м привести к увеличению количества реквизитов (полей) отношения и изменению ключа. 2 нормальная форма. Отношение R находится во 2 НФ, если оно находится в 1 НФ и каждый неключевой атрибут функционально зависит от первичного ключа. 3 нормальная форма. Отношение R находится в 3 НФ, если оно находится во 2 НФ и каждый не ключевой атрибут нетранзитивно зависит от первичного ключа. Транзитивная зависимость наблюдается в том случае, если один из двух описательных реквизитов зависит от ключа, а другой описательный реквизит зависит от первого описательного реквизита. 4 и 5 НФ связаны с явлением многозначности и составными ключами. Эти формы пытаются минимизировать количество ключей, входящих в составной ключ. 4 нормальная форма.  Отношение R находится в 4 НФ тогда и только тогда, когда при существовании многозначной зависимости в отношении R атрибута В (А), все остальные атрибуты отношения R функционально полно зависят от А. 5 нормальная форма.  Отношение находится в 5 НФ, если не существует других отношений, из которых оно может быть получено путем соединений. 5 НФ используется в том случае, когда в отношении встречается несколько многозначных зависимостей и эти зависимости не являются независимыми. Главная цель процесса нормализации – уменьшение избыточности и устранение проблем при выполнении операции запоминания. Проведение операции поиска в нормализованной БД требует дополнительных затрат на соединение отношений. Реляционные языки dлюбой СУБД не содержат требования, чтобы данные находились в какой-либо НФ за исключением 1 НФ.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]