Объединение таблиц на основе неравенства значений полей
Соединения не должны основываться на эквивалентности Объединенных полей . Соединение может быть основано на любом операторе сравнения, например больше ( _гт_), меньше чем ( _лт_), или не равно ( _лт__гт_). Соединения, не основанные на эквивалентности, называются неравенствными соединениями.
Если вы хотите объединить строки из двух источников данных на основе значений полей, которые не равны, используйте соединение по несовпадению. Как правило, соединения на неодинаковые значения зависят от значений операторов сравнения “больше ( _гт_)”, “меньше” ( _лт_), “больше” или “равно” ( _гт_ =) или меньше или равно ( _лт_ =). Неодинаковые соединения, основанные на операторе is Not Equals ( _лт__гт_), могут возвращать практически столько строк, сколько перекрестное соединение, и результаты могут быть трудно интерпретировать.
Как использовать соединение по несовпадению?
Соединения “неодинаковые” в конструкторе не поддерживаются. Если вы хотите использовать их, необходимо выполнить эти действия с помощью режима SQL. Однако вы можете создать соединение в конструкторе, перейти в режим SQL, найти оператор равенства ( =), а затем изменить его на оператор, который вы хотите использовать. После этого вы можете снова открыть запрос в конструкторе, если сначала изменить оператор сравнения на равно ( =) в режиме SQL.
Microsoft Access
Офисный программный продукт от “Майкрософт” известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку “офиса”. Можно Access (читается как “аксес”, дословный перевод – “доступ”) приобрести и отдельно от его “коллег”. Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. “Майкрософт Аксес” доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что “Майкрософт Аксес” – это система управления базами данных. Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической модели данных, которая в ходе своей работы обращается к теории множеств и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Связывание таблиц на схеме данных
Для того чтобы было удобно просматривать, создавать, удалять и модифицировать связи между таблицами, в Microsoft Access используется схема данных (Relationships) (рис. 2.27).
Чтобы открыть схему данных, необходимо выполнить команду Сервис, Схема данных (Tools, Relationships). По умолчанию схема будет содержать все таблицы со связями. Поэтому сюда будет включена, например, наша новая таблица «Список рассылки оповещений», которая была связана с таблицей «Клиенты» (Customers) при помощи Мастера подстановок (см. разд. «Использование Мастера подстановок» выше в данной главе).
Чтобы убрать какую-либо таблицу из схемы данных, необходимо щелкнуть правой кнопкой мыши на любом месте этой таблицы и из контекстного меню выбрать команду Скрыть таблицу (Hide table). Например, на рис. 2.27 таблица «Список рассылки оповещений» скрыта.
Удаление таблицы из схемы данных не означает удаление ее из базы данных, просто она не присутствует в схеме.
Чтобы вновь добавить в эту схему свернутую таблицу («Список рассылки оповещений») или таблицу, у которой связи еще не установлены, необходимо:
- Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу (Show table).
- В диалоговом окне Добавление таблицы (Show table) раскрыть вкладку Таблицы (Tables), выбрать из списка таблицу «Список рассылки оповещений», и нажать кнопку Добавить (Add) (рис. 2.28).
Если нужно добавить к схеме несколько таблиц, придется повторить эту операцию для каждой таблицы.
В данном случае связь между таблицами Access строит автоматически. Это происходит тогда, когда две таблицы имеют одинаковые названия связанных полей и согласованные типы данных, причем хотя бы в одной из таблиц связанное поле является ключевым.
Согласованные типы данных означают следующее: если ключевое поле имеет тип данных Счетчик (AutoNumber), то соответствующее ему поле в другой таблице должно иметь тип Длинное целое (Long Integer). В остальных случаях типы данных должны просто совпадать.
Если нужная связь автоматически не создана, ее можно создать двумя путями. Первый путь — графический. Следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. После этого появится диалоговое окно Изменение связей (Edit Relationships) (рис. 2.29).
Альтернативный вариант — выбрать команду Связи, Изменить связь (Relationships, Edit Relationships) из главного меню Access. Эта команда появляется в меню, когда открыто окно Схема данных (Relationships).
- В диалоговом окне
Изменение связей (Edit Relationships) можно выбрать из списков названия связанных таблиц и полей для связывания. Если отношение между таблицами «один-ко-многим», то слева из списка Таблица/запрос (Table/ Query) выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос — подчиненная и соответственно поле в ней. Если отношение «один-к-одному», то порядок таблиц значения не имеет. Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.
По умолчанию устанавливается первый переключатель. Нажать кнопку ОК.
Когда создается новая связь, можно также воспользоваться кнопкой Новое (Create New) и в окне Создание (Create New) ввести имена связываемых таблиц и имена полей, используемых для связи. Нажать кнопку ОК.
После установки всех параметров связи необходимо нажать кнопку ОК в окне Параметры объединения (Edit Relationship) и закрыть окно Схема данных (Relationship), нажав на кнопку Закрыть в правом верхнем углу окна.
Редактирование записей
Чтобы быстро отредактировать любую запись в таблице, просто нажмите ее и введите свои изменения. Тем не менее, Access также предлагает вам возможность находить и заменять слово в нескольких записях, а также полностью удалять записи.
Чтобы заменить слово в записи:
Вы можете редактировать несколько вхождений одного и того же слова, используя Find и Replace, который ищет термин и заменяет его другим термином.
- 1. Выберите вкладку «Главная» и найдите группу «Найти».
- 2. Выберите команду «Заменить». Появится диалоговое окно «Найти и заменить».
- 3. Нажмите поле «Найти»: и введите слово, которое вы хотите найти.
- 4. Нажмите кнопку «Заменить с» и введите слово, которое вы хотите заменить оригинальным словом.
- 5. Нажмите стрелку «Вниз»: выберите область, которую вы хотите найти.
- Выберите «Текущее поле», чтобы ограничить поиск выбранным в данный момент полем.
- Выберите текущий документ для поиска по всей таблице.
- 6. Нажмите стрелку раскрывающегося списка Match: выберите, насколько близко вы хотите, чтобы результаты соответствовали вашему поиску.
- Выберите любую часть поля для поиска поискового запроса в любой части ячейки.
- Выберите «Всего полей» для поиска только для ячеек, которые соответствуют вашему поисковому запросу.
- Выберите «Начало поля» для поиска только для ячеек, которые начинаются с вашего поискового запроса.
- 7. Нажмите «Найти далее», чтобы найти следующее вхождение поискового запроса.
- 8. Нажмите «Заменить», чтобы заменить исходное слово на новое.
Хотя вы можете использовать Replace All для замены каждого экземпляра термина, заменяя его по одному, вы можете быть абсолютно уверены, что редактируете только нужные вам данные. Замена данных непреднамеренно может негативно повлиять на вашу базу данных.
Чтобы удалить запись:
- 1. Выберите всю запись, нажав серая рамка в левой части записи.
- 2. Выберите вкладку «Главная» и найдите группу «Записи».
- 3. Нажмите команду Удалить. Запись будет удалена навсегда.
Идентификационные номера, присвоенные записям, остаются неизменными даже после удаления записи. Например, если вы удалите 34-ю запись в таблице, последовательность идентификационных номеров записей будет читать … 32, 33, 35, 36 … а не … 32, 33, 34, 35, 36 .. ,
3.1. Определение связей между таблицами
В созданной базе данных таблицы связаны друг с другом. Для связанных таблиц изменение некоторых свойств полей становится невозможным. В связанную таблицу нельзя добавить новое поле или удалить существующее поле, но можно добавить записи, а также изменить значения отдельных полей. Если связь установлена с таблицей Access, то доступна также операция удаления записей.
После того как в БД созданы основные таблицы, следует указать, как они связаны друг с другом. Эти связи Access будет использовать в запросах, формах и отчетах при отборе информации из нескольких таблиц. Задание связей между таблицами позволяет также обеспечить защиту целостности данных в БД. Окно связей вызывается командой Схема данныхменюРабота с базой данных(см. рис. 3.1)
Связь между двумя таблицами, одна из которых является главной, а другая подчиненной, устанавливает соответствие между записями этих таблиц. Для установления связи нужно, чтобы в главной таблице существовало поле или группа полей, совокупность значений которых однозначно определяла бы запись (была уникальной). Обычно в качестве поля (группы полей) связи выбирается ключевое поле таблицы, но достаточно, чтобы оно имело уникальный индекс. В соответствие ему ставится поле (группа полей) подчиненной таблицы, называемое внешним ключом. Связь между записями устанавливается по совпадению значений в полях связи.
. Поля связи могут иметь разные имена, но они должны иметь один тип данных и иметь однотипное содержимое.
Исключение из этого правила: поле типа Счетчик можно связывать с числовым полем, имеющим в свойстве Размер поля значение «Длинное целое». Кроме того, связываемые поля числового типа должны иметь одинаковые значения свойства Размер поля. Например, для получения информации о студентах и полученных ими оценках следует определить связь по полям Код Студента в таблицах Студенты и Сессия. Главной в этой связи будет таблица Студенты, а подчиненной — таблица Сессия. Каждой записи в главной таблице — данным о студенте — соответствует несколько (или ни одной) записей из подчиненной таблицы — информация об его оценках. Поле Код Студента в таблице Сессия является внешним ключом.
Обзор
База данных — это набор таблиц с данными, которые являются логическими связями друг с другом. Связи используются для соединения таблиц с помощью полей, которые они используют чаще всего. Таблица может быть частью любого количества связей, но каждая связь всегда имеет ровно две таблицы. В запросе связь представляется соединением.
При добавлении таблиц в запрос Access создает соединения, основанные на отношениях, заданных между таблицами. Вы можете вручную создавать соединения в запросах, даже если они не представляют собой связи, которые уже были определены. Если вы используете другие запросы (вместо или в дополнение к таблицам) в качестве источников данных для запроса, вы можете создавать соединения между исходными запросами, а также между этими запросами и таблицами, которые используются в качестве источников данных.
Объединение работает аналогично условиям запроса в том случае, если они устанавливают правила, которым данные должны соответствовать для включения в операции запроса. В отличие от условий, соединения также указывают на то, что каждая пара строк, удовлетворяющая условиям соединения, будет объединена в наборе записей для формирования одной строки.
Существует четыре основных типа соединений: внутренние соединения, внешние соединения, перекрестные соединения и неодинаковые соединения. В этой статье рассказывается о каждом типе соединения, который можно использовать, зачем использовать каждый из них, а также создавать соединения.
Соединения предназначены для запроса связей с таблицами: сведения о том, как данные в двух источниках можно сочетать на основе значений данных, которые они используют. Ниже приведена иллюстрация соединения в режиме конструктора запросов с диалоговым окном свойств соединения, которое открывается в окне.
Эта строка между таблицами представляет соединение. Дважды щелкните соединение, чтобы открыть диалоговое окно Свойства соединения (показано) и просмотреть или изменить соединение.
Иногда соединения являются направленными. В этой области диалогового окна показано, какая таблица, в которой выполняется объединение, и какие поля используются для присоединения к таблицам.
В этой области определяется тип соединения: вариант 1 — это внутреннее соединение, 2 — левое внешнее соединение, а 3 — правое внешнее соединение.
Можно использовать поля из обеих таблиц, и данные, относящиеся к определенной задаче, отображаются в каждом из них. При внутреннем соединении никакие другие данные не включаются. При внешнем объединении несвязанные записи из одной таблицы также включаются в результаты запроса.
Создание и удаление таблиц
Таблицы являются основными строительными блоками реляционной базы данных. Таблица содержит строки (или записи) данных, и каждая строка организована в конечное число столбцов (или полей). Чтобы создать новую таблицу в Access с помощью access SQL, необходимо назвать таблицу, назвать поля и определить тип данных, которые будут содержать поля. Чтобы определить таблицу в SQL, используйте заявление CREATE TABLE. Предположим, что вы строите базу данных для взимания. Первым шагом является создание начальной таблицы клиентов.
Следует помнить о следующих проблемах при создании и удалении таблиц:
Если имя поля включает пробел или другой неальфанумерический символ, необходимо заключить это имя поля в квадратные скобки ([]).
Если вы не задекларируете длину для текстовых полей, они будут по умолчанию 255 символов. Для последовательности и читаемости кода всегда необходимо определить длину поля.
Вы можете объявить поле NOT NULL, что означает, что значения null не могут быть вставлены в это конкретное поле; значение всегда требуется. Значение null не следует путать с пустой строкой или значением 0; это просто представление базы данных неизвестного значения.
Чтобы удалить таблицу из базы данных, используйте заявление DROP TABLE.
Вставка записей в таблицу
По существу, существует два метода добавления записей в таблицу. Первый — добавление по одной записи за раз, второй — одновременное добавление нескольких записей. В обоих случаях для выполнения задачи необходимо использовать инструкцию SQL INSERT INTO. Инструкции INSERT INTO обычно называют запросами на добавление.
Чтобы добавить одну запись в таблицу, с помощью списка полей определите, в какие поля следует поместить данные, а затем разместите данные в списке значений. Для определения списка значений используйте выражение VALUES. Например, указанная ниже инструкция вставляет значения 1, Kelly и Jill в поля CustomerID, Last Name и First Name соответственно.
Вы можете опустить список полей, но только в том случае, если вы передаете все значения, которые должна содержать запись.
Чтобы добавить одновременно несколько записей в таблицу, используйте инструкцию INSERT INTO совместно с инструкцией SELECT. Если вы вставляете записи из другой таблицы, тип каждого вставляемого значения должен быть совместим с типом поля, принимающего данные.
Указанная ниже инструкция INSERT INTO вставляет все значения полей CustomerID, Last Name и First Name таблицы tblOldCustomers в соответствующие поля таблицы tblCustomers.
Если таблицы определены совершенно одинаково, можно не использовать списки полей.
Добавление записей и ввод данных
Ввод данных в таблицы в Access аналогичен вводу данных в Excel. Для работы с записями вам нужно будет ввести данные в ячейки.
Чтобы добавить новую запись:
Существует три способа добавления новой записи в таблицу:
В группе «Запись» на вкладке «Главная» щелкните команду «Создать».
На панели навигации «Запись» в нижней части окна нажмите кнопку «Новая запись».
Просто начните печатать в строке ниже вашей последней добавленной записи.
Иногда, когда вы вводите информацию в запись, выдается всплывающее окно, чтобы сообщить вам, что введенная вами информация недействительна. Это означает, что в поле, в котором вы работаете, есть правило проверки, которое является правилом о типе данных, которые могут отображаться в этом поле. Нажмите «ОК», затем следуйте инструкциям во всплывающем окне, чтобы повторно ввести свои данные.
Чтобы сохранить запись:
- 1. Выберите вкладку «Главная» и найдите группу «Записи».
- 2. Нажмите кнопку «Сохранить».
Перед закрытием таблицы обязательно сохраните несохраненные записи. При закрытии таблицы Access не будет запрашивать сохранение.
Как определить связи между таблицами
При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем AutoNumber. Вы можете сопоставить поле AutoNumber с полем Number, только если свойство FieldSize обоих совпадающих полей совпадает. Например, можно сопоставить поле AutoNumber и поле Number, если свойство theFieldSizeproperty обоих полей имеет значение Long Integer. Даже если оба совпадающих поля являются числовыми полями, они должны иметь параметр sameFieldSizeproperty.
Как определить связи “один ко многим” или “один к одному”
Чтобы создать связь “один ко многим” или “один к одному”, выполните следующие действия.
Закройте все таблицы. Нельзя создавать или изменять связи между открытыми таблицами.
В Access 2002 и Access 2003 выполните следующие действия.
- Нажмите F11, чтобы переключиться в окно базы данных.
- В меню Инструменты выберите Связи.
В Access 2007, Access 2010 или Access 2013 нажмите Связи в группе Показать/Скрыть на вкладке Инструменты базы данных.
Если вы еще не определили какие-либо связи в базе данных, автоматически отобразится диалоговое окно Показать таблицу. Если вы хотите добавить таблицы, которые нужно связать, но диалоговое окно Добавление таблицы не отображается, нажмите Добавить таблицу в меню Связи.
Дважды щелкните имена таблиц, которые необходимо связать, а затем закройте диалоговое окно Добавление таблицы. Чтобы создать связь между одной и той же таблицей, добавьте эту таблицу два раза.
Перетащите поле, которое вы хотите связать, из одной таблицы в связанное поле в другой таблице. Чтобы перетащить несколько полей, нажмите Ctrl, нажмите на каждое поле, а затем перетащите их.
В большинстве случаев вы перетаскиваете поле первичного ключа (это поле отображается жирным текстом) из одной таблицы в аналогичное поле (это поле часто имеет одно и то же имя), которое называется внешним ключом в другой таблице.
Откроется диалоговое окно Изменение связей. Убедитесь, что имена полей, отображаемые в двух столбцах, верны. Вы можете изменить имена, если это необходимо.
При необходимости установите параметры связей. Если вам нужна информация о конкретном элементе в диалоговом окне Изменение связей, нажмите кнопку со знаком вопроса, а затем щелкните элемент. (Эти параметры будут подробно описаны ниже в этой статье.)
Нажмите кнопку Создать, чтобы создать связь.
Повторите шаги с 4 по 7 для каждой пары таблиц, которые вы хотите связать.
При закрытии диалогового окна Изменение связей Access спрашивает, хотите ли вы сохранить макет. Сохраняете ли вы макет или не сохраняете макет, созданные вами связи сохраняются в базе данных.
Примечание
Можно создавать связи не только в таблицах, но и в запросах. Однако целостность данных связывания не обеспечивается с помощью запросов.
Как определить связь “многие ко многим”
Чтобы создать связь “многие ко многим”, выполните следующие действия.
Создайте две таблицы, которые будут иметь связь “многие ко многим”.
Создайте третью таблицу. Это стыковочная таблица. В таблице соединения добавьте новые поля, которые имеют те же определения, что и основные ключевые поля из каждой таблицы, созданной в шаге 1. В связующей таблице основные ключевые поля функционируют как внешние ключи. Вы можете добавить другие поля в связующую таблицу, так же, как и в любую другую таблицу.
В связующей таблице установите первичный ключ, чтобы включить основные ключевые поля из двух других таблиц. Например, в связующей таблице “TitleAuthors” первичный ключ будет состоять из полей OrderID и ProductID.
Примечание
Чтобы создать первичный ключ, выполните следующие действия:
Откройте таблицу в Конструкторе.
Выберите поле или поля, которые вы хотите определить в качестве первичного ключа. Чтобы выбрать одно поле, нажмите на селектор строки для нужного поля. Чтобы выбрать несколько полей, удерживайте клавишу Ctrl, а затем нажмите селектор строки для каждого поля.
В Access 2002 или в Access 2003 нажмите на Первичный ключ на панели инструментов.
В Access 2007 нажмите на Первичный ключ в группе Инструменты на вкладке Дизайн.
Примечание
Если вы хотите, чтобы порядок полей в первичном ключе с несколькими полями отличался от порядка этих полей в таблице, нажмите Индексы на панели инструментов для отображения диалогового окна Indexes, а затем заново упорядочите имена полей для индекса с именем PrimaryKey.
Определите связь один-ко-многим между каждой основной и связующей таблицами.
Что представляет собой БД?
Как известно, база данных представляет собой инструмент сбора и структурирования информации. В БД можно хранить данные о людях, заказах, товарах и т. п. Многие БД изначально выглядят как небольшой список в текстовом редакторе либо электронной таблице. Но в связи с увеличением объёма данных, список наполняется лишней информацией, появляются несоответствия, не всё становится понятным… Кроме того, способы поиска и отображения подмножеств данных при использовании обычной электронной таблицы крайне ограничены. Таким образом, лучше заранее подумать о переносе информации в базу данных, созданную в рамках системы управления БД, например, в такую, как Access.
База данных Access — это хранилище объектов. В одной такой базе данных может содержаться более одной таблицы. Представьте систему отслеживания складских запасов с тремя таблицами — это будет одна база данных, а не 3.
Что касается БД Access, то в ней все таблицы сохраняются в одном файле совместно с другими объектами (формами, отчётами, модулями, макросами).
Для файлов БД, созданных в формате Access 2007 (он совместим с Access 2010, Access 2013 и Access 2016), применяется расширение ACCDB, а для БД, которые созданы в более ранних версиях, — MDB. При этом посредством Access 2007, Access 2013, Access 2010 и Access 2016 вы сможете, при необходимости, создавать файлы и в форматах более ранних версий (Access 2000, Access 2002–2003).
Применение БД Access позволяет:
• добавлять новые данные в БД (допустим, новый артикул складских запасов);
• менять информацию, находящуюся в базе (перемещать артикул);
• удалять данные (например, когда артикул продан либо утилизирован);
• упорядочивать и просматривать данные разными методами;
• обмениваться информацией с другими людьми посредством отчётов, сообщений, эл. почты, глобальной или внутренней сети.
Создание и удаление индексов
Индекс — это внешняя структура данных, используемая для сортировки или организации указателей на данные в таблице. При применении индекса к таблице указывается определенное расположение данных, чтобы к ним можно было быстрее получить доступ. Однако если к таблице применяется слишком много индексов, производительность может замедлиться, так как для поддержания индекса используются дополнительные накладные расходы, а также из-за того, что индекс может вызывать проблемы с блокировкой при работе в многоуровневой среде. Используемый в правильном контексте индекс может значительно повысить производительность приложения.
Чтобы создать индекс на таблице, необходимо назвать индекс, назови таблицу для построения индекса, назови поле или поля в таблице для использования и назови параметры, которые необходимо использовать. Для создания индекса используется заявление CREATE INDEX. Например, можно создать индекс на таблице клиентов в базе данных высвечив, упомянутую ранее, с помощью следующего кода:
Индексные поля можно сортировать одним из двух способов: восходящим (ASC) или убывательным (DESC). По умолчанию порядок возрастает, и его не нужно объявлять. Если вы используете восходящий порядок, данные будут сортироваться от 1 до 100. Если указать порядок убывания, данные будут сортироваться от 100 до 1. Необходимо объявить порядок сортировки с каждым полем в индексе.
Существует четыре основных варианта, которые можно использовать с индексом: PRIMARY, DISALLOW NULL, IGNORE NULL и UNIQUE. Параметр PRIMARY обозначает индекс в качестве основного ключа для таблицы. В таблице может быть только один основной ключевой индекс, хотя основной индекс ключа можно объявлять с помощью более чем одного поля. Чтобы объявить параметры индекса, используйте ключевое слово WITH.
Чтобы создать индекс основных ключевых элементов в более чем одном поле, включайте все имена полей в список полей.
Параметр DISALLOW NULL предотвращает вставку null-данных в поле. (Это похоже на объявление NOT NULL, используемом в заявлении CREATE TABLE.)
Параметр IGNORE NULL вызывает игнорирование данных null в таблице для индекса. Это означает, что любая запись, которая имеет значение null в объявленной области, не будет использоваться (или засчитываться) в индексе.
Помимо параметров PRIMARY, DISALLOW NULL и IGNORE NULL можно также объявить индекс УНИКАЛЬНЫМ, что означает, что в индексное поле могут быть вставлены только уникальные, не повторяющие значения.
Чтобы удалить индекс из таблицы, используйте заявление DROP INDEX.
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Понимание таблиц
Все таблицы состоят из горизонтальных строк и вертикальных столбцов с небольшими прямоугольниками, называемыми ячейками в местах пересечения строк и столбцов. В Access строки и столбцы называются записями и полями.
Поле – это способ организации информации по типу. Подумайте о названии поля как о вопросе и каждой ячейке в этом поле в качестве ответа на этот вопрос.
Запись – это одна единица информации. Каждая ячейка в данной строке является частью записи этой строки. Каждая запись имеет свой идентификационный номер. В таблице каждый идентификационный номер уникален для своей записи и относится ко всей информации в этой записи. Идентификационный номер для записи не может быть изменен.
Каждая ячейка данных в вашей таблице является частью как поля, так и записи. Например, если у вас есть таблица имен и контактная информация, каждый человек будет представлен записью, и каждый фрагмент информации о каждом имени человека, номере телефона, адресе и т. Д. Будет содержаться в отдельном поле в строке этой записи.
Зачем создавать связи между таблицами?
Связи между таблицами можно создать непосредственно с помощью окна «Схема данных» или путем перетаскивания поля из области Список полей. Access использует связи между таблицами для того, чтобы решить, как связать таблицы для использования их в объекте базы данных. Существует несколько причин для создания связей между таблицами перед созданием других объектов базы данных (форм, запросов, отчетов).
Связи между таблицами предоставляют сведения для структурирования запросов
Для работы с записями из нескольких таблиц часто приходится создавать запросы, соединяющие таблицы. Запрос сопоставляет значения в поле первичного ключа первой таблицы с полем внешнего ключа второй таблицы. Например, чтобы получить строки, в которых перечисляются все заказы для каждого из клиентов, можно создать запрос, соединяющий таблицу «Клиенты» с таблицей «Заказы» на основе поля «Код клиента». В окне «Схема данных» можно вручную указать поля для соединения. Но если связь между таблицами уже существует, Access использует соединение по умолчанию на основе существующей связи между таблицами. Кроме того, при использовании одного из мастеров запросов Access использует сведения об уже определенных связях между таблицами, чтобы предоставить пользователю выбор и подставить в параметры свойств соответствующие значения по умолчанию.
Связи между таблицами предоставляют сведения для структурирования форм и отчетов
При создании формы или отчета в Access используются сведения об уже определенных межтабличных связях, чтобы предоставить пользователю выбор и предварительно заполнить параметры свойств соответствующими значениями по умолчанию.
Связи между таблицами — это та основа, с помощью которой можно обеспечить целостность данных, чтобы в базе данных не было потерянных записей. Потерянная запись — это запись со ссылкой на несуществующую запись (например, запись заказа со ссылкой на отсутствующую запись клиента).
При создании базы данных сведения распределяются по таблицам, в каждой из которых есть первичный ключ. После этого к связанным таблицам добавляются внешние ключи, имеющие ссылки на первичные ключи. Эти пары из внешнего и первичного ключей формируют основу для связей между таблицами и многотабличных запросов
Поэтому важно, чтобы ссылки «внешний ключ — первичный ключ» оставались синхронизированными. Целостность данных, которая зависит от связей в таблице, гарантирует, что ссылки остаются синхронизированными.
Ввод и корректировка данных во взаимосвязанных таблицах
Если для одно-многозначных связей, установленных в схеме данных, не задан параметр обеспечения целостности данных, то пользователь при добавлении, удалении записей и изменении значений ключевых полей должен сам отслеживать непротиворечивость данных и целостность связей.
Если установлен только флажок Обеспечение целостности данных, то Access разрешает пользователю:
1. добавить запись в таблицу, которая не подчинена никакой другой таблице в схеме данных (находится на верхнем уровне иерархии);
2. добавить запись в подчиненную таблицу, когда в главной имеется запись с вводимым значением ключа связи;
3. удалить запись в таблице, если нет связанных с ней записей в подчиненных таблицах.
Если наряду с флажком Обеспечение целостности данных установлен флажок каскадное удаление связанных записей , то пользователь может удалить запись. При этом автоматически будут удалены и все подчиненные записи.
Если наряду с параметром Обеспечение целостности данных задан параметр каскадное обновление связанных полей, то пользователь может изменять значение ключевого поля. При этом автоматически будут обновлены значения внешних ключей и во всех связанных подчиненных записях.
Таким образом, при загрузке таблиц базы данных при установленных параметрах целостности система отслеживает корректность связей для вводимых записей.
В Access 2000 имеется возможность при просмотре таблицы отображать записи подчиненных таблиц. Поэтому пользователь может контролировать корректность связей в отображаемой цепочке таблиц при добавлении, удалении и корректировке записей.