СИСТЕМА УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ ACCESS
ВВЕДЕНИЕ
В любой деятельности часто приходится иметь дело с большими объемами данных. Основными операциями при этом являются сбор информации, ее обработка (поиск требуемых данных, сортировка и т.п.), создание форм просмотра и распечатки данных. Одним из самых популярных программных продуктов, обеспечивающих все эти функции, признана система управления базами данных фирмы Microsoft Access 97.
Цель главы – научить технологии работы в среде системы управления базами данных Access, что позволит профессионально создавать и редактировать базы данных реляционного типа, осуществлять к ним запросы, формировать отчеты и т.п.
ПОСЛЕ ИЗУЧЕНИЯ ВЫ НАУЧИТЕСЬ:
Создавать структуру однотабличной базы данных
Разрабатывать схему данных и создавать структуру реляционной базы данных
Вводить и редактировать данные
Разрабатывать пользовательские формы ввода данных в однотабличную и реляционную базы данных
Формировать запросы для поиска и отбора данных
Создавать отчеты для вывода данных
Пояснение к лабораторной работе № 1. Создание однотабличной базы данных.
Общие сведения
Access – это система управления базами данных (СУБД). Под системой управления понимается комплекс программ, который позволяет не только хранить большие массивы данных в определенном формате, но и обрабатывать их, представляя в удобном для пользователей в виде. Access дает возможность также автоматизировать часто выполняемые операции (например, расчет заработной платы, учет материальных ценностей и т.п.). С помощью Access можно те только разрабатывать удобные формы ввода и просмотра данных, но и составлять сложные отчеты.
Access является приложением, а поскольку и и Access разработаны одной фирмой (Microsoft), они очень хорошо взаимодействуют друг с другом. СУБД Access работает под управлением Windows; таким образом, все преимущества Windows доступны в Access, например, вы можете вырезать, копировать и вставлять данные из любого приложения Windows в приложение Access и наоборот.
Access – это реляционная СУБД. Это означает, что с ее помощью можно работать одновременно с несколькими таблицами базы данных. Применение реляционной СУБД помогает упростить структуру данных и таким образом облегчить выполнение работы. Таблицу Access можно связать с данными, хранящимися на другом компьютере или на сервере, а также использовать таблицу, созданную в СУБД Paradox или Dbase. Данные Access очень просто комбинировать с данными Excel.
В СУБД Access предусмотрено много дополнительных сервисных возможностей. Мастера помогут вам создать таблицы, формы или отчеты из имеющихся заготовок, сделав за вас основную черновую работу. Выражения используются в Access, например, для проверки допустимости введенного значения. Макросы позволяют автоматизировать многие процессы без программирования, тогда как встроенный в Access язык VBA (Visual Basic for Applications) - специально разработанный компанией Microsoft диалект языка Basic для использования в приложениях Microsoft– дает возможность опытному пользователю программировать сложные процедуры обработки данных. Просматривая свою форму или отчет, вы сможете представить, как они будут выглядеть в распечатанном виде. И наконец, используя такие возможности языка программирования С, как функции и обращения к Windows API (Application Programming Interfaсe – интерфейс прикладных программ Windows), можно написать подпрограмму для взаимодействия Access с другими приложениями – источниками данных.
В Microsoft Access добавлено множество новых средств, разработанных для облегчения работы в Интернет и создания приложений для Web. Для доступа к сети Интернет и использования преимуществ новых средств необходимы средства просмотра, например Microsoft Internet Explorer, а также модем. Пользователь имеет возможность непосредственно подключаться к узлам Microsoft Web из программ Office (в том числе и из Access) с помощью команды Microsoft на Web из пункта меню ? . При этом можно, например, получить доступ к техническим ресурсам и загрузить общедоступные программы, не прерывая работу с Access.
Система Access содержит набор инструментов для управления базами данных, включающих конструкторы таблиц, форм, запросов и отчетов. Кроме того, Accessможно рассматривать и как среду для разработки приложений. Используя макросы для автоматизации задач, вы можете создавать такие же мощные, ориентированные на пользователя приложения, как и приложения, созданные с помощью «полноценных» языков программирования, дополнять их кнопками, меню и диалоговыми окнами. Программируя на VBA, можно создавать программы, по мощности не уступающие самой Access. более того, многие средства Access, например мастера и конструкторы, написаны на VBA. Мощность и гибкость системы Access делают ее сегодня одной из лучших программ для управления базами данных.
Работа с мастерами
Мастер (Wizard) – специальная программа, помогающая в решении какой-то задачи или создании объекта определенного типа. Эта программа поможет вам за несколько минут выполнить рутинную работу, на которую без применения этой программы может уйти несколько часов. Программа-мастер задает вопросы о содержании, стиле и формате объекта, а затем создает этот объект без какого-либо вмешательства с вашей стороны. В Access имеется около сотни мастеров, предназначенных для проектирования баз данных, приложений, таблиц, форм, отчетов, графиков, почтовых наклеек, элементов управления и свойств.
Информация для пользователей электронных таблиц
Те, кто знакомы с Excel, заметят, что Access во многом похож на Excel. Прежде всего обе программы являются продуктами для Windows, следовательно, можно использовать свой опыт применения специфичных для Windows соглашений. Данные таблицы или запросы Access отображаются в виде электронной таблицы, которую принято называть таблицей данных. Вы обнаружите, что размер строк и столбцов таблицы данных можно изменять так же, как в рабочих таблицах Excel. Фактически режим ввода данных Access ничем не отличается от аналогичного режима Excel. Основное различие между таблицей базы данных (БД) и электронной таблицей – в системе адресации: в электронной таблице адресуется каждая ячейка, а в таблице БД – только поля текущей записи. В электронной таблице каждая ячейка обрабатывается индивидуально, а в таблице БД обработка идет по записям, причем записи обрабатываются однотипным образом. Эти упрощения для БД позволяют повысить скорость обработки и количество обслуживаемой информации.
Контекстно-зависимая справка и Помощник
Справочная система фирмы Microsoft является, наверное, лучшей среди аналогичных программ как для новичков, так и для опытных пользователей. Access дает возможность использовать контекстно-зависимую справку, для получения которой достаточно нажать правую клавишу мыши. Какие бы вы ни испытывали затруднения при работе с системой, вам поможет появляющаяся на экране справка по интересующей вас теме. Помимо этого справочная система Access имеет удобные и простые в использовании содержание, предметный указатель, систему поиска, журнал хронологии и закладки. В локализованной версии Access 97 (как и во всем Microsoft Office 97) компания Microsoft добавила новое средство – Помощник. Помощник отвечает на вопросы, выдает советы и справки об особенностях используемой программы.
Структура таблицы и типы данных
Все составляющие базы данных, такие, как таблицы, отчеты, запросы, формы и объекты, в Access 97 хранятся в едином дисковом файле. Основным структурным компонентом базы данных является таблица. В таблицах хранятся вводимые нами данные. Внешне каждая таблица Access 97 похожа на таблицы, с которыми мы привыкли работать на бумаге, - она состоит из столбцов, называемых полями, и строк, называемых записями. Каждая запись таблицы содержит всю необходимую информацию об отдельном элементе базы данных. Например, запись о сотруднике фирмы может содержать фамилию, имя отчество, дату рождения, должность и т.п.
При разработке структуры таблицы прежде всего необходимо определить названия полей, из которых она должна состоять, типы полей и их размеры. Каждому полю таблицы присваивается уникальное имя, которое не может содержать более 64 символов. Имя желательно делать таким, чтобы функция поля узнавалась по его имени. Далее надо решить, данные какого типа будут содержаться в каждом поле. В Access можно выбрать любые из основных типов данных. Один из этих типов данных должен быть присвоен каждому полю. Значения типа поля может быть задано только в режиме конструктора. Ниже представлены типы данных Access и их описание
(Значение по умолчанию)
Текст или числа, не требующие проведения расчетов, например номера телефонов (до 255 знаков)
Числовой
Числовые данные различных форматов, используемые для проведения расчетов
Дата/Время
Для хранения информации о дате и времени с 100 по 9999 год включительно
Денежный
Денежные значения и числовые данные, используемые в математических расчетах, проводящих с точностью до 15 знаков в целой и до 4 знаков в дробной части
Поле МЕМО
Для хранения комментариев; до 65535 символов
Счетчик
Специальное числовое поле, в котором Access автоматически присваивает уникальный порядковый номер каждой записи. Значения полей типа счетчика обновлять нельзя
Логический
Может иметь только одно из двух возможных значений (True/False, Да/Нет)
Поле объекта OLE
Объект (например, электронная таблица Excel, документ Microsoft Word, рисунок, звукозапись или другие данные в двоичном формате), связанные или внедренные в таблицу Access
Гиперссылка
Строка, состоящая из букв и цифр и представляющая адрес гиперссылки. Адрес гиперссылки может состоять максимум из трех частей: текст, выводимый в поле или в элементе управления; путь к файлу (в формате пути UNC) или к странице (адрес URL). Чтобы вставить адрес гиперссылки в поле или в элемент управления, выполните команду Вставка, Гиперссылка
Мастер подстановок
Создает поле, в котором предлагается выбор значений из списка или из поля со списком, содержащего набор постоянных значений из другой таблицы. Это в действительности не тип поля, а способ хранения поля
В Access существует четыре способа создания пустой таблицы:
использование мастера баз данных для создания всей базы данных, содержащей все требуемые отчеты, таблицы и формы, за одну операцию. Мастер баз данных создает новую базу данных, его нельзя использовать для добавления новых таблиц, форм отчетов в уже существующую базу данных;
мастер таблиц позволяет выбрать поля для данной таблицы из множества определенных ранее таблиц, таких как деловые контакты, список личного имущества или рецепты;
ввод данных непосредственно в пустую таблицу в режиме таблицы. При сохранении новой таблицы в Access данные анализируются и каждому полю присваивается необходимый тип данных и формат;
определение всех параметров макета таблицы в режиме конструктора.
Независимо от метода, примененного для создания таблицы, всегда имеется возможность использовать режим конструктора для дальнейшего изменения макета таблицы, например для добавления новых полей, установки значений по умолчанию или для создания масок ввода. Однако только четвертый метод позволяет сразу задать ту структуру таблицы, которая вам нужна, и поэтому далее рассмотрим именно этот метод.
Ввод данных в ячейки таблицы
Ввод данных в ячейки таблицы производится обычным образом – вы переводите курсор в нужную ячейку, т.е. делаете ее активной, и вводите в нее данные (вводить данные в ячейки для поля с типом данных Счетчик не требуется, так как значения в этом поле появляются автоматически при вводе данных в любую другую ячейку данной записи). Особенности ввода следующие: при нажатии клавиши DEL ячейка очищается; если ввод данных в ячейку прервать, нажав клавишу Esc, то восстанавливается старое значение, а если нажать клавиши Enter или Tab, то в ячейку заносится новое значение. Можно редактировать текущее значение, меняя в нем отдельные символы. Для этого надо в ячейке таблицы дважды щелкнуть мышью или нажать клавишу F2. Однако есть одна важная особенность при воде данных – для некоторых типов данных (числовой, денежный, дата/время, логический) Access автоматически проверяет правильность их ввода. Например, если вы введете букву в ячейку с числовым типом, то Access выдаст сообщение о неправильно введенном значении и не позволит перейти к другой ячейке, пока не будут введены правильно данные.
Для всех типов полей (кроме типов Счетчик и поле объекта OLE) можно самостоятельно задавать ограничения для вводимых данных. Для этого в режиме конструктора надо выбрать вкладку Общие, перевести курсор в поле с именем <<Условия на значение>> и ввести ограничение на данные. Например, стаж работы вряд ли может быть более 70 лет, и ограничение будет следующее: <70. Ограничение можно вводить и на текстовое поле. Обычно в этом случае задаются слова, которые могут присутствовать в данном поле.
Примечание. Вводить ограничения можно не только вручную, но и с помощью Построителя выражений. При появлении курсора в строке параметра Условия на назначение справа от нее появиться кнопка с тремя точками. При щелчке по этой кнопке появляется окно построителя выражений (рис.1.1.) Обычно им пользуются для построения сложных выражений, но разобраться в его работе довольно просто при помощи справки, расположенной в этом же окне.
[pic]
Рис. 1.1. Окно построителя выражений
Можно использовать еще один удобный инструмент при вводе данных – параметр Значение по умолчанию (находится на вкладке Общие). Здесь можно задать данные которые Access будет вводить по умолчанию при заполнении таблицы. Это удобно использовать, когда большинство значений данного поля одинаковы и лишь некоторые отличаются. Например, должность большинства преподавателей – доцент. Если ввести это слово в строку параметра Значение по умолчанию, то все ячейки поля <<Должность>> примут значение Доцент и надо будет лишь изменить значения ячеек для преподавателей с другими должностями. Данные можно вводить и копированием их из одной ячейки в другую стандартными средствами Windows.
Для каждого типа данных (кроме типа данных Счетчик) предусмотрено пустое (нулевое) значение. Различают два типа пустых значений: пустые (Null) значения и пустые строки. Если пустое поле имеет пустое (Null) значение, то это означает, что данные для него существуют, но пока не известны. Если же введена пустая строка (два знака прямых кавычек (“”)), то это означает, что данные не существуют вовсе. Access позволяет обрабатывать такие пустые значения.
Редактирование данных
Редактирование данных производится очень просто – курсор переводится в нужную ячейку, старые данные удаляются (клавишами Del или Backspace) и водятся новые данные. Удалять можно не только данные в ячейках, но и целиком строки, предварительно их выделив. Но если таблица большая, то редактируемые данные надо сначала найти. Это делается следующим образом: переводят курсор в любую ячейку поля, начиная с которой будет вестись поиск, затем открывают пункт меню Правка и выполняют команду Найти. В появившемся окне вводят образец искомых данных и щелкают по кнопке <Найти>. Если значение найдено, курсор перейдет в эту ячейку. Иногда требуется большое количество одинаковых данных заменить на другое значение. Для этого надо открыть пункт меню Правка и выполнить команду Заменить. В появившемся окне ввести образцы того, что надо найти и на что заменить. Затем надо решить, будете ли вы просматривать каждое заменяемое значение или нет. Если будете, то надо щелкнуть по кнопке <Заменить >, а если нет – один раз щелкнуть по кнопке <Заменить все>.
Сортировка данных
Для удобства просмотра можно сортировать записи в таблице в определенной последовательности, например, в таблице Преподаватели записи можно отсортировать в порядке убывания стада преподавателей. Кнопки сортировки на панели инструментов (или команды меню Записи, Сортировка, Сортировка по возрастанию (сортировка по убыванию)) позволяю сортировать столбцы по возрастанию или убыванию. Прежде чем щелкнуть по кнопке сортировки, следует выбрать поля, используемые для сортировки. Для выбора поля достаточно поместить курсор в любую его запись. После этого щелкните по кнопке сортировки - и данные отобразятся в отсортированном порядке. В режиме таблицы можно выделить сразу два или несколько соседних столбцов, а затем выполнить по ним сортировку. По умолчанию в Access 97 сортировка записей начинается с крайнего левого выделенного столбца. При этом записи таблицы будут отсортированы сначала по крайнему левому выделенному столбцу, затем (для одинаковых значений в первом сортируемом столбце) – по второму и т.д. Если вы хотите восстановить порядок отображения записей используйте команду Записи, Удалить фильтр.
Примечание. Современные СУБД, такие как Access 97, никогда не сортируют таблицы физически, как это делалось раньше. Средства сортировки данных (а также фильтрации, поиска и замены) реализованы в Access 97 как автоматически создаваемые запросы. Записи таблицы всегда располагаются в файле базы данных в том порядке, в котором они были добавлены в таблицу.
Отбор данных с помощью фильтра
Фильтр – это набор условий, применяемых для отбора подмножества записей. В Access 97 существуют фильтры четырех типов: фильтр по выделенному фрагменту, обычный фильтр, расширенный фильтр и фильтр по вводу.
Фильтр по выделенному фрагменту – это способ быстрого отбора записей по выделенному образцу. Например, вам нужно просмотреть в таблице записи только о доцентах. Выделите слово Доцент в любой из записей. Щелкните по кнопке <Фильтр по выделенному> (или выполните команду Записи, Фильтр, Фильтр по выделенному), и Access выберет только те записи, для которых значение в столбце Должность равно Доцент. Обратите внимание, что в строке состояния окна таблицы присутствует слово Фильтр. В дополнение к этому кнопка <Применить фильтр> (третья кнопка фильтрования, на которой изображена воронка) затенена, а это означает, что используется фильтр. При отключении этой кнопки все фильтры будут сняты. Установки фильтра не пропадут: он просто будет отключен. Фильтр по выделенному может собирать вместе критерии выбора при каждом использовании кнопки <Фильтр по выделенному>. Например, вы поместили курсор в столбец Должность в записи, в которой значение поля равно Доцент, и щелкнуть по кнопке <Фильтр по выделенному>. Вы увидите только записи о всех доцентах. Если затем вы поместите курсор в столбец <Должность > и выделите слово Информатика (конечно, если такая дисциплина присутствует в вашей таблице), а затем щелкните по кнопке <Фильтр по выделенному>, появятся только записи о доцентах, которые преподают информатику. Если вы хотите просмотреть значения, которые не удовлетворяют этому критерию, например просмотреть всех преподавателей, кроме доцентов, читающих информатику, щелкните правой кнопкой (курсор мыши должен находиться внутри таблицы) и выберите команду Исключить выделенное. Будут выбраны все записи, кроме недавно выбранных (инверсный выбор).
Фильтрирование данных в Access производится с помощью кнопок <Фильтр по выделенному> или <Изменить фильтр> (команда меню Записи, Фильтр, Изменить фильтр). После нажатия второй кнопки от таблицы остается одна запись. Каждое поле становиться полем со списком (когда в нем находится курсор), в котором можно выбрать из списка все значения для данное поля. После щелчка по кнопке <Применить фильтр> будут выбраны записи, соответствующие измененному фильтру. Еще более сложные условия фильтрации можно задать командой меню Записи, Фильтр, Расширенный фильтр…
Подготовка к печати
Записи таблицы можно распечатать. Простейший способ сделать это - выбрать команду Файл, Печать или щелкнуть по кнопке <Печать> на панели инструментов. Для распечатки потребуется столько страниц, сколько необходимо для размещения всех данных. Access автоматически подгоняет распечатку на каждой странице. Управлять распечатыванием можно из диалогового окна <Печать>, выбирая представленные ниже опции:
Перед печатью всегда необходимо просмотреть данные для того, чтобы определить, как будет выглядеть таблица на распечатанной странице. Для этого щелкните по кнопке <Предварительный просмотр> на панели инструментов или выберите команду Файл, Предварительный просмотр. При этом появиться окно предварительного просмотра, в котором можно управлять параметрами просмотра.
Ввод и просмотр данных посредством формы
Формы обеспечивают наиболее гибкий способ ввода, редактирования, просмотра и удаления данных и фактически являются шаблонами, управляющими отображением информации. Форма позволяет отображать одновременно все поля одной или нескольких записей. Оптимально построенная форма может вмещать несколько десятков полей на одном экране, а если полей намного больше, то для каждой записи можно создать многостраничную форму. Можно создать форму-меню для вызова других форм, таблиц, запросов или отчетов. В форме каждое поле можно разместить в точно заданном месте, выбрать для него цвет или заливку и добавить элементы управления текстом для эффективного ввода данных.
При вводе данных можно не только помещать вычисляемые поля в форму, но и добавлять расширенные правила проверки корректности ввода и элементы управления (например, переключатели, флажки, раскрывающиеся списки). Линии, рамки, цвета и фоновые изображения улучшают внешний вид данных, облегчают восприятие формы и повышают продуктивность работы. В дополнение к этому OLE-объекты (такие, как рисунки и графики) можно увидеть только в форме или в отчете.
Создать форму можно несколькими способами. Если вы в режиме базы данных откроете вкладку Формы и щелкните по кнопке <Создать>, то откроется окно, в котором указаны способы создания формы (рис.1.2)
[pic]
рис.1.2. Окно, в котором выбираются варианты построения формы
Конструктор позволит вам создать форму самостоятельно, но это для начинающих пользователей довольно сложно. Мастер форм дает возможность автоматически создать форму на основе выбранных полей. Этот режим наиболее удобен при создании форм как для начинающих, так и для опытных пользователей. Access в режиме диалога выясняет у пользователя, какую форму он хочет получить, и создает ее автоматически. Если вас в этой форме что-либо не удовлетворяет, вы можете исправить это в режиме конструктора. Автоформы являются частными случаями мастера форм, т.е. они автоматически создают заданные виды форм практически без участия пользователя. Это может быть удобно, когда базовая таблица одна, содержит немного полей и вам нужно быстро создать простую форму. Диаграмма создает форму со встроенной диаграммой, а сводная таблица – со сводной таблицей Excel. Эти режимы предпочтительнее использовать опытным пользователям, хотя форму с диаграммой не так сложно создать и начинающему пользователю – Access в этом поможет.
Наиболее удобным и гибким способом создания форм является Мастер форм. В этом режиме вы можете выбрать поля таблицы для отображения в форме, стиль и цвет оформления фона и ячеек, а также вид формы. Мастер форм предлагает четыре вида формы представления данных: в один столбец (рис.1.1), ленточная (рис.1.2), табличная (рис.1.3) и выровненная (рис.1.4)
[pic]
рис. 1.3. Форма в один столбец
[pic]
рис.1.4. Ленточная форма
Поля в форме в один столбец (см. рис.) упорядочены и представлены в виде столбцов. Такая форма может занимать одну или несколько страниц. Поля можно упорядочить как угодно. Access дает возможность использовать большинство стандартных элементов управления Windows, которые создают привычный интерфейс при вводе данных. Линии, рамки, цвета и даже специальные эффекты (например, тени) позволяют создать удобные формы с привлекательным внешним видом. Ленточная форма и табличная форма похожи друг на друга, но табличная форма фактически повторяет вид уже знакомой вам таблицы и в ней ограничены возможности редактирования. А в ленточной форме доступны все виды инструментов и способы оформления фона и ячеек с данными. Выровненный вид формы (см.рис. ) похож на ленточную форму, но отличается тем, что на экран выводятся все поля с одной записью, и если полей много, то они располагаются рядами – один под другим.
Если вы создаете форму на основе одной таблицы или одного запроса, то виды форм ограничиваются вышеописанными. Но если вы разрабатываете форму на основе нескольких таблиц или запросов, то Access предложит вам создать либо подчиненные, либо связанные формы в ленточном или в табличном виде.
Настраивать внешний вид и возможности ввода, обработки и просмотра данных можно в режиме конструктора. Вы можете использовать огромное количество Инструментов и Свойств формы, но, чтобы реализовать эти возможности, надо обладать определенным опытом работы с формами. Некоторые из возможностей построения сложных форм мы рассмотрим в следующей главе, посвященной разработке многотабличной базы данных.
Перемещение в форме почти идентично перемещению в строках и столбцах. Перемещаться по форме можно, просто щелкая по нужному полю и внося изменения или дополнения в данные.
Для манипулирования записями (операции поиска, замены, сортировки и фильтрации данных) в режиме формы используются те же способы, что и в режиме таблицы (это естественно: такая форма лишь способ представления данных из таблиц или запросов), поэтому здесь их повторять не будем. Просмотр и печать форм также производятся аналогично тому, как это производится с таблицами.
Пояснение к лабораторной работе № 2. Формирование запросов и отчетов для однотабличной базы данных
Формирование запросов на выборку
Запросы являются мощным средством обработки данных, хранимых в таблицах Access 97. С помощью запросов можно просматривать, анализировать и изменять данные из нескольких таблиц. Они также используются в качестве источника данных для форм и отчетов. Запросы позволяют вычислять итоговые значения и выводить их в компактном формате, подобному формату электронной таблицы, а также выполнять вычисления над группами записей.
Запросы можно создавать самостоятельно и с помощью мастеров. Мастера запросов автоматически выполняют основные действия в зависимости ответов пользователя на поставленные вопросы. Самостоятельная разработать запросы можно в режиме конструктора.
В Access 97 можно создавать следующие типы запросов:
запрос на выборку;
запрос с параметрами;
перекрестный запрос;
запрос на изменение (запрос на удаление, обновление и добавление записей на создание таблицы);
запросы SQL (запросы на объединение, запросы к серверу, управляющие запросы, подчиненные запросы)
Запрос на выборку используется наиболее часто. При его выполнении данные, удовлетворяющие условиям отбора, выбираются из одной или из нескольких таблиц и выводятся в определенном порядке. Например, можно вывести на экран данные о фамилиях доцентов, стаж которых более 15 лет (на основе таблицы Преподаватели).
Примечание. Простые запросы на выборку практически не отличаются от фильтров. Более того, фильтры можно сохранять как запросы.
Можно также использовать запрос на выборку, чтобы сгруппировать записи для вычисления сумм, средних значений, пересчета и других действий. Например, используя запрос на выборку, можно получить данные о среднем стаже доцентов и профессоров (на основе таблицы Преподаватели).
Запрос с параметрами – это запрос, при выполнении которого в его диалоговом окне пользователю выдается приглашение ввести данные, на основе которых будет выполняться запрос. Например, часто требуются данные о том, какие дисциплины ведут преподаватели. Чтобы не создавать отдельные запросы по каждому преподавателю, можно создать один запрос с параметрами, где в качестве параметра будет использоваться фамилия преподавателя. При каждом вызове этого запроса вам будет предложено ввести фамилию преподавателя, а затем на экран будут выведены все поля, которые вы указали в запросе, например фамилия, имя, отчество преподавателя и читаемая им дисциплина.
Для создания нового запроса надо в окне базы данных выбрать вкладку Запросы и щелкнуть по кнопке <Создать>. Откроется окно <<Новый запрос>>, вид которого представлен на рис.2.1.
[pic]
Рис.2.1. Окно выбора вариантов построения запросов
В окне вы должны выбрать один из пяти пунктов: Конструктор, Простой запрос, Перекрестный запрос, Повторяющиеся записи, Записи без подчиненных. Конструктор позволит вам самостоятельно создать любой тип запроса, но этот режим рекомендуется пользователям, уже имеющим некоторый опыт создания запросов. Простой запрос позволит создать с помощью Мастера запрос на выборку из определенных полей таблиц или других запросов. (Это наилучший способ создания запроса для начинающих пользователей). Что такое перекрестный запрос, рассматривалось выше. При выборе пункта Повторяющиеся записи будет создан запрос на поиск повторяющихся записей в простой таблице или в запросе, а при выборе пункта Записи без подчиненных – запрос на поиск записей, которым не соответствует ни одна запись в подчиненной таблице. Такой запрос используется для многотабличных баз данных.
У вас может возникнуть вопрос: как создавать запросы с параметрами и запросы на изменение, если при создании запроса они явно не указаны? Следует отметить, что основой для всех этих запросов является запрос на выборку, т.е. сначала необходимо определить набор данных, с которым хотите работать. Затем для созданного запроса на выборку надо перейти в режим конструктора. Задание параметров производиться в строке Условия отбора для соответствующих полей. Подробнее это будет рассмотрено ниже при выполнении задания. Для доступа к запросам на изменение надо открыть пункт меню Запрос – в открывшемся списке вы увидите все виды запросов на изменение.
При выполнении запроса на выборку Access 97 извлекает записи из таблиц и формирует результирующий набор данных. Он выглядит, как таблица, хотя и не является ею. Результирующий набор данных является динамическим (или виртуальным) набором записей и не храниться в базе данных.
После закрытия запроса результирующий набор данных этого запроса прекращает свое существование. Хотя сам по себе динамический набор данных больше не существует, помните, что данные, которые в нем содержались, остаются в базовых таблицах.
При сохранении запроса остается только структура запроса – перечень таблиц, список полей, порядок сортировки, ограничения на записи, тип запроса и т.д. При сохранении в базе данных запрос, по сравнению с результирующим набором данных, имеет ряд преимуществ:
на физическом носителе информации (обычно это жесткий диск) требуется меньший объем пространства;
запрос может использовать обновленные версии любых записей, измененных со времени последнего запуска запроса.
При каждом выполнении запрос обращается к базовым таблицам и снова создает результирующий набор данных. Поскольку сам по себе результирующий набор данных не сохраняется, запрос автоматически отображает любые изменения, происшедшие в базовых таблицах с момента последнего запуска этого запроса (даже в реальном времени в многопользовательской среде).
Для сохранения запроса следует выполнить следующие действия. Выполните команду Файл, Сохранить или щелкните по кнопке <Сохранить> на панели инструментов. Если вы впервые сохраняете запрос, введите новое имя запроса в диалоговом окне <<Сохранение>>.
Формирование отчетов
Отчет — это гибкое и эффективное средство для организации просмотра и распечатки итоговой информации. В отчете можно получить результаты сложных расчетов, статистических сравнений, а также поместить в него рисунки и диаграммы.
Пользователь имеет возможность разработать отчет самостоятельно или создать отчет с помощью мастера. Мастер по разработке отчетов выполняет всю рутинную работу и позволяет быстро разработать отчет. После вызова Мастера выводятся диалоговые окна с приглашением ввести необходимые данные, и отчет создается на основании ответов пользователя. Мастер необходим даже для опытных пользователей, так как позволяет быстро разработать макет, служащий основой создаваемого отчета. После этого можно переключиться в режим конструктора и внести изменения в стандартный макет.
При работе с мастером в зависимости от того, какой отчет вы хотите создать (т.е. как вы отвечаете на вопросы мастера). Access предлагает вам различные варианты макетов отчета. Например, если вы создаете простой отчет без группировки данных, то вам предлагается три варианта макета: в столбец, табличный и выровненный. При этом в небольшом окне представляется вид этих макетов. Если вы задаете уровни группировки (т.е. по каким признакам надо сгруппировать данные, например по должности), то вам предлагаются шесть видов макетов. Перечислять их не будем, так как они хорошо проиллюстрированы в окне создания макетов.
Основное различие между отчетами и формами заключается в их назначении. Если формы задуманы преимущественно для ввода данных, то отчеты — для просмотра данных (на экране либо на бумаге). В формах используются вычисляемые поля (обычно с помощью вычислений на основе полей в текущей записи). В отчетах вычисляемые поля (итоги) формируются на основе общей группы записей, страницы записей или всех записей отчета. Все, что можно сделать с формой (за исключением ввода данных), можно сделать и с отчетом. Действительно, форму можно сохранить в виде отчета, а затем изменить элементы управления формы в окне конструктора отчета.
Для создания отчета надо открыть вкладку Отчеты и щелкнуть по кнопке <Создать>. Откроется окно «Новый отчет», в котором приведены шесть пунктов меню, т.е. шесть способов создания отчета; Конструктор, Мастер отчетов. Автоотчет в столбец, Автоотчет ленточный, Мастер диаграмм и Почтовые наклейки. Конструктор позволит вам самостоятельно создать отчет, но это непросто даже для опытного пользователя. Мастер отчетов автоматически создаст отчет на основе выбранных вами полей таблиц (запросов) и макетов отчетов. Этот способ создания отчетов является наиболее удобным как для начинающих, так и для опытных пользователей. Автоотчет в столбец и Автоотчет ленточный — самые простейшие способы создания отчетов: достаточно указать только имя таблицы (запроса), на основе которого будет создан отчет, а остальное сделает мастер отчетов. Мастер диаграмм поможет создать отчет в виде диаграммы, а Почтовые наклейки создадут отчет, отформатированный для печати почтовых наклеек.
Пояснение к лабораторной работе № 3. Разработка инфологической модели и создание структуры реляционной базы данных.
Организация данных
Слово "реляционная" происходит от английского relation — отношение. Отношение — математическое понятие, но в терминологии моделей данных отношения удобно изображать в виде таблицы. При этом строки таблицы соответствуют кортежам отношения, а столбцы — атрибутам. Ключом называют любую функцию от атрибутов кортежа, которая может быть использована для идентификации кортежа. Такая функция может быть значением одного из атрибутов (простой ключ), задаваться алгебраическим выражением, включающим значения нескольких атрибутов (составной ключ). Это означает, что данные в строках каждого из столбцов составного ключа могут повторяться, но комбинация данных каждой строки этих столбцов является уникальной. Например, в таблице Студенты есть столбцы Фамилия и Год рождения. В каждом из столбцов есть некоторые повторяющиеся данные, т.е. одинаковые фамилии и одинаковые года рождения. Но если студенты, имеющие одинаковые фамилии, имеют разные года рождения, то эти столбцы можно использовать в качестве составного ключа. Как правило, ключ является уникальным, т.е. каждый кортеж определяется значением ключа однозначно, но иногда используют и неуникальные ключи (ключи с повторениями). В локализованной (русифицированной) версии Access 97 вводится термин ключевое поле, которое можно трактовать как первичный ключ.
В Access 97 можно выделить три типа ключевых полей: простой ключ, составной ключ и внешний ключ.
Одно из важнейших достоинств реляционных баз данных состоит в том, что вы можете хранить логически сгруппированные данные в разных таблицах и задавать связи между ними, объединяя их в единую базу. Для задания связи таблицы должны иметь поля с одинаковыми именами или хотя бы с одинаковыми форматами данных. Связь между таблицами устанавливает отношения между совпадающими значениями в этих полях. Такая организация данных позволяет уменьшить избыточность хранимых данных, упрощает их ввод и организацию запросов и отчетов. Поясним это на примере. Допустим, вам в базе надо хранить данные о студентах (фамилия, изучаемая дисциплина) и преподавателях (фамилия, номер кафедры, ученая степень, преподаваемая дисциплина). Если хранить данные в одной таблице, то в строке с фамилией студента, изучающего конкретную дисциплину, будут храниться все атрибуты преподавателя, читающего эту дисциплину. Это же огромная избыточность данных. А если хранить данные о студенте в одной таблице, о преподавателе — в другой и установить связь между полями <<Читаемая дисциплина>> — <<Изучаемая дисциплина>> (фактически это одинаковые поля), то избыточность хранимых данных многократно уменьшится без ущерба для логической организации информации.
В Access 97 можно задать три вида связей между таблицами: Один-ко-многим, Мно-гие-ко-многим и Один-к-одному.
Связь Один-ко-многим — наиболее часто используемый тип связи между таблицами. В такой связи каждой записи в таблице А может соответствовать несколько записей в таблице В (поля с этими записями называют внешними ключами), а запись в таблице В не может иметь более одной соответствующей ей записи в таблице А.
При связи Многие-ко-многим одной записи в таблице А может соответствовать несколько записей в таблице В, а одной записи в таблице В — несколько записей в таблице А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое — общим с таблицей В.
При связе Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Этот тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один-к-одному применяют для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Тип создаваемой связи зависит от полей, для которых определяется связь:
• связь Один-ко-многим создается в том случае, когда только одно из полей является ключевым или имеет уникальный индекс, т.е. значения в нем не повторяются;
• связь Один-к-одному создается в том случае, когда оба связываемых поля являются ключевыми или имеют уникальные индексы;
• связь Многие-ко-многим фактически представляет две связи типа один-ко-многим через третью таблицу, ключ которой состоит по крайней мере из двух полей, общих для двух других таблиц.
Целостность данных
Целостность данных означает систему правил, используемых в СУБД Access для поддержания связей между записями в связанных таблицах (таблиц, объединенных с помощью связи), а также обеспечивает защиту от случайного удаления или изменения связанных данных. Контролировать целостность данных можно, если выполнены следующие условия:
связанное поле (поле, посредством которого осуществляется связь) одной таблицы является ключевым полем или имеет уникальный индекс;
связанные поля имеют один тип данных. Здесь существует исключение. Поле счетчика может быть связано с числовым полем, если оно имеет тип Длинное целое;
обе таблицы принадлежат одной базе данных Access. Если таблицы являются связанными, то они должны быть таблицами Access. Для установки целостности данных база данных, в которой находятся таблицы, должна быть открыта. Для связанных таблиц из баз данных других форматов установить целостность данных невозможно.
Пояснение к лабораторной работе № 4. Формирование сложных запросов.
В перекрестном запросе отображаются результаты статистических расчетов (такие, как суммы, количество записей, средние значения), выполненных по данным из одного поля таблицы. Эти результаты группируются по двум наборам данных, один из которых расположен в левом столбце таблицы, а второй - в верхней строке. Например, нам надо узнать средний стаж работы ассистентов, доцентов и профессоров на разных кафедрах (на основе таблицы Преподаватели). Перекрестный запрос позволит легко решить эту задачу, создав таблицу, в которой заголовками строк будут служить должности, заголовками столбцов - названия кафедр, а в ячейках будут рассчитаны средние значения стажа преподавателей.
Запрос на изменение - это запрос, который за одну операцию вносит изменения в несколько записей. Существует четыре типа запросов на изменение; на удаление, обновление и добавление записей, а также на создание таблицы.
Запрос на удаление удаляет группу записей, удовлетворяющих заданным условиям, из одной или нескольких таблиц. С помощью запроса на удаление можно удалять только всю запись, а не отдельные поля внутри нее.
Запрос на обновление записей вносит общие изменения в группу записей одной или нескольких таблиц. Например, на 10 процентов увеличилась заработная плата ассистентов, Запрос на обновление позволит быстро внести эти изменения в таблицу Преподаватели.
Запрос на добавление добавляет группу записей из одной или нескольких таблиц в конец одной или нескольких таблиц. Например, появилось несколько новых преподавателей, а также база данных, содержащая сведения о них. Чтобы не вводить все данные вручную, их можно добавить в таблицу Преподаватели.
Запрос на создание таблицы создает новую таблицу на основе всех или части данных из одной или нескольких таблиц. Например, на основе таблицы Преподаватели можно создать новую таблицу, содержащую данные только о профессорах.
Запрос SQL - это запрос, создаваемый при помощи инструкций SQL. Этот тип запросов довольно сложен для начинающих пользователей и используется обычно опытными пользователями, имеющими навыки программирования и общения с серверами баз данных, Из-за сложности и специфики рассматривать запрос SQL в данной главе не будем.
Пояснение к лабораторной работе № 5. Создание сложных форм и отчетов.
Кнопочное меню представляет собой форму, на которой расположены элементы управления - кнопки с поясняющими надписями. Щелчок по кнопке открывает соответствующую таблицу, запрос, форму или отчет. Меню - это очень удобный инструмент работы с базами данных, и он практически всегда присутствует в базах, созданных для предприятий или фирм.
Кнопочное меню можно создать вручную (в режиме конструктора) или воспользовавшись диспетчером кнопочных форм. Меню, созданные вручную, могут обладать большими возможностями и выглядеть более привлекательно, чем меню, созданные диспетчером. Однако для создания красивого меню вручную требуется достаточно много времени даже для опытного разработчика, а создать простое меню с помощью диспетчера можно за несколько минут, тем более что впоследствии в режиме конструктора можно дополнить и изменить это меню. Остановимся на варианте создания меню с помощью диспетчеракнопочных форм.
13