Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс лекцій з дисципліни Інформатики та ОТ.doc
Скачиваний:
19
Добавлен:
11.11.2019
Размер:
3.68 Mб
Скачать

Лекция №7

Тема: Программный комплекс Access. Системы управления базами данных (СУБД). Создание таблиц и запросов. Реляцонные связи.

Цель: Изучить принципы построения базы данных. Ознакомиться с программным комплексом Access. Научиться конструировать фильтры и запросы для поиска информации в базе данных.

Вопросы, которые будут рассмотрены на лекции.

  1. Программа управления базами данных Access.

  2. Типы данных.

  3. Создание БД в режиме Конструктора.

  4. Создание таблиц и запросов.

Microsoft Access XP — профессиональная программа управления базами данных. С ее помощью можно накапливать и систематизировать разнообразную информацию, искать и сортировать объекты согласно выбранным критериям, конструировать удобные формы для ввода данных и генерировать на основании имеющихся записей прекрасно оформленные отчеты. Access обеспечивает одновременный доступ к данным десяткам пользователей.

Работа с БД состоит из следующих этапов:

1) создание структуры БД;

2) ввод данных;

3) редактирование структуры и данных;

4) нахождение информации в БД;

5) оформление отчетов.

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

Таблица состоит из строк и столбцов. Строки называются записями.

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

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

Тип данных определяет вид и диапазон значений, которые могут содержаться в данном поле. Microsoft Access предлагает следующие типы данных.

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

Числовой — тип данных для хранения числовых значений, используемых в математических расчетах. Данные этого типа могут содержаться в 1, 2, 4, 8 байтах в зависимости от значения поля Размер поля.

Поле Memo — специальный тип данных для хранения больших объемов информации, по объему превышающей 255 символов. Это поле может содержать до 65535 символов.

Дата / время — тип данных для хранения календарных дат и текущего времени.

Денежный тип — тип данных для хранения денежных значений, точность представления которых колеблется от 1 до 4 знаков после запятой. Целая часть может содержать до 15 десятичных знаков. Длина поля 8 байт.

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

Логический тип — специальный тип данных, имеющий только два значения, интерпретируемых как Да/Нет, Истина/Ложь, Вкл/Выкл. Длина поля 1 байт.

Поле объекта OLE — содержит ссылку на OLE-объект, например документы Microcoft Word, Microcoft Excel, звук, изображение и другие виды объектов. Ограничено дисковым пространством.

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

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

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

Формат поля — определяет способ формирования данных в данном поле таблицы.

Число десятичных знаков — определяет количество знаков после запятой для полей числового и денежного типа.

Маска ввода — определяет форму ввода данных в поле и облегчает контроль за вводимыми символами.

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

Значение по умолчанию — указывает значение, автоматически вводимое и поле при создании новой записи.

Условие назначения — ограничение, накладываемое на вводимые в данное поле данные.

Сообщение об ошибке — это текст сообщения, которое будет выводиться в случае нарушения условия назначения.

Обязательное поле — определяет, является ли ввод данных в это поле обязательным.

Индексированное поле — определяет, является ли данное поле индексированным. Индекс ускоряет все операции, связанные с сортировкой, группировкой или поиском записей по значению.

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

Имя поля

Тип поля

Значение поля

Номер

Счетчик

7

Фамилия

Текстовый

Боженко

Телефон

Числовой/Текстовый

972216

Дата рождения

Дата

24.12.75

О себе

МЕМО

Текст про хобби

Оклад

Денежный

290 грн.

Премии

Логический

Есть или нет

Биография

Гиперссылка

Текстовый файл

Фотография

Объект OLE

Графический файл

Должность

Мастер подстановки

Инженер

Имя полю дает пользователь, названия типов - стандартные, а значения полей вытекают из содержания конкретной задачи.

Рассмотрим, как создать базу данных, состоящую из одного или нескольких таблиц. Для этого после запуска программы Access необходимо выполнить следующую последовательность команд:

В окне Microsoft Access включить первую кнопку Новая база данных – нажать ОК - Выбрать нужную папку и ввести имя файла - Создать - В полученном главном окне базы (рис. 7.1.) данных активизировать закладку - Таблицы - Создать.

Есть несколько способов создания таблиц:

режим таблицы;

конструктор таблицы;

мастер таблицы;

импорт таблицы.

Работа пользователя состоит из двух этапов: создание структуры таблицы с помощью конструктора и ввода данных в таблицу в режиме таблицы. Чаще структуру создают командой Конструктор таблицы.

В режиме конструктора пользователь задает:

названия полей ввода названий;

тип данных методом выбора типа из предложенного списка;

описания полей, которые являются необязательными;

свойства полей (только в случае необходимости) методом заполнения таблицы свойств (рис. 7.2.)

Рис. 7.1. Окно базы данных

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

Структуру в любое время можно модифицировать. В ранее созданную структуру поле можно вставить командой Вставить/Строки. Выделенное поле изменяют командой Изменить/Удалить строки.

Чтобы ввести данные в таблицу, ее нужно открыть в режиме таблицы с главного окна базы данных: Вкладка Таблицы - Выберите название - Открыть.

Рис.7.2. Создание таблицы в режиме Конструктор

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

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

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

  2.  Добавьте несколько записей в соответствии с рис 7.3.

Рис 7.3. Таблица данных

Реляционные таблицы

Две или более таблицы, которые имеют поля с однотипными данными, между которыми установлена ​​связь, называются реляционными. Примеры реляционных таблиц: Оценки и адреса, Оценки и Телефоны, Клиенты и Заказы. Первая пара таблиц характеризуется связью друг к другу по полю Номер, вторая и третья - один ко многим по полям Фамилия и адресам. Такие связи устанавливаются при создании подчиненной формы или запроса на отыскание записей без подчиненных. Реляционные связи позволяют свести к минимуму дублирование одних и тех же данных (полей) в разных таблицах.

Для реляционной связи обычно используют поле таблицы, значения в котором не повторяются, например, поле типа счетчик, числовое поле с персональными номерами сотрудников и т.д. (поле с фамилиями не подходит, ибо в БД могут быть люди с одинаковыми фамилиями). В конструкторе таблицы такому полю присваивают ключ (командой из главного меню Правка/Ключевое поле или командой из контекстного меню поля). Соответствующее поле второй таблицы может быть неключевым - оно называется полем внешнего ключа.

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

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

Рис. 7.4. Диалговое окно «Изменение связей»

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

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

Работа с фильтрами и запросами

Базы данных могут содержать тысячи и десятки тысяч записей.

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

Для отыскания нужных данных используют команду Найти, а также фильтры и запросы.

Команда Правка/Найти позволяет найти записи в большой таблице по некоторым несложным условиям поиска во всей базе или в конкретном поле.

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

1) выполнить команду основного меню Запись / Фильтр;

2) выполнить команду из контекстного меню;

3) использовать кнопки команд на панели инструментов:

♦ Фильтр по выбранному ;

♦ Изменить фильтр (фильтр по форме) :

♦ Расширенный фильтр;

♦ Применить/Удалить фильтр .

Использование кнопок, вы узнаете, выполняя работу. Во время экспериментов используйте команду-кнопку Удалить фильтр, чтобы вернуть первоначальное отображения таблицы.

Рис. 7.5. Использование фильтра «Изменить фильтр»

Преобразование фильтра в запрос

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

  1. Командой Записи/Фильтр/Расширенный фильтр активизируйте окно сложного фильтра, созданного в предыдущем упражнении.

  2.  Выполните команду Файл/Сохранить как запрос.

  3.  В открывшемся окне диалога введите имя Фильтр и щелкните на кнопке ОК.

  4. Закройте окно фильтра.

  5.  В окне базы данных появился новый запрос с названием Фильтр. Дважды щелкните на значке этого запроса.

Откроется окно результата выполнения запроса, записи которого будут повторять записи фильтрованной таблицы Адреса. Этим запросом можно пользоваться когда угодно, выводя на экран записи, отобранные по соответствующим критериям. Более того, любой запрос можно превратить в фильтр. Это делается следующим образом.

  1.  Щелчком активизируйте окно таблицы Адреса (если таблица закрыта, откройте ее).

  2.  Чтобы назначить новый фильтр (и стереть предыдущий), щелкните на ячейке с фамилией Петров правой кнопкой мыши и выберите в контекстном меню команду Исключить выделенное. В таблице останутся только те записи, в поле Фамилия которых нет фамилии Петров.

  3.  Щелчком на кнопке Удалить фильтр отмените фильтрацию данных. Теперь давайте вернем прежний сложный фильтр.

  4.  Выберите команду Записи/ Фильтр/Расширенный фильтр. 

  5.  Выберите команду Файл/Загрузить из запроса.

  6.  В открывшемся окне диалога выделите запрос Фильтр и щелкните на кнопке ОК.

Старые условия фильтрации появятся в бланке окна фильтра. Теперь для применения сохраненного фильтра достаточно щелкнуть на кнопке Применение фильтра панели инструментов.

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

Рассмотрим примеры простых условий:

  1. для числовых полей: = 5 или 5,> 3, <= 5, <> 3 (не 3);

  2. для текстовых полей: "Артист" или Артист, Like [А-Г] - фамилии, начинающиеся на А, Б, В, Г; Like "Ар *" или Ар * - слова, начинающиеся на Ар; 69? ??? - Шестизначные номера телефонов, начинающиеся на 69 и т.д.

  3. для полей типа даты: 21/4/85 или 21.4.85, <date () - все даты до вчерашнего включительно, поскольку date () имеет значение сегодняшней даты.

Условия записывают согласно правилам языка SQL (Structured Query Language).

Составные условия - это условия, построены из простых с помощью логических операций not (не), and (и), or (или). Например, not 2; between 3 and 5, 3 or 4 or 5; Таня or Иpa; between date ()-30 and date () - даты за прошедшие 30 дней от сегодняшней, between 21/4/99 and 21/5/99 - между двумя датами.

В конструкторах фильтров и запросов условия вводят в строку условий. Условия, касающиеся различных полей и имеют союз (логическую операцию) "и", записывают в одной строке конструктора условий. Условия, которые касаются одного поля и имеют союз "или", располагают одну под другой.

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

Различают несколько типов запросов. Самым простым является обычный запрос (другое название запрос на выборку), который отображает на экране выбранные из БД записи. Эти запросы не изменяют таблицы БД.

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

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

Рис.7.6. Создание запроса с помощью мастера

Чтобы создать запрос вручную, нужно выполнить следующую последовательность команд, стартуя из главного окна базы данных:

Окно БД/Запросы/Создать/Конструктор/ОК/Добавляют таблицу, например, Оценки закрывают окно Добавить таблицу.

Получают окно (бланк) конструктора запросов, который нужно будет заполнить. Конструирование запроса состоит из нескольких этапов.

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

  2. Задают, если нужно, режим упорядочивания записей (методом выбора режима из списка) и режим отображения полей на экране.

  3. Вводят критерии поиска в строку условий.

  4. Чтобы запустить запрос на выполнение, выполняют команды Запрос/Запуск или нажимают на кнопку запуска, на которой нарисованы восклицательный знак (!)

  5. Для редактирования запроса нужно вернуться в режим конструктора.

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

  7. Когда запрос готов, закрывают конструктор с сохранением запроса с некоторой названием файла БД.

Общая схема работы с запросами на внесение изменений такова:

  1. выполняют обычный запрос на выборку записей;

  2. меняют тип запроса, например, на создание новой таблицы;

  3. запускают запрос на выполнение - будет создана новая таблица с отобранными записями.

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

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

Рис. 7.7. Создание запроса с помощью конструктора

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

  2. Переместите указатель на пункт Имя таблицы Телефоны.

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

  4. В раскрывающемся списке третьей ячейки третьего столбца бланка выберите пункт По возрастанию.

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

  1.  Назначьте тот же режим сортировки для поля Имя. Теперь записи результата запроса будут упорядочены по алфавиту фамилий и имен. Имеющийся вариант связи добавляет в результат запроса только те записи связанных таблиц, в которых значения полей НОМЕР равны. Дважды щелкните на линии связи.

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

  3.  Щелкните на кнопке ОК. На одном конце линии связи появится стрелка, указывающая на смену режима объединения.

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

  1. Щелчком на кнопке Вид панели инструментов запустите запрос повторно. Закройте окно запроса.

  2. В ответ на вопрос о необходимости сохранения новой структуры запроса ответьте Да.

Условие отбора

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

    1. Выделите в окне базы данных рис. 6 значок запроса Оценки.

Рис.7.8. Окно базы данных – объект запросы

  1. Щелкните на кнопке Конструктор.

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

  3. В левом списке построителя щелкните на папке Операторы.

  4. В среднем списке выберите категорию Сравнения.

  5. В правом списке дважды щелкните на пункте Between, чтобы добавить этот оператор в поле формулы.

  6. Щелчком выделите в поле формулы первое место заполнения «Выражение».

  7. В левом списке построителя выражений двойным щелчком откройте папку Функции.

  8. Щелкните на папке Встроенные функции, содержащей стандартные функции Access.

  9. В среднем списке построителя выражений щелкните на пункте Дата/время.

  10. В правом списке дважды щелкните на функции DateValue, чтобы заменить ею место заполнения «Выражение».

  11. Нажмите два раза клавишу —>, выделив место заполнения «stringexpr».

  12. Введите текст "1.12.92.

  13. Повторяя шаги 7-13, замените второй местозаполнитель «Выражение» на выражение DateValue ("31.12.92").

У вас должна получиться формула Between DateValue ("1.12.92") And DateValue ("31.12.92"). Она проверяет условие нахождения даты в интервале от 1 до 31 декабря 1992 г., то есть отбирает те записи, значение поля Дата которых относится к декабрю 1992 г.

  1. Сбросьте флажок Вывод на экран первого столбца запроса (рис. 7.9.).

  2. Щелчком на кнопке Запуск панели инструментов выполните запрос.

Рис. 7.9. Скрытие поля

Контрольные вопросы

  1. Что представляет собой база данных?

  2. Что представляет собой система управления базами данных (СУБД)?

  3. В каком режиме описывается структура таблицы БД?

  4. Какие типы объектов можно увидеть в окне БД Access?

  5. Какое расширение принято для файлов БД?

  6. Опишите меню и панели инструментов MS Access.

  7. Какое назначение фильтров?

  8. Для чего предназначена команда Применить фильтр?

  9. Какие есть типы запросов?

  10. Как создать запрос?

  11. Как выполнить поиск по текстовому полю?