Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Создание взаимосвязанных и подчиненных таблиц

ПРАКТИЧЕСКАЯ РАБОТА №2. УСТАНОВКА СВЯЗЕЙ МЕЖДУ ТАБЛИЦАМИ.

 

Типы связей

Связи объектов могут быть разного типа: один-к-одному (1:1), один-ко-многим (1:М) и многие-ко-многим (М:N).

Связь один-к-одному (1:1) – самые простые связи, которые можно установить между таблицами. При таком типе связи каждой записи одной таблицы соответствует только одна запись другой таблицы, и наоборот. Связанные таким образом таблицы легко объединить в одну, содержащую столбцы всех объединяемых таблиц. Связи один-к-одному часто используются для разбиения очень широких базовых таблиц на несколько более узких. Разбиение большой таблицы на несколько маленьких позволит уменьшить время просмотра полей с наиболее важной информацией. Довольно часто необходимо управлять доступом к определенным частям таблиц, содержащих важную информацию. Примером здесь может служить база данных сотрудников: каждый имеет возможность получить доступ к таблице имен сотрудников, но только сотрудники отдела кадров могут просмотреть информацию об их зарплатах.

Связь один-ко-многим (1:М) – связи один-ко-многим связывают одну строку какой-либо таблицы с двумя или несколькими строками другой таблицы. Связь при этом устанавливается между первичным ключом основной таблицы и соответствующим внешним ключом связанной таблицы. Связи один-ко-многим больше всего распространены между таблицами. Например, связь один-ко-многим ставит все записи таблицы Порты в соответствие одной единственной записи таблицы Суда. С помощью этой связи можно отобрать и отобразить на экране все порты, в которые будет заходить выбранный корабль, - в данном случае отображены все записи таблицы Порты, относящиеся к кораблю.

Связь многие – к-одному. – это зеркальное отражение связи один-ко-многим.

Связь многие-ко-многим (M:N) – эту связь нельзя установить между двумя таблицами непосредственно. Она устанавливается после создания третьей таблицы, связанной с двумя основными таблицами отношением многие-к-одному.

Создание взаимосвязанных и подчиненных таблиц.

Особенностью предыдущих таблиц является то, что они являются абсолютно независимыми, т.е. их данные не пересекаются. Для создания взаимосвязанных таблиц используют связь один-ко-многим и постановочные поля. Для создания подчиненных таблиц используют связь один-ко-многим.

Примером одной из таких таблиц является вложенная таблица «Приход». Почему данная таблица является вложенной. Разберемся с этим.

Главной нашей целью является ввод данных о покупке товаров в определенный день у конкретного поставщика. Поставщик один, а товаров, которых он продает нашему предприятию может быть множество. Например, поставщик «МЧП БЕЛИНДА» продает товары каша гречневая, каша с курицей, каша с грибами. При этом другой поставщик «ЧП МАКРОС» продает только кашу гречневую и с курицей. И так далее.

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

Согласно условию, данную таблицу можно разбить на 2 - главную и ей подчиненную, т.к. на одну накладную можно выписывать продажу нескольких товаров. Поэтому делим на 2 таблицы: «Приход» и «Ввод_прихода». В таблице Приход мы будем указывать дату покупки и реквизиты Поставщика, а в таблице ввод_прихода уже будут перечислены все продаваемые предприятию товары.

Сразу видно образование связи между такими таблицами. Поставщик один, а товаров, которые он предоставляет – много. Поэтому, очевидно, что и связь между данными таблицами будет один-ко-многим.

Для того чтобы создать взаимосвязанные таблицы, необходимо выполнить следующую последовательность действий:

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

2. Данные в главную таблицу не вводить.

3. Создать подчиненную таблицу в режиме конструктора, установив обязательно ключевое поле.

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

5. Данные в подчиненную таблицу не вводить.

6. Установить связь один-ко-многим между главной и подчиненной таблицами.

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

Рис.9. Вид формы для ввода информации в главную и подчиненную ей таблицу приходная накладная.

 

Также в нашем случае таблица Приход связана с таблицей Поставщики. А таблица Ввод_прихода с таблицей Товары. Для этого тоже необходимо будет создавать соответствующие поля в таблицах и устанавливать потом между ними связи.

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

Поэтому для завершения работы с вложенной таблицей необходимо также:

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

8. Для улучшения ввода данных создать подчиненные поля.

Создание таблицы Приход.

1. Создайте новую таблицу в режиме конструктора.

2. В конструкторе введите поля, согласно рис.10.

Примечание!!! В таблице будут использоваться данные о поставщиках, поэтому обязательным полем будет Код_поставщика и тип его Числовой.

2. Закройте конструктор и сохраните таблицу под именем Приход.

3. Создадим связь между 2 таблицами Поставщики и Приход. Для этого откройте Схему данных (вверху на панели инструментов окна базы данных нажмите кнопку ).

Для того чтобы было удобно просматривать, создавать, удалять и модифицировать связи между таблицами, в Microsoft Access используется схема данных (Relationships) (рис. 11).

4. Добавьте все таблицы. Чтобы вновь добавить в эту схему таблицу или таблицу, у которой связи еще не установлены, необходимо:

· Щелкнуть правой кнопкой мыши на свободном пространстве схемы данных и из контекстного меню выбрать команду Добавить таблицу (Show table).

· В диалоговом окне Добавление таблицы (Show table) раскрыть вкладку Таблицы (Tables), выбрать из списка таблицу, и нажать кнопку Добавить (Add).

· Нажать кнопку Закрыть (Close), чтобы закрыть диалоговое окно Добавление таблицы (Show table).

5. Для создания связи между таблицами следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. Выберите соответственно поле Код_поставщика из таблицы Поставщик и нажмите левую клавишу мыши и перетащите поле на соответвующее поле Код_поставщика таблицы Приход, отпустите мышь. После этого появится диалоговое окно Изменение связей (Edit Relationships) (рис. 12).

· В диалоговом окне Изменение связей (Edit Relationships) можно выбрать из списков названия связанных таблиц и полей для связывания. Если отношение между таблицами "один-ко-многим", то слева из списка Таблица/запрос (Table/ Query) выбирается главная таблица и поле в этой таблице, а справа из списка Связанная таблица/запрос — подчиненная и соответственно поле в ней. Если отношение "один-к-одному", то порядок таблиц значения не имеет. Если вы устанавливали связь графически, то все поля в списках уже выбраны, и нужно только определить правила ссылочной целостности.

· Для этого устанавливают флажок Обеспечение целостности данных (Enforce Referential Integrity) и один или оба флажка: каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records) (см. следующий раздел).

6. Установите свойства связи: обеспечение целостности данных, каскадное обновление и удаление данных.

· При необходимости можно изменить параметры объединения, для чего требуется нажать кнопку Объединение (Join Type) и выбрать один из переключателей (рис. 13):

o 1. Объединение только тех записей, в которых связанные поля обеих таблиц совпадают;

o 2. Объединение ВСЕХ записей из <имя первой таблицы> и только тех записей из <имя второй таблицы>, в которых связанные поля совпадают;

o 3. Объединение ВСЕХ записей из <имя второй таблицы> и только тех записей из <имя первой таблицы >, в которых связанные поля совпадают.

По умолчанию устанавливается первый переключатель. Нажать кнопку ОК.

· После установки всех параметров связи необходимо нажать кнопку ОК в окне Параметры объединения (Edit Relationship).

Изменять параметры объединения не нужно.

7. Закройте схему данных и сохраните ее.

8. Откройте таблицу Приход в режиме конструктора.

9. Щелкните на поле Код_поставщика, преобразуем его в постановочное поле. Для этого:

· В свойствах поля Код_поставщика, перейдите на вкладку Подстановка.

· Выберите – Поле со списком.

· Нажмите на троеточие в свойстве Источник строк -

· У Вас откроется окно – MS ACCESS – Инструкция SQL: построитесь запросов. Это окно, с которым мы познакомимся более подробно на следующих занятиях. Его назначение – создание запросов. В нашем случае мы хотим создать раскрывающийся список с данными о поставщике, в котором будет вместо простого его номера отображаться информация о его названии, идентификационном коде, фамилии директора.

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

· В появившемся окне Добавить таблицу... выберите таблицу Поставщики и нажмите кнопку Добавить, а затем нажмите кнопку Закрыть этого же окна. В верхней части конструктора отобразится графический образ таблицы Поставщики.

· Необходимо добавить данные о поставщике (название, идентификационный код, фамилия директора). Однако, чтобы информация отображалась верно необходимо обязательно добавить ключевое поле Код_поставщика, который однозначно идентифицирует поставщика. И это поле, конечно, должно идти первым, так как именно по этому полю мы создаем связь между двумя таблицами.

· Чтобы добить поле Код_поставщика в запрос выделите его в таблице Поставщики и два раза щелкните левой клавишей мыши. При этом в нижней области конструктора отобразится поле Код_поставщика. Аналогично добавьте 3 поля – те поля, которые мы хотим увидеть в списке – название_поставщика, идентф_код, ФИО_директора. У вас должен получится запрос приведенный на рис.15.

· Закройте конструктор запроса, подтвердите сохранение.

· Вернувшись обратно в свойства Код_поставщика у вас в поле Источник строк будет отображен созданный нами sql-запрос, см. 16.

· Также дополнительно измените свойства подстановки:

· Число полей - 4

· Заглавия столбцов – Да.

· Ширина полей – 0;3;0;0. Почему мы устанавливаем нулевую ширину столбцов? Установив нулевую ширину первого столбца Код_поставщика мы скрываем ненужный для обычных пользователей сгенерированный код Поставщика. Обычному пользователю более информативно увидеть название поставщика. А почему мы скрываем информацию о коде и фамилии директора? Дело в том, что сейчас при создании таблицы Приход в подчиненном поле достаточно увидеть информацию о названии поставщика, а вот при создании в дальнейшем соответствующей формы мы воспользуемся скрытыми полями.

Таким образом, у поля Код_поставщика свойства подстановки будут иметь вид, см. рис.16.

 

Рис. 16. Создание подстановочного поля для установки связи между таблицами один-ко-многим. Рис. 17. Режим заполнения таблицы Приход и отображение результатов создания раскрывающегося списка поставщиков

 

· Перейдите на вкладку Общие и измените свойства поля: Подпись – Поставщик, и уберите Значение по умолчанию равное 0.

 

Таким образом, мы создали связь между таблицами Приход и Поставщики по ключевому полю Код_поставщика. Затем изменили свойства поля Код_поставщика в таблице Приход так, чтобы вместо обычных номеров поставщиков отображались его названия. Для этого в таблице Приход мы изменили поле Код_поставщика на подстановочное поле. И теперь в режиме таблицы мы сможем увидеть вместо номеров поставщиков их названия.

10. Закройте конструктор и откройте таблицу, см. рис.17. Теперь, если вы сделали все правильно, то в поле Поставщик будет отображаться список с перечнем всех ваших Поставщиков.

11. Заполнять таблицу не нужно, так как не создана к ней подчиненная «Ввод_прихода».



<== предыдущая лекция | следующая лекция ==>
I. Исследование влияния размеров сетки на результаты моделирования | Блок-схема алгоритма программы
Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 2214 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Начинайте делать все, что вы можете сделать – и даже то, о чем можете хотя бы мечтать. В смелости гений, сила и магия. © Иоганн Вольфганг Гете
==> читать все изречения...

2361 - | 2150 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.