Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД2.doc
Скачиваний:
4
Добавлен:
29.08.2019
Размер:
91.14 Кб
Скачать

2.5.2. Предварительный просмотр, печать и сохранение отчета

Если после предварительного просмотра отчет оказался удовлетворительным, то можно его напечатать, в противном случае, нужно щелкнуть на кнопке Закрыть окна предварительного просмотра для возврата в окно конструктора.

2.5.3. Автоотчет

Создать отчет без вопросов мастера можно с помощью кнопки Новый объект | Автоотчет. Другой метод - использование команды Вставка | Отчет и выбор одного из двух вариантов автоотчета в появившемся диалоговом окне. Отчет появится сразу без дополнительных усилий.

Для создания автоотчета нужно выполнить:

  • щелкнуть на карточке Таблицы окна БД ;

  • выбрать нужную таблицу;

  • щелкнуть на кнопке Новый объект панели инструментов и выбрать Автоотчет.

2.6. Связи между таблицами

Все предыдущие возможности были продемонстрированы на примере одной таблицы. Теперь рассмотрим реляционную модель управления БД.

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

В основе создания таблицы лежит процесс нормализации, опирающийся на следующие 4 правила:

  1. Каждое поле таблицы должно быть уникальным.

  2. Использование первичных ключей. В хорошо спроектированной БД каждая запись в каждой таблице является уникальной (т.е. нет двух одинаковых строк). Это обеспечивается уникальным идентификатором или первичным ключом, который запрещает ввод повторяющейся информации. Первичный ключ состоит из одного или нескольких полей (например, фамилия, имя, отчество или код).

  3. Функциональная зависимость. Во-первых, в таблице не должно быть данных, которые не относятся к объекту, определяемому первичным ключом. Во-вторых, информация в таблице должна полностью описывать объект.

  4. Независимость полей. Таблицы должны быть спроектированы таким образом, чтобы имелась возможность изменения значения любого поля (но не первичного ключа), и это не должно повлечь за собой необходимости изменения другого поля (например, изменить фамилию и название фирмы не меняя списка товаров и т.д.).

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

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

Каждая таблица должна содержать первичный ключ - одно или несколько полей, содержимое которых уникально для каждой записи. В теории БД это называется целостностью данных. Первичные ключи создаются для уникального идентификатора каждой записи.

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

  • поле первичного ключа является индексом, который значительно ускоряет выполнение запросов, поиск и сортировку;

  • при вводе новых записей Access проследит, чтобы в поле первичного ключа было введено допустимое значение для текущей записи;

  • при добавлении новых записей Access проверяет, не дублируются ли поля первичного ключа;

  • по умолчанию Access сортирует данные по первичному ключу.

Совет!

Поля первичного ключа должны быть как можно более короткими, так как их размеры влияют на скорость выполнения операций в БД.

Связи между таблицами можно разбить на четыре типа:

  • один-к-одному;

  • один-ко-многим;

  • многие-к-одному;

  • многие-ко-многим.

Связь один-к-одному - пример: кадровая таблица - система бухучета.

Связь один-к-многим - пример: один клиент - несколько заказов.

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

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

Связи между таблицами очень важны, так как они указывают Access, как находить и размещать информацию из полей двух и более таблиц. Программе необходимо знать, что нужно искать: одну запись в таблице или несколько записей на основе связи.

В Access можно установить не только связи между таблицами, но и правила, которые помогут поддерживать корректность связей между таблицами. Например, нельзя удалять запись о клиенте, если есть записи о его заказах в связанной таблице. Пример с удалением счета клиента в банке. Такие правила называются целостностью данных. Эти правила сохраняют в неприкосновенности связи между таблицами в СУБД. Целостность данных предохраняет данные от изменений, которые нарушают связи между таблицами.

Целостность данных функционирует строго на основе ключевых полей таблицы. Если изменение ключа нарушает связь, значит оно нарушает целостность данных. Можно организовать таблицы так, чтобы целостность данных поддерживалась автоматически. Из двух связанных таблиц одну обычно называют родительской, другую - дочерней. Целостность данных гарантирует отсутствие сирот.

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

Связи устанавливаются в окне БД. Для их установки нужно щелкнуть на кнопке Схема данных или выполнить команду Сервис | Схема данных. С появившимся окном Схема данных связана специальная панель инструментов. Изначально окно не содержит таблиц, но если оно открывается впервые, то автоматически появляется диалоговое окно Добавление таблицы.

Добавлять таблицы можно следующими способами:

  • с помощью кнопки Добавить окна Схема данных;

  • с помощью кнопки Добавить таблицу панели инструментов;

  • с помощью команды Связи | Показать таблицу;

  • с помощью команды Показать таблицу контекстного меню, вызываемого в окне Схема данных.

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

После установки связи и проверки таблиц и полей связи следует включить поддержку целостности данных с помощью опции Обеспечение целостности данных. Затем в диалоговом окне Связи нужно щелкнуть на кнопке Создать. Окно закроется и Access нарисует линию, соединяющую таблицы.

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

После включения опции Обеспечение целостности данных в диалоговом окне Связи Access позволит включить опцию Каскадное обновление связанных полей. Эта опция дает возможность изменять содержимое поля связи - ключевое поле в первичной таблице. Если пользователь изменит содержимое ключевого поля в первичной таблице, Access проверит корректность значения в этом поле - в первичной таблице не должно быть одинаковых записей - и изменит значения соответствующих полей во всех связанных таблицах. Таким образом, изменение значений ключевого поля в первичной таблице распространяется на все связанные таблицы. Если эта опция не включена, изменить значение ключевого поля в первичной таблице невозможно.

Опция Каскадное удаление связанных записей дает возможность удалять записи в связанных таблицах при удалении соответствующей записи в первичной таблице. Если не включить этой опции, Access не позволит удалить запись, связанную с записями в другой таблице. В этом случае необходимо сначала удалить все связанные записи в связанных таблицах, а затем - запись в первичной таблице.

Сохранение связей выполняется стандартным способом. Связи между таблицами изображаются тонкими линиями. Связи между таблицами с обеспечением целостности данных изображаются более толстыми линиями с символами "1" и "" на концах.

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]