Задачи для самостоятельного решения 45 Литература 57

Вид материалаЛитература
Реализация базы данных в MS Access. Построение таблиц
Имена полей
Размер поля
Поле объекта OLE
Мастер подстановок
Построение запросов
Мастер запросов
Конструктор запросов
Вывод на экран
Групповые операции
Запрос на добавление данных
Перекрестный запрос
Подобный материал:
1   2   3   4   5   6

Реализация базы данных в MS Access. Построение таблиц


После нормализации отношений необходимо ввести их в виде таблиц MS Access. Для этого необходимо создать новую базу данных и сохранить ее. В новой базе данных выбираем вкладку Таблицы и команду Создание таблицы с помощью конструктора. Далее необходимо ввести имена полей и типы соответствующих данных.




Имена полей таблицы не могут превышать 64 символов и должны быть уникальными, лучше не использовать пробелы, точки, кавычки, скобки и другие специальные символы. Имя поля не должно совпадать с именами встроенных функций или свойств Access.

Существуют следующие типы данных:

Текстовый – символьные или числовые данные, не требующие вычислений. Может содержать до 255 символов. Свойство Размер поля определяет максимальное количество знаков, которые можно ввести в поле.

Поле MEMO – текстовые и числовые значения, может содержать до 65 535 символов. Поле МЕМО хранит ссылки на блоки данных, что ускоряет обработку таблиц.

Числовой – числовые данные для математических расчетов. Свойство Размер поля определяет тип числового поля.

Дата/Время – для представления даты и времени с 100 по 9999 год.

Денежный – используется для денежных значений и для предотвращения округления во время вычислений.

Счетчик – используется для автоматической вставки уникальных последовательных (увеличивающихся на 1) или случайных чисел при добавлении записи. При удалении записи с автоматически заданным номером последовательность нарушается. Максимальное число записей с полем Счетчик не должно превышать 2 миллиардов.

Логический – может содержать только два значения Да/Нет, Истина/Ложь, Включено/Выключено.

Поле объекта OLE – содержит ссылку на OLE-объект: рисунки, звук, таблицы, текст и другие.

Гиперссылка – позволяет ссылаться на произвольный объект на том же компьютере, в локальной сети или в Internet.

Мастер подстановок – создает поле, позволяющее выбрать значение из другой таблицы или из списка значений, используя поле со списком [], [].

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





Далее переходим к заполнению таблиц. Для этого их необходимо открыть и внести в поля нужные данные и присоединить внедренные объекты, если это необходимо. Заметим, что при заполнении таблиц необходимо начинать с главных таблиц (их связи помечены в схеме данных цифрой 1), так как для связи поля главной таблицы могут использоваться в подчиненной несколько раз, поэтому при отсутствии записи в главной таблице невозможно внести данные в подчиненную таблицу, так как это противоречит целостности данных.





Если таблица связана в схеме данных с одной таблицей, то мы видим слева от записи знак «+», при нажатии на который получим данные о подчиненной таблице (если она заполнена). После заполнения таблиц реализуем запросы.

Построение запросов


Использование запросов позволяет:
  1. объединить в виде единой таблицы на экране данные из нескольких связанных таблиц;
  2. быстро отобрать записи, удовлетворяющие одному или нескольким конкретным условиям;
  3. просматривать подмножества записей таблицы без предварительного открытия этой таблицы или формы;
  4. просматривать отдельные поля таблицы;
  5. выполнять вычисления над значениями различных полей связанных таблиц.

Существуют запросы следующих типов:
  1. Простой запрос.
  2. Запрос на создание таблицы.
  3. Запрос на добавление данных.
  4. Запрос на обновление данных.
  5. Запрос на удаление данных.
  6. Перекрестный запрос.
  7. Запрос с повторяющимися записями.
  8. Запрос с записями без подчиненных.
  9. Запрос с параметрами.

Простой запрос – позволяет произвести выбор данных из одной или нескольких связанных таблиц, которые удовлетворяют одному или нескольким требуемым условиям.

Первый и наиболее легкий для начинающих пользователей способ создания простых запросов – Мастер запросов. Для создания простого запроса необходимо перейти на вкладку Запросы. Нажать кнопку Создать на панели инструментов. Выбрать нужный тип запроса Простой запрос. В появившемся диалоговом окне в качестве источника данных необходимо отобрать таблицу или запрос, и указать те поля, которые необходимо получить пользователю. В качестве источника может служить несколько таблиц или запросов. Если связи между выбранными таблицами присутствуют в схеме данных, то они отображаются и в запросе. Если для создания запроса используются не только таблицы, но и запросы, то их необходимо связать.

В том случае, когда нужно произвести групповые операции с данными, нажмите кнопку Итоги и в появившемся диалоговом окне укажите операции, которые требуется выполнить и по каким полям. На последнем шаге мастера требуется задать имя запроса. Название запроса должно отражать содержащиеся в нем данные.

После построения запроса его можно редактировать, открыв в режиме Конструктор. Основные возможности редактирования мы рассмотрим при построении запроса в указанном режиме.

Второй способ создания простых запросов – Конструктор запросов. Для этого необходимо перейти на вкладку Запросы. Нажать кнопку Создать на панели инструментов. Выбрать команду Создание запроса в режиме Конструктора. Затем необходимо указать имена таблиц или запросов, которые содержат поля, необходимые для получения нужной информации. Также как и в предыдущем случае, данные должны быть связаны друг с другом.

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

Данные запроса можно сортировать по одному или нескольким полям. Для этого в расположенном ниже поле под бланком запроса в строке Сортировка необходимо указать порядок сортировки в данном поле.

Строка Вывод на экран позволяет увидеть пользователю, какие данные будут отображаться в табличном режиме.

Для отбора конкретных данных необходимо в строке Условия отбора указать критерий, определяющий отображаемые данные. Для задания условий используются операторы сравнения: <, <=, =, >, >=, <>; логические операторы: And, Or, Not. Условия отбора, которые должны выполняться одновременно записываются в одну строку, объединяются союзом И. Условия отбора, которые должны выполняться поочередно должны записываться в разных строках и объединяются союзом Или.[]

Если необходимо соединить текстовые данные нескольких столбцов, необходимо использовать оператор слияния строковых значений &. Для сравнения с образцом можно использовать оператор: Between (35) and (50). Оператор Is null позволяет отобрать все пустые значения. Оператор Like "лог*" позволяет из столбца данных, отобрать содержащие указанные символы.

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

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

Например, построим запрос на выборку, который позволит определить, сколько учителей в Краснодарском крае в разрезе территорий? Из них мужчин и женщин. Для этого необходимо выбрать поля Код АТЕ и Территория из таблицы Территории, Пол и Код сотрудника из таблицы Сотрудники. Необходимо произвести группировку полей Код АТЕ, Территория, Пол и посчитать, используя функцию Count количество мужчин и женщин в разрезе территорий. В режиме конструктора запросов мы получим




После выполнения запроса мы увидим следующие статистические данные:




Запросы на создание таблицы, на добавление, на обновление, на удаление данных строятся на основе простого запроса на выборку. После построения простого запроса на выборку необходимо открыть его в режиме конструктора и в пункте меню Запрос выбрать название нужного типа запроса.

Далее при выборе запроса на создание таблицы в появившемся диалоговом окне необходимо указать название новой таблицы и ее место расположения. Имя новой таблицы не должно совпадать ни с одним из имен существующих таблиц. В результате выполнения этого запроса в указанной базе данных появится таблица с заданным именем.

Наиболее часто запрос на создание таблицы используются для создания архивов. Например, список образовательных учреждений края ежегодно может корректироваться, поэтому необходимо добавлять и удалять данные из таблицы ОУ. Чтобы не было потери данных, создадим таблицу ОУ в ведомстве культуры и спорта, в которую поместим данные о временно не используемых образовательных учреждениях.





После сохранения запроса на создание таблицы для того, чтобы завершить действие, необходимо его запустить. Для этого необходимо дважды нажать на запрос в списке запросов. При правильном выполнении запроса появится предупредительное диалоговое окно.




Далее необходимо нажать кнопку Да, после этого появится диалоговое окно с записью о том сколько записей будет добавлено в новую таблицу.

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





После сохранения запроса на удаление для выполнения необходимо его запустить. Для этого необходимо дважды нажать на запрос в списке запросов. При правильном выполнении запроса появится предупредительное диалоговое окно.





Далее необходимо нажать кнопку Да, после этого появится следующее диалоговое окно.




Аналогичным образом можно создать запрос на обновление, который позволяет автоматически изменить данные во всей таблице. Например, у некоторых сотрудников не указан пол. При работе с небольшим количеством сотрудников это можно исправить вручную, но если имеем список сотрудников в несколько десятков тысяч человек, то это займет немало времени. Чтобы автоматически добавить пол сотрудников необходимо создать следующий запрос на обновление. При этом если последняя буква отчества сотрудника будет «а», то пол будет обновлен на женский. Для этого с помощью построителя выражений в пустом поле необходимо ввести формулу Right(Trim([Сотрудники]![Отчество]);1). Запрос в режиме конструктора будет выглядеть так:





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

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








Мы получили список кодов сотрудников и количество раз прохождений ими курсов. На основе этого запроса и таблицы Сотрудники можно получить список фамилий сотрудников, которые повторно проходили курсы повышения квалификации.

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

Построение запроса на добавление аналогично запросам на обновление и удаление данных.

Для создания последующих отчетов необходимо добавить данные о прошедших курсах повышения квалификации в отдельную таблицу. Для этого строим следующий запрос. Тип запроса выбираем на добавление данных. В появившемся диалоговом окне необходимо указать имя таблицы, в которую будут помещены отобранные записи. Таблица должна быть создана до запроса. Заметим, что при построении запроса будем использовать и предыдущий запрос. В режиме Конструктор получим следующее:




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





Запросы с записями без подчиненных позволяют в главных таблицах найти те записи, которые отсутствуют в подчиненных. Например, для того чтобы найти всех сотрудников края без образования, которые работают в образовательных учреждениях необходимо написать запрос Без подчиненных, который позволит выбрать всех сотрудников из главной таблицы Сотрудники у которых не будет подчиненных данных в таблице Образование.





Результат выполнения запроса можно увидеть в режиме таблицы.

Перекрестный запрос позволяет размещать данные по строкам и столбцам подобно сводным таблицам в MS Excel. Запрос такого типа можно выполнить с помощью мастера запросов, который вызывается также как и при создании простого запроса. Далее необходимо следовать инструкции мастера.

Также перекрестный запрос можно создав на основе простого запроса на выборку, открыв его в режиме Конструктор и выбрав в пункте меню Запрос тип запроса Перекрестный. В появившейся строке Перекрестный запрос, необходимо указать поля, которые будут заголовками строк и столбцов, а также, поле, чьи значения будут отображаться в таблице. В строке Групповая операция заполняем поля, определяющие условия отбираемых записей.

Например, необходимо узнать количество учителей с различным педагогическим стажем в разрезе территорий. Для этого построим перекрестный запрос на основе уже существующей таблицы Статистика по педстажу, за основу также можно использовать и простой запрос на выборку. Заметим, что первоначальные таблица или запрос должны иметь не менее трех столбцов. В режиме Конструктор мы строим запрос:





В режиме таблицы мы увидим следующий отчет:




Запрос с параметрами отличается от простого запроса тем, что на этапе его выполнения можно вводить значения конкретных полей и получать о них данные. При выполнении такого запроса в диалогом окне Введите значения параметра пользователь вводит конкретное значение для получения результата. Для построения запроса необходимо создать простой запрос на выборку в режиме Конструктор и в строке Условие отбора для нужного поля в квадратных скобках «[]» ввести сообщение, которое увидит пользователь при выполнении запроса. Например, требуется узнать, сколько и каких наград имеют учителя в конкретных территориях.





После запуска такого запроса пользователь увидит сообщение:




После ввода названия конкретной территории, в данном примере «01. г.Анапа» получим следующие данные:





Для удобства ввода и представления данных служат формы. Рассмотрим пример формы для ввода данных о сотруднике образовательного учреждения. Формы можно создавать на основе таблиц или простых запросов на выборку.