Поля базы данных не просто определяют структуру базы — они еще определяют групповые свойства данных, записываемых в ячейки, принадлежащие каждому из полей. Поле может быть задано уникальным (т.е. совпадения не допускаются). Для задания ключевых полей, которые служат для связи таблиц в базе данных, выбирают обязательно уникальные поля.
Основные свойства полей:
· Имя поля — определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц).
· Тип поля — определяет тип данных, которые могут содержаться в данном поле.
· Размер поля — определяет предельную длину (в символах) данных, которые могут размещаться в данном поле. При попытке ввести лишние символы появится предупреждение, а поле будет заблокировано, пока число символов не уменьшится до установленного предела.
· Формат поля — определяет способ форматирования данных в ячейках, принадлежащих полю, управляет отображением данных на экране и при печати, но никак не влияет на хранение данных.
· Маска ввода — определяет форму, в которой вводятся и хранятся данные в поле (средство автоматизации ввода данных). В маске 99/99/00;0 каждая «9» обозначает необязательную цифру, а «0» - обязательную. В режиме таблицы эта маска отобразится «_/_/_». То есть дата должна быть введена в формате 10/04/07, но сразу же после нажатия клавиши Enter содержимое поля будет преобразовано к виду, определенному в свойстве Формат.
· Подпись — определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля).
· Значение по умолчанию — то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных).
· Условие на значение — ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты).
· Сообщение об ошибке — текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выполняется автоматически, если задано свойство Условие на значение).
· Обязательное поле — свойство, определяющее обязательность заполнения данного поля при наполнении базы.
· Пустые строки — свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым).
· Индексированное поле — если поле обладает этим свойством, все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, это позволяет автоматически исключить дублирование данных.
Поскольку в разных полях могут содержаться данные разного типа, то и свойства у полей могут различаться в зависимости от типа данных. Список вышеуказанных свойств полей относится в основном к полям текстового типа. Поля других типов могут иметь или не иметь эти свойства, но могут добавлять к ним и свои. Например, для данных, представляющих действительные числа, важным свойством является количество знаков после десятичной запятой. С другой стороны, для полей, используемых для хранения рисунков, звукозаписей, видеоклипов и других объектов OLE, большинство вышеуказанных свойств не имеют смысла.
Типы данных, используемые в БД Access:
· Текстовый — тип данных, используемый для хранения обычного неформатированного текста ограниченного размера (до 255 символов).
· Поле Мемо — специальный тип данных для хранения больших объемов текста (до 65 535 символов). Физически текст не хранится в поле. Он хранится в другом месте базы данных, а в поле хранится указатель на него, но для пользователя такое разделение заметно не всегда.
· Числовой — тип данных используется для хранения чисел, как целых, так и дробных.
· Дата/время — тип данных для хранения календарных дат и времени в разных форматах;
· Денежный — тип данных для хранения денежных сумм. Теоретически, для их записи можно было бы пользоваться и полями числового типа, но для денежных сумм есть некоторые особенности (например, связанные с правилами округления), которые делают более удобным использование специального типа данных, а не настройку числового типа.
· Счетчик — специальный тип данных для уникальных натуральных чисел с автоматическим наращиванием на единицу, автоматически заполняется Access, используется в основном для порядковой нумерации записей. Если ключевое поле имеет тип данных Счетчик, уникальность ключа обеспечивается автоматически.
· Логический — тип для хранения логических данных (могут принимать только одно из двух значений - Да или Нет).
· Поле объекта OLE — специальный тип данных, предназначенный для хранения объектов OLE (созданных в других приложениях и связанных с БД), например мультимедийных. Реально, конечно, такие объекты в таблице не хранятся. Как и в случае полей МЕМО, они хранятся в другом месте внутренней структуры файла базы данных, а в таблице хранятся только указатели на них (иначе работа с таблицами была бы чрезвычайно замедленной).
· Гиперссылка — специальное поле для хранения гиперссылок, например адресов Web-объектов Интернета. При щелчке на ссылке автоматически происходит запуск браузера и воспроизведение объекта в его окне.
· Мастер подстановок — это не специальный тип данных. Это объект, настройкой которого можно автоматизировать ввод данных в поле так, чтобы не вводить их вручную, а выбирать из раскрывающегося списка.
Приемы работы с таблицами базы данных
С таблицами можно работать обычными приемами управления с помощью мыши - щелчком левой клавиши делая нужные выделения, а щелчком правой клавиши вызывая контекстное меню для выделенного объекта.
Рис. 11. Возможные действия со столбцами и строками таблицы
В нижней части окна таблицы находится строка состояния, которая в Access называется полем номера записи. Это поле содержит кнопки перехода, с помощью которых можно эффективно перемещаться по таблице. Каждая запись имеет слева кнопку (маркер записи). Щелчок на этом маркере выделяет всю запись и готовит ее к копированию, перемещению, удалению. Щелчок правой кнопкой на выделенной записи открывает контекстное меню для операций с записью.
Маркер, находящийся в левом верхнем углу таблицы, — это маркер таблицы. Щелчок на нем выделяет всю таблицу, а правый щелчок открывает контекстное меню для операций с таблицей в целом.
Поля базы данных представлены в таблице столбцами. Каждый столбец имеет заголовок, в котором записано имя поля или то значение, которое задано в свойстве Подпись. Если содержимое поля не полностью умещается в ячейке таблицы, столбец можно расширить. При наведении указателя мыши на границу между столбцами указатель меняет форму. Теперь границу можно перемещать методом перетаскивания, а двойной щелчок, выполненный в этот момент, автоматически устанавливает ширину столбца равной длине самого длинного значения в данном поле.
Щелчок на заголовке столбца выделяет весь столбец, а щелчок правой кнопкой на выделенном столбце открывает контекстное меню. В нем пункты, позволяющие отсортировать записи по данному полю, вставить новый столбец, скрыть столбец и прочее. Скрытый столбец не исчезает из базы, а только перестает отображаться на экране. Чтобы снова его отобразить, надо навести указатель на границу между столбцами в том месте, где был скрыт столбец, и выполнить двойной щелчок. Скрытый столбец опять станет видимым.
Операции над столбцами и строками никак не влияют на хранящиеся в них данные и можно менять размеры строк и столбцов, прятать, перемещать и фиксировать столбцы.
Создание связей между таблицами
Основные преимущества систем управления базами данных реализуются при работе не с отдельными таблицами, а с группами взаимосвязанных таблиц. Для создания связей между таблицами СУБД Access имеет специальное диалоговое окно Схема данных. Межтабличные связи увязывают две таблицы с помощью общего поля, которое имеется в обеих таблицах. Окно Схема данных открывают щелчком по одноименной кнопке на панели инструментов или командой Сервис - Схема данных.
Существуют три типа связей:
· - один-к-одному – каждая запись одной таблицы не может быть связана более чем с одной записью второй таблицы. Этот тип применяется в том случае, когда таблица содержит много полей;
· - один-ко-многим – одна запись в первой таблице может быть связана со многими записями второй таблицы. Самый распространенный тип;
· многие-ко-многим – каждая запись первой таблицы связана со многими записями второй таблицы и наоборот (например, один студент имеет несколько преподавателей, а у каждого преподавателя несколько студентов). Реляционные базы данных не позволяют создавать связи типа многие-ко-многим напрямую. Их реализуют через вспомогательные таблицы.
Рис. 12. Окно Схема данных для БД со связанными таблицами
Если ранее никаких связей между таблицами базы не было, то при открытии окна Схема данных одновременно открывается окно Добавить таблицу, в котором можно выбрать нужные таблицы для включения в структуру межтабличных связей. Если связи между таблицами уже были заданы, то для введения в схему данных новой таблицы надо щелкнуть правой кнопкой мыши на схеме данных и в контекстном меню выбрать пункт Добавить таблицу.
Введя в схему данных все таблицы, которые надо связать, можно приступать к созданию связей между полями таблиц. Эти связи можно создавать, изменять, удалять.
Рис. 13. Диалоговое окно Связи
Связь между полями устанавливают путем перетаскивания имени поля из одной в таблицы в другую на соответствующее ему связанное поле. После перетаскивания открывается диалоговое окно Связи, в котором можно задать свойства образующейся связи.
Включение флажка Обеспечение целостности данных позволяет защититься от случаев удаления записей из одной таблицы, при которых связанные с ними данные других таблиц останутся без связи. Чтобы условие целостности могло существовать, поле основной таблицы должно обязательно быть ключевым и оба поля должны иметь одинаковый тип.
Флажки Каскадное обновление связанных полей и Каскадное удаление связанных записей обеспечивают одновременное обновление или удаление данных во всех подчиненных таблицах при их изменении в главной таблице.
Связь двух таблиц выполняется подключением первичного ключа главной таблицы (находящейся на стороне отношения «один») к такому же полю ключа связанной таблицы (находящейся на стороне отношения «многие»). Поле внешнего ключа в связанной таблице должно иметь тот же тип данных, что и первичный ключ в родительской таблице, но с одним исключением. Если первичный ключ данной таблицы имеет тип данных Счетчик, то поле внешнего ключа в связанной таблице должно иметь тип данных Числовой.
Если все связи установлены правильно, то в окне главной таблицы слева от записи появляется знак +. Щелчок мыши по этому знаку в главной таблице откроет подчиненную таблицу, содержащую дополнительные сведения, относящиеся к данной записи. Знак + преобразуется в знак -, щелчком по нему можно закрыть подчиненную таблицу.
Рис. 14 Окно главной таблицы с открытым окном подчиненной таблицы