ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ “МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ” Кафедра «Вычислительные системы и сети» Я.М. ГОЛДОВСКИЙ Базы данных Методические указания к лабораторным работам по дисциплине «Базы данных» Москва – 2015 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ “МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ПУТЕЙ СООБЩЕНИЯ” Кафедра «Вычислительные системы и сети» Я.М. ГОЛДОВСКИЙ Базы данных Рекомендовано редакционно-издательским советом университета в качестве методических указаний для студентов III курса направлений «Информатика и вычислительная техника» и «Информационная безопасность» Москва – 2015 УДК 681.3 Г-60 Голдовский Я.М. Базы данных. Методические указания к лабораторным работам по дисциплине «Базы данных» – М.: МИИТ, 2015. - 41с. Методические указания предназначены для студентов третьего курса направлений « Информатика и вычислительная техника» и ”Информационная безопасность» и необходимы для выполнения лабораторных работ по дисциплине «Базы данных». Приводится необходимая информация для подготовки к работам, порядок выполнения, варианты заданий. Московский государственный университет путей сообщения (МИИТ), 2015 Содержание Лабораторная работа №1 . . . . . . . . . . . . . . . . . . . . . . . . 4 Лабораторная работа №2 . . . . . . . . . . . . . . . . . . . . . . . . 17 Лабораторная работа №3 . . . . . . . . . . . . . . . . . . . . . . . . 22 Лабораторная работа №4 . . . . . . . . . . . . . . . . . . . . . . . . 24 Лабораторная работа №5 . . . . . . . . . . . . . . . . . . . . . . . . 27 Лабораторная работа №6 . . . . . . . . . . . . . . . . . . . . . . . . 30 Лабораторная работа №7 . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Лабораторная работа №1 ЗНАКОМСТВО С СУБД MS ACCESS Первая лабораторная работа посвящена знакомству с популярной системой управления базами данных MS Access. Цель работы: изучение базовых методов работы с СУБД MS Access. Теоретический материал. Система Microsoft Access является одним из основных компонентов Microsoft Office и предназначена для работы с реляционными базами данных. Особенность данной СУБД: вся информация базы данных хранится в одном файле (*.mdb). Кроме информации таблиц, в этом же файле сохраняются компоненты приложения для работы с базой данных - экранные формы, отчеты, запросы, программные модули. Для работы с базой данных система использует Microsoft Jet Database Engine - систему управления базами данных, извлекающую и сохраняющую данные в пользовательских и системных задачах. Ядро базы данных Microsoft Jet можно рассматривать как компонент диспетчера данных, с помощью которого строятся остальные системы доступа к данным, такие как Microsoft Access и Microsoft Visual Basic. Создание базы данных Процесс создания простейшей базы данных рассмотрим на примере таблицы «Поставщики» (табл. 1.1.), содержащей данные о именах и адресах поставщиков, а также о предлагаемых ими товарах. Научимся также вводить данные в созданную таблицу. 4 Таблица 1.1. Номер ФИО 001 002 Иванов И.И. Петров П.Н. Поставщики Адрес ул. Цандера, 26 пр. Мира, 67 Товар Хлеб ржаной Шоколад Цена,р 12 24 В системе Microsoft Access процесс создания базы данных выполняется следующим образом. При запуске системы появляется диалоговое окно для выбора режима работы (рис. 1.1.), в котором следует выбрать пункт «Пустая база данных рабочего стола». Рис. 1.1. Создание файла После выбора первого пункта появляется окно для задания пути сохранения и имени новой базы. Выберем папку на диске для сохранения файла базы данных и зададим имя базы - SUPPLIER, нажмем на кнопку «Создать», после чего откроется окно базы данных. Далее необходимо задать структуру таблиц в соответствии с описанной заранее моделью. 5 Выберем в меню «Создание» пункт Конструктор таблиц (рис. 1.2) и опишем структуру главной таблицы базы данных, т.е. зададим имя, тип, размер каждого поля таблицы, а также первичный ключ (если необходимо) и индексированные поля (рис. 1.3). Имена полей лучше писать латинскими буквами, в одно короткое слово - для удобства использования их в запросах и программах, работающих с базой данных; задание подписей для полей облегчает разработку экранных форм и отчетов. Рис. 1.2. Меню создания базы данных 6 Рис. 1.3. Описание структуры таблицы в конструкторе Стандартный режим работы с таблицами Если база данных состоит из нескольких связанных таблиц, заполнение базы данных информацией следует начинать со справочников - иначе при заполнении главных таблиц возникнут 7 конфликты сохранения ссылочной целостности базы. Например, если в таблице-справочнике товаров не будет наименования товара, указанного для поставщика, появится сообщение "Введенное значение не подходит для данного поля" и Вы не сможете сохранить данные, пока не укажете правильное значение. Закроем окно, сохранив при этом новую таблицу под именем «Supplier». Теперь наша таблица появится в окне базы данных (рис. 1.4.). Рис. 1.4. Сохранение структуры базы данных «Supplier» Чтобы работать с информацией таблицы базы данных (добавлять записи, редактировать записи и удалять записи) следует выбрать ее в разделе объектов базы данных "Таблицы" (см. рис. 1.5.) и двойным щелчком мыши открыть. 8 Рис. 1.5. Выбор таблицы для обработки Таблица откроется в стандартном режиме работы с информацией, как показано на рис. 1.6. Рис. 1.6. Стандартный режим работы с таблицей базы данных В таком режиме каждая запись таблицы базы данных представлена как строка, состоящая из столбцов - полей, над которыми показаны подписи полей или, при их отсутствии, имена полей. В нижней части таблицы присутствует пустая запись с символом «*» в левой колонке - это несуществующая запись, которая добавляется в таблицу, как только в ней появляется какая-либо информация. 9 Рис. 1.7. Задание параметров подстановки На нижней рамке окна находятся кнопки для перемещения по таблице, номер текущей записи и информация об общем количестве записей в таблице. Колонка слева с символом «+» указывает, что таблицы есть связь от одной записи данной таблицы ко многим записям связанной с ней таблицы. В данном случае при щелчке мышью на плюсе откроется как подтаблица - список студентов для соответствующего факультета. Настройка подтаблицы присутствует в главном меню в разделе Поля. В СУБД Microsoft Access существуют также дополнительные возможности использования в таблицах режима "Подстановка" для показа и выбора данных из раскрывающихся списков ("тип источника 10 строк" - таблица или запрос, список значений или список полей). Этот режим можно выбрать в поле «Тип данных» или вручную на странице "Подстановка". В примере этот режим задается для поля GOODS таблицы «Supplier» (см. рис. 1.7.). В дальнейшем для поля с описанными свойствами раздела "Подстановка" на экранной форме будет автоматически создаваться объект типа "Поле со списком". При работе с таблицей можно задать сортировку записей по одному из полей и фильтр для показа данных, соответствующих заданному условию. После окончания добавления, редактирования или удаления данных следует дать команду Сохранить, или при закрытии окна таблицы выбрать в появившемся окне команду, сохранять или нет изменения. 11 Задание Создать в среде MS Access таблицу согласно заданному варианту. Порядок выполнения работы на примере БД поставщика кондитерских изделий: 1. Разработайте структуру БД "Кондитерская". 2. После запуска MS Access выберите "Пустая база данных рабочего стола". 3. После щелчка на кнопке ОК откроется диалоговое окно "Файл новой базы данных". Сохраните файл базы данных " Кондитерская ". 4. В меню создания таблиц выберите «Конструктор таблиц». 5. Создайте таблицу тбл_Кондитерская. Для этого в столбце "Имя поля" укажите все необходимые имена полей; в столбце "Тип данных" укажите тип данных для каждого поля: ID ФИО Адрес Организация Дата Товар Числовой Текстовый Текстовый Текстовый Дата/время (краткий формат даты) Поле со списком. Чтобы его создать, в столбце "Тип поля" выберите "Мастер подстановок". - в появившемся окне "Создание подстановки" выберите "Будет использоваться фиксированный набор значений" и щелкните на кнопке <Далее>; - укажите число столбцов - 1, - и заполните столбец (Конфеты, Шоколад, Печенье, Торт), 12 Количество <Далее>; оставьте без изменения подпись столбца подстановки, <Готово>. Текстовый 6. Выберите ключевое поле - ID. Для этого щелкните на кнопке области выделения, слева от столбца "Имя поля", - поле будет выделено; щелкните правой кнопкой мыши и в открывшемся контекстном меню выберите пункт "Ключевое поле" (или кнопкой "Ключевое поле" на панели инструментов). В окне "Свойства поля" в строке "Обязательное поле" должно стоять значение "Да", в строке "Индексированное поле" - "Да (Совпадения не допускаются)". 7. Сохраните таблицу до ввода данных, используя префикс тбл при задании имени таблицы. 8. Чтобы начать ввод данных в таблицу, щелкните на кнопке "Вид" на панели инструментов и перейдите в режим таблицы. 9. Заполните таблицу: - для перехода к следующему полю используйте клавишу ТАВ или ; - после заполнения всех полей записи, для перехода к следующей записи также нажмите клавишу ТАВ или ENTER; - изменить ширину столбца таблицы можно аналогично тому, как это делается в таблицах Word; - для редактирования данных щелкните мышкой в той ячейке, содержимое которой хотите изменить; - для удаления записи: щелкните на кнопке области выделения (слева от первого поля записи) - вся запись выделяется целиком, затем нажмите клавишу DELETE на клавиатуре или щелкните на кнопке "Вырезать" на панели инструментов. 10. Закончив ввод и редактирование данных, закройте таблицу. 11. Создайте ленточную форму для просмотра таблицы: 13 - - щелкните на вкладке "Формы" в меню "Создание" пункт «Мастер форм»; в открывшемся диалоговом окне выберите нужную таблицу и все столбцы этой таблицы. Нажмите «Далее» Выберите внешний вид формы «Ленточный»; щелкните «Далее» и «Готово» - форма будет создана. 12. Просмотрите таблицу с помощью созданной формы. 13. Сохраните форму, используя префикс фрм при задании имени формы. 14. Создайте форму для ввода и редактирования записей, используя форму в столбец (действия как в п.12). 15. Добавьте несколько записей в таблицу с помощью новой формы. 16. Сохраните форму. Варианты заданий Номер варианта 1 2 Задание Составить анкетных студентов. Составить Данные таблицу данных таблицу с 14 ФИО, номер студенческого билета, номер зачетной книжки, группа, дата и место рождения, домашний адрес, телефон, нуждается ли в общежитии Порядковый номер, модель, 3 данными о имеющихся в наличии телевизорах Составить таблицу для автосалона 4 Составить таблицу для автосервиса 5 Составить таблицу для салона связи 6 Составить таблицу клиентов салона красоты Составить таблицу для автошколы Составить таблицу наличия автошин в магазине Составить таблицу расписания поездов 7 8 9 10 11 12 13 14 Составить таблицу расписания движения пригородных автобусов Составить таблицу игроков в игру «Counter-strike» Составить таблицу родившихся детей в роддоме Составить график дежурств сетевых администраторов Составить таблицу оборудования сетевой 15 серийный номер марка, модель, комплектация, цвет, цена, наличие автомобилей в автосалоне номера автомобилей, принятых в ремонт, марка, модель, неисправность, цена, дата приема, дата возврата порядковый номер, марка товара, модель, серийный номер, наличие товара порядковый номер, имя , фамилия , вид услуги, адрес ФИО, год рождения, кол-во часов, категория, дата выпуска шифр резины, производитель, сезонность, размеры, наличие на складе номер поезда, пункт отправки, пункт назначения, время отправления, ожидаемое время прибытия Шифр рейса, марка автобуса, остановки, время остановки Личный номер игрока ,Ф.И.О., сколько играет, предпочитаемые сервера Личный номер, Ф.И.О., родители, дата номер, ФИО, дежурства инвентарный оборудования, день, время номер, вид производитель, лаборатории 15 16 Составить таблицу штрафов, выписанных ГИБДД Реализовать структуру телефонной книжки 17 Реализовать структуру сети магазинов 18 Создать базу данных соревнований по легкой атлетике Реализовать базу данных оранжереи 19 20 Создать базу данных снегоуборочной техники модель, дата поступления, техническое состояние номер квитанции, ФИО плательщика, адрес, паспортные данные, ФИО инспектора. номер записи, имя, фамилия, компания, должность, домашний телефон , мобильный телефон, примечания порядковый номер, название магазина, адрес, имя администратора и т.д. спортивная дисциплина, вид соревнований, дата проведения, победитель, призеры, результат номер записи, латинское название растения, русское название растения, откуда получено, дата получения, состояние организация, порядковый номер, вид машины, производитель, марка, год выпуска Содержание отчёта титульный лист задание распечатки экрана СУБД MS Access, показывающие заданную таблицу и ее структуру. 16 Лабораторная работа №2 СОЗДАНИЕ СВЯЗАННЫХ ТАБЛИЦ Вторая лабораторная работа посвящена созданию базы данных из нескольких связанных таблиц. Целью работы является изучение методов работы со схемой данных в среде MS Access Теоретический материал Связи между объектами реального мира могут находить свое отражение в структуре данных, а могут и подразумеваться, т.е. присутствовать на неформальном уровне. Между двумя или более таблицами базы данных могут существовать отношения подчиненности, которые определяют, что каждой записи главной таблицы соответствует одна или несколько записей в подчиненной таблице. Выделяют три разновидности связи между таблицами базы данных: «один–ко–многим»; «один–к–одному»; «многие–ко–многим». Отношение «один–ко–многим» Отношение "один–ко–многим" имеет место, когда одной записи главной таблицы может соответствовать несколько записей в подчиненной. Связь «один–ко–многим» является самой распространенной для реляционных баз данных. Она позволяет моделировать также иерархические структуры данных. Отношение «один–к–одному» Отношение «один–к–одному» имеет место, когда одной записи в главной таблице соответствует одна запись в подчиненной. Это 17 отношение встречается намного реже, чем отношение «один–ко– многим». Для чтения связанной информации в нескольких таблицах приходится производить ряд операций чтения вместо одной, когда данные хранятся в одной таблице. Отношение «многие–ко–многим» Отношение случаях: «многие–ко–многим» применяется в следующих одной записи в главной таблице соответствует более одной записи в подчиненной; одной записи в подчиненной таблице соответствует более одной записи в главной. Каждую связь «многие–ко–многим» в реляционной базе данных необходимо заменить на связь «один–ко–многим» (одну или более) с помощью введения дополнительных таблиц. Задание Взяв за основу таблицу, созданную в предыдущей лабораторной работе, разделить ее на две таблицы и связать их отношением «один-ко-многим». Порядок выполнения работы 1. Возьмем исходную таблицу Supplier (см. рис. 2.1.) и разделим ее на Рис. 2.1. Таблица Supplier 18 две таблицы: Supp2_1 и Supp2_2 (см. рис. 2.2.,23.). Рис. 2.2. Таблица Supp2_1 Рис. 2.3. Таблица Supp2_2 2. Откроем таблицу Supp2_1 в режиме конструктора. Щелкнув правой кнопкой по полю перед именем поля CONSUMER_NAME, выберем пункт меню «Ключевое поле» (Рис. 2.4.). Этим мы обеспечим уникальность значений в поле CONSUMER_NAME – каждый поставщик упомянут не более одного раза. Рис. 2.4. Изменение ключевого поля 3. Выберем на панели инструментов, в меню «Конструктор» пункт «Схема данных»: При этом откроется окно «Добавление таблицы» (рис. 2.4.). 19 Рис. 2.5. Добавление таблицы в схему данных Нажимая на кнопку «Добавить», добавим в схему данных таблицы Supp2_1 и Supp2_2. Затем нажмем «Закрыть». 4. В открывшейся схеме данных нажмем левой кнопкой на поле CONSUMER_NAME таблицы Supp2_1 и «перетащим» связь к полю CONSUMER_NAME таблицы Supp2_2. При этом откроется окно «Изменение связей». Проставим «галочки» в пунктах «Обеспечение целостности данных», «Каскадное обновление связанных полей» и «Каскадное удаление связанных записей» (рис.2.6.). Таким образом, при удалении поставщика из главной таблицы (в нашем примере Supp2_1) , все записи, содержащие его имя, будут удалены и из подчиненной таблицы (в нашем примере Supp2_2). 20 Рис. 2.6. Окно «Изменение связей» Нажав кнопку «Создать», завершим создание связи «один-комногим» (рис. 2.7.). Если в окне «Изменение связей» выбрать только пункт «Обеспечение целостности данных», то каскадного обновления не будет, но СУБД не позволит вводить в поле CONSUMER_NAME таблицы Supp2_2 значение, которого нет в таблице Supp2_1. 21 Рис. 2.7. Связь «один-ко-многим» Содержание отчёта титульный лист задание распечатки экрана СУБД MS Access, показывающие: o исходную таблицу o полученные таблицы и их структуры o окно изменения связей o схему данных со связью «один-ко-многим» Лабораторная работа №3 ДЕКОМПОЗИЦИЯ ИСХОДНЫХ ОТНОШЕНИЙ, ДОПУСКАЮЩАЯ СОЕДИНЕНИЕ БЕЗ ПОТЕРЬ. Третья лабораторная работа развивает тему второй и демонстрирует методы разбиения одной таблицы на несколько без потерь структурной информации. Целью работы является изучение разновидностей связи между таблицами в среде MS Access. Теоретический материал Любое отношение реляционной базы данных содержит информацию не только в виде значений элементов, но и в виде самой структуры отношения. Эта структурная информация легко может быть потеряна при разделении отношения на несколько. Если отношение Supplier (рис.2.1.) разделить на отношения R1(CONSUMER_NAME, ID, 22 GOODS) и R2(ADDRESS, PRICE), то соединить их обратно в одну таблицу будет невозможно, так как будет потеряна связь между адресами и фамилиями, товарами и ценами. Поэтому каждый вариант декомпозиции должен проверяться на возможность соединения без потерь. Декомпозиция с соединением без потерь возможна, если разность полученных отношений зависит от их пересечения. В нашем примере пересечение R1∩R2 даст пустое множество, что сразу указывает на потерю информации при таком разделении. Задание Взяв за основу отношение, созданное в лабораторной работе №1, произвести его декомпозицию на два отношения, допускающую соединение без потерь, и связать их отношением «одинк-одному». Порядок выполнения работы 1.Для исходной таблицы из первой лабораторной работы придумать не менее двух вариантов декомпозиции. Например, таблицу Supplier (рис.2.1.) можно разделить на таблицы Supplier2_1 (рис.2.2.) и Supplier2_2 (рис.2.3.), а можно на таблицы R1(CONSUMER_NAME, ID, GOODS) и R2(ADDRESS, PRICE) как показано выше. 2. Для обоих вариантов декомпозиции выполняется проверка на возможность соединения без потерь. В нашем примере: Supplier2_1 ∩ Supplier2_2 = CONSUMER_NAME Supplier2_1 - Supplier2_2 = ID, ADDRESS CONSUMER_NAME → ID, ADDRESS Таким образом, такая декомпозиция допускает соединение без потерь. Вариант с декомпозицией на отношения R1(CONSUMER_NAME, ID, GOODS) и R2(ADDRESS, PRICE) рассмотрен выше. 3. Создадим в среде MS Access таблицы Supplier2_1 и Supplier2_2, как это сделано в предыдущей работе. При этом в обеих таблицах, в режиме «Конструктор» установим ключевое поле CONSUMER_NAME . 23 4. В режиме «Схема данных» создадим связь между таблицами по выбранному полю. Это должна быть связь «один-к-одному» (рис. 3.1.). Рис. 3.1. Связь «один-ко-одному» Содержание отчёта титульный лист задание расчет декомпозиции исходного отношения, допускающей соединение без потерь распечатки экрана СУБД MS Access, показывающие: o исходную таблицу o полученные таблицы и их структуры o окно изменения связей o схему данных со связью «один-к-одному» Лабораторная работа №4 ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ Четвертая лабораторная работа посвящена использованию запросов в СУБД MS Access. Целью работы является изучение 24 различных видов запросов к базе данных и механизма их реализации в СУБД MS Access. Теоретический материал Работа любой современной СУБД может быть представлена в виде последовательности запросов и ответов. Запросы в системе Access бывают нескольких видов: 1. Запрос для отбора данных по заданным сложным условиям из одной или нескольких таблиц баз данных, с группировкой данных для расчета итогов, с показом результатов выполнения запроса в виде таблицы, либо с использованием его для форм и отчетов; после редактирования данных в таблице запроса данные таблиц базы могут обновляться (с некоторыми ограничениями). 2. Перекрестный запрос с формированием двухмерной итоговой таблицы, с группировкой по двум выражениям, одно из которых становится заголовком строки, другое - заголовком столбца. 3. Запрос на создание новой таблицы. 4. Запросы на изменение данных: обновление данных - команда занесения общих изменений в группу записей одной или нескольких таблиц; добавление данных - команда добавления группы записей из одной или нескольких таблиц в конец одной или нескольких таблиц; удаление данных - команда удаления группы записей из одной или нескольких таблиц. Задание Над отношением, созданным в лабораторной работе №1, выполнить операции «проекция» и «выборка по условию», используя механизм «Создание запроса в режиме конструктора». Порядок выполнения работы 1. Открыть базу данных (в нашем примере база данных SUPPLIER), выбрать пункт меню «Запросы», затем выбрать «Создание запроса в режиме конструктора». 2. Добавить в запрос нужные таблицы, например, таблицу Supplier. 25 3. В открывшемся окне выбрать нужные поля таблицы Supplier, например ID, ADDRESS и CONSUMER_NAME. Фактически, этим выполняется операция «проекция» (рис. 4.1). Рис. 4.1. Запрос на выборку 4. В поле «Условие отбора» записывается условие выборки. Затем запрос сохраняется. Всякий раз при запуске этого запроса, он будет формироваться заново, выполняя заданные операции над выбранными таблицами. Содержание отчёта титульный лист задание распечатки экрана СУБД MS Access, показывающие: o исходную таблицу o окно «запрос на выборку» o результат выполнения запроса Лабораторная работа №5 РАЗРАБОТКА ОТЧЕТОВ В СРЕДЕ MS ACCESS Пятая лабораторная работа посвящена методам вывода информации в СУБД MS Access. Целью работы является выработка практических навыков создания отчетов в среде MS Access. 26 Теоретический материал Таблицы, созданные в предыдущих лабораторных работах обеспечивают хранение информации в базе данных. Но от пользователя, как правило, нельзя требовать владения технологиями баз данных. Одним из методов представления пользователю результатов обработки данных является реализованный в ряде СУБД механизм отчетов. Отчеты могут быть созданы на основе всей информации, присутствующей в таблицах базы, но чаще для отчетов необходимо отобрать нужную информацию из базы с использованием SQL-запроса и на основе его создать отчет. Важным свойством отчетов является возможность группировки данных и получения итоговых данных для групп и всего отчета. Задание Используя существующий в СУБД MS Access механизм создания отчетов, обеспечить вывод на экран и на печать информации из запроса, созданного в лабораторной работе №4. Данные упорядочить. Порядок выполнения работы Создать запрос к базе данных. Можно использовать запрос, созданный в предыдущей работе. Указание: для решения задачи выполните следующие действия. В окне БД: Запросы/Создать/Конструктор. Добавить необходимые таблицы. Указать поля и таблицы. В строке "Вывод на экран" поставить флажки в нужных полях В строке "Сортировка" установить типы сортировки в тех полях, где это необходимо. Щелкнуть на кнопке Запуск (<!>) Панели инструментов и просмотреть результат работы запроса. Сохранить запрос. 1. 27 2. Создать (в режиме Конструктора) отчет на основе запроса, созданного в пункте 1. Указание: для решения задачи выполните следующие действия. В окне БД: Отчеты/Создать/Конструктор. Выбрать запрос в качестве основы для отчета. Установить параметры страницы для отчета (на вкладке «Параметры страницы»): на вкладке Страница ориентация листа - книжная, размер А4; на вкладке Поля – “Узкие”; в подменю «Колонки» укажите количество столбцов - 1, ширина столбца - 18 см, высота - 3 см. Переместить правую границу области данных отчета до значения 18 на верхней линейке. 28 Добавить в бланк отчета области Заголовок отчета. Создать заголовок отчета: на Панели элементов щелкнуть на кнопку Заголовок вставить поле в область заголовка отчета, сместить правую часть поля как можно ближе к правому краю области заголовка; в левой части поля ввести текст заголовка, в правой части поля ввести формулу, выводящую текущую дату =Дата(); (Либо щелкнуть на кнопку «Дата и время») просмотреть результат работы (кнопка Предварительный просмотр на Панели инструментов). Перетащить поля (в нашем примере ID, ADDRESS и PRICE) из таблицы в область данных. 29 Перенести подписи связанных полей в область верхнего колонтитула (при помощи операций Вырезать, Вставить). Разместить подписи связанных полей в области колонтитула и поля в области данных. Отформатировать поля. Просмотреть результат. Определить поля для группировки и сортировки: на Панели инструментов - кнопка "Группировка"; в окне "Сортировка и группировка" нажать на «Добавить группировку» и выбрать поле ADDRESS; для поля ADDRESS: группировка – начиная с А, по всему значению, Заголовок группы - да, Примечание группы - да; Закрыть окно "Сортировка и группировка". Создать заголовок группы: выделить область заголовка группы; из окна Список полей перетащить поле ADDRESS в область заголовка группы; сдвинуть левую часть поля влево, а правую часть поля вправо; в левой части поля ввести текст "Данные о покупателях"; просмотреть результат работы. 30 Создать нижний колонтитул, содержащий номер страницы отчета: Нажать на кнопку «Номер страницы» Выбрать формат, нижний колонтитул и выравнивание просмотреть результат работы. Сохранить отчет. Также отчет можно создать с помощью Мастера отчётов. 1. Выбираем запрос. Нажимаем кнопку «Отчет» 2. Получаем отчёт по стандартному шаблону. 3. Мы можем перейти в Конструктор отчетов, чтобы внести изменения в структуру отчета. 31 Содержание отчёта титульный лист задание распечатки экрана СУБД MS Access, показывающие: o исходную таблицу o исходный запрос o окно конструктора отчетов готовый отчет Лабораторная работа №6 СОЗДАНИЕ ЭКРАННЫХ ФОРМ ДЛЯ РАБОТЫ С БАЗОЙ ДАННЫХ Шестая лабораторная работа продолжает знакомство студента с методами вывода информации в СУБД MS Access. Целью работы является выработка практических навыков создания экранных форм в среде MS Access. Теоретический материал Экранные формы позволяют организовать наглядную и удобную работу с базой данных, состоящей из большого количества связанных таблиц реляционной базы данных. В этом случае на одном экране можно организовать работу с главной и подчиненными таблицами, осуществлять выбор данных из таблиц-справочников с использованием раскрывающихся списков, использовать режимы 32 поиска и отбора информации, печати необходимых отчетов на принтере и пр. Познакомимся с некоторыми терминами, необходимыми при создании экранных форм. Макет – режим работы приложения, в котором определяются расположение, шрифт, цвет и другие детали, связанные с внешним видом объекта. События - методы, т.е. процедуры, выполняющиеся для заданного объекта при наступлении определенных событий. К событиям относятся, например, Загрузка, Открытие, До обновления, После обновления. Подчиненная форма - вложенная форма для таблицы данных, связанной с главной таблицей, на которой могут присутствовать такие же элементы, как и на основной форме. Поле со списком - сложный элемент, предоставляющий возможность показывать данные справочных таблиц, списков или массивов и заносить выбранные значения в поле другой таблицы. Задание Используя существующий в СУБД MS Access механизм создания экранных форм, обеспечить вывод на экран информации из таблиц, созданных в лабораторной работе №2. Данные упорядочить. Порядок выполнения работы 33 В окне базы данных выберите вкладку «Создание» и на странице форм - режим «Мастер форм». Далее следует ответить на ряд вопросов Мастера: 1. Выберите нужные поля для формы - выбираем некоторые поля из обеих таблиц. 2. выберите вид представления данных - выбираем «подчиненные формы», т.е. расположение данных главной таблицы и связанной с ней на одной форме; выберите внешний вид подчиненной формы - выбираем «ленточный»; 3. 4. задайте имена для главной и для подчиненной формы и на том же экране ниже выбираем пункт «Изменить макет формы», после чего нажимаем на кнопку «Готово». 34 Содержание отчёта титульный лист задание распечатки экрана СУБД MS Access, показывающие: o исходные таблицы o окно мастера форм готовую форму Лабораторная работа №7 СОЗДАНИЕ БАЗЫ ДАННЫХ В СРЕДЕ DELPHI Седьмая лабораторная работа посвящена работе с базами данных в среде Delphi. Целью работы является изучение основных 35 приемов работы с базами данных в среде Delphi, включая работу с приложениями BDE Administrator и Database Desctop. Теоретический материал Широко распространенная среда программирования Delphi часто используется для создания приложений, обращающихся к базам данных. Для этого в данной среде программирования предусмотрены как возможность связи с наиболее популярными СУБД (MS Access, Oracle, Interbase, Paradox и др.), так и специальные компоненты, позволяющие значительно упростить создание экранных форм для работы с объектами базы данных. Рассмотрим некоторые из этих компонентов, предназначенных для отображения на экране информации из базы данных. Компонент TDBGrid содержит двумерную таблицу, в которой строки представляют собой записи, а столбцы — поля набора данных. Компонент TDBGrid является потомком классов TDBCustomGrid и TCustomGrid. В компоненте TDBGrid можно отображать произвольное подмножество полей используемого набора данных, но число записей ограничить нельзя — в компоненте всегда присутствуют все записи связанного набора данных. Требуемый набор полей можно составить при помощи специального Редактора столбцов, который открывается при двойном щелчке на компоненте, перенесенном на форму. Компонент TDBCtrlGrid внешне напоминает компонент TDBGrid, но никак не связан с классом TCustomDBGrid, а наследуется напрямую от класса TWinControl. Этот компонент позволяет отображать данные в строках в произвольной форме. Компонент представляет собой набор панелей, каждая из которых служит платформой для размещения данных отдельной записи набора данных. На панели могут размещаться любые компоненты отображения данных, предназначенные для работы с отдельным полем. С каждым таким компонентом можно связать нужное поле набора данных. При открытии набора данных в компоненте TDBCtrlGrid на каждой новой панели создается набор компонентов отображения данных, аналогичный тому, который был создан на одной панели во время разработки. 36 На панель можно переносить только те компоненты отображения данных, которые показывают значение одного поля для единственной записи набора данных. Нельзя использовать компоненты TDBGrid, TDBCtrlGrid, TDBRichEdit, TDBListBox, TDBRadioGroup, TDBLookupListBox. Задание Используя приложения BDE Administrator и Database Desctop, создать в среде Delphi программу, реализующую работу с базой данных согласно условию лабораторной работы №1. Порядок выполнения работы 1. Создать базу данных. - запустить приложение BDE Administrator; - создать новую базу данных, при этом выбрать СУБД, например, PARADOX, и указать путь к новой базе данных (Рис. 7.1.); сохранить изменения и выйти из приложения BDE Administrator. 37 Рис.7.1. Окно приложения BDE Administrator 2. Создать таблицу. - запустить приложение Database Desctop (Рис. 7.2.); - установить значения Work Directory и Private Directory; - в базе данных, созданной в пункте 1, создать новую таблицу, задав ее структуру согласно условию лабораторной работы №1; - в созданной таблице ввести значения полей. - сохранить изменения и выйти из приложения Database Desctop. 3. Создать программу, реализующую работу с базой данных. - войти в среду программирования Delphi; - поместить на форму компонент Database, выбрать в свойстве Aliase имя нужной базы данных; - поместить на форму компонент Table, указать в его свойствах имя базы данных и имя представляемой таблицы; - поместить на форму компонент Datasource, указать в его свойствах имя компонента Table; - поместить на форму компонент TDBGrid, указать в его свойствах получение данных через компонент Datasource. - сохранить полученную форму и запустить ее. Содержание отчёта титульный лист задание распечатка экрана приложения BDE Administrator, показывающую создание новой базы данных распечатка экрана приложения Database Desctop, показывающую структуру новой таблицы распечатка экрана приложения Database Desctop, показывающую содержание новой таблицы распечатка экрана среды программирования Delphi, показывающую форму с помещенными на ней компонентами распечатка экрана среды программирования Delphi, показывающую работающее приложение, отображающее значения из заданной таблицы. 38 Учебно-методическое издание Голдовский Яков Михайлович Базы данных Методические указания _______________________________________________________ Подписано Формат Тираж 100 экз. в печать Усл.печ.л. Заказ Изд.№ __150048, г. Ярославль, Московский пр-т, д. 151. Типография Ярославского филиала МИИТ. _____________________________________________________ 39