Установка связеймежду таблицами бд access 2007
Содержание:
- Отношения “один-к-одному”
- УПР. 3. Создание связей
- Связь «Один к одному»
- Определение промежуточной группы мерDefining the Intermediate Measure Group
- Мощность связи
- База данных Кинга
- Разные базы — разные правила
- В чём преимущества
- Связь «Один ко многим»
- Что такое мощность отношений?
- База данных Кинга
- Определение связи «многие ко многим»Defining the Many to Many Relationship
- 3.1. Определение связей между таблицами
- Есть две таблицы..
- Роль связи многие-ко-многим
- Типы связей в БД
- Роль связи многие-ко-многим
- Как определить связи между таблицами
- Microsoft Access
- Схема данных
Отношения “один-к-одному”
Отношение “один-к-одному” происходит только в одном сценарии, когда у вас есть уникальные значения в обеих таблицах на столбец. Примером такого сценария является случай, когда у вас есть таблицы Titles и Titles Details! У них обоих есть один ряд на заголовок. Так что, если мы создадим отношения, это будет выглядеть так:
Если между двумя таблицами существует взаимно-однозначное отношение, они являются хорошим кандидатом для объединения друг с другом с помощью слияния в Power Query. Поскольку обе таблицы в большинстве случаев имеют одинаковое количество строк, или даже если в одной из них меньше строк, все еще учитывающих метод сжатия механизма Power BI xVelocity, потребление памяти будет одинаковым, если вы поместите его в одну таблицу. Так что если у вас отношения “один-к-одному”, подумайте о том, чтобы серьезно объединить эти таблицы.
Было бы лучше, если бы мы объединили обе таблицы выше в одну таблицу, в которой есть все о заголовке.
УПР. 3. Создание связей
ЗадачаОпределите и установите связи между таблицами так, чтобы информация в БД хранилась как единое целое в соответствии с примером на рис.1.
1.Закройте все открытые таблицы или конструкторы таблиц, так как создавать или изменять связи между открытыми таблицами нельзя.
2.На панели инструментов нажмите кнопку Схема данных или выберите пункт основ-
ного меню Сервис – > Схема данных.
3. Если в БД до этого никаких связей не определялось, автоматически будет открыто диалоговое окно Добавление таблицы. Если нужно добавить таблицы для создания связей, а диалогового окна Добавление таблицы на экране нет, нажмите кнопку Отобразить таблицу на панели инструментов. Если таблицы, между которыми нужно создать связь, уже ото-
бражены, перейдите к шагу 5.
4. Дважды щелкните имена таблиц, для которых требуется определить связи. Затем закройте диалоговое окно Добавление таблицы. Повторно добавленные таблицы можно скрыть. Для этого необходимо указать на них курсором и, вызвав контекстное меню правой клавишей мыши, выбрать команду Скрыть.
Связь «Один к одному»
Связь один к одному образуется, когда ключевой столбец (идентификатор) присутствует в другой таблице, в которой тоже является ключом либо свойствами столбца задана его уникальность (одно и тоже значение не может повторяться в разных строках).
На практике связь «один к одному» наблюдается не часто. Например, она может возникнуть, когда требуется разделить данных одной таблицы на несколько отдельных таблиц с целью безопасности.
В учебной безе данных нет подходящего примера, но гипотетически могла бы существовать необходимость разделения таблицы сотрудников.
Пример:
Представьте, что базой данных пользуются несколько менеджеров и аналитиков, а таблица «Сотрудники» содержит те же столбцы, что и учебная база. Следовательно, доступ к персональным данным может получить любой из упомянутых работников.
Чтобы устранить возможность утечки конфиденциальной информации, принимается решение о переносе информации паспортных данных в отдельную таблицу, доступ к которой предоставляется ограниченному кругу лиц.
Определение промежуточной группы мерDefining the Intermediate Measure Group
Переключитесь в конструктор кубов на куб Службы Analysis ServicesAnalysis Services Tutorial и откройте вкладку Структура куба .Switch to Cube Designer for the Службы Analysis ServicesAnalysis Services Tutorial cube, and then click the Cube Structure tab.
Щелкните правой кнопкой мыши панель Меры и выберите команду Создать группу мер.Right-click anywhere in the Measures pane, and then click New Measure Group. Дополнительные сведения см
в разделе Создание мер и групп мер в многомерных моделях.For more information, see Create Measures and Measure Groups in Multidimensional Models.
В диалоговом окне Создание группы мер в списке Выберите таблицу из представления источников данных выберите таблицу InternetSalesReason и нажмите кнопку ОК.In the New Measure Group dialog box, select InternetSalesReason in the Select a table from the data source view list, and then click OK.
Обратите внимание, что на панели Меры теперь отображается группа мер Internet Sales Reason .Notice that the Internet Sales Reason measure group now appears in the Measures pane.
Разверните группу мер Internet Sales Reason .Expand the Internet Sales Reason measure group.
Обратите внимание, что для этой группы мер определена единственная мера, Internet Sales Reason Count .Notice that only a single measure is defined for this new measure group, the Internet Sales Reason Count measure.
Выберите меру Internet Sales Reason Count и просмотрите свойства этой меры в окне свойств.Select Internet Sales Reason Count and review the properties of this measure in the Properties window.
Обратите внимание, что свойство AggregateFunction для этой меры определено как Число , а не Сумма.Notice that the AggregateFunction property for this measure is defined as Count instead of Sum. Службы Analysis ServicesAnalysis Services выбрать число , поскольку базовый тип данных является строковым типом данных.chose Count because the underlying data type is a string data type
Другие два столбца в базовой таблице фактов не были выделены как меры, поскольку в службах Службы Analysis ServicesAnalysis Services они определены как числовые ключи, а не фактические меры.The other two columns in the underlying fact table were not selected as measures because Службы Analysis ServicesAnalysis Services detected them as numeric keys instead of as actual measures. Дополнительные сведения см. в разделе Определение полуаддитивного режима.For more information, see Define Semiadditive Behavior.
В окне «Свойства» измените значение свойства Visible меры Internet Sales Reason Count на False.In the Properties window, change the Visible property of the Internet Sales Reason Count measure to False.
Эта мера будет использована только для соединения измерения Sales Reason, которое предстоит определить после группы мер Internet Sales.This measure will only be used to join the Sales Reason dimension that you will define next to the Internet Sales measure group. Пользователи не смогут просматривать эту меру.Users will not browse this measure directly.
На следующем рисунке демонстрируются свойства меры Internet Sales Reason Count .The following image shows the properties for the Internet Sales Reason Count measure.
Мощность связи
Мощность
связи (Cardinality)служит для
обозначения отношения числа экземпляров
родительской сущности к числу экземпляров
дочерней.
Различают 4 типа мощности, показанные
на рис П5:
-
общий
случай, когда одному экземпляру
родительской сущности соответствуют
0, 1 или много экземпляров дочерней
сущности не помечается каким-либо
символом; -
символом
Р помечается случай, когда одному
экземпляру родительской сущности
соответствуют 1 или много экземпляров
дочерней сущности (исключено нулевое
значение); -
символом
Zпомечается случай, когда
одному экземпляру родительской сущности
соответствуют 0 или 1 экземпляр дочерней
сущности (исключены множественные
значения); -
цифрой
помечается случай точного соответствия,
когда одному экземпляру родительской
сущности соответствует заранее заданное
число экземпляров дочерней сущности.
Рис. П5. Типы мощности
База данных Кинга
Эта учебная база данных представляет собой сведения о корпорации Кинга. Среди таблиц:
- сотрудники фирмы — содержит в себе код сотрудника, его фамилию, имя и средний инициал (ориентированность на зарубежные имена), также код начальника и занимаемой сотрудником должности, дату его поступления в фирму, получаемый им оклад и предусмотренные комиссионные, код отдела;
- отделы корпорации — среди полей таблицы есть код и название отдела, а также код его размещения;
- места размещения отделов, которая предполагает внесение информации по коду места размещения и названия города;
- должности в фирме — небольшая таблица с двумя полями кода должности и ее официального названия;
- фирмы-покупатели — поля: код и название покупателя, адрес, город и штат, почтовый код и код региона, телефон, код обслуживающего покупателя менеджера, кредит для покупателя и комментарии (примечания и заметки);
- договоры о продаже, содержащая в себе код и дату договора, код покупателя, дату поставки и общую сумму договора;
- акты продаж — код акта и код договора, в который входит акт, код продукта, его цена, количество приобретенного и общая стоимость покупки;
- товары — код и название продукта;
- цены — код продукта, объявленная на него цена, минимально возможная цена,дата установления и дата отмены цены.
Небольшие таблицы, в наличии у которых не более чем два-три поля, связаны максимум с одной таблицей отношением один-к-одному или один-к-многим.
Масштабные же таблицы, такие как «сотрудники фирмы», «фирмы-покупатели», «договоры о продаже» и «акты продаж» связаны сразу с несколькими сущностями, причем с некоторыми — при помощи «посредников» отношением многие-ко-многим. Таблица «фирмы-покупатели» сама является посреднической, как таковая, ведь в ней есть многие поля, заимствованные из других таблиц и являющиеся внешними ключами. Кроме того, масштабность и взаимосвязь базы данных «Корпорации Кинга» такова, что все отношения неразрывно коррелируют между собой и влияют одно на другое. Разрушение хотя бы одного из них повлечет за собой деструкцию целостности всей БД.
Разные базы — разные правила
Внутри каждой базы данных и её управляющей системы свои строгие правила:
- какие данные могут храниться: текст, цифры, фото, видео или всё вместе;
- какие свойства есть у этих данных: дата записи, кто записал, кто может прочитать;
- что делать, если с базой хотят работать одновременно несколько человек: разрешать только одному или пусть все вместе работают.
Рабочая ситуация: допустим, вы работаете в банке и открыли карточку клиента, чтобы поменять ему кредитный лимит. В этот же момент другой сотрудник из соседнего офиса тоже хочет поменять лимит этому же клиенту, но уже на другую сумму. Как база отреагирует на такое? Должна ли она разрешать второму сотруднику открывать карточку или её нужно заблокировать, пока первый не закончит? А если она разрешит открыть карточку, то что будет, если двое сотрудников напишут там разный лимит — какой из них сохранять в итоге? СУБД задаёт эти правила и следит за их выполнением.
В чём преимущества
Базы данных и их системы управления заточены на работу с большим объёмом данных и от лица большого числа пользователей. Сейчас вы поймёте.
Скорость — ещё одно преимущество базы данных. База данных устроена так, что она легко и быстро находит, записывает, переписывает и снова находит данные. Всё потому, что СУБД всегда знает, что где лежит и по какому критерию искать. Там не будет случайных данных в случайном месте.
Скорость важна ещё и потому, что СУБД обычно обслуживает сразу много потоков: одновременно ей могут пользоваться десятки и сотни тысяч человек, поэтому ей некогда копаться. В хорошо сделанных БД всё молниеносно.
Сложность. Базы данных нужны в числе прочего для хранения сложно структурированных данных. Мы привыкли думать, что база данных — это такая таблица, где есть строки и столбцы. Но база данных при правильной организации может намного больше:
- Связывать одну единицу данных с множеством других. Например, если один человек совершил много заказов со множеством товаров внутри каждого, база данных способна хранить и обрабатывать такие связи.
- База может хранить дерево данных — вроде того, о котором мы писали недавно. Попробуй в реальной жизни похранить дерево!
- В базах могут жить ссылки на другие фрагменты и отделы базы.
Базу можно представить как таблицу, но лишь в самом упрощённом виде. Для более сложных задач базу можно представить как очень сложное дерево, или огромный склад упорядоченных коробок, или даже как огромный завод по фасовке данных.
Связь «Один ко многим»
В типе связей один ко многим одной записи первой таблицы соответствует несколько записей в другой таблице.
Рассмотрим связь учебной базы данных между должностями и сотрудниками, которая относится к рассматриваемому типу.
Записи должностей в таблице «Должность» уникальны, так как нет смысла повторно создавать имеющуюся запись. Записи в таблице «Сотрудники» также уникальны, но несколько различных сотрудников могут находиться на одинаковой должностной позиции.
Символ ключа на конце связи указывает, что таблица, к которой этой конец прилегает, находится на стороне «один» (связанный столбец является первичным ключом), а символ бесконечности находится на стороне «многие» (такой столбец является внешним ключом).
Что такое мощность отношений?
Когда вы создаете отношение между двумя таблицами, вы получаете два значения, которые могут быть 1 или * на двух концах отношения между двумя таблицами, называемые кардинальностью или мощностью отношений.
Два значения 1 или * говорят о том, что поле в этой взаимосвязи имеет определенное число значения на строку в этой таблице. Давайте проверим это на примере.
В таблице Stores у нас есть одно уникальное значение для stor_id на строку.
Таким образом, если это поле участвует в одной стороне отношения, то эта сторона примет 1 в качестве показателя кардинальности, который называется ОДНОЙ стороной отношения.
Однако stor_id в таблице Sales не уникален для каждой строки данных в этой таблице. У нас есть несколько строк для каждого stor_id. Или скажем так; в каждом магазине происходит несколько торговых транзакций (что, конечно, нормально):
Таким образом, если stor_id в таблице Sales является частью отношения, эта сторона отношения станет *, или то, что мы называем «МНОЖЕСТВЕННОЙ» стороной отношения.
Итак, основываясь на том, что мы знаем в данный момент, если мы создадим отношение на основе stor_id между двумя таблицами Sales и Stores, то получим вывод:
Эти отношения могут быть прочитаны двумя способами;
- Отношение “один-ко-многим” (1- *) из таблицы магазинов в таблицу продаж
- Отношение «многие-к-одному» (* -1) из таблицы продаж в таблицу магазинов
Они оба, конечно, одинаковы, и они будут выглядеть точно так же, как каждое из них в представлении схемы. Теперь, когда вы знаете, что такое мощность отношений, давайте изучим все виды мощности.
База данных Кинга
Эта учебная база данных представляет собой сведения о корпорации Кинга. Среди таблиц:
- сотрудники фирмы — содержит в себе код сотрудника, его фамилию, имя и средний инициал (ориентированность на зарубежные имена), также код начальника и занимаемой сотрудником должности, дату его поступления в фирму, получаемый им оклад и предусмотренные комиссионные, код отдела;
- отделы корпорации — среди полей таблицы есть код и название отдела, а также код его размещения;
- места размещения отделов, которая предполагает внесение информации по коду места размещения и названия города;
- должности в фирме — небольшая таблица с двумя полями кода должности и ее официального названия;
- фирмы-покупатели — поля: код и название покупателя, адрес, город и штат, почтовый код и код региона, телефон, код обслуживающего покупателя менеджера, кредит для покупателя и комментарии (примечания и заметки);
- договоры о продаже, содержащая в себе код и дату договора, код покупателя, дату поставки и общую сумму договора;
- акты продаж — код акта и код договора, в который входит акт, код продукта, его цена, количество приобретенного и общая стоимость покупки;
- товары — код и название продукта;
- цены — код продукта, объявленная на него цена, минимально возможная цена,дата установления и дата отмены цены.
Небольшие таблицы, в наличии у которых не более чем два-три поля, связаны максимум с одной таблицей отношением один-к-одному или один-к-многим.
Масштабные же таблицы, такие как «сотрудники фирмы», «фирмы-покупатели», «договоры о продаже» и «акты продаж» связаны сразу с несколькими сущностями, причем с некоторыми — при помощи «посредников» отношением многие-ко-многим. Таблица «фирмы-покупатели» сама является посреднической, как таковая, ведь в ней есть многие поля, заимствованные из других таблиц и являющиеся внешними ключами. Кроме того, масштабность и взаимосвязь базы данных «Корпорации Кинга» такова, что все отношения неразрывно коррелируют между собой и влияют одно на другое. Разрушение хотя бы одного из них повлечет за собой деструкцию целостности всей БД.
Определение связи «многие ко многим»Defining the Many to Many Relationship
Переключитесь в конструкторе кубов на куб Службы Analysis ServicesAnalysis Services Tutorial и откройте вкладку Использование измерений .Switch to Cube Designer for the Службы Analysis ServicesAnalysis Services Tutorial cube, and then click the Dimension Usage tab.
Обратите внимание, что измерение Sales Reason имеет обычную связь, определенную группой мер Internet Sales Reason , но не имеет связи, определенной группами мер Internet Sales или Reseller Sales .Notice that the Sales Reason dimension has a regular relationship defined with the Internet Sales Reason measure group, but has no relationship defined with the Internet Sales or Reseller Sales measure groups. Обратите внимание, что измерение Подробности заказа через Интернет имеет обычную связь, определенную измерением Причина продажи через Интернет , которое в свою очередь имеет Fact Relationship с группой мер Internet Sales .Notice also that the Internet Sales Order Details dimension has a regular relationship defined with the Internet Sales Reason dimension, which in turn has a Fact Relationship with the Internet Sales measure group
Если измерение не найдено (или не найдено другое измерение со связью с обеими группами мер: Причина покупки через Интернет и Продажи через Интернет ), не получится определить связь «многие ко многим».If this dimension was not present (or another dimension with a relationship with both the Internet Sales Reason and the Internet Sales measure group were not present), you would not be able to define the many-to-many relationship.
Щелкните ячейку на пересечении группы мер Продажи через Интернет и измерения Причина покупки , а затем нажмите кнопку обзора (…).Click the cell at the intersection of the Internet Sales measure group and the Sales Reason dimension and then click the browse button (…).
В диалоговом окне Задание связи в списке Выберите тип связи укажите значение Многие ко многим .In the Define Relationship dialog box, select Many-to-Many in the Select relationship type list.
Требуется определить промежуточную группу мер, соединяющую измерение Sales Reason и группу мер Internet Sales.You have to define the intermediate measure group that connects the Sales Reason dimension to the Internet Sales measure group.
В списке Промежуточная группа мер выберите значение Internet Sales Reason.In the Intermediate measure group list, select Internet Sales Reason.
На следующем рисунке отражены изменения, сделанные в диалоговом окне Задание связи .The following image shows the changes in the Define Relationship dialog box.
Нажмите кнопку ОК.Click OK.
Обратите внимание на значок «многие ко многим», который отражает связь между измерением Sales Reason и группой мер Internet Sales.Notice the many-to-many icon that represents the relationship between the Sales Reason dimension and the Internet Sales measure group.
3.1. Определение связей между таблицами
В созданной базе данных таблицы связаны
друг с другом. Для связанных таблиц
изменение некоторых свойств полей
становится невозможным. В связанную
таблицу нельзя добавить новое поле или
удалить существующее поле, но можно
добавить записи, а также изменить
значения отдельных полей. Если связь
установлена с таблицей Access, то доступна
также операция удаления записей.
После того как в БД созданы основные
таблицы, следует указать, как они связаны
друг с другом. Эти связи Access будет
использовать в запросах, формах и отчетах
при отборе информации из нескольких
таблиц. Задание связей между таблицами
позволяет также обеспечить защиту
целостности данных в БД. Окно связей
вызывается командой Схема данныхменюРабота с базой данных(см. рис.
3.1)
Рис. 3.1.
Связь между двумя таблицами, одна из
которых является главной, а другая
подчиненной, устанавливает соответствие
между записями этих таблиц. Для
установления связи нужно, чтобы в главной
таблице существовало поле или группа
полей, совокупность значений которых
однозначно определяла бы запись (была
уникальной). Обычно в качестве поля
(группы полей) связи выбирается ключевое
поле таблицы, но достаточно, чтобы оно
имело уникальный индекс. В соответствие
ему ставится поле (группа полей)
подчиненной таблицы, называемое внешним
ключом. Связь между записями устанавливается
по совпадению значений в полях связи.
!!! Поля связи могут иметь разные имена,
но они должны иметь один тип данных и
иметь однотипное содержимое.
Исключение из этого правила: поле типа
Счетчик можно связывать с числовым
полем, имеющим в свойстве Размер поля
значение «Длинное целое». Кроме того,
связываемые поля числового типа должны
иметь одинаковые значения свойства
Размер поля. Например, для получения
информации о студентах и полученных
ими оценках следует определить связь
по полям Код Студента в таблицах Студенты
и Сессия. Главной в этой связи будет
таблица Студенты, а подчиненной —
таблица Сессия. Каждой записи в главной
таблице — данным о студенте — соответствует
несколько (или ни одной) записей из
подчиненной таблицы — информация об
его оценках. Поле Код Студента в таблице
Сессия является внешним ключом.
Есть две таблицы..
Чтобы не придумывать ничего нового, возьмем уже указанный для того, чтобы разъяснить связь многие-ко-многим, пример про студенчество. Необходимо создать таблицу «Студенты» и таблицу «Преподаватели». Как в первой, так и во второй из них имеются первичные ключи. Для объединения экземпляров этих двух сущностей требуется также еще одна таблица, поля которой — ключи первой и второй таблиц.
Если рассмотреть иной пример: допустим, футболисты и команды ( с учетом того, что хотя бы один из футболистов играл за разные сборные, и каждая сборная имеет в своем составе одиннадцать игроков), суть построения связи не поменяется. Также будут нужны три таблицы. Из них «Футболисты» и «Команды» в качестве основных, и одна промежуточная.
Роль связи многие-ко-многим
Вообще отношения между сущностями в базах данных используются для целостности информации, в них хранящейся. Только хорошо спроектированная БД со всеми необходимыми связями гарантирует безопасность хранения, удобство работы и представляет собой структуру, устойчивую к внешним воздействиям и изменениям. Обычно, если база содержит данные о целой организации, компании или фирме, в ней содержится множество сущностей с различными экземплярами.
А это значит, что при составлении схемы данных (в «Аксесе») или написании скриптов (в «Оракл» или «ДиБиТу») будет присутствовать как минимум одна связь многие-ко-многим. Пример SQl, часто использующийся при обучении курса «Организации баз данных» — БД Кинга.
Типы связей в БД
начало серии
Многие ко многим (many-to-many)
Если у нас есть две таблицы А и В. А может относиться к В как один ко многим. Но и В может относиться к А, как один ко многим. А это значит, у них связь многие ко многим. |
многие ко многимCREATE DATABASE manytomany;
USE manytomany;
CREATE TABLE author(
id INT AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY KEY (id)
);
CREATE TABLE book(
id INT AUTO_INCREMENT,
name VARCHAR(100),
PRIMARY KEY (id)
);CREATE TABLE authors_x_books (
book_id INT NOT NULL,
author_id INT NOT NULL,
FOREIGN KEY (book_id) REFERENCES book(id),
FOREIGN KEY (author_id) REFERENCES author(id),
UNIQUE (book_id, author_id)
);
- NOT NULL означает, что поле всегда должно быть заполнено, и если мы этого не сделаем, то SQL скажет нам об этом;
- UNIQUE говорит о том, что поле или связка полей должны быть уникальна в таблице. Часто бывает так, что помимо уникального идентификатора уникальным для каждой записи должно быть еще одно поле. И UNIQUE отвечает как раз за это дело.
NSERT INTO book (name) VALUES («book1»);
INSERT INTO author (name) VALUES («author1»);INSERT INTO authors_x_books VALUES (1,1);
Роль связи многие-ко-многим
Вообще отношения между сущностями в базах данных используются для целостности информации, в них хранящейся. Только хорошо спроектированная БД со всеми необходимыми связями гарантирует безопасность хранения, удобство работы и представляет собой структуру, устойчивую к внешним воздействиям и изменениям. Обычно, если база содержит данные о целой организации, компании или фирме, в ней содержится множество сущностей с различными экземплярами.
А это значит, что при составлении схемы данных (в «Аксесе») или написании скриптов (в «Оракл» или «ДиБиТу») будет присутствовать как минимум одна связь многие-ко-многим. Пример SQl, часто использующийся при обучении курса «Организации баз данных» — БД Кинга.
Как определить связи между таблицами
При создании связи между таблицами связанные поля не должны иметь одни и те же имена. Однако связанные поля должны иметь один и тот же тип данных, если только поле первичного ключа не является полем 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.
-
-
Определите связь один-ко-многим между каждой основной и связующей таблицами.
Microsoft Access
Офисный программный продукт от «Майкрософт» известен на рынке ПО уже довольно продолжительное время. Он поставляется вместе с текстовым редактором Worfd, табличным процессором Excel и прочими, входящими в линейку «офиса». Можно Access (читается как «аксес», дословный перевод — «доступ») приобрести и отдельно от его «коллег». Рекомендуется купить, разумеется, лицензионный софт, но ни для кого не секрет, сколько пиратских репаков можно найти на просторах Сети, в виде обычных файлов или раздач торрентов. «Майкрософт Аксес» доступен даже в портативной сборке. Она, не требующая инсталляции и особых навыков работы с ПК, лучше всего подходит для выбора, если ПО не будет использоваться продолжительно и часто.
Из контекста ясно, что «Майкрософт Аксес» — это система управления базами данных. Причем одна из популярнейших. Она является реляционной, что значит, она основана на логической модели данных, которая в ходе своей работы обращается к теории множеств и логике первого порядка. Связь многие-ко-многим в Access (примеры будут даны в ходе объяснения) реализуется очень и очень просто. Рассмотрим ее.
Схема данных
Связи между таблицами в СУБД «Майкрософт Аксес» реализуются при помощи вкладки «Схема данных». На появившуюся панель добавляются все необходимые сущности (в нашем случае все три таблицы). Создание связи многие-ко-многим будет происходить при помощи двух отношений один-к-многих между главными («Студенты» и «Преподаватели») и промежуточной таблицы. Для этого необходимо соединить между собой соответствующие первичные ключи.
На иллюстрации выше показано, как выглядит вкладка «Схема данных» (Relathionships). Количество добавляемых на панель таблиц неограниченно. Расположение полностью регулируется пользователем.