Диго С.М. Базы данных проектирование и использование (1084447), страница 36
Текст из файла (страница 36)
Рис. 5.13. Выбор колонки-источника для поля подстановки
В появившемся далее окне (рис. 5.14) можно не только задать ширину столбцов (позиционировавшись на границу столбца и перетащив ее в нужном направлении), но и определить, сколько столбцов будет выводиться на экран при вводе значения в это поле: если оставить знак « » в позиции «Скрыть ключевой столбец», то в нашем примере будет выводиться только поле «Наименование_кафедры_полное». Если эту «галочку» убрать, то будут выводиться оба поля: «Код_кафедры» и «Наименование_кафедры_полное».
Рис. 5.14. Создание поля подстановки.
Задание ширины столбцов
Определение ключа таблицы
Каждая реляционная таблица по определению имеет ключ. Access позволяет задавать ключ при описании таблицы, но также разрешает и отказаться от этой возможности. По ключу система автоматически выполняет индексирование, а также проверяет уникальность значений ключа при вводе новых записей или их корректировке.
Если в качестве ключа выбрать автоматически задаваемый системой код (т.е. поле типа «счетчик»), то можно это поле первоначально не описывать, а подтвердить необходимость его создания при завершении описания таблицы (рис. 5.15). Access создаст это поле автоматически. Если после этого посмотреть описание структуры таблицы, то оно будет выглядеть так, как показано на рис. 5.16.
Рис. 5.15. Задание ключа таблицы в виде поля типа «счетчик»
при закрытии таблицы после описания ее полей
Рис. 5.16. Описание структуры таблицы с автоматически введенным системой ключевым полем «Код»
Access при создании ключа автоматически всегда называет это поле «Код». Для удобства дальнейшей работы переименуем ключевое поле в «Код_сотрудника» (рис. 5.17).
Рис. 5.17. Описание структуры таблицы с измененным ключевым полем
Если определять ключ самостоятельно, то это можно сделать несколькими путями: позиционироваться на соответствующее поле и щелкнуть по кнопке Ключевое поле ( ) либо выбрать позицию меню Правка/Ключевое поле, либо воспользоваться правой кнопкой мыши для вызова контекстного меню, предварительно позиционировавшись на то поле, которое определяется как ключевое.
Свойства полей
В нижней части экрана описания таблицы отображается список свойств выбранного поля. Перечень свойств будет зависеть от выбранного типа поля (табл. 5.2).
Набор допустимых свойств вызывает некоторое удивление. Наверное, не всеми возможностями надо пользоваться. Так, обычно не рекомендуется проводить индексирование по логическому полю. Назначение поля MEMO - хранение длинных текстов. Как и зачем задавать для них условия на значение - не совсем понятно. То же (но несколько в меньшей степени) относится и к формату поля данного типа, а также формату поля Счетчик.
Поясним некоторые свойства полей.
Свойство «Индексированное поле» определяет, нужно ли создавать индекс по этому полю. Индекс ускоряет выполнение запросов, в которых используются индексированные поля, и операции сортировки и группировки.
Таблица 5.2
Свойство | Тип поля | ||||||
Текстовый | Логический | MEMO | Числовой | Дата/ время | Денежный | Счетчик | |
Размер поля | + | + | + | + | |||
Число десятичных знаков | + | + | |||||
Формат поля | + | + | + | + | + | + | + |
Маска ввода | + | + | + | + | |||
Подпись поля | + | + | + | + | + | + | + |
Значение по умолчанию | + | + | + | + | + | + | |
Условие на значение | + | + | + | + | + | + | |
Сообщение об ошибке | + | + | + | + | + | + | |
Обязательное поле | + | + | + | + | + | + | |
Пустые строки | + | + | + | ||||
Индексированное поле | + | + | + | + | + | + | |
Новые значения |
Значения свойства «Индексированное поле» приведены ниже.
Значение Описание
Нет (Значение по умолчанию). Индекс не создается
Да (допускаются В индексе допускаются повторяющиеся значения
совпадения)
Да (совпадения не Повторяющиеся значения в индексе не допускаютдопускаются) ся
В рассматриваемом примере в связи с тем, что по полю «ФИО» часто осуществляются поиск и упорядочение информации, желательно по нему провести индексацию. Поскольку среди сотрудников возможны однофамильцы, то должны быть разрешены совпадения значений индексируемого поля (рис. 5.18). Указанное по умолчанию значение свойства «Обязательное значение» «Нет» должно быть изменено на «Да».
Не допускается создание индексов для полей MEMO, гиперссылок и объектов OLE.
Рис. 5.18. Индексирование. Задание обязательности значений
Ключевое поле «Код», созданное системой автоматически, имеет тип «Счетчик» (см. рис. 5.16). Только для полей этого типа имеется свойство «Новые значения». Оно определяет способ увеличения значения поля счетчика при добавлении в таблицу новых записей.
Свойство «Новые значения» может иметь следующие значения:
-
последовательные - значение поля счетчика увеличивается на 1 в каждой новой записи;
-
случайные - поле счетчика в новой записи получает случайное значение типа Long Integer.
Следует отметить, что многие СУБД для полей такого типа позволяют использовать произвольный шаг приращения.
Свойство «Пустые строки» определяет, допускается ли ввод в данное поле пустых строк (строк, не содержащих символов). Значения этого свойства приведены ниже.
Значение Описание
Да Пустые строки являются допустимыми значениями
Нет Пустые строки не являются допустимыми значениями
При задании значения «Да» для свойств «Пустые строки» и «Обязательное поле» Microsoft Access различает несуществующие данные (сохраняются в виде пустых строк) и данные, которые существуют, но не известны (сохраняются в виде пустых (Null) значений).
Для различия пустых строк от значений Null можно использовать свойство «Формат поля» (Format). При этом вместо пустых строк можно выводить строку «Отсутствуют данные».
В нашем примере значение поля «ФИО» должно присутствовать всегда и не может содержать пустых строк.
Сохранение описания таблицы
После того как описание таблицы завершено, его нужно сохранить. Этого можно достигнуть разными путями: выбрать меню Файл/Сохранить или Файл/Закрыть (после чего на вопрос «Сохранить изменения макета или структуры?» ответить «Да») или щелкнуть по кнопке Вид инструментального меню и выбрать Режим таблицы и на сообщение «Сначала необходимо сохранить таблицу. Сделать это сейчас?» ответить «Да» (этот способ надо использовать, если вы хотите сразу после описания структуры таблицы вводить данные в эту таблицу). В появившемся после указанных действий окне следует ввести имя созданной таблицы.
Создание таблиц для контрольного примера
Аналогичные действия повторяются при создании остальных таблиц БД.
Создадим таблицы «Кафедра» (рис. 5.19), и «Дети» (рис. 5.20).
При создании таблицы «Кафедра» ключ «Код_кафедры», как и в случае с таблицей «Сотрудник», создадим автоматически при закрытии таблицы.
При создании таблиц следует помнить, что в реляционных базах данных связывание таблиц происходит по значениям соответствующих полей связи. Эти поля должны соответствовать друг другу по типу и длине. В нашем примере речь идет о полях «Код_кафедры» в таблице «Кафедра» и в таблице «Сотрудник», и «Код_сотрудника» в таблицах «Сотрудник» и «Дети». Если в основной таблице ключевое поле имеет тип «Счетчик», то в подчиненной таблице соответствующее поле связи должно иметь тип «Числовой» и размер поля - «Длинное целое».
Рис. 5.19. Структура таблицы «Кафедра»
Рис. 5.20. Структура таблицы «Дети»
В таблице «Кафедра» для поля «Наименование_кафедры_краткое» создайте уникальный индекс.
При создании таблицы «Дети» воспользуемся возможностью вообще не задавать ключ. В реальной ситуации в таблицу «Дети» скорее всего будут введены еще и другие поля (например, дата рождения ребенка).
5.2.2. Изменение структуры таблиц
Если вы ошиблись при описании структуры таблицы или по каким-либо другим причинам хотите изменить ее, то это можно легко сделать. Если вы уже вышли из процесса создания таблицы, но еще продолжаете работать с ней, то можно перейти обратно в режим Конструктор, воспользовавшись кнопкой Вид. Если нужная таблица вообще закрыта, то ее можно открыть в режиме Конструктор и таким образом вернуться в окно описания таблицы.
Для добавления поля в таблицу выберите строку, над которой требуется добавить новое поле, и щелкните по кнопке Добавить строки на панели инструментов либо просто нажмите клавишу [Ins]. Для добавления поля в конец таблицы выберите первую пустую строку и вводите в нее описание очередного поля.
Если таблица уже содержит данные, то рекомендуется до изменения типов данных и размеров полей сделать ее копию, поскольку несовместимость существующих данных с новым значением свойства «Тип данных» может привести к потере данных.
5.2.3. Другие способы создания таблиц
Если создается таблица, структура которой имеет много общего со структурой ранее созданной таблицы, то можно скопировать структуру существующей таблицы (для этого нужно позиционироваться на соответствующей таблице, выбрать позицию меню Правка/Копировать, затем - Правка/Вставить, после чего в появившемся окне (рис. 5.21) ввести имя вновь создаваемой таблицы, а в качестве параметра вставки выбрать «только структура»). Структура созданной таким образом таблицы может быть впоследствии скорректирована обычным способом. В приведенном примере в базе данных учебного заведения на основе таблицы «Сотрудник» строится таблица «Аспирант».