Обеспечение целостности данных
В Microsoft Access обеспечивается возможность автоматической проверки целостности данных в связанных полях. Целостность даных означает систему правил, используемых для поддержания связей между записями в связанных таблицах, а также для обеспечения защиты от случайного удаления или изменения связанных данных. Установить проверку целостности данных можно, если выполнены следующие условия:
- связанное поле главной таблицы является ключевым полем или имеет уникальный индекс;
- связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем поле в свойстве Размер поля (FieldSize) указано значение Длинное целое (Long Integer), или в обоих полях свойство Размер поля (FieldSize) имеет значение Код репликации (Replication ID);
- обе таблицы принадлежат одной базе данных Microsoft Access.
Таблицы одного приложения могут содержаться и в нескольких файлах базы данных (см. также гл. 3).
Чтобы обеспечить целостность, работа с данными должна производиться с учетом нижеперечисленных правил.
- Невозможно ввести в связанное поле подчиненной таблицы значение, отсутствующее в связанном поле главной таблицы. Однако можно ввести пустое значение, показывающее, что для данной записи связь отсутствует.
- Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.
- Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной таблицей.
Чтобы эти правила контролировались для конкретной связи, при ее создании следует установить флажок Обеспечение целостности данных (Enforce Referential Integrity). Тогда любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records). Если установлен флажок каскадное обновление связанных полей (Cascade Update Related Fields), то при изменении ключевого поля главной таблицы автоматически будут изменены и соответствующие значения поля связанных записей. Если установлен флажок каскадное удаление связанных записей (Cascade Delete Related Records), то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.
Целостность данных
Целостность данных означает систему правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных.
Контролировать целостность данных можно, если выполнены следующие условия:
- · связанное поле (поле, посредством которого осуществляется связь) одной таблицы является ключевым полем или имеет уникальный индекс;
- · связанные поля имеют один тип данных.
Здесь существует исключение. Поле счетчика может быть связано с числовым полем, если оно имеет тип Длинное целое; обе таблицы принадлежат одной базе данных Access. Если таблицы являются связанными, то они должны быть таблицами Access.
Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.
Виды связей. В Access можно задать три вида связей между таблицами:
- · Один-ко-многим,
- · Мно-гие-ко-многим
- · Один-к-одному.
Связь Один-ко-многим — наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В — несколько записей в таблице такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое — общим с таблицей В.
При связи Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот.
Этот тип связи используют не очень часто, поскольку такие такие могут быть помещены в одну таблицу.
Связь с отношением Один-к-одному пример для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Тип создаваемой связи зависит от полей, для которых определяется связь:
ь связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются; связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;
ь связь Многие-ко-многим фактически представляет две связи типа один-ко-многим через третью таблицу, ключ которой состоит по крайней мере из двух полей, общих для двух других таблиц.
СУБД Microsoft Access (MS Access) относится к системам, ориентированным на пользователя.

Рис.1. Среда MS ACCESS 2000.
Будем рассматривать СУБД Access как специализированного исполнителя, назначение которого — работа с реляционными базами данных. Среда MS Access представлена на рис.1.
Среда Access имеет интерфейс, характерный для Windows-приложений, и включает в себя следующие составляющие (сверху вниз): титульную строку с кнопками управления окном, главное меню, панель инструментов, рабочее поле и строку состояния.
На рабочем поле открывается окно, соответствующее выбранному режиму работы. На рис. 1 открыто окно, соответствующее основному режиму — режиму работы с базой данных.
Основные объекты MS Access: таблицы, запросы, формы, отчеты, макросы и модули.
Таблица — это главный тип объекта. Все остальные разновидности объектов являются производными от таблицы. Объекты, составляющие таблицу, — это записи и поля. Свойства элементов таблицы определяются типами полей, форматами полей и некоторыми другими параметрами.
Форма — это вспомогательный объект, без которого, в принципе, можно обойтись. Формы создаются для дополнительного удобства пользователя при просмотре, вводе и редактировании данных.
Запрос — результат обращения пользователя к СУБД для поиска данных, добавления, удаления и обновления записей. Результат поиска (выборки) данных представляется в табличном виде. Термином «запрос» называют также сами команды обращения к СУБД.
Отчет — это документ, предназначенный для вывода на печать, сформированный на основании информации, содержащейся в таблицах и запросах.
Макросы и модули являются объектами повышенной сложности и при начальном знакомстве с MS Access могут не использоваться.
Еще одним объектом является схема — описание структуры связей в многотабличной базе данных.
Режимы работы СУБД Access многообразны. Есть режимы общего характера: работа с файлами (меню Файл); работа с буфером обмена (меню Правка); режим настройки среды (меню Вид); справочный режим (меню Справка).
Основным режимом можно назвать режим работы с базой данных. Он устанавливается командой Файл > Создать базу данных или Файл > Открыть базу данных.
Поскольку база данных хранится в файле, в первом случае система потребует задать имя и место хранения файла, а во втором случае — указать на существующий файл с базой данных.
После раскрытия на экране окна базы данных (рис. 1.2) становятся доступными режимы работы с основными объектами Access: таблицами, запросами, формами и отчетами. В каждом из этих режимов можно выбрать одну из трех командных кнопок: Открыть, Конструктор, Создать.
Если соответствующий объект еще не создан, то активной является только команда Создать. Если в окне выделен какой-то из существующих объектов, то активными будут также команды Открыть и Конструктор. Команда Открыть позволяет просмотреть объект, а команда Конструктор — просмотреть или изменить структуру объекта.
В столбец «имя поля» мы будем заносить имена столбцов нашей будущей таблицы (при этом нельзя использовать некоторые символы, в том числе точки и запятые). В столбце «тип данных» будем выбирать (используя кнопку вызова списка) тип данных. А то, что заносится в столбец «описание» затем появляется, в виде комментариев, в строке состояния (для проверки в одной из строк этого столбца напишите фразу: моя первая база данных).
Как видно, из ниже перечисленных данных, нам необходимо создать следующие поля:
Целостность данных. Ограничения, возникающие при задании целостности данных
Включение флажка "Обеспечение целостности данных "позволяет защититься от случаев удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи.
Целостность данных – система правил, используемых в MS Access для поддержания связей между записями в связанных таблицах, а также обеспечивает защиту от случайного удаления или изменения связанных данных.
Установить целостность данных можно, если выполнены следующие условия:
1. Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.
2. Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем в свойстве "Размер поля "(FieldSize) указано значение "Длинное целое". А также поле счетчика можно связать с числовым полем, если и в обеих ячейках свойства "Размер поля" (FieldSize) задано значение "Код репликации".
3. Обе таблицы принадлежат одной базе данных MS Access. Если таблицы являются связанными, то они должны быть таблицами MS Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных стандартными средствами MS Access невозможно.
Установив целостность данных, необходимо следовать следующим правилам:
1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести пустое значение в поле "Код Клиента".
2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику.
3. Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код сотрудника в таблице "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к этому сотруднику.
Чтобы наложить эти правила на конкретную связь, при ее создании следует установить флажок. Если данный флажок установлен, то любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.
Параметры объединения таблиц
При добавлении таблицы в запрос в MicrosoftOfficeAccess 2007 создаются объединения, которые базируются на связях между таблицами. Объединения в запросах можно создавать вручную, даже если они не отражают заранее определенные связи. При использовании других запросов (независимо от таблиц или вместе с ними) в качестве источника данных для запросов можно создавать объединения между исходными запросами, а также между запросами и таблицами, которые используются в качестве источников данных.
Существует четыре основных типа объединений:
Внутренние объединения представляют собой запросы, в которых строки одной из объединяемых таблиц соответствуют строкам другой таблицы по значениям в связанных полях. При выполнении запроса с внутренним объединением в операцию включаются только строки, имеющие одинаковые значения в обеих связанных таблицах. Внутреннее объединение используется в том случае, когда запрос должен возвращать только те строки обеих таблиц объединения, значения связанных полей которых совпадают. В большинстве случаев для использования внутреннего объединения не нужно предпринимать каких-либо действий. Если ранее в окне схемы данных были созданы связи между таблицами, то при добавлении связанных таблиц в режиме конструктора запроса линии объединения создаются автоматически. Если накладываются условия целостности данных, то над линией объединения автоматически отображается цифра «1», означающая, что таблица находится на стороне «один» в отношении «один-ко-многим», а также знак бесконечности ∞ для указания таблиц, находящихся на стороне «многие». Даже если связи не были созданы, внутренние объединения будут созданы автоматически.
Внешние объединения представляют собой запросы, в которые включаются все строки одной таблицы, а также строки другой таблицы, значения которых в первой и второй таблице совпадают, несмотря на то, что некоторые из строк с обеих сторон полностью совпадают. Внешние объединения являются направленными, они могут быть левыми или правыми. При левом объединении в запрос включаются все строки таблицы из первой таблицы в предложении FROM инструкции SQL, и только те строки из другой таблицы, в которых значения связанных полей совпадают. При правом объединении в запрос включаются все строки из второй таблицы в предложении FROM инструкции SQL, и только те строки из другой таблицы, в которых значения связанных полей совпадают. Внешнее объединение используется, когда возникнет необходимость, чтобы в результаты объединения были включены все строки одной из таблиц и только те строки другой таблицы, значения связанных полей в которых соответствуют значениям связанных полей в первой таблице. Внешние объединения создаются путем изменения внутренних объединений.
Перекрестное объединение: каждая строка из одной таблицы объединяется с каждой строкой из другой таблицы, в результате это приводит к тому, что называется полным объединением или декартовым произведением. Используйте перекрестные объединения, чтобы проверить все возможные комбинации строк двух таблиц или запросов. Перекрестное объединение создается каждый раз, когда в запрос включаются таблицы или запросы и при этом не создается явного объединения для каждой таблицы или запроса.
Объединение по несовпадению. Объединения не всегда базируются на соотношении равенства связываемых полей. Объединение может базироваться на любом операторе сравнения, например, «больше» (>), «меньше» (<) или «не равно» (<>). Объединения, базирующиеся на неравенстве, называются объединениями по несовпадению.
Если требуется скомбинировать строки из двух источников данных на основе значений полей, которые не равны, используется объединение по несовпадению. Обычно объединения по несовпадению базируются на операторах сравнения «больше» (>), «меньше» (<), «больше или равно» (>=) или «меньше или равно» (<=). Объединения по несовпадению, базирующиеся на операторе «не равно» (<>), могут вернуть почти столько же строк, как перекрестное объединение, и их результаты будет трудно интерпретировать.
Дата добавления: 2018-02-28 ; просмотров: 564 ; Мы поможем в написании вашей работы!