Методические указания к лабораторным работам
|
|
ФСО ПГУ 7.18.2/07
|
Министерство образования и науки Республики Казахстан
Павлодарский государственный университет им. С. Торайгырова
Факультет физики, математики и информационных технологий
Методические указания к лабораторным работам
по дисциплине «Системы базы данных»
Для специальности 050703 «Информационные системы»
Павлодар
-
Лист утверждения
МУ к лабораторным работам
|
|
Ф
ФСО ПГУ 7.18.2/11
|
УТВЕРЖДАЮ
Декан факультета ФМ иИТ
_____________ Тлеукенов С.К.
«__»_________2008г.
Составитель: старший преподаватель Аканова А.С.
Кафедра информатики и информационных систем
Методические указания к лабораторным работам
по дисциплине Системы базы данных
для специальности 050703 «Информационные системы»
форма обучения: дневная на базе общего среднего.
Методические указания к лабораторным работам разработан на основании рабочей программы дисциплины
Рекомендована на заседании кафедры от «__» ____________200 протокол №__
Зав. кафедрой __________________________Ж.К. Нурбекова
(подпись, Ф.И.О.)
Одобрено методическим советом факультета ФМиИТ
«______»____________200__г., протокол № ___________________
Председатель МС___________________ А.З.Даутова
(подпись)
Лабораторная работа № 1
Проектирование базы данных и редактирование данных
Пример 1. Создание базы данных «Телефонная книжка» и ее
индексирование
Рассмотрим задачу создания БД на примере простой электронной
телефонной книжки. Для каждого человека записывается его фамилия, имя,
отчество, дата рождения, пол, домашний и рабочий телефоны.
Для хранения информации о человеке будем использовать таблицу с
именем People.
Ключ
|
Имя поля
|
Тип
|
Размер,
байт
|
Дополнительно
|
Описание
|
#
|
IDPeople
|
Счетчик
|
|
Обязательное, ключевое
|
Идентификатор записи
|
|
Family
|
Строка
|
30
|
Обязательное
|
Фамилия
|
|
Name
|
Строка
|
15
|
|
Имя
|
|
SecName
|
Строка
|
15
|
|
Отчество
|
|
Birthday
|
Дата
|
|
|
День рождения
|
|
Sex
|
Логическое
|
|
Обязательное
|
Пол
|
|
Notes
|
Memo
|
100
|
|
Комментарий
|
В этой таблице было искусственно добавлено поле IDPeople, которое
является ключом.
Если бы один человек имел один телефон, можно было бы обойтись
одной таблицей People, добавив к ее полям поле Tel. Но человек может иметь
несколько телефонов, причем как домашних, так и рабочих. Если
использовать одну таблицу, информация о человеке должна повторяться
столько же раз, сколько у него номеров телефонов. Это вносит весьма
большую избыточность, а кроме того, может повлечь за собой много ошибок
при вводе однообразной информации. Поэтому для хранения информации о
телефоне используется отдельная таблица с именем Tel, которая связана с
таблицей People.
Ключ
|
Имя поля
|
Тип
|
Размер,
Байт
|
Дополнительно
|
Описание
|
#
|
IDTel
|
Счетчик
|
|
Ключевое
|
Идентификатор записи
|
|
IDPeople
|
Число
|
4
|
Обязательное, индексированное
|
Идентификатор человека
|
|
Number
|
Строка
|
9
|
Обязательное
|
Номер телефона
|
|
TypeTel
|
Строка
|
4
|
|
Тип телефона
|
IDPeople - поле, которое используется для установления взаимосвязи с полем
типа счетчика в другой таблице, должно иметь тип длинного целого и быть
индексированным.
Таким образом, структура БД «Телефонная книжка» состоит из двух
связанных таблиц People и Tel. Таблица People является основной, а
взаимосвязь устанавливается с помощью полей IDPeople в этих таблицах.
Приступим непосредственно к созданию нашей БД:
1. Запустите программу DataBase Desktop 7.0. Задайте команду меню
File|New|Table. В результате появится окно Create Table со значением в
списке форматов таблицы Paradox 7.0. Так как создавать таблицы будем в
формате Paradox 7, нажмите кнопку ОК в этом окне. В результате появится
окно Create Paradox 7 Table (Untitled), в котором будет определяться
структура таблицы. Вначале создайте таблицу People.
2. Задайте поля таблицы
2.1. Введите в первой записи описания структуры, в столбце Field
Name, значение IDPeople и нажмите клавишу Тab для перехода к
следующему столбцу.
2.2. Далее в столбце Type нажмите клавишу пробела и выберите из
списка значение +(Autoincrement), затем нажмите клавишу Tab для
перехода к следующему столбцу.
2.3. В следующем столбце Key нажмите клавишу пробела для указания,
что данное поле ключевое (в столбце Key появится звездочка).
2.4. Включите с помощью мыши выключатель Required field (Обязательное поле), а затем выберите мышью поле Key в последней
записи и нажмите клавишу Tab для перехода к следующей строке,
описывающей новое поле таблицы БД.
Остальные поля таблицы задайте аналогичным образом, выбирая при
этом соответствующий тип; только для полей Family, Name, SecName и Notes в столбце Size укажите соответствующий размер, а выключатель Required field включите только для полей Family и Sex. Следует отметить, что все оставшиеся поля не будут ключевыми, а следовательно и поле Key для них не будет активным. Для поля Birthday установите параметр Picture (Шаблон) следующим образом. Для удобства ввода и проверки шаблона воспользуемся окном, которое вызывается при нажатии кнопки Assist (Помощник). Здесь в строке Picture (Шаблон) вводится текст шаблона, правильность которого можно проверить кнопкой Verify Sintax (Проверка синтаксиса), а в строку Sample Value (Пример значения) вводится значение для проверки соответствия введенному шаблону. Тест осуществляется кнопкой Test Value (Проверка значения), после нажатия которой можно увидеть результат проверки в виде сообщения в рамке сообщений. Выберите шаблон
#[#]:#[#]:#[#] {AM,PM};, #[#]/#[#]/#[#] - время, дата - из выпадающего списка Sample Picture (Примеры шаблонов) и нажмите кнопку Use. Теперь в строке ввода Picture в появившемся шаблоне удалите все, кроме #[#]/#[#]/#[#], т. к. нам нужна только дата. Нажмите кнопку ОК.
3. Сохраните таблицу под именем People.db на диске при помощи кнопки
Save As, далее вам нужно будет активизировать выключатель Display Table (Показать таблицу) из группы Options для того, чтобы после сохранения новая таблица была отображена на экране для работы с данными в ней.
4. Открытая таблица позволяет лишь просматривать данные. Выберите
команду меню Table|Edit Data или нажмите клавишу F9. Теперь введите
несколько записей и запишите таблицу. Перемещаться по полям можно с
помощью мыши, клавиш стрелок и клавиши Tab.
5. Создайте теперь таблицу Tel. Для этого выполните действия аналогичные действиям, которые выполнялись при создании таблицы People, вводя соответствующие таблице Tel поля, за одним лишь исключением – здесь необходимо создать вторичный индекс по полю IDPeople, который создается следующим образом:
5.1. Выберите в выпадающем списке Table Properties свойство
Secondary Indexes.
5.2. Нажмите появившуюся кнопку Define.
5.3. В окне Define Secondary Index в списке Field выберите значение
IDPeople, затем нажмите кнопку со стрелкой вправо рядом со списком, после чего нажмите кнопку ОК.
5.4. В появившемся окне Save Index As введите в строку ввода IDPeopleIndex и нажмите кнопку ОК.
6. Сохраните таблицу под именем Tel.db.
7. Установите взаимосвязь между таблицами.
7.1. Задайте в качестве рабочей папки ту папку, в которой вы сохраняли создаваемые таблицы БД «Телефонная книжка». Для этого выполните команду главного меню File|Working Directory и в появившемся диалоговом окне выберите требуемую папку.
7.2. Откройте таблицу Tel.db.
7.4. Задайте команду Table|Restructure, в результате появится окно, аналогичное окну определения структуры таблицы.
7.5. Выберите в выпадающем списке Table Properties свойство Referential Integrity.
7.6. Нажмите появившуюся кнопку Define.
7.7. В окне «Referential Integrity» из списка Field выберите значение IDPeople[I], затем нажмите кнопку со стрелкой вправо рядом со списком.
7.8. В списке Table выберите значение People, затем нажмите кнопку со стрелкой влево рядом со списком. В центре окна будет схематично изображена взаимосвязь таблиц. Нажмите кнопку ОК в окне «Referential Integrity».
7.10. В окне «Save Referential Integrity As» в строку введите имя соединения PeoplesTel, а затем нажмите кнопку ОК. В результате в списке, находящемся в правой части окна определения структуры таблицы, появится введенное имя.
7.11. В окне определения структуры таблицы нажмите кнопку Save.
8. Введите в таблицу несколько записей, используя команду меню Table|Edit Data.
9. Задайте команду главного меню File|Close для закрытия таблицы Tel.db.
Пример 2. Редактирование содержимого таблиц БД «Телефонная
книжка»
1. Откройте файл People.db.
2. Выберите из меню команды Table опцию Edit Data. Теперь данные можно редактировать.
3. Активизируйте любую запись в таблице и откорректируйте или измените ее.
4. Откорректируйте подобным образом несколько записей.
5. Вставьте запись при помощи клавиш Insert или через меню команды
Record|Insert. Вставка записи производится после активизированной в данный момент записи.
6. Удалите любую запись. Для этого активизируйте ее и нажмите комбинацию клавиш Ctrl+Del или Record|Delete. Но для того чтобы произошло физическое удаление из файла таблицы БД всех отмеченных на удаление записей, необходимо активизировать выключатель Pack Table (Упаковка таблицы) при сохранении файла с таблицей. Для этого войдите в Table|Restructure, откроется окно «Restructure Paradox 7.0 for Windows Table: People.db». Здесь и активизируйте этот выключатель и нажмите кнопку Save (Сохранить).
7. Потренируйтесь в осуществлении навигации по записям таблицы с помощью кнопок панели быстрого доступа с изображением различных стрелок или с помощью команд меню Record, или же с помощью различных комбинаций клавиш, которые указаны в меню Record.
8. Для таблицы БД Tel.db проделайте то же самое.
Обратите внимание на то, что при таком методе введения данных и их редактирования могут очень часто возникать ошибки, вызванные взаимосвязанностью полей двух таблиц. Поэтому чаще всего данные вводятся и редактируются посредством созданной экранной формы.
Преимущества этого метода вы узнаете при выполнении второй лабораторной работы.
Сортировка
Сортировка - это физическое упорядочивание файла. Это отличает сортировку от индексирования БД, которое при неизменности файла позволяет предъявлять записи и перемещаться по нему в желаемом порядке. Необходимость в сортировке может возникнуть, например, если требуется произвести упорядочивание по какому-то полю или нескольким полям. При сортировке всегда создается файл такого же размера, как и исходная таблица, в котором содержатся упорядоченные записи.
Пример 3. Сортировка содержимого таблицы People БД “Телефонная
книжка”
1. Выберите команду Tools|Utilities|Sort.
2. В открывшемся диалоговом окне «Select Table» (Выбор таблицы) выберите файл, который будете сортировать, в данном случае это - People.db. Нажмите кнопку Open, в результате чего откроется окно «Sort Table:...People.db».
3. В данном окне в группе Sorted Table (Отсортированная таблица) активизирован переключатель New Table (Новая таблица). Сюда введем имя файла, в котором вы сохраните результат сортировки, People-s.
4. Активизируйте выключатель Display sorted table (Отобразить отсортированную таблицу) в этой же группе для того, чтобы после задания условий сортировки увидеть ее результат. А выключатель Sort just selected fields (Сортировка по выделенным полям) оставьте не активизированным, т. к. сортировать мы будем всю таблицу в целом, т. е. по всем полям, определенным в списке Fields, а не по полям, находящимся в списке Sort Oder.
5. В окне также имеется два списка: левый - Fields - содержит названия всех полей, входящих в таблицу, правый - Sort Oder - названия полей, по которым производится сортировка. Выберите в левом списке полей поле Family и, нажав кнопку со стрелкой вправо рядом со списком, занесите его в правый список.
6. Мы будем сортировать таблицу по полю Family, причем по возрастанию, об этом свидетельствует значок плюса перед именем поля в списке Sort Oder. Но при необходимости вы можете изменить вид сортировки кнопкой Sort Direction (убыванию соответствует значок минуса перед именем поля в списке Sort Oder). Здесь также можно изменять порядок следования полей, по которым сортируется таблица, с помощью кнопок-стрелок Change oder.
7. По окончании выбора порядка сортировки нажмите кнопку ОК. В результате проведенных действий вы должны увидеть, что таблица будет
отсортирована по фамилиям, упорядоченным по алфавиту.
Задание к лабораторной работе № 1
1. Спроектируйте базу данных, состоящую из нескольких таблиц таким образом, чтобы в многотабличной системе были таблицы со связью 1:1, 1:N (N:1).
Вариант 1.
Данные для простой складской системы. База данных должна содержать
следующую информацию: уникальный номер поставщика, фамилию, имя,
отчество поставщика, название города местонахождения поставщика, а также уникальный номер детали, ее название, цвет, вес и название города хранения деталей этого типа.
Вариант 2.
Сведения об участниках конкурса бальных танцев. База данных должна содержать следующую информацию: фамилию, имя, отчество участника,
город, фамилию тренера, оценки за каждый танец.
Вариант 3.
Сведения об успеваемости студентов. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, номер группы, в которой обучается студент, название учебной дисциплины, номер задания, коэффициент сложности, оценку данного студента по данной дисциплине за данное задание от 0 до 1 (как доля сделанной работы).
Вариант 4.
Сведения о месячной зарплате рабочих. База данных должна содержать следующую информацию: фамилию, имя, отчество рабочего, название цеха, в котором он работает, дату поступления на работу. По заработной плате необходимо хранить информацию о ее размере, стаже работника,
его разряде и должности.
Вариант 5.
Учет изделий, собранных в цехе за неделю. База данных должна содержать следующую информацию: фамилию, имя, отчество сборщика, количество изготовленных изделий за каждый день недели раздельно, название цеха,
а также тип изделия и его стоимость.
Вариант 6.
Учет изделий категорий А, В, С, собранных рабочим цеха за месяц. База данных должна содержать следующую информацию: фамилию, имя, отчество рабочего, название цеха, количество изделий по категориям, количество рабочих u1074 в цехе и фамилию начальника цеха.
Вариант 7.
Сведения об абонентах АТС. База данных должна содержать следующую информацию: фамилию, имя, отчество владельца телефона, год установки телефона, номер телефона, тип установки телефона (спаренный или нет), льготу (процентную скидку при оплате).
Вариант 8.
Сведения об ассортименте игрушек в магазине. База данных должна содержать следующую информацию: название игрушки, ее цену, количество, возрастную категорию детей, для которых она предназначена, а также название фабрики и города, где изготовлена игрушка.
Вариант 9.
Результаты сессии на первом курсе кафедры ВТ. База данных должна содержать следующую информацию: индекс группы, фамилию, имя, отчество студента, пол студента, семейное положение и оценки по пяти
экзаменам.
Вариант 10.
Учет рейтинга теннисистов за 5 лет. Каждая запись содержит поля: фамилия, имя, отчество спортсмена, пол, год рождения, фамилия, имя, отчество тренера, названия стран и пять полей с рейтингом.
Вариант 11.
Сведения о рейсах Аэрофлота. База данных должна содержать следующую информацию: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест, тип самолета и его вместимость.
Вариант 12.
Сведения об ассортименте обуви в магазине. База данных должна содержать следующую информацию: артикул, наименование обуви, количество пар, стоимость одной пары, имеющиеся размеры, название фабрики и срок поставки обуви в магазин.
Вариант 13.
Сведения о нападающих команд “Спартак” и “Динамо”. База данных должна содержать следующую информацию: фамилию, имя, отчество, название команды, дату приема в команду, число заброшенных шайб, количество голевых передач, штрафное время и количество сыгранных матчей.
Вариант 14.
Сведения о выборе дисциплины студентом. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, номер зачетной книжки и сведения о том, живет ли студент в общежитии, индекс группы, а также пять дисциплин (1 – желает изучать, 0 – не желает).
Вариант 15.
Журнал регистрации расходов в бухгалтерии. База данных должна содержать следующую информацию: номер пункта, дату перечисления, название организации-получателя, ее адрес и сведения о том, является ли организация коммерческой, а также вид затрат перечисления и общую сумму перечисления.
Вариант 16.
Учет оптовых продаж. База данных должна содержать следующую информацию: наименование товара, цену единицы товара и дату его поступления, номер партии, размер партии, названии фирмы-покупателя, размер проданной партии, цену единицы товара и дату продажи.
Вариант 17.
Учет лекарств в аптеке. База данных должна содержать следующую информацию: наименование лекарства, стоимость одной единицы, количество единиц, дату изготовления, срок годности, а также название фабрики, где производится данное лекарство, ее адрес.
Вариант 18.
Сведения о ветеранах спорта. Ассоциация ветеранов спорта проводит Всероссийские соревнования ветеранов. Для организации соревнований составляются списки участников, которые используются для размещения спортсменов в гостиницах. Для каждого спортсмена указывается гостиница, номер комнаты и количество мест в комнате. Для нужд самой ассоциации ветеранов спорта необходимо хранить информацию следующего вида: фамилию, имя, отчество спортсмена, возрастную группа, название города и вид спорта.
Вариант 19.
Учет рождаемости в роддоме. База данных должна содержать следующую информацию: фамилию, имя, отчество матери, пол ребенка, его вес, рост и дату рождения ребенка, а также ФИО лечащего врача и номер палаты, в
которой находится мать ребенка.
Вариант 20.
Сведения об обучающихся на курсах повышения квалификации. База данных должна содержать следующую информацию: фамилию, имя, отчество слушателя, его пол и адрес, тип организации (коммерческая, государственная и т.д.), наименование организации, должность _________слушателя и оценки по прослушанным дисциплинам (маркетинг, финансы и кредит) для каждого слушателя.
Вариант 21.
Сведения о размере стипендии студента. База данных должна содержать следующую информацию: фамилию, имя, отчество студента, группу, адрес, по которому проживает студент, размер стипендии, а также фамилию преподавателя, читаемую дисциплину, дату экзамена и оценку, полученную студентом.
Вариант 22.
Учет поступления больных. База данных должна содержать следующую информацию: фамилию, имя, отчество больного, его пол, дату рождения, дата поступления, начальный диагноз, степень тяжести состояния больного, номер палаты, куда был помещен больной, и фамилию, имя, отчество лечащего врача.
Вариант 23.
Учет призывников. База данных должна содержать следующую
информацию: фамилию, имя, отчество призывника, год его рождения, адрес, семейное положение, дату прохождения медкомиссии, заключение о пригодности к службе.
Вариант 24.
Учет золотых изделий в ювелирном магазине. База данных должна содержать следующую информацию: вид изделия, его вес, пробу, дату поступления и стоимость, а также фамилию, имя, отчество мастера-изготовителя, стаж его работы и разряд (1,2,3).
2. Отредактируете несколько записей в базе данных.
3. Отсортируйте данные в базе данных по какому-либо признаку или полю, записав результаты сортировки.
4. Составьте вторичный индекс из одного, двух или более полей.
Лабораторная работа № 2
Проектирование приложений для работы с БД
Одной из самых существенных возможностей пакета Delphi является
разработка приложений для работы с БД. Здесь под приложением мы будем
понимать экранную форму, созданную для удобной работы с информацией,
хранящейся в таблицах БД.
Виды форм БД и их создание
Формы БД различаются по способу представления информации.
Существуют следующие виды форм:
- Список-форма. Она похожа на таблицу, где записи расположены одна под
другой. Следует отметить, что для создания такой формы используется
компонента DBGrid. Как правило, все поля записи в этой форме
размещаются в одну строку. С этой формой очень удобно работать, когда
записи короткие.
- Бланк-форма. Эта форма похожа на анкету, где все поля одной записи
расположены на одном листе. Такая форма используется при отображении
больших записей из БД, например анкетной информации о человеке, и
позволяет создать очень информативное представление данных за счет
дополнительных элементов.
- Форма с подформой. Представляет собой форму, в которой отображаются
два или более связанных между собой наборов данных. Эта форма
используется для вывода данных из связанных таблиц. В главной форме
отображаются записи из одной таблицы, а в подчиненной - записи из
другой таблицы, связанные с текущей записью в главной форме. Этот
вариант представления данных удобен, когда одной записи в первом
наборе данных соответствует несколько записей во втором.
Создавать форму БД при разработке приложения для работы с БД
можно вручную, помещая необходимые компоненты на форму. С другой
стороны, можно также воспользоваться помощью эксперта-построителя
форм БД, а затем, в случае необходимости изменить расположение
отображаемых компонент. Заметим, что эксперт помещает на форму не
только отображаемые компоненты, но и компоненты, которые определяют
связь с БД.
Одной из важных задач при создании приложения для работы с БД
является создание качественных форм БД. Простое, понятное расположение
компонент не только повышает эффективность работы, но и позволяет
минимизировать ошибки ввода.
Пример 1. Создание формы БД с подформой для работы с информацией
из БД «Телефонная книжка»
1. Откроем новый проект с помощью команды главного меню File|New
Application. Изменим свойство Caption (Заголовок) формы Form1 на
«Информация о людях». Фактически этот заголовок формы будет являться названием БД.