Данные таблицы нарушают условия целостности access

Данные таблицы нарушают условия целостности access

Данные таблицы нарушают условия целостности access




Скачать файл - Данные таблицы нарушают условия целостности access


























Попробуйте Microsoft Edge быстрый и безопасный браузер, разработанный для Windows 10 Нет Начало работы. Одним из преимуществ хорошей структуры базы данных является отсутствие избыточности повторения данных. Для этого нужно распределить информацию по нескольким отдельным тематически организованным таблицам, чтобы каждый факт был представлен один раз. Чтобы корректно выполнить это действие, нужно сначала понять взаимосвязи между таблицами и описать эти взаимосвязи в базе. Эта статья не охватывает отношения в веб-базе данных. Веб-базы данных не поддерживают окно отношений. Для создания отношений в веб-базе используются поля подстановки. Типы отношений между таблицами. Зачем создавать отношения между таблицами? Понятие о целостности данных. Просмотр отношений между таблицами. Создание отношения между таблицами. Удаление отношения между таблицами. Изменение отношения между таблицами. После создания таблицы для каждой темы в базе данных нужно предоставить приложению Access средства, с помощью которых можно будет при необходимости объединять сведения. Это делается путем создания общих полей в связанных таблицах и настройки отношений между таблицами. После этого можно создавать запросы, формы и отчеты, одновременно отображающие сведения из нескольких таблиц. Например, приведенная ниже форма содержит информацию из нескольких таблиц. Имя клиента в поле Плательщик получено из таблицы 'Клиенты', значения кода заказа и даты заказа — из таблицы 'Заказы', наименование товара — из таблицы 'Товары', а цена и количество — из таблицы 'Заказано'. Чтобы можно было передать данные в форму, эти таблицы связаны друг с другом несколькими способами. В приведенном примере поля в таблицах должны быть согласованы таким образом, чтобы отображать сведения об одном и том же заказе. Это согласование осуществляется путем установления связей между таблицами. В большинстве случаев с первичным ключом одной таблицы, являющимся уникальным идентификатором каждой записи, связывается внешний ключ другой таблицы. Например, для связывания сотрудников с заказами, за которые они отвечают, можно создать связь между полями 'Код сотрудника' в таблицах 'Сотрудники' и 'Заказы'. Рассмотрим базу данных, в которой фиксируются заказы, включающую таблицы 'Клиенты' и 'Заказы'. Клиент может разместить любое количество заказов. Следовательно, у любого клиента, представленного в таблице 'Клиенты', может быть много заказов, представленных в таблице 'Заказы'. Поэтому между таблицами 'Клиенты' и 'Заказы' существует отношение 'один-ко-многим'. Чтобы создать отношение 'один-ко-многим' в структуре базы данных, добавьте первичный ключ на стороне 'один' в таблицу на стороне 'многие' в виде дополнительного поля или полей. После этого Access сможет использовать номер 'Код клиента' из таблицы 'Заказы' для поиска клиента по каждому заказу. Рассмотрим отношение между таблицей 'Продукты' и таблицей 'Заказы'. Один заказ может включать несколько продуктов. С другой стороны, отдельный продукт может содержаться в нескольких заказах. Следовательно, для каждой записи таблицы 'Заказы' может существовать много записей в таблице 'Продукты', и наоборот. Поэтому такой тип отношения называется 'многие-ко-многим'. Обратите внимание, что для обнаружения существующего отношения между таблицами важно рассмотреть обе его стороны. Чтобы представить связь 'многие-ко-многим', нужно создать третью связующую таблицу, в которой она разбивается на две связи 'один-ко-многим'. Первичные ключи двух таблиц вставляются в третью таблицу. В результате в третьей таблице сохраняются все экземпляры связи. Например, таблицы 'Заказы' и 'Продукты' имеют связь 'многие-ко-многим', определяемую путем создания двух связей 'один-ко-многим' в таблице 'Заказано'. В одном заказе может быть много продуктов, и каждый продукт может быть указан во многих заказах. При отношении 'один-к-одному' каждая запись в первой таблице может иметь не более одной связанной записи во второй таблице, и наоборот. Отношения этого типа используются нечасто, поскольку обычно сведения, связанные таким образом, хранятся в одной таблице. Отношение 'один-к-одному' используется для разделения таблицы, содержащей много полей, с целью отделения части таблицы по соображениям безопасности, а также с целью сохранения сведений, относящихся к подмножеству записей в основной таблице. После определения такого отношения у обеих таблиц должно быть общее поле. Отношения между таблицами можно создать непосредственно с помощью окна отношений или путем перетаскивания поля из области Список полей. Access использует отношения между таблицами для того, чтобы решить, как связать таблицы для использования их в объекте базы данных. Существует несколько причин, по которым отношения между таблицами следует устанавливать еще до создания других объектов базы форм, запросов, отчетов. Для работы с записями из нескольких таблиц часто приходится создавать запросы, соединяющие таблицы. Запрос сопоставляет значения в поле первичного ключа первой таблицы с полем внешнего ключа второй таблицы. Например, чтобы получить строки, в которых перечислены все заказы для каждого из клиентов, можно создать запрос, соединяющий таблицу 'Клиенты' с таблицей 'Заказы' на основе поля 'Код клиента'. В окне отношений можно вручную указать поля для соединения. Но если отношение между таблицами уже существует, Access использует соединение по умолчанию на основе существующего отношения между таблицами. Кроме того, при использовании одного из мастеров запросов Access использует сведения об уже определенных связях между таблицами, чтобы предоставить пользователю выбор и подставить в параметры свойств соответствующие значения по умолчанию. При создании формы или отчета в Access используются сведения об уже определенных межтабличных отношениях, чтобы дать пользователю выбор и предварительно заполнить параметры свойств соответствующими значениями по умолчанию. Связи между таблицами — это та основа, с помощью которой можно обеспечить целостность данных, чтобы в базе данных не было потерянных записей. Потерянная запись — это запись со ссылкой на несуществующую запись например, запись заказа со ссылкой на отсутствующую запись клиента. При создании базы данных сведения распределяются по таблицам, в каждой из которых есть первичный ключ. После этого к связанным таблицам добавляются внешние ключи, имеющие ссылки на первичные ключи. Эти пары из внешнего и первичного ключей формируют основу для отношений между таблицами и многотабличных запросов. Целостность данных зависит от отношений между таблицами и помогает гарантировать, что ссылки остаются синхронизированными. При создании базы данных сведения распределяются по множеству тематически организованных таблиц, чтобы свести к минимуму избыточность сведений. После этого в Access формируются инструменты для сбора разбросанных данных путем создания в связанных таблицах общих полей. Например, чтобы создать связь 'один-ко-многим', добавьте первичный ключ из таблицы на стороне 'один' как дополнительное поле в таблицу на стороне 'многие'. Чтобы соединить данные, Access подставляет значение из таблицы на стороне 'многие' в соответствующее поле таблицы на стороне 'один'. Таким образом, значения таблицы на стороне 'многие' связаны с соответствующими значениями на стороне 'один'. Предположим, между таблицами 'Грузоотправители' и 'Заказы' существует связь 'один-ко-многим', и нужно удалить грузоотправителя. Если у грузоотправителя, которого нужно удалить, есть заказы в таблице 'Заказы, они станут потерянными записями после удаления записи грузоотправителя. В таблице 'Заказы' останется код грузоотправителя, но он будет недействителен, поскольку запись, на которую он ссылается, уже не существует. Задача сохранения целостности данных состоит в предотвращении появления потерянных записей и поддержании ссылок в синхронизированном состоянии, чтобы описанная выше гипотетическая ситуация никогда не возникла. Целостность данных обеспечивается путем ее включения при создании межтабличного отношения см. Если однажды обеспечить целостность данных, Access будет отклонять все обновления, нарушающие ее для этого межтабличного отношения. Это значит, что Access будет отклонять как обновление целевого объекта ссылки, так и его удаление. Но может понадобиться изменить первичный ключ для грузоотправителя, имеющего заказы в таблице 'Заказы'. В таких случаях нужно, чтобы приложение Access автоматически обновило все задействованные строки за одну операцию. Для этого в Access есть параметр 'Каскадное обновление связанных полей'. Если при обеспечении целостности данных выбрать параметр 'Каскадное удаление связанных полей', а затем обновить первичный ключ, Access автоматически обновит все поля, ссылающиеся на этот ключ. Для этого в Access имеется параметр 'Каскадное удаление связанных записей'. Если при обеспечении целостности данных выбрать параметр 'Каскадное удаление связанных записей', а затем удалить запись на стороне первичного ключа в отношении, Access автоматически удалит все записи со ссылкой на первичный ключ. Чтобы просмотреть межтабличные отношения, на вкладке Работа с базами данных выберите Отношения. Откроется окно, в котором будут отображены все существующие отношения. Если отношения еще не были заданы или это окно открывается впервые, приложение Access предложит добавить в него таблицу или запрос. В диалоговом окне Открытие файла базы данных выберите и откройте базу данных. На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных. Если в базе данных есть отношения, откроется окно отношений. Если в базе нет отношений или окно открывается впервые, появится диалоговое окно Добавление таблицы. Нажмите кнопку Закрыть , чтобы закрыть его. На вкладке Конструктор в группе Связи нажмите кнопку Все связи. Будут отображены все связи, определенные в базе данных. Обратите внимание на то, что скрытые таблицы таблицы, для которых установлен флажок скрытый в диалоговом окне Свойства и их отношения не отображаются, если в окне Параметры переходов не выбран параметр Показывать скрытые объекты. Связь между таблицами представляется как линия между таблицами в окне 'Схема данных'. Связь, не обеспечивающая целостность данных, отображается как тонкая линия между общими полями, поддерживающими связь. Если выбрать связь, щелкнув линию, то линия станет жирной. Если обеспечить целостность данных для этой связи, линия станет толще на концах. Открывает диалоговое окно Изменение связей. При выборе линии связи можно щелкнуть элемент Изменить связи , чтобы изменить связь между таблицами. Можно также дважды щелкнуть линию связи. Запрещает отображение всех таблиц и связей в окне 'Схема данных'. Имейте в виду, что эта команда только скрывает таблицы и связи, но не удаляет их. Создает отчет, отображающий таблицы и связи базы данных. В отчете отображаются только таблицы и связи, не скрытые в окне 'Схема данных'. Открывает диалоговое окно Добавление таблицы , чтобы можно было выбрать таблицы и запросы для просмотра в окне 'Схема данных'. Скрывает выбранную таблицу в окне 'Схема данных'. Отображает все связи и связанные таблицы для выбранной таблицы в окне 'Схема данных', если они еще не отображены. Отображает все связи и связанные таблицы базы данных в окне 'Схема данных'. Имейте в виду, что скрытые таблицы таблицы, для которых установлен флажок Скрытый в диалоговом окне Свойства и их связи не будут отображены, если не установлен флажок 'Показывать скрытые объекты' в диалоговом окне 'Параметры переходов'. Закрывает окно 'Схема данных'. Если в макет окна 'Схема данных' были внесены какие-либо изменения, будет предложено сохранить их. Связь между таблицами можно создать с помощью окна 'Схема данных' или путем перетаскивания поля в таблицу из области Список полей. При создании связи между таблицами не требуется, чтобы общие поля имели одинаковые имена. Вместо этого поля должны иметь одинаковый тип данных. Однако если поле первичного ключа имеет тип 'Счетчик', поле внешнего ключа может иметь тип 'Числовой' при условии, что свойство Размер поля обоих полей одинаково. Например, можно сопоставить поле с типом 'Счетчик' и поле с типом 'Числовой', если свойство Размер поля обоих полей имеет значение 'Длинное целое'. Если оба общих поля имеют тип 'Числовой', они должны иметь одинаковое значение свойства Размер поля. На вкладке Работа с базами данных в группе Отношения щелкните элемент Схема данных. Если ни одна связь еще не определена, автоматически откроется диалоговое окно Добавление таблицы. Если это окно не открылось, на вкладке Конструктор в группе Связи нажмите кнопку Отобразить таблицу. В диалоговом окне Добавление таблицы отображаются все таблицы и запросы базы данных. Чтобы просмотреть только таблицы, выберите пункт Таблицы. Чтобы просмотреть только запросы, выберите пункт Запросы. Чтобы просмотреть и таблицы, и запросы, выберите пункт Все. Выберите одну или несколько таблиц или запросов и нажмите кнопку Добавить. По завершении добавления таблиц и запросов в окно 'Схема данных' нажмите кнопку Закрыть. Перетащите поле как правило, поле первичного ключа из одной таблицы на общее поле поле внешнего ключа в другой таблице. Чтобы перетащить сразу несколько полей, нажмите клавишу CTRL и, удерживая ее нажатой, выделите каждое поле. Убедитесь, что имена общих полей связи отображаются правильно. Если имя поля отображается неверно, щелкните его и выберите новое поле в списке. Чтобы обеспечить для этой связи целостность данных, установите флажок Обеспечение целостности данных. Дополнительные сведения о целостности данных см. Между двумя таблицами будет нарисована линия связи. Если установлен флажок Обеспечение целостности данных , концы линии будут выглядеть утолщенными. Оба общих поля как правило, поля первичного ключа и внешнего ключа должны иметь уникальный индекс. Это означает, что свойство Индексированное обоих этих полей должно иметь значение Да без повторов. Если оба поля имеют уникальный индекс, в Access будет создано отношение 'один-к-одному'. У поля на стороне отношения 'один' как правило, поля первичного ключа должен быть уникальный индекс. Это означает, что свойство Индексированное этого поля должно иметь значение Да без повторов. Поле на стороне 'многие' не должно иметь уникального индекса. Это поле может быть индексированным, но для него должны допускаться повторы. Это означает, что свойство Индексированное этого поля должно иметь значение Нет или Да с повторами. Добавить поле к существующей таблице, открытой в режиме таблицы, можно путем его перетаскивания из области Список полей. В области Список полей отображаются поля, доступные в связанных, а также в других таблицах. При перетаскивании поля из другой несвязанной таблицы и заполнения полей с помощью мастера подстановок автоматически создается новое отношение 'один-ко-многим' между таблицей из области Список полей и таблицей, в которую было перемещено поле. Это отношение, созданное приложением Access, не гарантирует целостность данных по умолчанию. Чтобы обеспечить целостность, необходимо соответствующим образом изменить отношение. В области навигации щелкните правой кнопкой мыши таблицу, в которой нужно добавить поле и создать связь, а затем выберите команду Открыть. В области Список полей отображены все остальные таблицы базы данных, сгруппированные по категориям. При работе с таблицей в режиме таблицы в Access отображаются поля в одной из двух категорий области Список полей: Доступные поля в связанной таблице и Доступные поля в другой таблице. Чтобы добавить поле в таблицу, перетащите его из области Список полей в таблицу в режиме таблицы. Перетащите нужное поле из области Список полей в таблицу, открытую в режиме таблицы. При перетаскивании поля из другой несвязанной таблицы и выполнении инструкций мастера подстановок между таблицей из области Список полей и таблицей, в которую было перетаскивается поле, автоматически создается новое отношение 'один-ко-многим'. Это отношение, созданное Access, не обеспечивает целостность данных по умолчанию. Чтобы обеспечить целостность, нужно соответствующим образом изменить отношение. Чтобы удалить отношение между таблицами, нужно удалить его линию в окне отношений. Осторожно расположите курсор так, чтобы он указывал на линию отношения, а затем щелкните ее. Выделенная линия станет жирной. Обратите внимание на то, что при удалении отношения также удаляется поддержка целостности данных для него, если она была включена. После этого Access больше не предотвращает в автоматическом режиме создание непарных записей на стороне отношения 'многие'. Если в базе данных еще не определены отношения и это окно открывается впервые, появится диалоговое окно Добавление таблицы. В этом случае нажмите в нем кнопку Закрыть. При этом может появиться сообщение Подтвердите удаление выделенной связи из базы данных. В этом случае нажмите кнопку Да. Если таблица, задействованная в связи, используется другим лицом или процессом либо находится в открытом объекте базы данных например, в форме , эту связь удалить нельзя. Перед удалением связи необходимо закрыть все открытые объекты, использующие таблицы. Чтобы изменить связь между таблицами, нужно сначала выбрать ее в окне 'Схема данных'. Осторожно разместите курсор так, чтобы он указывал на линию связи, а затем щелкните ее. Выделенная линия связи станет жирной. Когда линия связи будет выделена, дважды щелкните ее или выберите пункт Изменить связи в группе Сервис на вкладке Конструктор. Откроется диалоговое окно Изменение связей. С помощью диалогового окна Изменение связей можно изменить отношение между таблицами например, таблицы, запросы или поля на любой стороне отношения. Можно также задать тип объединения или включить обеспечение целостности данных и выбрать каскадный параметр. Дополнительные сведения о типе объединения и его использовании см. Дополнительные сведения об обеспечении целостности данных и выборе каскадного параметра см. При создании отношения между таблицами сведения о нем влияют на структуру запросов. Например, при формировании отношения между двумя таблицами и создании работающего с ними запроса в Access автоматически выбираются сопоставляемые поля по умолчанию на основе полей, указанных в отношении. Эти исходные значения в запросе можно переопределить, но часто значения, определенные отношением между таблицами, являются верными. Поскольку сопоставление и объединение данных из нескольких таблиц являются часто воспроизводимыми действиями во всех базах данных, кроме самых простых, параметры по умолчанию, определенные отношениями между таблицами, могут быть полезны и экономят время. С помощью запроса к нескольким таблицам можно комбинировать данные из них путем сопоставления значений в общих полях. Операция сопоставления и комбинирования называется объединением. Например, требуется отобразить заказы клиентов. Для этого создается запрос, объединяющий таблицы 'Клиенты' и 'Заказы' по полю 'Код клиента'. Результаты запроса содержат сведения о клиенте, а также другие сведения только для строк с найденным соответствующим значением. Он определяет, какие записи будут включены в результаты запроса. Обратимся к описанному примеру с объединением таблиц 'Клиенты' и 'Заказы' по общим полям, представляющим код клиента. При использовании типа объединения по умолчанию внутреннего соединения запрос возвращает только строки таблиц 'Клиенты' и 'Заказы', для которых общие поля также называемые связанными полями совпадают. Для этого нужно изменить тип соединения с внутреннего на внешний. Левое внешнее соединение возвращает все строки таблицы с левой стороны связи и только совпадающие строки таблицы с правой стороны. При использовании правого внешнего соединения возвращаются все строки с правой стороны связи и только совпадающие с левой. В этом случае термины 'слева' и 'справа' относятся к положению таблиц в диалоговом окне Изменение связей , а не в окне 'Схема данных'. Следует определить, какие результаты наиболее часто требуются от запроса, соединяющего таблицы в конкретной связи, и в соответствии с этим выбрать тип соединения. В диалоговом окне Изменение связей нажмите кнопку Тип соединения. В таблице ниже, составленной на основании таблиц 'Клиенты' и 'Заказы', приведены три варианта, отображаемые в окне Параметры объединения , указан используемый в них тип объединения, а также то, какие именно строки все или только сопоставленные включаются для каждой из таблиц. Объединение ВСЕХ записей из таблицы 'Клиенты' и только тех записей из таблицы 'Заказы', в которых связанные поля совпадают. Объединение ВСЕХ записей из таблицы 'Заказы' и только тех записей из таблицы 'Клиенты', в которых связанные поля совпадают. При выборе варианта 2 или 3 на линии связи будет отображена стрелка, указывающая на ту сторону связи, в которой отображаются только сопоставленные строки. В диалоговом окне Параметры соединения выберите нужный параметр и нажмите кнопку ОК. Задача сохранения целостности данных состоит в том, чтобы не допустить появление непарных записей и поддерживать ссылки в синхронизированном виде, исключая появление записей со ссылками на несуществующие записи. Целостность данных обеспечивается путем ее включения при создании межтабличных отношений. Если однажды обеспечить целостность данных, Access будет отклонять обновления, нарушающие ее для этого межтабличного отношения. Access будет отклонять как обновление, так и удаление целевого объекта ссылки. Сведения о том, как организовать в Access обновление и удаление ссылок с соответствующими изменениями всех связанных строк, см. В окне 'Схема данных' щелкните линию связи, которую требуется изменить. Нельзя вводить в поле внешнего ключа связанной таблицы значения, отсутствующие в поле первичного ключа главной таблицы, так как это приводит к появлению потерянных записей. Не допускается удаление записи из главной таблицы, если в связанной таблице существуют связанные с ней записи. Например, невозможно удалить запись из таблицы 'Сотрудники', если в таблице 'Заказы' имеются заказы, относящиеся к данному сотруднику. Однако можно удалить главную запись и все связанные записи одним действием, установив флажок Каскадное удаление связанных записей. Не допускается изменение значения первичного ключа в главной таблице, если это приведет к появлению непарных записей. Например, нельзя изменить номер заказа в таблице 'Заказы', если в таблице 'Сведения о заказах' есть строки, относящиеся к этому заказу. Однако можно обновить главную запись и все связанные записи одним действием, установив флажок Каскадное обновление связанных полей. Если при включении обеспечения целостности данных возникли трудности, обратите внимание на то, что должны выполняться перечисленные ниже условия. Общие поля должны иметь одинаковый тип данных. Обе таблицы должны существовать в одной базе данных Access. Целостность данных нельзя включить для присоединенных таблиц. Однако если исходные таблицы имеют формат Access, можно открыть базу данных, в которой они хранятся, и включить целостность в этой базе. Иногда возникает ситуация, в которой требуется изменить значение только на стороне 'один' отношения. В этом случае необходимо, чтобы приложение Access автоматически обновило все затронутые строки в ходе выполнения одной операции. Этой проблемы можно избежать с помощью параметра Access 'Каскадное обновление связанных полей'. Если при включении целостности данных был активирован параметр 'Каскадное обновление связанных полей', то при последующем обновлении первичного ключа автоматически будут обновлены все связанные с ним поля. Для этого в Access предназначен параметр 'Каскадное удаление связанных записей'. Если включить целостность данных и выбрать 'Каскадное удаление связанных записей', при удалении записи, содержащей первичный ключ, будут автоматически удалены все записи, связанные с этим ключом. Установите флажок Каскадное обновление связанных полей или флажок Каскадное удаление связанных записей либо оба. Если первичным ключом является поле 'Счетчик', установка флажка Каскадное обновление связанных полей не произведет никакого эффекта, поскольку изменить значение поля 'Счетчик' нельзя. Ресурсы Истории клиентов Вопросы и ответы Установка Office Ресурсы для ИТ-специалистов Безопасность и соответствие требованиям Требования к системе. Руководство по связям между таблицами Применяется к: Общее поле главной таблицы должно быть первичным ключом или иметь уникальный индекс. Первоочередный доступ к новым возможностям. Были ли сведения полезными? Что мы могли бы улучшить? Спасибо за ваш отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office. Обращение в службу поддержки. Xbox One X Xbox One S Приложения Windows 10 Приложения Office Mixer. Магазин и поддержка Профиль учетной записи Центр загрузки Продажа и поддержка Возврат товаров Отслеживание заказа Адреса магазинов Поддержка. Образование Майкрософт и образование Office для учащихся Office для школ Специальные предложения для учащихся и преподавателей Microsoft Azure и образование. Предприятие Microsoft Azure Предприятие Для малого и среднего бизнеса Ресурсы для партнеров Microsoft. Разработчик Microsoft Visual Studio Центр разработчиков Windows Сеть Microsoft Developer Network TechNet Академия Microsoft Virtual Academy Программа Майкрософт для разработчиков Channel 9 Центр разработки для Office. Компания Вакансии О корпорации Майкрософт Новости компании Политика конфиденциальности Майкрософт Инвесторы Безопасность. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают.

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

Руководство по связям между таблицами

УСЛОВИЯ ЦЕЛОСТНОСТИ ДАННЫХ

Одежда для кукол весна своими руками

Где дешево поесть в казани

Как искренне попросить прощения

Уведомление о состоявшемся распоряжении правом

Где на ноутбуке кнопка tab

Тариф ноль сомнений 3

Славянские сайты новости

Report Page