Смекни!
smekni.com

Создание базы данных в среде Microsoft Access 2002 (стр. 4 из 7)

8. Щелкните на кнопке Создать, чтобы новая связь появилась в окне Схема данных.

9. Теперь щелкните на кнопке закрытия окна Схема данных и подтвердите сохранение изменений.

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

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

Способность Access автоматически поддерживать целостность данных исключительно важна. Немногие из настольных реляционных СУБД умеют это делать. Сохранение целостности данных позволяет избежать создания в связанной таблице записей-сирот, не имеющих связи с главной таблицей. Например, если названиям организаций в таблице Клиент присвоены коды от 1 до 9, запись таблицы Арендная плата со значением 10 будет считаться сиротой, она не относится ни к одному из существующих сотрудников. Однако когда в таблицу Клиент будет добавлена новая запись с кодом 10, запись-сирота автоматически окажется связанной с ней, в результате чего в новой анкете не появится явно неправильная информация.

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

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

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

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

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

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

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

Изменение полей и межтабличных связей

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

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

Изменение порядка полей таблицы

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

1. Откройте таблицу в режиме таблицы. Изменение порядка следования полей — это единственное изменение структуры таблицы, которое можно выполнить в этом режиме.

2. Щелкните на кнопке с именем того поля, которое нужно переместить. При этом столбец поля окажется выделенным целиком.

3. Укажите курсором мыши на заголовок поля и нажмите левую кнопку мыши — вид курсора изменится, указывая на то, что выполняется операция перетаскивания объекта. На новую позицию левого края поля указывает при перетаскивании толстая вертикальная черта.

4. Переместите вертикальную линию в нужное положение поля и отпустите левую кнопку мыши. Поле будет перемещено.

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

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

Применение бланка запроса

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

Что такое запрос

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

По мере развития компьютерной техники совершенствовалось и средство пользовательского интерфейса, называемое графическим бланком запроса. Графический бланк запроса содержит отображение имен полей одной или нескольких таблиц базы данных в виде заголовков столбцов. Чтобы создать запрос, пользователи могут вводить в эти столбцы составные компоненты, или выражения. Поскольку в те времена, когда разрабатывался графический бланк запроса, редко использовались терминалы, которые могли работать в подлинном графическом режиме, применялся стандартный текстовый режим, позволяющий отобразить 25 строк по 80 символов. Применение графического бланка запроса принесло успех приложению ParadoxRDBMS фирмы AnsaSoftware на рынке настольных баз данных RDBMS(система управления рв-щюнной базой данных) для персональных компьютеров, на котором в то время преобладали приложения dBASEII и dBASEIII.

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

Создание первого реального запроса

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

В данной главе рассматривается применение бланка запроса.

Чтобы создать простой запрос:

1. Щелкните на кнопке со стрелкой возле кнопки Новый объект панели инструментов База данных и выберите в раскрывающемся списке команду Запрос. Можно также щелкнуть во вкладке Запросы окна базы данных, затем — на кнопке Создать. Откроется диалоговое окно Новый запрос. Здесь можно выбрать самостоятельное создание запроса (в режиме Конструктор) либо применить один из мастеров создания специализированных запросов. Выделите пункт Конструктор и щелкните на кнопке ОК, чтобы отобразить окно запроса в режиме конструктора.

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

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