Практическая работа № 23, 24
Наименование: Создание базы данных. Сортировка и поиск данных. Создание запросов и отчетов.
1. Краткие теоретические сведения.
Под базой данных (БД) понимают организационную структуру, предназначенную для хранения информации.
По технологии хранения данных базы делятся на централизованные, размещающиеся в памяти одной вычислительной системы, и распределенные, состоящие из нескольких частей и хранимые на различных компьютерах.
Система управления базами данных (СУБД) – это наиболее распространенное и эффективное универсальное программное средство, предназначенное для организации и ведения логически взаимосвязанных данных на машинном носителе, а также обеспечивающее доступ к данным.
Основной составной частью СУБД является ее ядро – управляющая программа для автоматизации всех процессов, связанных с обращением к базам данных.
По способу доступа к данным БД различают системы файл-сервер и клиент – сервер.
В системе файл-сервер одна из вычислительных машин служит хранилищем централизованной базы данных, а доступ к базе осуществляется с других машин, которые носят название рабочих станций. Файлы базы данных передаются на рабочие станции, где производится их обработка.
В системе клиент-сервер кроме хранения базы данных на центральную машину ложатся и функции обработки данных, а на клиентских машинах выполняется только представление информации. Запрос на обработку данных выдается клиентом и передается по сети на сервер баз данных, где осуществляется поиск. Обработанные данные транспортируются по сети от сервера к клиенту.
Информационно-логическая модель (ИЛМ) является логическим представлением взаимосвязей объектов базы данных.
Иерархическая модель данных основана на графическом способе связей данных, и схема взаимосвязей объектов имеет вид перевернутого дерева. Каждому элементу соответствует только одна связь от элемента более высокого уровня. Поиск данных происходит по одной из ветвей дерева. Типичными примерами иерархического способа организации является система вложенных каталогов в операционной системе или так называемое «генеалогическое дерево».
В сетевой модели данных каждый элемент может иметь более одного порождающего элемента, а графическое представление модели очень напоминает сеть. Связи в такой модели можно устанавливать произвольным образом.
Достоинства этих моделей: простота, гибкость, быстродействие, стандартизация.
Недостатки этих моделей: указанную организацию БД сложно реализовать.
Недостатки привели к появлению (в 1970г) новой реляционной модели.
Реляционной называется база данных, в которой все данные организованы в виде таблиц, а все операции над данными сводятся к операциям над этими таблицами.
У каждой таблицы имеется свое уникальное имя, описывающее ее содержание.
Строки реляционной таблицы являются записями и хранят информацию об одном экземпляре объекта данных, представленного в таблице. Одинаковых записей не должно быть.
Наиболее популярны реляционные СУБД – FoxPro, Paradox, Oracle, Access, MS SQL Server-2000.
Примером реляционной базы может служить таблица «Студенты»:
Основные понятия:
Поле (столбец таблицы) –элементарная единица логической организации данных. Каждое поле имеет уникальное имя, при этом каждое из полей однородно, т.е. данные в нем имеют одинаковые тип и длину. Для описания поля используют имя и тип данных.
Ключевое поле – поле, значение которого однозначно определяет запись. Если ключевое поле одно, то это –простой ключ, если ключевых полей несколько, то ключ называется составным.
Запись – это строка таблицы, содержащая конкретные значения ее полей.
Таблица базы данных – это совокупность экземпляров записей одной структуры. Описание структуры базы данных содержит перечень полей записи и их основные характеристики.
Свойства полей базы данных:
• имя поля определяет, как следует обращаться к данным этого поля при автоматических операциях с базой (по умолчанию имена полей используются в качестве заголовков столбцов таблиц);
• тип поля определяет тип данных, которые могут содержаться в данном поле;
• размер поля определяет предельную длину (в символах) данных, которые могут размещаться в данном поле;
• формат поля определяет способ форматирования данных в ячейках, принадлежащих полю;
• маска ввода определяет форму, в которой вводятся данные в поле (средство автоматизации ввода данных);
• подпись определяет заголовок столбца таблицы для данного поля (если подпись не указана, то в качестве заголовка столбца используется свойство Имя поля)
• значение по умолчанию — то значение, которое вводится в ячейки поля автоматически (средство автоматизации ввода данных);
• условие на значение — ограничение, используемое для проверки правильности ввода данных (средство автоматизации ввода, которое используется, как правило, для данных, имеющих числовой тип, денежный тип или тип даты);
• сообщение об ошибке — текстовое сообщение, которое выдается автоматически при попытке ввода в поле ошибочных данных (проверка ошибочности выполняется автоматически, если задано свойство Условие на значение)
• обязательное поле — свойство, определяющее обязательность заполнения данного поля при наполнении базы;
• пустые строки — свойство, разрешающее ввод пустых строковых данных (от свойства Обязательное поле отличается тем, что относится не ко всем типам данных, а лишь к некоторым, например к текстовым);
• индексированное поле — если поле обладает этим свойством, то все операции, связанные с поиском или сортировкой записей по значению, хранящемуся в данном поле, существенно ускоряются. Кроме того, для индексированных полей можно сделать так, что значения в записях будут проверяться по этому полю на наличие повторов, что позволяет автоматически исключить дублирование данных.
Запросы.
Эти объекты служат для извлечения данных из таблиц и предоставления их пользователю в удобном виде. С помощью запросов выполняют такие операции, как отбор данных, их сортировку и фильтрацию, а также преобразование данных по заданному алгоритму, создание новых таблиц, автоматическое заполнение таблиц данными, импортированными из других источников, выполнение вычислений и многое другое. Для разных действий создаются запросы разных типов.
Запрос-выборка предназначен для отбора данных, хранящихся в таблицах, и не изменяет эти данные.
Запрос-изменение используется для изменения или перемещения данных. К этому типу относятся: запрос на добавление записей, запрос на удаление записей, запрос на создание таблицы, запрос на обновление.
Запрос с параметром позволяет определить одно или несколько условий отбора во время выполнения запроса.
Формы – это средства для ввода данных. Назначение форм – предоставлять пользователю средства для заполнения только тех полей, которые ему нужно заполнять. В форме можно разместить специальные элементы управления (счетчики, раскрывающиеся списки, переключатели, флажки и т.п.)
Отчеты – во многом похожи на формы, но предназначены для вывода данных на принтер. В них приняты специальные меры для группировки выводимых данных и для вывода специальных элементов оформления – номера страниц, верхний и нижний колонтитул. Отчеты могут содержать данные из нескольких таблиц и запросов.
2. Задания.
Рассмотрим работу СУБД на примере MS Access, входящей в пакет MS Office.
2.1. Создайте структуру таблицы с информацией о студентах нашего учебного заведения.
Порядок работы:
1) Вызовите программу
Access (Пуск- Программы- MS Access), откроется меню, представленное на рис.1. Рис.1
2) Установите переключатель Новая база данных.
Появится диалоговое окно Файл новой базы данных, в котором в строке Папка выберите папку своей группы, в строке Имя файла введите имя БД – Фамилия_База данных
3) Щелкните на кнопке Создать.
4) В следующем окне выберите вкладку Таблица (скорее всего вы в ней находитесь), щелкните по кнопке Создать, в окне Новая таблица выберите Конструктор. (рис.2)
Рис.2
Появится окно конструктора. Рис.3
5) Заполните Имя поля и Тип данных в конструкторе, как показано на рис.3
6) Закройте окно таблицы Таблица1, на вопрос о сохранении таблицы щелкните кнопку Да. Сохраните таблицу с именем «Список»
В ответ на вопрос «Создать ключевое поле сейчас?» ответить «Да» (рис.4)
Рис.4
В вашей таблице появится поле с именем «Код» (рис.5)
Рис.5
Это поле называется первичным ключом и однозначно идентифицирует каждую запись в таблице.
Тип данных у этого поля обозначен как Счетчик. Это означает, что каждый раз при создании новой записи значение счетчика будет увеличиваться на 1. В результате у каждой записи формируется свой номер, который и является первичным ключом.
2.2. Зададим свойства полей заданных в таблице «Список».
Поля обладают свойствами. От свойств полей зависит, какие типы данных можно вносить в поле, а какие нет, а также то, что можно делать с данными, содержащимися в поле.
Например маска ввода для поля типа “дата” облегчает ввод дат, позволяет Вам не заботиться о разделителях дня, месяца, года. Рис.6.
Порядок работы:
1. Открыть таблицу в режиме конструктор (щелкните по кнопке Конструктор.
2. Щелкните по полю Фамилия. В строке Размер поля замените число 50 на 30. Далее в строке Подпись наберите «Фамилия». В строке Обязательное поле выберите «Да». В поле Индексированное поле выберите «Да(совпадения допускаются)», т.к. в списке могут быть однофамильцы.
3. Аналогично, воспользовавшись данными таблицы 1, укажите свойства полей Имя, Отчество, Адрес, Телефон, Группа.
4. Для поля Дата рождения в строке Формат поля выберите Краткий формат даты. Щелкните по строке Маска ввода.
Щелкните по кнопке .
Рис.7. На
вопрос о сохранении таблицы ответьте «Да». В окне Создание масок ввода
выберите строку Краткий формат даты и щелкните по кнопке. Откроется
следующее окно Создание масок ввода, снова щелкните Далее и в последнем
окне мастера Создание масок ввода щелкните Готово . Заполните оставшиеся строки свойств поля Дата
рождения согласно таблице1.
Таблица1.
Поле |
Свойства полей |
||||||
Размер |
Формат поля |
Маска ввода |
Подпись |
Значение по умолчанию |
Обязатель-ное поле |
Индексированное поле |
|
Фамилия |
30 |
|
|
Фамилия |
|
да |
Да (совпадения допускаются) |
Имя |
20 |
|
|
Имя |
|
да |
нет |
Отчество |
30 |
|
|
Отчество |
|
нет |
нет |
Дата рождения |
|
Краткий формат даты |
Краткий формат |
Дата рождения |
|
да |
нет |
Адрес |
50 |
|
|
Адрес |
|
да |
нет |
Телефон |
6 |
|
|
|
|
нет |
нет |
Группа |
8 |
|
|
Группа |
Номер вашей группы |
да |
Да (совпадения допускаются) |
5. Закройте окно Список: таблица, сохранив все выполненные изменения.
2.3. Заполним информацией о студентах таблицу Список.
Порядок работы:
1. Откроем таблицу Список (щелкните по кнопке Открыть). В открывшемся окне Список: таблица, щелкните в поле Фамилия
Введите фамилию первого студента из списка таблицы 2. Затем щелкните в поле Имя и введите имя студента. Последовательно введите оставшиеся данные для данного студента. Обратите внимание, что при переходе в поле Дата рождения появляется шаблон, благодаря чему ввод данных значительно упрощается.
Внимание! Вся информация автоматически сохраняется в БД при ее вводе.
Перейдите в поле Фамилия для следующего студента и введите данные этого студента. Введите данные всех студентов в строгом соответствии с данными из таблицы 2.
Занесите свои анкетные данные в таблицу.
Таблица 2.
Код |
Фамилия |
Имя |
Отчество |
Дата рождения |
Адрес |
Телефон |
Группа |
1 |
Бабенко |
Андрей |
Геннадьевич |
07.03.83 |
Космонавтов 7-2 |
210556 |
Ст 14-2 |
2 |
Голубинов |
Евгений |
Михайлович |
31.05.83 |
Фрунзе 25-246 |
372801 |
Ст 14-2 |
3 |
Крюков |
Антон |
Викторович |
30.05.83 |
Космонавтов 1-8 |
|
Ст 14-2 |
4 |
Петков |
Михаил |
Сергеевич |
24.06.83 |
Ворошилова 1-5 |
|
Ст 14-2 |
5 |
Ермолаев |
Николай |
Алексеевич |
12.10.82 |
Туполева 3-21 |
|
Ст 14-3 |
6 |
Завьялов |
Антон |
Юрьевич |
08.11.83 |
Фрунзе 10-30 |
704521 |
Ст 14-3 |
7 |
Ильин |
Сергей |
Николаевич |
18.12.82 |
Баумана 5-192 |
|
Ст 14-3 |
8 |
Кистанов |
Алексей |
Викторович |
29.10.82 |
Жукова 31-287 |
223408 |
Ст 14-3 |
2. Для исправления ошибок в записях щелкните по нужной записи и используя обычные методы редактирования внесите изменения.
3. Закройте окно Список: таблица.
2.4. Выполним сортировку по полю Фамилия в таблице Список.
Порядок работы:
1. Откройте таблицу Список.
2. Щелкните по любой записи в
поле Фамилия. Щелкните на панели инструментов по кнопке
Проследите какие изменения произошли в таблице. Повторите действия с кнопкой
Выберите из двух вариантов тот, в котором фамилии студентов расположены в алфавитном порядке.
Сортировку можно произвести пользуясь пунктом меню Записи- Сортировка. Попробуйте.
3. Закройте таблицу Список, т.к. мы внесли изменения в макет таблицы, то появится вопрос о сохранении измененного макета таблицы. Ответьте «Да».
2.5. Выполним поиск записей по какому-либо признаку (допустим нас, интересуют студенты, проживающие на улице Фрунзе).
Порядок работы:
1. Щелкните по любой записи в поле Адрес. Щелкните на панели инструментов по кнопке (Найти). Откроется диалоговое окно Поиск в поле «Адрес». В этом окне в строке Образец введите «Фрунзе», в строке Просмотр выберите Все, а в строке- С начала поля (см. рис.8). Рис.8.
Щелкните Найти. В таблице будет выделена запись содержащая слово «Фрунзе».
Для поиска следующей записи надо щелкнуть Найти далее. Если таких записей не будет обнаружено, то появится окно с сообщением: Образец не найден.
2. Закройте окно поиска.
Вопрос: Опишите назначение каждого поля в окне поиска.
2.6. Создадим запрос по выбору записей, для формирования списка студентов, которые родились с 1 мая 1983 года по 31 декабря 1983 года.
Порядок работы:
1. Выберите в окне базы данных вкладку «Запрос», нажмите кнопку Создать. В окне диалога «Новый запрос» выберите опцию «Конструктор».
2. Access предложит Вам выбрать таблицу, выберите таблицу «Список», нажмите кнопку Добавить и закройте окно диалога.
3. Из таблицы последовательно выберите поля «Фамилия», «Имя», «Отчество», «Дата рождения» и «Адрес» и перетащите выбранные поля по очереди в бланк запроса (можно просто дважды щелкнуть мышкой по каждому полю).
4. В строке «Условие отбора» введем условие для столбца Дата рождения. Для этого:
- Щелкните по кнопке «Построить» на панели управления
- Выберите в списке операторов - оператор сравнения Beetween, нажмите кнопку «Вставить», ОК. Измените строку Between «Выражение» And «Выражение» на Between #01.05.83# And #31.12.83#
- Закройте окно конструктора запросов. Окно запроса должно иметь такой вид: Рис.9.
5. Закройте окно запроса. Сохраните запрос под именем Запрос по дате рождения.
6. Откройте созданный запрос и убедитесь в том, что выборка была сделана правильно. Если вдруг оказалось, что таких студентов в Вашей группе нет, измените условия запроса.
2.7. Создадим форму для заполнения таблицы «Список».
Порядок работы:
- Перейдите на вкладку «Формы»
- Нажмите кнопку Создать.
- Выбрать Автоформа: ленточная, в качестве «Источника данных» выберете таблицу «Список».
u |
Переход на одну запись вперед |
uô |
Переход на последнюю запись |
t |
Переход на одну запись назад |
u¬ |
Переход на чистую страницу, где можно ввести новую запись |
ôt |
Переход на первую запись |
|
- Закройте окно формы Список сохранив под таким же именем Анкета.
- Обратите внимание на то, что в некоторых полях данные просматриваются не полностью. Для исправления откройте форму Анкета в режиме конструктора и измените ширину полей таким образом чтобы все записи отображались на экране полностью. Закройте окно конструктора.
- Откройте форму Анкета в режиме просмотра и введите свои анкетные данные.
- Проверьте что запись ваших анкетных данных имеется в таблице Список.
2.8. Создадим отчет для вывода на печать списка студентов, используя таблицу Список.
Порядок работы:
1. Откройте вкладку «Отчеты»
2. Нажать кнопку Создать , выбрать Мастер отчетов, в качестве Источника выбрать таблицу «Список»
3. Перенести в «Выбранные поля» следующие поля (Выбрать поле, щелкнуть по кнопке > ): Группа, Фамилия, Имя, Отчество, Адрес (см. рис.10). Нажать Далее . Рис.10.
4. Теперь надо определить, требуется ли сгруппировать данные по какому-либо из полей. Поля, по которым будет осуществляться группировка, помещаются в верхней части правого списка в отдельной рамке и выделяются на экране синим цветом.
ü Выбрать группировку по полю Группа, нажать Далее
ü Задать режим сортировки в возрастающем порядке по полю «Фамилия», нажать Далее.
5. Определить вид Макета - Ступенчатый, Ориентация- альбомная, нажать Далее
6. Выбрать Стиль Строгий, нажать Далее
7. Задать имя отчета «Список», нажать кнопку «Готово».
Отчет готов, можете просмотреть его в режиме «Файл\Предварительный просмотр».
Для того, чтобы привести отчет в требуемый вид, его можно откорректировать в режиме конструктора.
4. Контрольные вопросы.
1. Что такое СУБД?
2. Охарактеризуйте основные информационно-логические модели БД.
3. Дайте определение и характеристику реляционной базы данных.
4. Назовите основные объекты СУБД MS Access.
5. Характеристики полей баз данных.
6. В чем состоит особенность создания БД в режиме Конструктор?
7. С какой целью в таблице создаются индексированные поля?
8. Что такое запрос?
9. С какой целью создаются формы?
10. Что такое отчет?
11.
© ООО «Знанио»
С вами с 2009 года.