- •Базы данных
- •Субд Microsoft Access
- •Разработка структуры базы данных
- •Создание базы данных
- •Связь между таблицами и целостность данных
- •Типы связей
- •Целостность данных
- •Создание базы данных «Мосты»
- •Построение инфологической модели
- •Связь данных
- •Запросы
- •Ввод новых и редактирование существующих названий стран, мостов, типов мостов.
- •Ввод и редактирование данных в таблице связи.
- •Вывод данных о том, в какой стране какие мосты находятся. Сгруппировать по типам мостов
- •Вывод полной информации о мостах. Сгруппировать по году постройки.
- •Кнопочная форма «Сведения о мостах»
-
Связь между таблицами и целостность данных
Между одноименными полями (имена могут отличаться, но типы данных нет, исключением является счетчик) двух таблиц в Access можно устанавливать связь. Это означает, что при формировании запроса к этой паре таблиц Access сможет объединить строки таблиц, в которых значения поля совпадают. В общем случае допускается связь по двум, трем и более одноименным полям (кроме того, Access позволяет вручную установить связь между таблицами по разноименным полям).
При создании серьезных баз данных придется позаботиться о дополнительных средствах контроля связанных данных, вводимых в разные таблицы. Механизм, который обеспечивает согласованность данных между двумя связанными таблицами, называется поддержка целостности данных.
После того, как таблицы созданы, можно задать их связанность. Для этого надо выбрать команду меню Сервис, Схема данных (либо нажать соответствующую кнопку на панели инструментов) и последовательно добавить те таблицы, между которыми будет определяться связь с помощью диалогового окна Добавление таблицы (рис. 2.16). Если окно Добавление таблицы неактивизировано, выполнить команду меню Связи, Добавить таблицу или нажать кнопку Добавить таблицу на панели инструментов.
-
Типы связей
В реляционной базе данных имеется несколько типов связей, определяющих связь таблиц через ключевые поля.
Наиболее часто используемым типом связи является тип связи (отношение) «один ко многим», при которой одной записи в одной таблице (называемой в данном случае главной) соответствует несколько записей в другой таблице (подчиненной).
При отношении «многие-ко-многим» одной записи в таблице A могут соответствовать несколько записей в таблице B, а одной записи в таблице B несколько записей в таблице A. Этот тип связи возможен только с помощью третьей (связующей) таблицы и по сути представляет собой два отношения «один-ко-многим» с третьей таблицей С. Например, отношение «многие-ко-многим» между таблицами «Заказы» (А) и «Товары» (В) определяется путем создания двух отношений «один-ко-многим» с таблицей «Заказано» (С). В одном заказе может быть много товаров, а каждый товар может появляться в не-скольких заказах.
Тип «один-к-одному» - обычно, когда необходимо данные об одном объекте разнести по разным таблицам.
-
Целостность данных
Для защиты от случайного удаления или изменения связанных данных
должны выполняться следующие условия:
- невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Возможен только ввод значений Null. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести значение Null в поле «Код_Клиента».
- не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице;
- невозможно изменить значение первичного ключа в главной таблице, если существуют записи, связанные с данной записью.
-
Создание базы данных «Мосты»
Таблица 2 – Исходные данные – сведения о мостах
Название |
Местонахождение |
Длина пролета, м |
Год постройки |
Тип |
Квебекский |
Канада |
549 |
1918 |
Стальные фермы |
Золотые ворота |
США |
1280 |
1937 |
Висячий |
Джорджа |
США |
518 |
1977 |
Арочный |
Босфорский |
Турция |
1074 |
1977 |
Висячий |
Макенакский |
США |
1158 |
1973 |
Висячий |
Осакаский |
Япония |
510 |
1976 |
Стальные фермы |
Хамберский |
Англия |
1410 |
1908 |
Висячий |
Глейдсвиллский |
Австралия |
305 |
1964 |
Арочный |
Верразано |
США |
1298 |
1964 |
Висячий |
- |
- |
- |
- |
Вантовый |