Общая характеристика управления базой данных

advertisement
Приложение №5
МОУ «Ангарский лицей №2»
(Для учащихся 11 класса)
Авторы:
Медведева Г.В.,
Трифонова О.Ю.
Ангарск, 2005
1
Общая характеристика управления базой данных
Под базой данных следует понимать совокупность специально организованных
сведений, которые хранятся на каком-либо материальном носителе, например бумаге,
магнитной карте, киноленте.
Виды баз данных:
 Иерархическая – в этой БД все записи связаны в виде древовидной структуры.
 Реляционная – БД с табличной формой организации данных. Реляционная БД
состоит из одной или нескольких взаимосвязанных двумерных таблиц.
 Сетевая – БД с удаленным доступом.
Основным назначением баз данных является быстрый поиск содержащейся в них
информации.
Вкладки окна базы данных
список таблиц
строка меню.
Рис. 1. Окно базы данных Access
Вкладки окна базы данных:
1. Таблица - это объект, предназначенный для хранения данных в виде записей (строк) и
полей (столбцов). Обычно каждая таблица используется для хранения сведений по
одному конкретному вопросу.
2. Форма - объект Microsoft Access, предназначенный в основном для ввода данных. В
форме можно разместить элементы управления, применяемые для ввода, изображения
и изменения данных в полях таблиц.
3. Запрос - объект, позволяющий получить нужные данные из одной или нескольких
таблиц.
4. Отчет - объект базы данных Microsoft Access, предназначенный для печати данных.
Окно базы данных содержит кнопки: Открыть, Конструктор, Создать
Открыть - открытие выбранного объекта.
Конструктор - для модификации выбранного объекта
Создать - создание объекта
Объекты базы данных
Любая база данных, создаваемая на компьютере состоит из простейших объектов,
называемых полем и записью (рис.2). Совокупность полей и записей составляет более
крупный объект – таблицу. Таблица
Запись
Поле
Рис. 2. Объекты базы данных
Поле – простейший объект базы данных, предназначенный для хранения значений
2
параметра описываемого объекта или процесса.
Поле характеризуется следующими параметрами:
 имя поля;
 формат данных;
 тип оформления.
Имя поля состоит из последовательности символов – как правило, из латинских и
русских букв, цифр. Именовать поля принято в соответствии с предполагаемым
назначением. Например, если в поле будет храниться информация о возможных значениях
цвета объекта, то разумнее полю делать имя «Цвет».
Формат данных. Этот параметр поля служит для задания типа данных и характеризуется
тем же набором значений, что и в электронной таблице.
Тип оформления. Определяет внешнее представление данных в поле указанного
формата.
Например, вам нужно создать поле, в котором даты рождения учеников. При создании поля
введите его имя: Дата рождения. Выберите тип данных «дата». В разделе Оформление
(Формат поля) выберите наиболее приемлемый для вас способ записи, например 30.05.98.
Здесь первые две цифры означают день, две средние – месяц, две последние – год в XX
столетии.
Запись – совокупность логически связанных полей, характеризующих свойства
описываемого объекта или класса объектов.
Таблица.
Совокупность экземпляров записи одной структуры называют таблицей. Таблица
является документом базы данных и характеризуется следующими параметрами: именем,
структурой записи, количеством записей.
Имя. Как и любой компьютерный объект, таблица имеет собственное имя. Под этим
именем она хранится в памяти компьютера.
Структура записи. Этот параметр определяется количеством полей, которые
соответствуют параметрам объекта. Каждое поле имеет свой формат и тип данных.
Количество записей. Данный параметр указывает на то, сколько экземпляров записи
содержит в себе таблица.
Структура базы данных – набор поименованных полей, описывающих свойства
объектов одного класса.
Структуру базы данных можно неоднократно редактировать, то есть удалять поля,
добавлять новые, изменять их параметры.
Создание таблицы с помощью Мастера
При создании таблицы с помощью Мастера предлагается более 40 образцов таблиц,
предназначенных для использования в личных или деловых целях, каждая из которых
содержит соответствующий набор полей
Остается выбрать образцы полей, после чего Мастер автоматически создает таблицу.
Задание №1
1. В окне <База данных> (рис. 1) нажмите кнопку Таблица (скорее всего вкладка Таблица в
настоящий момент активна), а затем кнопку Создать.
2. В
окне
диалога
<Создание таблицы>
нажмите
кнопку
Мастер.
3. В
окне
диалога
<Создание таблиц>
выберите
Образец
таблиц
Адреса
(самый первый в
списке).
3
4. Далее нужно определить перечень полей, которые вы хотите включить в таблицу. Для
этого поочередно выделяйте мышью имя поля в списке образцов полей и нажимайте
кнопку, чтобы образец поля попал в список полей новой таблицы.
5. Выберите следующие поля: КОДАДРЕСА, ФАМИЛИЯ, ИМЯ, ДомашнийТЕЛЕФОН, АДРЕС.
6. Нажмите кнопку Далее. До тех пор, пока активна кнопка Далее, пользуйтесь ею,
кнопку Готово применяйте только для завершения работы с Мастером.
7. В следующем окне диалога введите имя таблицы (можно оставить предлагаемое АДРЕСА) и разрешите Microsoft Access самостоятельно определить ключ (т. е. в этом
окне не придется ничего вводить).
8. В последнем окне диалога согласитесь на Непосредственный ввод данных в таблицу.
9. Нажмите кнопку Готово.
10. В созданной таблице наберите 5 записей.
11. Сохраните базу данных в своей папке.
Создание таблицы в окне конструктора
Режим конструктора предназначен для создания и изменения таблицы.
Окно конструктора таблицы содержит: Имя поля, Тип Данных и Описание.
Имя поля.
Имя каждого из полей таблицы, как правило, выбирается произвольно, но таким образом,
чтобы отразить характер информации, которая будет храниться в данном поле. Требования к
имени поля:
 может содержать до 64 символов;
 может содержать буквы, цифры, пробелы и специальные символы за исключением точки,
восклицательного знака и скобок [];
 не может начинаться с пробела;
 два поля в одной таблице не могут иметь одинаковых наименований.
Тип данных.
 Счетчик – специальный тип данных для уникальных (не повторяющихся в поле)
натуральных чисел с автоматическим наращиванием. Для порядковой нумерации
записей;
 Текстовый – для хранения текста;
 Поле Memo – для хранения больших объемов текста;
 Числовой – для хранения чисел;
 Дата/время – для хранения календарных дат и текущего времени;
 Денежный – для хранения денежных сумм;
 Логический – для хранения логических данных(могут принимать только два
значения, например Да или Нет);
Задание: Создайте структуру базы данных, отражающую основные антропометрические
сведения о каждом ученике в вашем классе, по следующим параметрам: фамилия, имя,
количество полных лет, средний балл успеваемости, рост, вес, увлечения.
Технология работы
1. Запустите СУБД.
2. Создайте новую базу. Задайте имя БД Baby.
3. В открывшемся выберите вкладку Таблица.
4. Нажмите кнопку Создать.
5. Выберите режим Конструктор. Откроется диалоговое окно Таблица 1:
4
 Введите в столбец Имя поля конкретное значение. Например, для поля, описывающего
фамилию учащегося, задайте имя поля Фамилия;
 В столбце Тип данных задайте соответствующий тип данных (в дальнейшем – формат).
Для поля Фамилия выберите формат текстовый;
 В столбце Описание введите описание данных, помещаемых в это поле. Текст описания
будет выводиться в строке состояния при добавлении данных в поле, а также будет
включен в описание объекта таблицы. Ввод описания является необязательным.
 Аналогично проделайте описанную операцию для остальных полей, устанавливая
параметры:
Имя поля
Полных лет
Рост
Вес
Средний балл
Тип данных
Числовой
Числовой
Числовой
Числовой
Увлечение
Адрес
Оформление
Целое число десятичных знаков 0
Целое число десятичных знаков 0
Целое число десятичных знаков 0
С плавающей точкой (4 байт) число
десятичных знаков 1
Текстовый
Текстовый
6. Завершите создание базы данных. Для этого щелкните по кнопке Закрыть.
7. Задайте имя таблице Карта.
Вставка в поле значения по умолчанию
Данное свойство поля незаменимо в том случае, если значения, содержащиеся в каком
либо из полей, часто повторяются. Часто повторяемое значение можно ввести в свойство
поля. Для заполнения поля значением по умолчанию необходимо перейти в раздел «Общие»
данного поля и в свойстве Значение по умолчанию введите наиболее часто употребляемое
значение данного поля.
8. Добавьте новые поля. Для этого:
 Выберите поле, перед которым (после которого) вы будите осуществлять вставку;
 Выполните команду основного меню Вставка| Строки;
 Укажите, действуя согласно п. 5, параметры вставляемого поля
Вставьте в качестве первого поля базы данных поле:
Имя поля
Номер
Тип данных
Счетчик
Оформление
Новые значения - Последовательные
- После поля Имя вставьте поле:
Имя поля
пол
Тип данных
текстовый
Оформление
Автоматически вводить значения по умолчанию «м»
9. Отредактируйте существующее поле. Для этого:
 Выберете поле Полных лет;
 Измените параметры поля:
 Исходные параметры
Имя поля
Полных лет

Тип данных
Числовой
Оформление
Целое число десятичных знаков 0
После редактирования
Имя поля
Дата рождения
Тип данных
Дата/время
Оформление
Краткий формат даты
Изменение маски ввода
Маска ввода - это шаблон, позволяющий вводить в поле значения, имеющие
одинаковый формат. Маска ввода автоматически изображает в поле постоянные символы.
При вводе данных в поле нет необходимости набирать эти постоянные символы, даже если
они должны быть включены в значение поля: достаточно заполнить пустые позиции в маске
ввода. Кроме того, Microsoft Access не позволит ввести в поле значения, не вписывающиеся в
определенную для этого поля маску ввода.
10. Добавьте новое поле Телефон
Имя поля
Телефон
Тип данных
текстовый
Оформление
Маска ввода (00-00-00)
Для того чтобы изменить маску ввода для телефона, следует:
5
Установите текстовый курсор напротив Маска ввода и преобразуйте исходный
шаблон (!\(999") "000\-0000) в новый (00-00-00), позволяющий вводить в качестве
номера телефона шестизначное число, причем разделительные тире будут вставляться
автоматически.
Ввод и редактирование данных в режиме таблицы
Режим таблицы предназначен для ввода данных, их просмотра и редактирования.
Задание: Заполните структуру базы данных, создав пять экземпляров записи согласно
образцу на рис.3.
Номер Фамилия
Имя
Пол Дата рождения Рост Вес Телефон
Адрес
1
Иванов
Павел
м
15.05.84
168 65 55-14-23 Ул. Красная, 5,12
2
Семенов Валентин м
03.01.83
171 67 67-34-90 Ул. Титова,12,6
Рис 3. База данных об учениках
Задания для самостоятельной работы №1
Задание 1
1. Создать структуру таблицы
«Ученик» с помощью
конструктора, содержащую следующие поля: фамилия и имя, школа, класс, дата
рождения, вес.
2. Определить первичный ключ таблицы.
3. Добавить в структуру после поля «дата рождения» поле «рост».
4. Определить, значения каких полей для каждого ученика могут меняться в течение
всей его учебы в данной школе. Удалить эти поля из структуры БД.
5. Добавить не менее 5 записей в таблицу.
6. Сохранить базу данных в своей папке.
Задание 2
1. Создать структуру таблицы базы данных «Журнал», содержащую следующие поля: №
по порядку; фамилия; имя; отчество; дата рождения; домашний адрес; телефон;
фамилия, имя, отчество мамы; место работы, рабочий телефон.
2. Определить первичный ключ таблицы.
3. Добавить в структуру после поля «дата рождения» поле «рост».
4. Определить, значения каких полей для каждого ученика могут меняться в течение
всей его учебы в данной школе. Удалить эти поля из структуры БД.
5. Добавить не менее 5 новых записей в таблицу.
6. Сохранить базу данных в своей папке.
Использование форм для ввода и редактирования данных
В MS Access существует два формата отображения содержимого таблицы – в виде
таблицы и в виде формы. Формы являются мощным и гибким средством представления
информации.
1. Для создания формы щелкните по ярлычку Форма и нажмите кнопку Создать.
2. В окне диалога <Новая форма> выберите таблицу Адреса и режим создания
формы – Мастер форм. Нажмите кнопку Ok.
3. В окне диалога <Создание форм> выберите поля текущей таблицы (>> - выбор
всех полей, > - выбор одного поля). Нажмите кнопку Далее.
4. Выберите внешний вид формы - ленточный. Нажмите кнопку Далее.
5. Определитесь с дизайном. Нажмите кнопку Далее.
6
6. Введите название формы или согласитесь с предложенным. Нажмите кнопку Готово.
На экране вы увидите приблизительно следующее:
Представление записей в форме
Каждая запись (то, что являлось отдельной строкой таблицы) теперь представляет собой
как бы отдельную карточку. Вводить данные удобнее именно в таком режиме.
В строке состояния (в нижней части окна формы) отражено общее число записей и номер
записи, которую вы сейчас видите.
Перемещаться между записями можно при помощи
кнопок:
Если кнопки «Вперед» и «К последней записи»
отсутствуют, значит нужно расширить окно формы, а лучше
всего представить его в полноэкранном виде при помощи
кнопки Развернуть или соответствующей команды
системного меню.
Те же результаты можно получить, выполнив команду Перейти меню Записи и выбрав
одну из команд подменю:
Первая - переводит курсор из поля в текущей записи в то же поле 1 первой записи.
Последняя - переводит курсор из поля в текущей записи в то же поле в последней записи.
Следующая - переводит курсор из поля в текущей записи в то же поле в следующей
записи.
Предыдущая - переводит курсор из поля в текущей записи в то же поле в предыдущей
записи.
Новая - переводит курсор на пустую запись в конце формы, позволяя ввести новую
запись.
Задание
1. Пролистайте все имеющиеся записи (просмотрите все карточки)
2. Перейдите к первой записи.
3. Перейдите к последней записи.
Заполнение формы
 Сохраните форму под именем АНКЕТА (то имя, которое вы будете видеть на вкладке Форма в
окне <База данных>). Для сохранения формы выполните команду Сохранить форму в
меню Файл.
 Перейдите к самой последней записи и нажмите кнопку «Вперед на одну запись».
Откроется первая пустая карточка.
 Установите курсор в поле ФАМИЛИЯ и введите фамилию нового ученика в списке.
 Заполните таким образом всю карточку. Перемещаться между полями можно при помощи
клавиши {Tab} или клавиш управления курсором. Заполнив запись, перейти к новой записи
(карточке) можно, нажав клавишу {Enter}.
 Заполните еще три новых записи таким образом, чтобы у вас встречались ученики с
одинаковыми именами.
Пришло время проверить, отобразились ли наши записи в исходной таблице. Для этого:
 Перейдите к окну <База данных>. Сделать это можно, выполнив команду [Окно-База
данных]
 В окне <База данных> выберите вкладку Таблицы и откройте таблицу Адреса.
 Если новые записи не внесены в таблицу, то выполните команду [Записи-Показать все
записи]. Если вы сохранили форму перед тем, как перейти к таблице, то новые записи
будут внесены в таблицу автоматически.
7
Сортировка записей
Записи в таблице можно отсортировать по любому полю. Для этого:
 выберите вкладку Таблицы и откройте таблицу Карта;
 выделите тот столбец, по которому будет проводиться сортировка (в режиме формы
выделите поле);
 меню Записи команда Быстрая сортировка и По возрастанию или По убыванию в
подменю.
Можно нажать одну из кнопок на панели инструментов:
«По
возрастанию»
или «По убыванию» .
Задание для самостоятельной работы №2
1. Представьте форму в режиме Таблицы. Поменяйте местами столбцы «Фамилия» и
«Имя». Переключитесь в режим формы и посмотрите, остались ли поля на старых
местах.
2. Представьте форму в режиме Таблицы. Поменяйте местами столбцы «Телефон» и «Вес».
Переключитесь в режим формы и посмотрите, остались ли поля на старых местах.
3. Отсортируйте записи в таблице таким образом, чтобы фамилии располагались по
алфавиту. Переключитесь в режим формы и проверьте, сохраняется ли расположение
записей.
4. Отсортируйте записи таким образом, чтобы имена располагались по алфавиту.
Переключитесь в режим формы и проверьте, сохраняется ли расположение записей.
5. Отсортируйте записи таким образом, чтобы номера располагались то убыванию.
Переключитесь в режим формы и проверьте, сохраняется ли расположение записей.
Поиск записей
Предположим, в вашей базе данных накопилось довольно много учащихся и вдруг
срочно понадобилось найти одного из них. Вы точно помните имя, остальная информация
довольно расплывчата.
Можно пролистывать все записи подряд и искать нужного учащегося. Но представьте,
что у вас уже накопилось порядка сотни записей, а если больше? В этом случае поиск займет
довольно много времени.
Средствами Microsoft Access можно организовать поиск намного эффективнее.
1. Установите курсор в поле Имя.
2. Меню Правка команда Найти или воспользуйтесь кнопкой панели инструментов .
Если открывшееся окно диалога <Поиск в поле: Имя> загораживает форму, обязательно
«отодвиньте» его, чтобы можно было прочитать данные формы (рис 4.).
Рис. 4
3. В качестве образца поиска введите имя, которое хотите найти (рис. 5). Выберите имя,
которое повторяется в ваших записях. Нажмите кнопку Найти далее.
8
Рис. 5
В вашей форме, расположенной «под» окном Поиска, на первом плане будет размещена
запись с соответствующим именем. Читайте, тот ли это ученик. Если не тот, то нажмите
кнопку Поиск далее, и программа найдет еще одного адресата с таким же именем (если он
есть). Таким образом, можно просмотреть всех адресатов с выбранным именем и найти
нужного.
4. Если вы нашли своего ученика, окно диалога <Поиск> можно закрыть.
Поиск осуществляется только среди данных поля Имя (того поля, в которое
предварительно установлен курсор). Происходит это за счет того, что переключатель
просмотр установлен в положение Текущее поле. Если переключатель установить в
положение Все поля, то совпадение с образцом будет проверяться по всем имеющимся
полям.
Кроме того, вы имеете возможность выбрать различные варианты совпадения с образцом.
В раскрывающемся списке Совпадение можно выбрать одну из трех возможностей:
 С любой частью поля - совпадения с образцом ищутся в любой части содержимого
поля. Например, для образца «Ира» будут найдены «Кира» и «Ираида».
 Поля целиком - будут обнаружены поля, содержимое которых полностью совпадает с
образцом.
 С начала поля - ищутся совпадения с образцом с начала содержимого поля. Например,
для образца «Ира» будет найдена «Иран; но не «Кира».
 Также существует возможность определить направление поиска. Если вы хотите
организовать поиск с учетом регистра символов, то установите соответствующий флажок.
В этом случае при введенном образце Ира» не будут обнаружены «ира» или «ИРА».
Задание для самостоятельной работы №3
 Найдите ученика, зная только его фамилию.
 Определите, кто вам звонил, если на вашем телефонном определителе номера остался
номер телефона звонившего.
 Найдите ученика, зная только первые три цифры его номера телефона.
 Найдите ученика, если вы помните только то, что он живет в каком-то переулке.
 Найдите ученика, если вы помните только номер его квартиры.
 Найдите ученика по первым буквам его фамилии.
 Найдите ученика, если вы помните только то, что ваш номер квартиры входит либо в
адрес, либо в номер телефона адресата.
Фильтрация записей
Способ, рассмотренный в предыдущем упражнении, не всегда самый рациональный.
Предположим, что в вашей базе данных несколько людей с заданными именами.
Пролистывать карточки не особенно удобно. Проще было бы увидеть список сразу всех
адресатов, имеющих нужное имя. Сделать это можно при помощи фильтра.
Фильтр - это набор условий, предназначенный для отбора записей или их сортировки.
1. Представьте форму в режиме таблицы.
9
2. Выполните команду [Записи – Фильтр - Изменить фильтр]. Эта команда
существует для того, чтобы задать условия выбора в окне <Фильтр>.
В верхней части окна <Фильтр> выводится список полей таблицы АДРЕСА, в которые
вводятся условия отбора.
3. Укажите в бланке поле Фамилия, для которого задается условие отбора. Введите
условие отбора для включенного в бланк поля, т.е. введите образец совпадения (имя, которое
ищем) в поле или выберите из списка.
 Выбрать в меню Записи команду Применить фильтр.
 Нажать правую кнопку мыши, установив указатель в окне фильтра, и выбрать в
контекстном меню команду Применить фильтр.
 Результатом явится список всех людей, имеющих заданн ую фамилию. Когда
такой список перед глазами намного проще разобраться, кто есть кто.
Если вы вновь хотите увидеть список всех адресатов, то нужно выполнить команду Удалить
фильтр в меню Записи.
В выражениях для условий отбора допускается использование операторов шаблона.
Приведем некоторые символы шаблона.
Звездочка (*) - заменяет
любую группу любых символов;
может
быть
первым
или
последним символом в шаблоне.
Имея условием «Вас*», будут
отобраны и «Василиса», и
«Василий», и «Васька». Имея
условием «*ова», можно отобрать
все фамилии, оканчивающиеся на
«ова» - «Иванова», «Петрова» и т.
д.
Знак вопроса (?) - заменяет
один любой символ. Если иметь в качестве условия «М?ша», то будут отобраны и «Миша», и
«Маша».
Задание для самостоятельной работы №4
1. Примените к форме фильтр и закройте ее. Вновь откройте ту же самую форму.
Проверьте, сохранился ли отфильтрованный список или показаны все имеющиеся записи и
сохранился ли сам фильтр (можно ли применить ранее созданный фильтр).
2. Используя фильтр, получите список всех адресатов, у которых номер телефона
начинается на три одинаковые цифры, например, 823.
3. Создайте список адресатов, имеющих мужские фамилии, оканчивающиеся, например,
на «ый».
4. Создайте список адресатов, у которых имена оканчиваются на «я».
5. Задайте фильтр таким образом, чтобы в списке оказались адресаты, имеющие номера
телефонов и 823-87-45, и 856-87-23.
Выбор данных из таблиц с помощью запросов
Запрос — это средство извлечения информации из базы данных, отвечающей некоторым
условиям, задаваемым пользователем. Результат запроса (назовем его справкой) обычно
выводится в виде таблицы, все записи которой удовлетворяют заданным условиям.
Виды запросов:
10

на выборку – позволяет выбрать данные из полей таблицы, на основе которых
создан запрос;
 удаление – позволяет удалять данные из таблиц по условию;
 добавление – позволяет добавлять записи в таблицу из других таблиц текущей базы
данных или других баз данных;
 обновление – позволяют автоматизировать заполнение полей таблиц;
 перекрестные – позволяет создавать результирующие таблицы на основе
результатов расчетов, полученных при анализе группы таблиц
При создании запроса нам необходимо выполнить 4 базовые операции:
1. указать поля и таблицы, которые мы хотим включить в запрос;
2. описать вычисляемые поля;
3. описать групповые операции над записями исходных таблиц (например
просуммировать записи или найти максимальное или минимальное значения поля);
4. указать условие отбора.
Условие поиска — логическое выражение.
Простое логическое выражение представляет собой либо операцию отношения (>, <
=, >, < ,<>), либо поле логического типа.
Сложное логическое выражение содержит логические операции «AND», «OR»,
«NOT».
Окно конструктора запросов
Создайте БД «Репертуар кинотеатров на неделю»
Кинотеатр
Фильм
Время Стоимость (руб)
Родина
Приключения Буратино 11.00 20
Родина
Титаник
13.00 100
Родина
Титаник
17.00 150
Родина
Звездный десант
21.00 100
Мир
Ну, погоди!
11.00 20
Мир
Титаник
13.00 100
Мир
Вор
17.00 50
Задание №1. Создать запрос для получения справки о всех сеансах, стоимость билетов на
которых < 100 рублей. Используется простое логическое выражение.
 Выберите опцию Создание запроса в
режиме конструктора
 Выберите таблицу на основании которой
будет осуществляться выборка, нажать
кнопку Добавить.



Выбрать
необходимые поля
Записать условие
отбора
Выполните
команду Запуск
11
Задание №2. Сформировать запрос, с помощью которого можно будет вывести на экран
названия кинотеатров и стоимость билетов на сеансы, начинающиеся в 13.00, на которых
демонстрируются фильмы «Титаник» или «Вор». Используется сложное логическое
выражение.
Условие поиска будут выглядеть следующим образом:
Выполните команду Запуск
Задание №3. Арифметические выражения в запросах
Создайте БД «Магазин» (количество товара дано в кг).
Сформировать запрос, с помощью которого на экран
будут выведены сведения о товарах с общей стоимостью от
1000 до 2000 рублей (включительно), причем на экран
должны быть выведены названия товаров и их общая
стоимость.
Решение.
 Нажмите кнопку Создание запроса в режиме конструктора.
 Выберите каждую из таблиц и нажмите кнопку Добавить (или дважды щелкните по
названию каждой таблицы). В нашем случае добавим таблицу Товар.
 Закройте окно диалога <Добавление таблицы>.
 Активизируется окно <3апрос-выборка>.
 Перетащите имя поля Товар из списка полей таблицы Т ОВАР в первую клетку
строки Поле бланка запроса (в нижней половине окна). Таким же образом перетащите
в следующие ячейки строки Поле Количество, Цена. Вместо перетаскивания
можно использовать двойной щелчок мыши по имени поля.
Условие поиска будут выглядеть следующим образом:
Вычисляемое поле стоимость:[количество] *[цена]
Условие > 1000 AND < 2000.
При формировании списка выводимых полей следует указать поля Товар и Стоимость.
Второе поле будет вычисляемым, так как оно создается временно, только для получения
ответа на запрос, и в самой базе не хранится.
Выполните команду Запуск
12
Отсортируйте имеющийся список по наименованиям товара. Для этого:
* вернитесь в режим конструктора запроса ([Вид-Конструктор]);
* щелкните мышью в строке Сортировка под именем поля ТОВАР. Появится кнопка,
раскрывающая список возможных сортировок;
* выберите По возрастанию. Заново выполните запрос.
* закройте запрос, сохранив его под именем СТОИМОСТЬ.
Задание для самостоятельной работы №5
Создание и редактирование структуры таблицы БД
1. Создать структуру таблицы базы данных «Ученик», содержащую следующие поля:
фамилия, имя, школа, класс, дата рождения, вес.
2. Добавить в структуру после поля «дата рождения» поле «рост»
3. Удалить поле «класс» из структуры БД.
4. Открыть в режиме «Таблица» базу данных
5. Ввести в таблицу 10 произвольных новых записей.
6. Удалить из таблицы первую и последнюю записи.
7. В режиме «Таблица» вывести на экран только поля «Фамилия», «дата рождения»,
«рост»
Создание форм и редактирование данных в режиме «форма»
1. Открыть БД «Ученик»
2. Создать форму, содержащую следующие поля: фамилия, школа, дата рождения.
3. Ввести две новых записи
Создание запросов
1. Сформировать для БД «Ученик» запрос, с помощью которого на экран будут выведены
фамилия, имя, школа и дата рождения учащихся младше 1988 г., но не старше 1984 г для
школы №25.
2. Отсортировать по полю Фамилия
3. Вывести поля фамилия и школа. Заменить номер школы 25 на номер 1
4. Оставить в БД записи по школам 1 и 36, остальные удалить.
Задание для самостоятельной работы №6
Формирование простых запросов
1. Открыть БД «Спортсмен».
2. Сохраните БД в своей папке.
3. Вывести на экран поля «фамилия» и «страна» для спортсменов из Франции.
4. Вывести на экран поля «фамилия» и «место» для спортсменов США, занявших 1 место.
5. Заменить название страны на «Германия» для всех спортсменов из ФРГ.
6. Удалить из базы всех спортсменов, кроме тех, кто занимается легкой атлетикой.
Формирование сложных запросов
1. Открыть БД «Абитуриент».
2. Вывести на экран поля «фамилия», «имя», «пол», «факультет» и «дата рождения» для всех
абитуриентов биологического и математического факультета, окончивших школу №6.
3. Вывести на экран поля «фамилия», «имя» и «дата рождения» для абитуриентов,
родившихся в периоды с 15.01.81 по 15.06.81 и с 15.01.82 по 15.03.82.
4. Вывести на экран поля «фамилия», «имя», «пол» и «курсы» для девушек-абитуриенток,
окончивших подготовительные курсы и для всех юношей-абитуриентов (независимо от
окончания подготовительных курсов).
5. Удалить из БД всех абитуриентов физического и биологического факультета, окончивших
подготовительные курсы.
Задание для самостоятельной работы №7
Использование вычисляемых полей
1. Откройте БД «Спортивная гимнастика».
2. Сохраните БД с именем sport.mdb в своей папке.
3. Вывести на экран фамилию и общую сумму баллов для всех спортсменов, набравших в
сумме более 28 баллов.
13
4. Вывести на экран фамилию и среднюю сумму баллов для спортсменов из США, России и
Украины.
5. Вывести фамилии и средний балл за все снаряды для спортсменов, у которых средний
балл за все снаряды выше 9.225.
6. Вывести фамилии, средний балл за все снаряды и количество баллов за снаряд
«перекладина» для спортсменов, у которых средний балл за все снаряды выше, чем балл
за перекладину.
7. Удалить из таблицы записи о спортсменах с суммой баллов менее 27.
Создание отчета
Перед выводом базы данных на печать следует установить, в каком виде (таблица,
форма) она должна быть представлена на листе бумаги, какие в ней должны присутствовать
поля и записи. Этот процесс называется созданием отчета. Для создания отчета по базе
данных следует:
1. В окне База данных активизировать вкладку Отчет и щелкнуть на кнопке Создать.
2. В окне Новый отчет выбрать вариант Мастер отчетов; из списка Выберите в качестве
источника, щелкнув на кнопке со стрелкой, направленной вниз, щелчком выбрать имя
созданной нами таблицы; щелкнуть на кнопке ОК.
3. В первом .окне Мастера отчетов с помощью кнопки «>» выбрать имена полей из списка,
которые следует включить в будущий отчет; щелкнуть на кнопке Далее.
4. Во втором окне Мастера отчетов произвести, если это необходимо, группировку полей;
щелкнуть на кнопке Далее.
5. В третьем окне Мастера отчетов, щелкнув на кнопке со стрелкой, направленной вниз,
выбрать щелчком имя поля, по которому следует провести сортировку данных (если это
нужно); щелкнуть на кнопке Далее.
6. В четвертом окне Мастера отчетов выбрать подходящий вариант оформления отчета и
ориентацию листа бумаги в принтере (книжная — строки печатаются вдоль узкой
стороны листа, альбомная — вдоль широкой стороны); щелкнуть на кнопке Далее.
7. В пятом окне Мастера отчетов выбрать стиль (внешний вид) отчета; щелкнуть на кнопке
Далее.
8. В шестом окне Мастера отчетов ввести заголовок будущего отчета; щелкнуть на "кнопке
Готово.
Созданный таким образом отчет можно напечатать командой Файл, Печать. Если
щелкнуть на кнопке W, расположенной на панели инструментов, отчет будет
импортирован в программу MS Word.
Задание для самостоятельной работы №8
Фамилия
Алешин
Сергеев
Иванов
Семенов
Михайлова
Дмитриев
Атомин
Имя
Анатолий
Ольга
Петр
Виталий
Анастасия
Никита
Станислав
Должность
Директор
Бухгалтер
Менеджер
Менеджер
Менеджер
Секретарь
Техн. работник
Оклад
1000
890
600
600
600
400
350
1. Создайте на основе предложенной таблицы базу данных в виде таблицы.
2. Название таблицы — «Персонал».
3. Отфильтруйте базу данных, выбрав записи о тех сотрудниках, у которых оклад больше
400.
4. Проведите сортировку данных так, чтобы фамилии были расположены по алфавиту.
5. Подготовьте по базе отчет с заголовком «Данные по зарплате». Параметры отчета: имеет
вид таблицы; включает поля «Фамилия», «Должность» и «Оклад»; фамилии расположены по
алфавиту; ориентация листа — альбомная.
Связь между таблицами и целостность базы данных
14
Между одноименными полями двух таблиц MS ACCESS автоматически устанавливает связь. Это
значит, что можно данные из обеих таблиц объединять. Одна из этих таблиц называется – главной, а
другая – подчиненной.
Существует два типа связи между таблицами:
Один – к – одному – каждому значению в одноименном поле одной таблицы соответствует одно
значение в подчиненной таблице.
Один – ко – многим – каждому значению в одноименном поле одной таблицы соответствует
множество значений в подчиненной таблице.
Целостность данных . Механизм, который обеспечивает согласованность данных между двумя или
несколькими связанными таблицами называется поддержкой целостности данных.
Целостность данных означает:
1. В связанное поле подчиненной таблицы можно вводить только те значения, которые имеются в
связанном поле главной таблицы.
2. Из главной таблицы нельзя удалить запись, у которой значение связанного поля совпадает
хотя бы с одним значением того же поля в подчиненной таблицы.
Для того, чтобы установить связи между таблицами откройте меню Сервис – Схема данных
Окно Схемы данных
Включив механизм поддержки целостности данных, можно потребовать, чтобы при изменении
данных система запускала следующие процессы:
Каскадное обновление связанных полей – изменение значения в связанном поле главной таблицы,
будет отражено в связанных записях подчиненной таблицы;
Каскадное удаление связанных записей -- при удалении записи из главной таблицы, из подчиненной
будут удалены все записи, у которых значение поля совпадает с удаляемыми.
Пример 1. Спроектировать БД «Поликлиника», в которой будут храниться сведения о
посещении пациентами врачей-терапевтов районной поликлиники.
Решение. Выполним проектирование БД «интуитивным» методом. Очевидно, в базу должны
быть включены сведения о фамилии пациента и врача, дате посещения, поставленном 15
диагнозе. Кроме того, обычно каждый врач работает на определенном участке, и каждый
пациент прикреплен к одному участку. Помимо фамилии пациента врачу часто необходимы
сведения о дате рождения. Можно включить в БД и другие сведения о пациенте (адрес,
место работы, должность и т. д.). Но в условии задания было сказано, что мы хотим хранить
только сведения о посещении пациентами поликлиники. Поэтому сведения об адресе
проживания пациента не являются необходимыми (в базе не будут храниться сведения о
вызовах врача на дом). Сведения о месте работы и должности обычно интересуют врачей
ведомственных поликлиник, поэтому их тоже не будем включать в БД.
Таким образом, получаем БД в виде одной таблицы, состоящей из 6 полей: фамилия
пациента, дата рождения, номер участка, фамилия врача, дата посещения, диагноз. Вот,
например, как может выглядеть такая таблица после заполнения:
БД «Поликлиника»
Полученная в предыдущем примере база данных обладает рядом недостатков. Например,
очевидна некоторая избыточность информации (повторение даты рождения одного и того же
человека; повторение фамилии врача одного и того же участка). Для избавления от
недостатков БД должна быть нормализованной. Обычно в результате нормализации
получается многотабличная БД.
БД может считаться нормализованной, если выполнены следующие условия:
1) каждая таблица имеет главный ключ,
2) все поля каждой таблицы зависят только от главного ключа целиком (а не от его части и
не от других полей),
3) в таблицах отсутствуют группы повторяющихся значений.
Полученная база данных еще не нормализована. В чем недостатки таких БД? Прежде
всего —в возможности нарушения достоверности данных. Например, если на втором
участке сменится врач, то придется просматривать всю БД и вносить соответствующие
изменения во все записи с данным участком. При большом объеме ввода информации часто
допускаются ошибки и вполне возможно, что в каких-то записях фамилия врача будет
искажена. Далее очевидно, что один и тот же пациент может посещать врача любое
количество раз. И каждый раз нужно заново вводить его фамилию и дату рождения, что
влечет за собой не только увеличение вероятности ошибок при вводе, но и требует
дополнительного времени ввода и объема памяти для хранения. Нормализуем данную базу
данных, чтобы исправить эти недостатки.
Пример 2. Нормализовать БД «Поликлиника».
Решение. Прежде всего определим главный ключ таблицы. Очевидно, что поле фамилия
пациента для этой цели не годится, так как один пациент может посещать врача несколько
раз. Придется создавать составной главный ключ: фамилия пациента + дата посещения.
Очевидно, что в базе есть поле, которое вообще не зависит от главного ключа. Это поле
фамилия врача, которое зависит от номера участка. Поэтому создадим новую таблицу,
состоящую из полей номер участка и фамилия врача. Кроме этого видно, что значения
полей дата рождения и номер участка зависят не от главного ключа целиком, а только от
его части (поля фамилия пациента). Очевидно, что эти поля нужно тоже выделить в
отдельную таблицу. Эта таблица будет состоять из трех полей: фамилия пациента, дата
рождения, номер участка.
Таким образом, в результате нормализации получаем БД, состоящую из трех таблиц:
16
Таблица «Посещения»
Таблица «Врач»
Таблица «Пациент»
Для успешной работы с многотабличными базами данных обычно требуется установить
между ними связи. Связь создается парой полей, одно из которых находится в главной
таблице, а другое — в подчиненной. Эти поля могут содержать повторяющиеся значения.
Когда значение в связанном поле записи базовой таблицы совпадает со значением в
связанном поле подчиненной, то эти записи называются связанными.
Если связанное поле подчиненной таблицы содержит только уникальные значения, то
создается связь «один-к-одному». Если это поле может содержать повторяющиеся значения,
то создается связь «один-ко-многим».
Пример 3. Связать между собой таблицы БД «Поликлиника».
Решение. В качестве базовой таблицы возьмем таблицу «Пациент». С таблицей
«Посещения» свяжем ее через поле фамилия пациента, с таблицей «Врач» — через
поле номер участка. Тип связи в первом случае - - «один-ко-многим», во втором —
«один-к-одному».
При формировании запросов к многотабличным базам данных нужно указывать, к какой
таблице относится то или иное поле. Обычно название таблицы отделяется от названия
поля точкой. Конечно, формирование запросов с использованием полей из различных БД
имеет смысл только в том случае, если между этими таблицами установлены связи.
Пример 4. Какие сведения о посещении пациентами ДД- поликлиники будут
выведены на экран, если в запросе /• к БД «Поликлиника» указано следующее
условие поиска:
пациент, номер участка = 2 И посещения, дата посещения
> 01.06.98
Решение. Очевидно, что для получения ответа на этот запрос потребуется информация из
двух таблиц —«Посещения» и «Пациент». Будем считать, что связь между ними уже
установлена (как это было описано в примере 3). В результате получим следующую
итоговую таблицу:
17
Download