Обеспечение целостности данных

Содержание

Слайд 2

Терминология

Терминология

Слайд 3

Главная таблица

Таблица на стороне «один» при связи двух таблиц с отношением «один-ко-многим».
В главной таблице

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

Слайд 4

Как ни странно, главными в наших базах данных будут таблицы - справочники.

Как ни странно, главными в наших базах данных будут таблицы - справочники.

Слайд 5

Пример

Примером главной таблицы может служить таблица имен клиентов, каждое из которых (каждый

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

Слайд 6

Ключевое поле

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

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

Слайд 7

Уникальный индекс

Индекс для поля со значением свойства Индексированное поле «Да (Совпадения не

Уникальный индекс Индекс для поля со значением свойства Индексированное поле «Да (Совпадения
допускаются)».
При этом ввод в индексированное поле повторяющихся значений становится невозможным.
Для ключевых полей уникальный индекс создается автоматически.

Слайд 9

Связанная таблица

Таблица, которая сохраняется в файле текущей базы данных.
Пользователь имеет возможность добавлять,

Связанная таблица Таблица, которая сохраняется в файле текущей базы данных. Пользователь имеет
удалять и изменять записи в связанной таблице, но не может изменять ее структуру.

Слайд 10

Примечание

В предыдущих версиях Microsoft Access для связанной таблицы использовался термин «присоединенная таблица».

Примечание В предыдущих версиях Microsoft Access для связанной таблицы использовался термин «присоединенная таблица».

Слайд 11

Внешний ключ

Одно или несколько полей в таблице, содержащих ссылку на ключевое поле

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

Слайд 12

Пример

Таблица «Товары» в базе данных «Борей» содержит поле внешнего ключа «Поставщик», которое

Пример Таблица «Товары» в базе данных «Борей» содержит поле внешнего ключа «Поставщик»,
ссылается на ключевое поле «КодПоставщика» в таблице «Поставщики».
С помощью данной связи в таблице «Товары» для каждого товара выводится имя поставщика из таблицы «Поставщики».

Слайд 13

Пустое значение (Null)

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

Пустое значение (Null) Значение, используемое для представления отсутствующих или неизвестных данных. Значение
использоваться в выражениях и вводиться в поля и запросы.
В конструкциях Visual Basic пустые значения представляются ключевым словом Null.
Некоторые поля, например, поля, определенные как ключевые, не могут содержать пустых значений.

Слайд 14

С терминологией закончили!

Переходим к целостности данных…

С терминологией закончили! Переходим к целостности данных…

Слайд 15

Определение

Целостность данных означает систему правил, используемых в Microsoft Access:
для поддержания связей между

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

Слайд 16

Установить целостность данных можно, если выполнены следующие условия:

Установить целостность данных можно, если выполнены следующие условия:

Слайд 17

Условие 1

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

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

Слайд 18

Условие 2

Связанные поля имеют один тип данных.

Условие 2 Связанные поля имеют один тип данных.

Слайд 19

Здесь существует два исключения:

Поле счетчика может быть связано с числовым полем, если

Здесь существует два исключения: Поле счетчика может быть связано с числовым полем,
в последнем в свойстве Размер поля указано значение «Длинное целое».
А также поле счетчика можно связать с числовым полем, если в свойствах Размер поля обоих полей задано значение «Код репликации».

Слайд 20

Условие 3

Обе таблицы принадлежат одной базе данных Microsoft Access.
Если таблицы являются связанными,

Условие 3 Обе таблицы принадлежат одной базе данных Microsoft Access. Если таблицы
то они должны быть таблицами Microsoft Access.
Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта.
Для связанных таблиц из баз данных других форматов установить целостность данных невозможно!!!

Слайд 21

Правила, вытекающие из целостности данных

Правила, вытекающие из целостности данных

Слайд 22

Правило 1

Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся

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

Слайд 23

Например

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

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

Слайд 24

Правило 2

Не допускается удаление записи из главной таблицы, если существуют связанные с

Правило 2 Не допускается удаление записи из главной таблицы, если существуют связанные
ней записи в подчиненной таблице.

Слайд 25

Например

Невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются заказы,

Например Невозможно удалить запись из таблицы «Сотрудники», если в таблице «Заказы» имеются
относящиеся к данному сотруднику.

Слайд 26

Правило 3

Невозможно изменить значение ключевого поля в главной таблице, если существуют записи,

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

Слайд 27

Например

Невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы» имеются

Например Невозможно изменить код сотрудника в таблице «Сотрудники», если в таблице «Заказы»
заказы, относящиеся к этому сотруднику.

Слайд 28

Практическая реализация правил

Чтобы наложить эти правила на конкретную связь, при ее создании

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

Слайд 29

Замечание

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом

Замечание Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при
целостность данных, следует установить флажки:
Каскадное обновление связанных полей и
Каскадное удаление связанных полей.

Слайд 30

Каскадное обновление связанных полей

Каскадное обновление связанных полей

Слайд 31

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

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

Слайд 32

Пример

При изменении кода клиента в таблице-справочнике «Клиенты» будет автоматически обновлено поле «КодКлиента»

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

Слайд 33

Предупреждение

Если в главной таблице ключевым полем является поле счетчика, то установление флажка

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

Слайд 34

Каскадное удаление связанных полей

Каскадное удаление связанных полей

Слайд 35

Если при определении связи установить флажок Каскадное удаление связанных записей, то любое удаление

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

Слайд 36

Например, при удалении из таблицы «Клиенты» записи конкретного клиента будут автоматически удалены

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

Слайд 37

Замечания

Если записи удаляются из таблицы при установленном флажке Каскадное удаление связанных записей,

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

Слайд 38

Определение связей между таблицами

Определение связей между таблицами

Слайд 39

Технология

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

Технология Закройте все открытые таблицы. Создавать или изменять связи между открытыми таблицами
окно базы данных.
Для переключения в окно базы данных из других окон нажмите клавишу F11.
Вызовите Схему данных.
Если в базе данных не определено никаких связей, то на экран автоматически будет выведено окно Добавление таблицы.
Можно использовать контекстное меню окна Схемы данных.
Добавьте необходимые таблицы.

Слайд 40

Для связывания полей выберите поле в одной таблице и перетащите его на

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

Слайд 41

Замечание

Связанные поля не обязательно должны иметь одинаковые имена, но они должны иметь

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

Слайд 42

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

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

Слайд 43

Примечания

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

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

Слайд 44

Если в структуру таблицы необходимо внести изменения, щелкните таблицу правой кнопкой и

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

Слайд 45

Изменение существующих связей

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

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

Слайд 46

Замечание

Для связывания таблицы самой с собой или для связывания поля таблицы с

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

Слайд 47

Например, в таблице «Сотрудники» из демонстрационной базы данных «Борей» поля «КодСотрудника» и

Например, в таблице «Сотрудники» из демонстрационной базы данных «Борей» поля «КодСотрудника» и
«Подчиняется» связаны между собой таким образом, что в поле «Подчиняется» отображаются данные о сотруднике из поля «КодСотрудника».