Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
09_Методичка_кр_ЭФ_ЗО.doc
Скачиваний:
8
Добавлен:
11.11.2018
Размер:
1.41 Mб
Скачать
  1. Задание 4

Целью задания является изучение и закрепление на практике методов создания информационных систем базы данных (БД) с помощью реляционных систем управления базами данных (СУБД) MS Access или Open Office Base1. В задание входит следующее:

  • проектирование структур БД;

  • создание запросов на выборку;

  • создание запросов на добавление, запросов на обновление, запросов на создание таблицы или перекрестных запросов;

  • создание отчетов.

Вариант 0.

1. Создать БД «Часовая мастерская», которая должна содержать информацию о персонале (ФИО, должность, разряд, график работы), о клиентах (ФИО, VIP-клиент (да/нет), адрес, номер заказа), о заказе (номер заказа, тип часов, марка часов, сроки ремонта, стоимость работы).

2. Составить запрос на выборку – вывести фамилии всех мастеров, ремонтировавших электронные часы.

3. Создать перекрестный запрос, в котором заголовки строк – номера заказов, заголовки столбцов – фамилии заказчиков, а на пересечении строк и столбцов – стоимость ремонта.

4. С помощью конструктора создать отчет «Список клиентов».

Основным средством хранения информации в указанных СУБД являются плоские таблицы (рисунок 8), состоящих из именованных столбцов (полей) и строк (записей) .

Номер заказа

Код покупателя

Код товара

Дата заказа

Заказано

Имена полей

Запись

Поле

Рисунок 8. Структура реляционной базы данных

Каждая таблица описывает некоторый класс объектов выбранной предметной области, например, студентов вуза или преподавателей, а каждая строка-запись содержит информацию о конкретном объекте (студенте или преподавателе). Каждый же столбец-поле описывает один из атрибутов данного объекта, например, должность или дату рождения. Поэтому все данные одного столбца характеризуются одинаковым типом - множеством допустимых значений и операций над ними. В MS Access и Open Office Base определены следующие типы данных:

текстовый, длиной от 1 до 255 символов. Количество символов определяется пользователем в процессе создания таблицы исходя из семантики атрибута. Так например, для хранения фамилий целесообразно отвести не менее 15 позиций. По умолчанию СУБД устанавливает длину текстового поля равной 50;

числовой, для которого существуют следующие форматы:

байт (целые значения в диапазоне 0..255);

целое (целые значения в диапазоне -32768..+32767);

длинное целое (целые значения в диапазоне -2147483648 .. +2147483647);

с плавающей точкой (4 байта). Вещественные числа в диапазоне -3.402823*1038 .. +3.402823*1038;

с плавающей точкой (8 байт). Вещественные числа в диапазоне -1.79769313486232*10308 .. +1.79769313486232*10308.

По умолчанию СУБД устанавливает формат числового поля с плавающей точкой (8 байт);

дата/время. Возможны следующие форматы дат:

полный;

длинный;

средний;

краткий.

Аналогично, для времени также существуют три последних формата.

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

счетчик. Значения данного типа автоматически увеличиваются на 1 для каждой новой записи. Пользователь не может сам модифицировать значения поля данного типа;

логический. Допускаются только два значения для полей данного типа: Да/Нет (True/False);

МЕМО (комментарий). Текстовое поле произвольной длины. Может хранить текст длиной до 64 000 байт.

Каждое поле должно иметь имя, длина которого не может превышать 64 символа. Целесообразно имена выбирать не длиннее хранимых данных (что максимизирует при просмотре число отображаемых на экране столбцов таблицы), но сохраняющих их семантику. В именах полей можно использовать любые комбинации букв, цифр, пробелов и других символов, за исключением ., !, ', [ и ].

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

1. Создание структуры БД. Для создания новой таблицы необходимо открыть базу данных, перейти на вкладку Таблицы и нажать кнопку Создать.

Существует несколько вариантов создания таблицы, но наиболее универсальным является подход на основе Конструктора.

Рисунок 9. Создание структуры БД в режиме конструктора

Его запуск приводит к открытию бланка описания структуры таблицы (см. рисунок 9) состоящего из четырех столбцов. Во втором указывается имя поля. Переход в третий столбец приводит к появлению кнопки раскрытия, щелчок по которой левой кнопкой мыши (ЛКМ) отображает список допустимых типов полей. Выбор типа также может производиться ЛКМ, а затем в строке Размер поля производится его конкретизация. Четвертый столбец является вспомогательным, в нем хранятся комментарии к создаваемым полям.

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

После описания структуры таблицы переходят к ее заполнению. Для этого нажимается пиктограмма Представление таблицы . При этом СУБД попросит указать имя создаваемой таблицы и отобразит пустой бланк созданной таблицы, готовый к заполнению. Пример заполненной таблицы для БД, отражающей персонал мастерской приведен на рисунке 10. Аналогичным образом формируются таблицы «Клиенты» и «Заказы».

Рисунок 10. Пример заполнения таблицы

Навигация по полям таблицы осуществляется клавишами , , , , Tab, Shift/Tab, мышью. Копирование значения поля из предыдущей строки - Ctrl/ '. Переход к заполнению следующей записи автоматически сохраняет в памяти компьютера предыдущую запись.

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

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

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

на панели инструментов нажимается кнопка (вставить строку).

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

выделяется мышью в первом столбце переносимая строка (строки);

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

Таким образом, сформировано три таблицы. В таблице «Персонал» ключевым полем сделаем поле «ФИО». В таблице «Клиенты» ключевым полем также сделаем «ФИО». В таблице «Заказы» ключевым полем сделаем поле «Номер заказа».

2. Создание запроса на выборку. Необходимо перейти на вкладку Запросы. Запрос на выборку удобно создавать в режиме Конструктора. При этом появляется диалоговое окно, представленное на рисунке 11.

Рисунок 11. Диалоговое окно «Добавление таблицы»

Выделяем по очереди каждую таблицу и нажимаем на кнопку Добавить. После этого нажимаем на кнопку Закрыть. Активным становится диалоговое окно , названное по умолчанию «Запрос1: запрос на выборку» - рисунок 12.

Рисунок 12. Первый этап создания запроса на выборку

По умолчанию автоматически установились связи между полями «Номер заказа» в таблицах «Заказы» и «Клиенты» и меду полями «ФИО» в таблицах «Клиенты» и «Персонал». Они представлены стрелками, идущими от полей из одной таблицы в другую. Последняя связь в данном случае не нужна, ее можно убрать, нажав на соответствующую стрелку правок кнопкой мыши (ПКМ) и открывшемся меню выбрав пункт «Удалить». Необходимо установит связь между полем «Мастер» в таблице «Заказы» и полем «ФИО» в таблице «Персонал». Для этого, нажав на ЛКМ протянем от поля «Мастер», до поля «ФИО», чтобы образовалась стрелка. Нажав на эту стрелку ПКМ, можно вызвать диалоговое окно «параметры объединения» - рисунок 13.

Рисунок 13. Диалоговое окно «Параметры объединения»

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

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

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

Поле – наименование поля, содержимое которого будет добавлено в результате запроса. Поочередно выбираем поля «Мастер», «Тип часов», «Должность», «Разряд», «ФИО» и «Телефон». Это легко осуществить с помощью нажатия кнопки .

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

Сортировка – направление сортировки данного поля, по возрастанию или убыванию. В нашей БД не используется.

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

Условие отбора, или – указывается одно или несколько условий, в соответствии с которыми происходит добавление записей на выборку. В нашем случае для поля «Тип часов» задается условие =«электронные». Создани е запроса на выборку закончено – рисунок 14.

Рисунок 14. Создание запроса на выборку

Назовем данные запрос, например, «электронные часы». Результаты выполнения запроса представлены на рисунке 15.

Рисунок 15. Результаты выполнения запроса