Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Иллюстрированный самоучитель по Access 2002.doc
Скачиваний:
129
Добавлен:
16.11.2019
Размер:
2.91 Mб
Скачать

Вставка, удаление и переименование полей таблицы

Рассмотрим теперь, каким образом можно переименовывать, вставлять и удалять поля в режиме Конструктора таблиц.

Чтобы переименовать поле в режиме Конструктора таблиц, необходимо:

  1. Щелкнуть левой кнопкой мыши в столбце Имя поля (Field Name) на имени поля, подлежащего переименованию.

  2. Ввести новое имя поля или отредактировать старое имя.

  3. Нажать клавишу <Enter> или переместить указатель текущей записи на любую другую запись.

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

  • нажать кнопку Добавить строки (Insert Rows) на панели инструментов Конструктор таблиц (Table Design);

  • выбрать в главном меню команду Вставка (Insert) и из раскрывающегося меню выбрать команду Строки (Rows);

  • щелкнуть правой кнопкой мыши на выделенной записи и из контекстного меню выбрать команду Добавить строки (Insert Rows).

Затем в полученную пустую строку нужно ввести имя нового поля, тип и описание.

Замечание

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

Чтобы удалить поле в режиме Конструктора таблиц, выделите строку (строки) описания поля (полей), которую необходимо удалить. Затем используйте любой из трех вариантов удаления выделенной строки (строк):

  • выбрать из главного меню команду Правка (Edit) и из раскрывающегося меню — команду Удалить (Delete) или Удалить строки (Delete Rows);

  • нажать на клавишу <Delete>;

  • щелкнуть правой кнопкой мыши на выделенной строке (строках) и из контекстного меню выбрать команду Удалить строки (Delete Rows).

Замечание

При удалении полей, в которых содержатся или могут содержаться данные, Microsoft Access потребует подтверждения на удаление данного поля.

Переименование, добавление и удаление полей возможны не только в режиме Конструктора, но и в режиме Таблицы. Чтобы переименовать поле в режиме Таблицы, следует:

  1. Выделить столбец, который необходимо переименовать. Для этого нужно щелкнуть левой кнопкой мыши на имени поля (столбца).

  2. Щелкнуть правой кнопкой мыши на выделенном столбце и из контекстного меню выбрать команду Переименовать столбец (Rename Column) или выбрать из главного меню команду Формат (Format) и из раскрывающегося меню — команду Переименовать столбец (Rename Column).

  3. В поле заголовка столбца ввести новое имя поля и нажать клавишу <Enter> или щелкнуть левой кнопкой мыши в любом другом месте таблицы.

Замечание

Для быстрого переименования поля в режиме Таблицы можно дважды щелкнуть левой кнопкой мыши в поле заголовка столбца, ввести новое имя поля и нажать клавишу <Enter>.

Чтобы добавить поле в таблицу в режиме Таблицы, необходимо:

  1. Выделить столбец, перед которым требуется вставить новое поле.

  2. Щелкнуть правой кнопкой мыши на выделенном столбце и из контекстного меню выбрать команду Добавить столбец (Insert Column) или из главного меню выбрать команду Вставка (Insert) и из раскрывающегося меню — команду Столбец (Column).

Перед выделенным столбцом появится новый столбец, имя которого будет состоять из слова Поле (Field) и порядкового номера — Поле! (Fieldl), Поле2 (Field2) и т. д. — а тип будет иметь значение Текстовый (Text) со значениями свойств, заданными по умолчанию.

Чтобы удалить поле из таблицы в режиме Таблицы, необходимо:

  1. Выделить столбец, который нужно удалить.

  2. Щелкнуть правой кнопкой мыши на выделенном столбце и из контекстного меню выбрать команду Удалить столбец (Delete Column) или выбрать из главного меню команду Правка (Edit) и из раскрывающегося меню — команду Удалить столбец (Delete Column).

Определение ключевых полей

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

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

Для создания ключевого поля типа Счетчик необходимо в режиме Конструктора таблиц:

  1. Включить в таблицу поле счетчика.

  2. Задать для него автоматическое увеличение на 1.

  3. Указать это поле в качестве ключевого путем нажатия на кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

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

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

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

  1. Открыть таблицу в режиме Конструктора.

  2. Выделить поля, которые необходимо определить как ключевые.

  3. Нажать кнопку Ключевое поле (Primary Key) на панели инструментов Конструктор таблиц (Table Design).

Замечание

Для составного ключа существенным может оказаться порядок образующих ключ полей. Сортировка записей осуществляется в соответствии с порядком ключевых полей в окне Конструктора таблицы. Если необходимо указать другой порядок сортировки без изменения порядка ключевых полей, то сначала нужно определить ключ, а затем нажать кнопку Индексы (Indexes) на панели инструментов Конструктор таблиц (Table Design). Затем в появившемся окне Индексы (Indexes) нужно указать другой порядок полей для индекса с именем Ключевое поле (Primary Key).

Рассмотрим в качестве примера применения составного ключа таблицу "Заказано" (OrderDetails) базы данных (Northwind) (рис. 2.23).

В данном случае в качестве составного ключа используются поля "Код заказа" (OrderlD) и "КодТовара" (ProductID), т. к. ни одно из этих полей в отдельности не гарантирует уникальность записи. При этом в таблице выводится не код товара, а наименование товара, т. к. поле "КодТовара" (ProductID) данной таблицы содержит подстановку из таблицы "Товары" (Products), а значения полей "КодТовара" (ProductID) этих таблиц связаны отношением "один-ко-многим" (одной записи таблицы "Товары" (Products) может соответствовать несколько записей таблицы "Заказано" (OrderDetails)). Оба поля могут содержать повторяющиеся значения. Так, один заказ может включать в себя несколько товаров, а в разные заказы могут включаться одинаковые товары. В то же время сочетание полей "КодЗаказа" (OrderlD) и "КодТовара" (ProductID) однозначно определяет каждую запись таблицы "Заказы" (OrderDetails).

Чтобы изменить ключ, необходимо:

  1. Открыть таблицу в режиме Конструктора.

  2. Выбрать имеющиеся ключевые поля.

  3. Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должны исчезнуть значки ключевого поля.

  4. Выбрать поле, которое необходимо сделать ключевым.

  5. Нажать на кнопку Ключевое поле (Primary Key). При этом в области выделения должен появиться значок ключевого поля.

Рис. 2.23. Пример таблицы с использованием составного ключа

Чтобы удалить ключ, необходимо:

  1. Открыть таблицу в режиме Конструктора.

  2. Выбрать имеющееся ключевое поле (ключевые поля).

  3. Нажать на кнопку Ключевое поле (Primary Key), при этом кнопка должна принять положение Выкл., а из области выделения должен исчезнуть значок (значки) ключевого поля.

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

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

Однако применение индексов приносит не только преимущества, но и недостатки. Главным среди них является тот, что при добавлении и удалении записей или при обновлении значений в индексном столбце требуется обновлять индекс, что при большом количестве индексов в таблице может замедлять работу. Поэтому индексы обычно рекомендуется создавать только для тех столбцов таблицы, по которым наиболее часто выполняется поиск записей. Во многих СУБД (например, FoxPro) индексы хранятся в отдельных файлах и являются предметом заботы разработчиков, т. к. при нарушении индекса поиск данных выполняется некорректно. В Microsoft Access индексы хранятся в том же файле базы данных, что и таблицы и другие объекты Access. Индексировать можно любые поля, кроме МЕМО-полей, полей типа Гиперссылка и объектов OLE.

Чтобы создать простой индекс, необходимо:

  1. Открыть таблицу в режиме Конструктора.

  2. Выбрать поле, для которого требуется создать индекс.

  3. Открыть вкладку Общие (General) и выбрать для свойства Индексированное поле (Indexed) значение Да (Допускаются совпадения) (Yes (Duplicates OK)) или Да (Совпадения не допускаются) (Yes (No duplicates)) (рис. 2.24).

Рис. 2.24. Установка индекса для поля

Ключевое поле таблицы автоматически индексируется и свойству Индексированное поле (Indexed) присваивается значение Да (Совпадения не допускаются) (Yes (No duplicates)).

Составной индекс создается в специальном диалоговом окне. Чтобы создать составной индекс, необходимо:

  1. Открыть таблицу в режиме Конструктора.

  2. На панели инструментов Конструктор таблиц (Table Design) нажать кнопку Индексы (Indexes.)

  3. В первой пустой строке (рис. 2.25) поля Индекс (Index Name) ввести имя индекса.

Рис. 2.25. Диалоговое окно Индексы

  1. В поле Имя поля (Field Name) нажать на стрелку и выбрать первое поле, для которого необходимо создать индекс.

  2. В следующей строке поля Имя поля (Field Name) указать второе индексируемое поле. (Для данной строки поле Индекс (Index Name) должно оставаться пустым.) Повторите эту операцию для всех полей, которые необходимо включить в индекс. В индексе может быть использовано до 10 полей

Замечание

По умолчанию устанавливается порядок сортировки По возрастанию (Ascending). Для сортировки данных полей по убыванию в поле Порядок сортировки (Sort Order) в окне индексов укажите значение По убыванию (Descending).

Диалоговое окно Индексы (Indexes) используется также для просмотра, изменения и удаления существующих индексов. Изменить можно:

  • название индекса в поле Индекс (Index Name);

  • поле таблицы, соответствующее данному индексу, выбрав новое поле из списка в поле Имя поля (Field Name);

  • порядок сортировки в поле Порядок сортировки (Sort Order); П свойства данного индекса в нижней части окна (рис. 2.26):

    • Ключевое поле (Primary) определяет, является ли индексированное поле ключевым;

    • Уникальный индекс (Unique) определяет, должно ли быть каждое значение в этом поле уникальным;

    • Пропуск пустых полей (Ignore Nulls) определяет, включаются или не включаются в индекс записи с пустым (Null) значением данного поля.

Рис. 2.26. Диалоговое окно индексов для таблицы "Клиенты"

Удаление индекса выполняется точно так же, как удаление поля в Конструкторе таблиц. Просто выделите строку с нужным индексом и нажмите клавишу <Delete> или воспользуйтесь контекстным меню.

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

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

Рис. 2.27. Пример схемы данных

Чтобы открыть схему данных, необходимо выполнить команду Сервис, Схема данных (Tools, Relationships). По умолчанию схема будет содержать все таблицы со связями. Поэтому сюда будет включена, например, наша новая таблица "Список рассылки оповещений", которая была связана с таблицей "Клиенты" (Customers) при помощи Мастера подстановок (см. разд. "Использование Мастера подстановок" выше в данной главе).

Чтобы убрать какую-либо таблицу из схемы данных, необходимо щелкнуть правой кнопкой мыши на любом месте этой таблицы и из контекстного меню выбрать команду Скрыть таблицу (Hide table). Например, на рис. 2.27 таблица "Список рассылки оповещений" скрыта.

Замечание

Удаление таблицы из схемы данных не означает удаление ее из базы данных, просто она не присутствует в схеме.

Чтобы вновь добавить в эту схему свернутую таблицу ("Список рассылки оповещений") или таблицу, у которой связи еще не установлены, необходимо:

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

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

Рис. 2.28. Диалоговое окно Добавление таблицы

Замечание

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

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

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

Замечание

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

Если нужная связь автоматически не создана, ее можно создать двумя путями. Первый путь — графический. Следует выбрать в главной таблице поле для связи, нажать левую кнопку мыши и перетащить поле во вторую таблицу. Отпустить левую кнопку мыши над тем полем подчиненной таблицы, с которым устанавливается связь. После этого появится диалоговое окно Изменение связей (Edit Relationships) (рис. 2.29).

Альтернативный вариант — выбрать команду Связи, Изменить связь (Relationships, Edit Relationships) из главного меню Access. Эта команда появляется в меню, когда открыто окно Схема данных (Relationships).

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

Рис. 2.29. Окно Изменение связей

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

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

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

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

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

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

Рис. 2.30. Диалоговое окно Параметры объединения

  1. Когда создается новая связь, можно также воспользоваться кнопкой Новое (Create New) и в окне Создание (Create New) ввести имена связываемых таблиц и имена полей, используемых для связи. Нажать кнопку ОК.

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

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

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

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

  • связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем поле в свойстве Размер поля (FieldSize) указано значение Длинное целое (Long Integer), или в обоих полях свойство Размер поля (FieldSize) имеет значение Код репликации (Replication ID);

  • обе таблицы принадлежат одной базе данных Microsoft Access.

Замечание

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

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

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

  • Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице.

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

Чтобы эти правила контролировались для конкретной связи, при ее создании следует установить флажок Обеспечение целостности данных (Enforce Referential Integrity). Тогда любая попытка выполнить действие, нарушающее одно из перечисленных выше правил, приведет к выводу на экран предупреждения, а само действие выполнено не будет.

Чтобы преодолеть ограничения на удаление или изменение связанных записей, сохраняя при этом целостность данных, следует установить флажки каскадное обновление связанных полей (Cascade Update Related Fields) и каскадное удаление связанных записей (Cascade Delete Related Records). Если установлен флажок каскадное обновление связанных полей (Cascade Update Related Fields), то при изменении ключевого поля главной таблицы автоматически будут изменены и соответствующие значения поля связанных записей. Если установлен флажок каскадное удаление связанных записей (Cascade Delete Related Records), то при удалении записи в главной таблице удаляются и все связанные записи в подчиненной таблице.