Лекция № 3. Создание таблиц в приложении Microsoft Access

advertisement
Лекция № 3. Создание таблиц
в приложении Microsoft Access
1. Создание базы данных
В приложении Microsoft Access существует достаточно широкий набор шаблонов, с
помощью которых можно создавать базы данных, но мы будем создавать пустую базу данных для
того, чтобы пройти все этапы разработки БД.
В левой части окна приложения Microsoft Access находится область переходов, в которой
отображаются объекты, существующие в открытой базе данных. Вид остальной части окна
зависит от выбранного объекта и режима его просмотра. Режим просмотра можно изменить с
помощью кнопки Режим, которая находится в группе Режимы на вкладке Главная. Обычно для
объекта существует режим конструирования и режим просмотра результатов.
Для таблиц нас интересуют два режима просмотра: режим таблицы и режим
конструктора. В режиме таблицы можно вводить собственно данные для базы данных. Режим
конструктора позволяет добавлять и удалять поля таблицы, а также задавать их свойства.
В новой базе данных создаётся одна таблица. Новую таблицу можно добавить в БД с
помощью кнопки Таблица, которая находится в группе Таблицы на вкладке Создание. В
приложении Microsoft Access существует несколько способов создания таблицы. Можно
импортировать данные, можно добавлять поля в режиме таблицы, можно воспользоваться
конструктором. Последний способ самый грамотный, т.к. он позволяет правильно задать типы
полей, указать ключи и индексы таблицы, задать другие свойства полей.
2. Типы полей










В приложении Microsoft Access существуют следующие типы полей:
текстовый;
MEMO;
числовой;
денежный;
дата/время;
логический;
гиперссылка;
вложение;
объект OLE;
счётчик.
2.1.
Текстовое поле
Текстовые поля предназначены для хранения текстовой информации. Максимальная
длина текстового поля составляет 255 символов. Это значение устанавливается для поля по
умолчанию. Однако, 255 символов – это достаточно много, для большинства данных бывает
достаточно меньшего количества символов. Текстового поля длиной 50 символов должно
хватить для ввода фамилий, адресов, географических названий, адресов интернета и
электронной почты (хотя самый длинный адрес электронной почты принадлежит некому Питеру
Крейгу и содержит 345 символов – contact-admin-hello-webmaster-info-services-peter-crazy-but-ohso-ubber-cool-english-alphabet-loverer-abcdefghijklmnopqrstuvwxyz@please-try-to.send-me-an-emailif-you-can-possibly-begin-to-remember-this-coz.this-is-the-longest-email-address-known-to-man-butto-be-honest.this-is-such-a-stupidly-long-sub-domain-it-could-go-on-forever.pacraig.com). Номера телефонов, индексы, номера кредитных и других карт обычно содержат строго определённое
количество символов, которое и нужно использовать для задания длины поля.
2.2.
Поле MEMO
Поле MEMO предназначено для хранения больших текстовых данных. Длина поля может
достигать 64 Кбайт. Однако поле такого типа не может быть ключевым или индексированным.
При работе с приложением Microsoft Access 2010 для поля MEMO можно задать свойство Только
13
добавление. При этом приложение Microsoft Access будет сохранять историю изменений значения
поля MEMO, которую затем можно будет просмотреть.
2.3.
Числовое поле
Числовое поле применяется для хранения любой числовой информации, кроме денежных
сумм, для которых существует формат Денежный. Числовое поле имеет свойство Размер поля,
которое имеет несколько фиксированных значений:
 байт – используется для хранения целых чисел в диапазоне от 0 до 255, занимает 1 байт;
 целое – используется для хранения целых чисел в диапазоне от -32768 до 32767, занимает
2 байта;
 длинное целое – используется для хранения целых чисел в диапазоне от -2147483648 до
2147483647, занимает 4 байта, используется по умолчанию;
 одинарное с плавающей точкой – используется для хранения вещественных чисел,
содержащих до 38 нулей и 7 десятичных разрядов точности, занимает 4 байта;
 двойное с плавающей точкой – используется для хранения вещественных чисел, содержащих
до 308 нулей и 15 десятичных разрядов точности, занимает 8 байт;
 действительное – используется для хранения вещественных чисел, содержащих до 28 нулей и
28 десятичных разрядов точности, занимает 8 байт.
Кроме размера числового поля можно также выбрать формат представления числа:
 обычный – числа отображаются без какого-либо форматирования, нули справа
отбрасываются;
 денежный и евро – число содержит знак валюты1, два знака после запятой и разделители
групп разрядов;
 фиксированный – содержит фиксированное число знаков после запятой, которое задаётся в
соответствующем свойстве поля;
 с разделителями разрядов – аналогичен фиксированному, но число также содержит
разделители групп разрядов;
 процентный – дробные числа отображаются как проценты;
 экспоненциальный – отображает числа в экспоненциальной (научной) форме, идеальной для
отображения чисел с широким диапазоном изменения.
2.4.
Денежное поле
Денежное поле – это вариант числового поля, предназначенный для финансовых расчётов.
Денежные поля поддерживают оптимизацию, препятствующую возникновению ошибок
округлений в очень маленьких дробях. Денежное поле может хранить число с 15 знаками до
запятой и 4 знаками после запятой.
2.5.
Поле Дата/Время
Поле Дата/Время хранит информацию о моменте времени с точностью до секунд.
Значение хранится в виде числа, что позволяет производить арифметические операции над
полями данного типа. Для поля Дата/Время можно использовать несколько форматов2:
 полный формат даты – 19.06.2007 17:34:25;
 длинный формат даты – 19 июня 2007г.;
 средний формат даты – 19-июн-2007;
 краткий формат даты – 19.06.2007;
 длинный формат времени – 17:34:25;
 средний формат времени – 5:34;
 краткий формат времени – 17:34.
2.6.
Логическое поле
Логическое поле, как понятно из его названия, хранит логические значения истина и
ложь. Для отображения значения этого поля можно использовать флажок или форматы,
состоящие из пар значений, – предопределённых (Истина/Ложь, Да/Нет, Вкл/Выкл) или
создаваемых пользователем.
1
2
Разделитель разрядов и знак валюты зависят от настроек Windows.
Форматы даты и времени также зависят от настроек Windows.
14
2.7.
Поле Гиперссылка
Поле Гиперссылка предназначено для хранения ссылок на web-страницы, файлы и адреса
электронной почты. Для гиперссылки можно задавать текст, который будет отображаться в
ячейке таблиц, адрес, по которому будет осуществлять переход при щелчке мышью по ссылке, и
текст, который будет отображаться при наведении мыши на ссылку.
2.8.
Поле Вложение
Это новый тип поля, появившийся в приложении Microsoft Access 2007, который позволяет
вставлять файлы в запись таблицы базы данных. Поле Вложение хорошо подходит для вставки в
запись изображений, звуковых файлов, документов из других приложений. Однако, если файл
нужно будет часто редактировать, это может быть не очень удобно, т.к. придётся сначала
запускать приложение Microsoft Access, искать имя файла и затем открывать другое приложение
для редактирования файла.
2.9.
Поле объекта OLE
Это поле также позволяет вкладывать в запись данные различных типов, такие как
картинки и звуковые файлы, однако, в настоящее время для этих целей рекомендуется
использовать вложения.
2.10.
Поле Счётчик
Счётчик – это специальный тип данных, предназначенный для автоматического создания
уникальных идентификаторов записей в таблице. Как мы говорили, любая таблица должна иметь
ключевое поле или набор ключевых полей, однозначно идентифицирующих каждую запись. Если
среди полей нельзя выделить подобные, то необходимо вводить дополнительное поле, в
качестве которого как раз и используется счётчик. Каждая таблица может иметь только один
счётчик. Значение этого поля нельзя изменить вручную – оно генерируется приложением
Microsoft Access, которое гарантирует уникальность этого значения. Даже если вы вставите
запись, которой будет присвоен номер 1, а затем удалите эту запись, значение 1 повторно не
будет использоваться. Свойство поля Новые значения определяет, как генерируются значения
счётчика – последовательно или случайным образом.
3. Конструирование таблицы
При первом переходе в режим конструирования таблицы приложение Microsoft Access
запрашивает имя новой таблицы. В режиме конструктора отображаются не данные таблицы, а
поля и их свойства. Среднюю часть экрана занимает таблица Имя поля – Тип данных – Описание, а
нижнюю часть – таблица с другими свойствами поля.
 Размер поля. Значение этого свойства зависит от типа поля.
 Формат поля. Значение также зависит от типа поля.
 Число десятичных знаков. Позволяет задавать количество знаков после запятой для
вещественных чисел.
 Подпись. Определяет заголовок столбца таблицы в режиме таблицы. При отсутствии значения
этого свойства в качестве заголовка используется имя поля.
 Значение по умолчанию. Задаёт значение, автоматически добавляемое в новую запись.
 Обязательное поле. Требует обязательного ввода данные в поле.
 Пустые строки. Разрешает задавать пустые строки в качестве значения для текстового поля.
 Выравнивание текста. Задаёт способ выравнивания текста в поле таблицы.
Самая большая беда баз данных – это неверные данные. Базы данных предназначены для
хранения информации, и её некорректность делает бессмысленным само существование базы
данных. Для борьбы с ошибками ввода информации существует набор средств, к которым
относятся:
 использование полей определённого типа, что ограничивает возможные вводимые значения;
 требование обязательного заполнения поля (свойство Обязательное поле);
 ограничение ввода пустых строк (свойство Пустые строки);
 задание значения по умолчанию (свойство Значение по умолчанию), что упрощает ввод
данных в том случае, когда большинство записей таблицы содержат одно и то же значение;
 маски ввода, форматирующие текст с помощью образцов;
15



условия, накладываемые на значения полей, что также ограничивает вводимые значения;
подстановки, ограничивающие возможные значения поля списком заранее заданных
вариантов;
индексирование, которое позволяет, в том числе, сделать невозможным ввод совпадающих
значений в поле.
4. Использование масок
Некоторые данные, которые выглядят как числовые, например, номера телефонов или
индексы, на самом деле не являются числами и должны храниться в текстовом формате. При
этом желательно затребовать ввода определённого количества определённых символов.
Для текстовых полей и полей Дата/Время можно использовать так называемые маски,
которые позволяют определить количество и набор символов, которые можно вводить, задать
символы разделители, а также некоторые преобразования. По сравнению с обычным текстом
маски обладают рядом достоинств.
 Маски управляют элементом ввода, указывая, сколько каких символов надо ввести в поле.
 Маски помогают понять смысл данных. При вводе телефонов, номер карт и т.п. обычно
вставляются разделители, которые группируют части номеров.
 Маски предупреждают ошибки. Например, при вводе телефонного номера можно затребовать
ввод только цифр.
 Маски устраняют путаницу. Например, существуют разные способы ввести одну и ту же дату.
Маски подсказывают порядок и набор составляющие, добавляют требуемые разделители.
Проще всего использовать встроенные маски. Для этого надо нажать кнопку с тремя
точками, которая появляется в правой части поля для ввода свойства Маска ввода, и выбрать
необходимую маску из предложенных. К сожалению, изначально предлагаются маски только для
ввода даты и времени. Остальные маски нужно создавать самостоятельно. Для этого в диалоге
выбора маски ввода надо нажать кнопку Список и заполнить поля появившегося диалога
настройки масок ввода. Для создания масок используются следующие специальные символы.
Символ
0
9
#
L
?
A
a
&
C
<
>
\
Описание
Обязательная цифра
Необязательная цифра
Необязательная цифра, знак плюс или минус
Обязательная буква
Необязательная буква
Обязательная буква или цифра
Необязательная буква или цифра
Обязательный любой символ
Необязательный любой символ
Преобразует все следующие за ним символы в строчные
Преобразует все следующие за ним символы в прописные
Указывает на то, что следующий символ надо интерпретировать как литерал
Мастер создания маски также спрашивает, какой символ следует использовать в качестве
заполнителя, и нужно ли хранить знаки-разделители маски вместе с данными.
5. Условия на значения полей
Среди свойств поля есть свойства Условие на значения и Сообщение об ошибке. Эти свойства
позволяют задать условие, которое должно выполняться для значения этого поля всех записей
таблицы, и сообщение, которое выдаются в том случае, когда пользователь вводит значение, не
удовлетворяющее заданному условию. Условие можно ввести вручную или использовать
построитель выражений, который вызывается нажатием кнопки с тремя точками, появляющейся
в правой части поле для ввода свойства Условие на значение.
Приведём примеры условий на значения полей.
16
Пример условия
<100
<>0
Between 0 and 100
<#30.01.2007#
>#30.01.2007 17:30:00#
>Date()
<Now()
>1000 Or <-1000
<Date and >#01.01.2000#
Описание
Значение должно быть меньше 100
Значение не должно быть равно 0
Значение должно быть в пределах от 0 до 100 включительно
Дата до 30 января 2007 г.
Дата после 30 января 2007 г. или 30 января 2007 г. после 17:30
Дата после сегодняшней
Сегодня до настоящего время или любая дата в прошлом
Число большее 1000 или меньшее -1000
Дата, меньшая сегодняшней, но большая 1 января 2000 г.
Условия на значения применяются к одному полю. Если надо сравнить значения
нескольких полей, то необходимо налагать условия на значения в свойствах таблицы. В режиме
конструктора на вкладке Работа с таблицами | Конструктор в группе Показать или скрыть
появляется кнопка Страница свойств, которая отображает страницу свойств таблицы. Среди
этих свойств также есть свойства Условие на значения и Сообщение об ошибке, но в свойствах
таблицы в условии можно использовать несколько полей. Например, можно задать условие
[DateOrdered] < [DateShipped].
6. Подстановки
Разные пользователи могут вводить одно и то же значение по-разному. Для того, чтобы
избежать проблемы, возникающей в таком случае, можно потребовать от пользователя выбирать
значения из заданного списка. Этот список может быть просто списком констант, а может
выбираться из другой таблицы.
Для создания подстановки в режиме конструктора таблицы в качестве типа поля надо
выбрать пункт Мастер подстановок. Мастер подстановок, конечно же, не является типом
данных, но он позволяет создать оба варианта подстановок. Если выбрать пункт Будет введён
фиксированный набор значений, мастер подстановок предложит ввести этот набор значений. Если
выбрать пункт Объект «поле подстановки» получит значения из другой таблицы или другого
запроса, то необходимо будет выбрать таблицу или запрос (из уже существующих) и поле
таблицы или запроса для подстановки.
7. Ключи и индексы
Каждая таблица базы данных должна иметь ключ. Для задания ключевых полей
используется кнопка Ключевое поле, которая находится в группе Сервис на вкладке Работа с
таблицами | Конструктор, которая появляется в режиме конструктора. Если ключ должен
состоять из значений нескольких полей, необходимо выделить все поля, входящие в ключ, и
после этого нажать кнопку Ключевое поле.
Как мы говорили, для ускорения поиска в базе данных используются индексы. Для
создания индексированного поля можно установить значение Да в свойство поля
Индексированное поле. При этом возможны два варианта – Да (совпадения не допускаются) и Да
(совпадения допускаются). В первом случае, кроме собственно создания индекса СУБД будет
предотвращать попытки ввести в поле повторяющиеся значения. Во втором случае поле сможет
содержать повторяющиеся значения. Например, для ускорения поиска мы можем создать индекс
для поля Фамилия, но понятно, что фамилии у разных людей могут быть одинаковыми, поэтому
нельзя запрещать ввод повторяющихся значений.
Кроме простых индексов можно создавать составные индексы, т.е. индексы, включающие
несколько полей (до 10). Для этого необходимо нажать кнопку Индексы, которая находится в
группе Показать или скрыть на вкладке Работа с таблицами | Конструктор. В поле Индекс надо
ввести имя нового индекса, в поле Имя поля надо задать имена полей, входящих в индекс. Каждое
поле задаётся в отдельной строке. Для второго и последующего полей, входящих в индекс,
название индекса не указывается. Можно также задать порядок сортировки значений полей
индекса – по возрастанию или по убыванию. Для индекса можно также установить значение Да в
свойстве Уникальный индекс. Это будет означать, что сочетание значений полей индекса должно
быть уникальным в таблице. Значение Да для свойства Пропуск пустых полей указывает, что
данный индекс исключает наличие пустых значений.
17
Как было сказано, индексы ускоряют поиск данных, но, с другой стороны, они замедляют
добавление новых данных в таблицу, т.к. при добавлении записи необходимо также обновить
индекс. Если для таблицы создано много индексов, процесс обновления может оказаться
длительным. Поэтому не следует создавать индексы для всех полей таблицы. Индексы, как и всё
в базе данных, должны быть продуманы. Кроме того, при создании индекса необходимо понять,
действительно ли значения данного поля должны быть уникальны или они могут повторяться
по объективным причинам.
8. Создание связей между таблицами
Для создания связей между таблицами используется окно Схема данных. Для открытия
этого окна надо нажать одноимённую кнопку, которая находится в группе Отношения на
вкладке Работа с базами данных или в группе Связи на вкладке Работа с таблицами | Таблица
или в группе Связи на вкладке Работа с таблицами | Конструктор. В окне Схема данных
прежде всего надо добавить таблицы базы данных, между которыми будут устанавливаться
связи. Для этого надо щёлкнуть правой кнопкой мыши в любом свободном месте окна и из
появившегося меню выбрать пункт Добавить таблицу…. Далее нужно выбрать таблицу для
добавления и нажать кнопку Добавить. Эти действия повторяются для всех таблиц, которые
нужно добавить в схему данных. Каждую таблицу следует добавлять только один раз.
Для создания связи необходимо выделить в таблице одно или несколько полей и
перетащить их на другую таблицу. В появившемся диалоговом окне нужно отредактировать
имена связываемых полей. Если вы аккуратно перетащили поле одной таблицы именно на то
поле в другой таблице, с которым должна быть создана связь, то редактировать ничего не
придётся. Тип отношения приложение Microsoft Access определяет автоматически. В диалоговом
окне изменения связей желательно установить флажок Обеспечение целостности данных.
В принципе, создавать связи можно между любыми полями таблиц. Но обеспечение
целостности данных будет осуществляться только при соблюдении определённых условия. В
одной таблице для связи нужно использовать ключевое поле (или набор полей, являющихся
ключом), а в другой таблице поля для связи должны быть индексированными. Если в индексе
допускаются совпадения, то получается связь «один ко многим». Если же в индексе не
допускаются совпадения, то получается связь «один к одному».
9. Сортировка и фильтрация
В некоторых случаях легче составить представление о большом объёме данных, если их
упорядочить и отфильтровать. При просмотре данных на листе данных для этого можно
использовать инструменты сортировки и фильтрации, собранные в группе Сортировка и
фильтр на вкладке Главная. Порядок сортировки и фильтры можно также задавать с помощью
выпадающего меню, которое появляется при нажатии стрелочки, расположенной справа от
заголовков столбцов таблицы.
Для сортировки установите курсор на нужный столбец и используйте кнопки По
возрастанию и По убыванию, а для снятия сортировки – кнопку Удалить сортировку.
Для фильтрации записей нужно задать условие, которому должны удовлетворять записи
для того, чтобы они отображались на листе данных.
Обычный фильтр позволяет выбрать те значения, которые вы хотите отобразить, и те,
которые нужно скрыть. Для применения обычного фильтра выберите столбец и щёлкните
мышью по стрелке у правого края заголовка столбца. Вы увидите список всех значений данного
столбца. Первоначально флажки, расположенные у этих значений, установлены. Сбросьте флажок
у тех записей, которые вы хотите скрыть.
Обычные фильтры можно применять в нескольких столбцах. Порядок применения
фильтров не важен, поскольку все фильтры кумулятивные, т.е. вы увидите только те записи,
которые удовлетворяют условиям всех установленных фильтров.
Расширенный фильтр позволяет отбирать данные по заданному условию.
10. Отображение подчинённых таблиц
Если вы просматриваете родительскую таблицу на листе данных, то можете найти все
связанные дочерне записи, щёлкнув левой кнопкой мыши квадратик со знаком +, расположенный
у левого края строки.
18
Download