Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
учебник по информатике.doc
Скачиваний:
401
Добавлен:
10.02.2016
Размер:
18.35 Mб
Скачать

6.4. Общие принципы создания базы данных в ms Access

Создание БД начинается с ее проектирования. Основная цель проектирования БД – сокращение избыточности хранимых данных. Как следствие: экономия объема используемой памяти, уменьшение затрат на многократные операции обновления, хранения избыточных копий и устранение возможности возникновения противоречий из – за хранения в разных местах данных об одном и том же объекте.

Создатель базы имеет право создавать в ней новые объекты, задавать их структуру, менять свойства полей, устанавливать необходимые связи. Он работает со структурой базы и имеет полный доступ к базе.

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

В процессе проектирования необходимо представлять возможные взаимосвязи объектов MS Access, показанные на рисунке 6.10.

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

Событие – любое изменение состояния объекта MS Access. Например, событием является: открытие/закрытие формы, ввод новой строки в форму, изменение содержимого текущей записи или элемента управления (объекта формы или отчета, который может содержать данные). Для обработки события создают макрос или процедуру VBА.

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

Определение назначения проектируемой БД.

На этом этапе проектирования определяют, какие данные должна содержать БД. Составляется список всех задач, которые должны решаться этим приложением, в том числе в перспек­тиве.

Для того, чтобы приложение работало логично и удобно, лучше всего объединить основные задачи в тематические группы и затем упорядочить задачи каждой группы так, чтобы они располагались в порядке их выполнения.

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

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

Определение вида и количества таблиц в базе данных

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

При разработке таблиц рекомендуется руководствоваться следующими принципами:

  • данные не должны дублироваться в таблице или между таблицами;

  • данные, хранящиеся только в одной таблице, обновляются только в этой таблице;

  • каждая таблица должна содержать информацию только на одну тему.

Определение необходимого числа полей в таблице

Поле – это элемент таблицы, содержащий определенную информацию, например, фамилию. Термин «поле» применяется как для столбца, так и для ячейки таблицы.

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

В MS Access существуют различные типы данных. При составлении схемы полей для таблицы необходимо учитывать следующее:

  • каждое поле должно быть связано с темой таблицы;

  • таблица должна содержать все необходимые данные;

  • данные следует разбить на наименьшие логические единицы (например, поля «Имя» и «Фамилия», а не общее поле «Имя»).

Для полей типов «Числовой», «Дата/время», «Денежный» и «Логический» необходимо определить формат представления (табл. 6.1).

Формат вывода можно выбрать в ячейке свойства Формат поля. Можно создать собственные форматы вывода для всех типов данных, кроме объектов OLE.

Выбор типа ключевого поля

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

Таблица 6.1

Тип данных

Применение

Размер

Текстовый

Текст или комбинация текста и чисел, например, адрес, а также числа, не требующие вычислений, например, номера телефонов, номенклатурные номера или почтовый индекс

до 255 символов

Поле МЕМО

Длинный текст или числа, например, комментарии или описание. Поля МЕМО (memory) не могут быть индексированы или отсортированы

до 64 000 символов

Числовой

Числовые данные, используемые для математических вычислений, за исключением вычислений, включающих денежные операции

1, 2, 4 или

8 байт

Дата/Время

Хранение значений дат и времени. Все изменения, внесенные в форматы дат и времени в окне Язык и стандарты Панели управления ОС Windows, будут автоматически отражены в полях типа Дата/Время.

8 байт

В MS Access можно выделить три типа ключевых полей: счетчик, простой ключ и составной ключ.

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

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

В случаях, когда невозможно гарантировать уникальность значений каждого поля, существует возможность создать ключ, состоящий из нескольких полей. Если определить подходящий набор полей для составного ключа сложно, следует добавить поле счетчика и сделать его ключевым. Например, не рекомендуется определять ключ по полям «Имена» и «Фамилии», поскольку нельзя исключить повторения этой пары значений для разных людей.

Определение связей между таблицами

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

Связь между таблицами устанавливает отношения между совпадающими значениями в ключевых полях, обычно между полями, имеющими одинаковые имена в обеих таблицах. В большинстве случаев с ключевым полем одной таблицы связывается внешний ключ другой таблицы. Внешний ключ состоит из одного или нескольких полей в таблице, содержащих ссылку на поле или поля первичного ключа в другой таблице. Содержимое поля внешнего ключа должно совпадать с содержимым ключевого поля, хотя имена полей могут при этом отличаться. Для определения связей между таблицами целесообразно изучить связи в существующей БД с хорошей структурой (например, в учебной БД «Борей», рис. 6.12).

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

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

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

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

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

При физическом связывании полей двух таблиц создается связь одного из указанных типов. Она информирует о том, как найти и отобразить данные полей двух или более таблиц. Из связи определяется, сколько записей надо просматривать в таблице – одну или несколько. Например, связь между таблицей счетов и таблицей покупок – это связь с отношением «один – ко – многим». Здесь всегда одна запись таблицы счетов связана, по крайней мере, с одной записью таблицы покупок. Тем не менее, в таблице покупок может быть много связанных записей. Таким образом, определяется, как найти конкретную запись в таблице счетов и соответствующие записи в таблице покупок (одну или несколько) с тем же номером счета.

Связь с отношением «один – к – одному»

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

Связь с отношением «один – ко – многим»

Связь с отношением «один – ко – многим»– это связь между двумя таблицами, при которой одиночная запись одной таблицы может иметь множественные вхождения в другой. Такую связь иногда называют родительско – дочерней. Таблица счетов и таблица покупок – пример такой связи.

Связь с отношением «многие – к – одному»

Связи с отношением «один – ко – многим»и«многие – к – одному»схожи. Все зависит от того, с какого конца связи смотреть. Например, в каждом счете может быть несколько покупок. И, наоборот, много покупок может быть в одном счете.

Усовершенствование структуры базы данных

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

Ввод данных и создание других объектов базы данных

Если на этапе усовершенствования БД структуры таблиц отвечают поставленным требованиям и исправлены все выявленные ошибки, можно ввести данные в таблицы. Затем создаются все необходимые запросы, формы, отчеты, страницы доступа к данным, макросы и модули.

Использование средств анализа MS Access

В MS Access существует два инструмента, помогающих в усовершенствовании структуры БД: мастер анализа таблиц и анализатор быстродействия.

Мастер анализа таблиц(рис. 6.13) позволяет проанализировать структуру таблицы, предложить подходящие новые структуры и связи, а также разделить таблицу на новые связанные таблицы, если это имеет смысл.

Анализатор быстродействия(рис. 6.14) исследует всю БД, дает рекомендации по ее улучшению.