Home Лаборатория
Назад Оглавление Вперед

5. Таблицы MS Access

5.1. Создание таблиц

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

Создание таблицы состоит в задании ее полей и назначении их свойств. Оно начинается с щелчка на кнопке "Создать" на вкладке "Таблицы"в окне базы данных, после чего откроется диалоговое окно, представленное на рисунке 5.1.1.

Создание новой таблицы

Как видно на рисунке 5.1.1, существует несколько способов создания новой таблицы.

  1. Импорт таблиц из другой базы, может быть, даже созданной в другой системе. В зависимости от обстоятельств из импортируемой таблицы может поступить структура полей, их названия и свойства, а также и содержимое базы. Если что-то импортируется не совсем так, как надо, необходимые правки (например, изменение свойств полей) вносят вручную.
  2. В тех случаях, когда речь идет о чужой таблице, которая находится на удаленном сервере и которую нельзя импортировать целиком, пользуются режимом Связь с таблицами. Это напоминает подключение к таблице для совместного использования ее данных.
  3. Использование Мастера таблиц. Мастер задает ряд вопросов и, руководствуясь полученными ответами, создает структуру таблицы автоматически. Несмотря на то что этот режим служит для упрощения работы, начинающим пользоваться им не рекомендуется, поскольку, не владея всей терминологией, легко запутаться в вопросах и ответах. Первые таблицы стоит попробовать создать вручную.
  4. Пункт Режим таблицы открывает заготовку, в которой все поля имеют формальные имена: Поле1, Поле2... и т. д. и один стандартный текстовый тип. Такую таблицу можно сразу наполнять информацией.
  5. Использование Конструктора. В этом режиме можно самостоятельно задать имена полей, выбрать их тип и настроить свойства, как показано на рисунке 5.1.2.
Изменение структуры таблицы в Конструкторе

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

5.2. Типы данных в MS Access. Их использование и размеры

Тип данных

Когда используется

Размер

Текстовый. Текст или комбинация текста и чисел, например, адрес, а также числа, не требующие вычислений, например, номера телефонов, номенклатурные номера или почтовый индекс. До 255 символов.Хранятся только введенные в поле символы, позиции, не использованные в текстовом поле, не хранятся. Для управления максимальным числом вводимых символов определите свойство "Размер поля" (FieldSize).
Поле MЕМО. Длинный текст или числа, например, пометки или описание. До 64000 символов.
Числовой. Числовые данные, используемые для математиче-ских вычислений, за исключением вычислений, включающих денежные операции (используйте денежный тип). Для определения числового типа определите свойство "Размер поля" (FieldSize). 1, 2, 4 или 8 байт. 16 байт только для кодов репликации.
Дата/время. Даты и время. 8 байт.
Денежный. Значения валют. Денежный тип используется для предотвращения округлений во время вычислений. Предполагает до 15 символов в целой части числа и 4 - в дробной. 8 байт.
Счетчик. Автоматическая вставка последовательных (отличающихся на 1) или случайных чисел при добавлении записи. 4 байта. 16 байт только для репли-кации кодов.
Логический. Поля, содержащие только одно или два значения, таких как "Да/Нет", "Истина/Ложь", "Включено/Выключено". 1 бит..
Объекты OLE. Объекты (например, документы Microsoft Word, электронные таблицы Microsoft Excel, рисунки, звуки и другие данные), созданные в других программах, использующих протокол OLE (Object Linking and Embedding). Объекты могут быть связанными или внедренными в таблицу MS Access. Для отображения объекта OLE в форме или отчете необходимо использовать присоединенную рамку объекта. До 1 гигабайта (ограничено объе-мом диска).
Мастер подстановок. Создает поле, позволяющее выбрать значение из другой таблицы или из списка значений, используя поле со списком. При выборе данного параметра в списке типов данных для их определения загружается мастер. Размер такой же, как и размер ключевого поля, которое также является мастером подстановок, обычно 4 байта.
Гиперссылки. Поле, в котором хранятся гиперссылки. Гиперссылка может быть либо типа путь UNC, либо URL. До 64000 символов.

Числовые, денежные и логические типы данных, а также Дата/Время, обеспечивают определенные ранее форматы отображения. Для выбора форматов для каждого типа данных определите свойство "Формат поля". Также можно создать пользовательский формат отображения для всех данных, кроме объектов OLE.

5.3. Создание связей между таблицами в MS Access

Для создания связей между таблицами СУБД Access имеет специальное диалоговое окно, которое называется "Схема данных" (см. Рисунок 5.3.1).

Окно "Схема данных"

* Примечание: Разумеется, одновременно несколько контекстных меню (контекстные меню вызываются нажатием правой кнопки "мыши") на экране отображаться не могут. На рисунке 5.3.1 несколько контестных меню представлены для наглядности.

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

Добавление таблиц в схему данных

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

Изменение свойств связи

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

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

  1. Связанное поле главной таблицы является ключевым полем или имеет уникальный индекс.
  2. Связанные поля имеют один тип данных. Здесь существует два исключения. Поле счетчика может быть связано с числовым полем, если в последнем в свойстве "Размер поля "(Field Size) указано значение "Длинное целое". А также поле счетчика можно связать с числовым полем, если и в обеих ячейках свойства "Размер поля" (Field Size) задано значение "Код репликации".
  3. Обе таблицы принадлежат одной базе данных MS Access. Если таблицы являются связанными, то они должны быть таблицами MS Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных стандартными средствами MS Access невозможно.

Установив целостность данных, необходимо следовать следующим правилам:

  1. Невозможно ввести в поле внешнего ключа связанной таблицы значение, не содержащееся в ключевом поле главной таблицы. Однако в поле внешнего ключа возможен ввод пустых значений, показывающих, что записи не являются связанными. Например, нельзя сохранить запись, регистрирующую заказ, сделанный несуществующим клиентом, но можно создать запись для заказа, который пока не отнесен ни к одному из клиентов, если ввести пустое значение в поле "Код Клиента".
  2. Не допускается удаление записи из главной таблицы, если существуют связанные с ней записи в подчиненной таблице. Например, невозможно удалить запись из таблицы "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к данному сотруднику.
  3. Невозможно изменить значение ключевого поля в главной таблице, если существуют записи, связанные с данной. Например, невозможно изменить код сотрудника в таблице "Сотрудники", если в таблице "Заказы" имеются заказы, относящиеся к этому сотруднику.

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

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

Назад Оглавление Вперед