- •Базы данных
- •Содержание
- •Введение
- •1. Создание приложений с использованием технологии bde
- •1.1. Лабораторная работа № 1: создание базы данных
- •1.1.1. Создание таблиц dBase IV
- •1.1.2. Создание индексов
- •1.1.3. Создание таблиц Paradox 7
- •1.1.4. Задание свойств таблицы Paradox 7
- •Задание на лабораторную работу № 1
- •1.2. Лабораторная работа № 2: установление связей между таблицами в многотабличной базе данных
- •1.2.1. Создание алиаса
- •1.2.2. Связывание таблиц
- •Задание на лабораторную работу № 2
- •1.3. Лабораторная работа № 3: работа с полями и компонентом dbGrid
- •1.3.1. Использование объектов-полей
- •1.3.2. Обращение к значению поля
- •1.3.3. События объекта-поля
- •1 Рис. 10. Пример использования события OnCellClick .3.4. События сетки dbGrid
- •1.3.5. Создание объектов-столбцов в dbGrid
- •1.3.6. Формирование списка возможных значений столбца
- •Задание на лабораторную работу № 3:
- •1.4. Лабораторная работа № 4: работа с наборами данных (компонент Table)
- •1.4.1. Открытие и закрытие набора данных
- •1.4.2. Доступ к записям
- •1.4.3. Навигация по набору данных
- •1.4.4. Поиск записей в наборах данных
- •1.4.5. Реализация каскадных изменений
- •1.4.6. Пример выполнения лабораторной работы
- •Задание на лабораторную работу № 4
- •1.5. Лабораторная работа № 5: работа с отчетами
- •1.5.1. Создание простейшего отчета
- •1.5.2. Создание отчета для связанных наборов данных
- •1.5.3. Использование выражений (компонент qrExpr)
- •1.5.4. Группирование данных в отчете
- •Задание на лабораторную работу № 5:
- •1.6. Лабораторная работа № 6: sql-запросы (компонент Query)
- •Задание на лабораторную работу № 6
- •2. Создание приложений, работающих с базами данных interbase
- •2.1. Лабораторная работа № 1: создание схемы базы данных
- •2.2. Лабораторная работа № 2: доступ к базе данных InterBase c использованием dbExpress
- •2.3. Лабораторная работа № 3: транзакции
- •2.4. Лабораторная работа № 4: отображение данных запроса
- •2.5. Лабораторная работа № 5: вычисляемые, агрегатные и подстановочные поля
- •2.5.1. Вычисляемые поля
- •2.5.2. Агрегатные поля
- •2.5.3. Подстановочные поля
- •2.6. Лабораторная работа № 6: связь Master-Detail
- •2.7. Лабораторная работа № 7: локальная репликация данных
- •Приложение 1 варианты заданий к лабораторным работам Вариант 1. Прием заказов
- •Вариант 2. Поставки товаров
- •Вариант 3. Исполнители
- •Вариант 4. Картинная галерея
- •Вариант 5. Порт
- •Вариант 6. Студенты
- •Вариант 7. Строительная компания
- •Вариант 8. Автосалон
- •Вариант 9. Аэропорт
- •Вариант 10. Диагностический центр
- •Вариант 11. Реклама
- •Вариант 12. Быстрая пицца
- •Вариант 13. Клуб собаководов
- •Вариант 14. Грузоперевозки
- •Вариант 15. Аптека
- •Вариант 16. Автовокзал
- •Вариант 17. Общественная организация
- •Вариант 18. Учет потребления газа
- •Приложение 2 порядок выполнения лабораторных работ
- •Библиографический список
Вариант 15. Аптека
склад (А) |
|
препараты (B) |
|
производители препаратов (D) |
К од препарата |
|
Код препарата |
|
Код производителя |
Код поставщика |
Код производителя |
Имя производителя |
||
Цена |
Наименование препарата |
Страна производителя |
||
Срок годности |
Максимальная цена |
Дата начала деятельн-ти в РФ |
||
Количество на складе |
поставщики (C) |
|
||
|
Код поставщика |
|
||
|
|
Адрес поставщика |
|
|
|
|
Дата заключения договора |
|
|
|
|
Дата окончания договора |
|
|
|
|
Имя поставщика |
|
|
Выполнить SQL-запросы для созданной БД:
Вывести информацию о ценах на все препараты всех производителей и о поставщиках, у которых они имеются.
Выбрать препарат, у которого разница между ценой и максимальной ценой наибольшая.
Выбрать всех производителей аспирина.
Выбрать всех поставщиков, у которых число поставляемых ими препаратов превышает 2.
Выбрать всех производителей, у которых нет аспирина.
Выбрать все таблетки и мази и их максимальную разрешенную цену, учитывая, что реальная максимальная цена на мази на 5 % больше указанной в таблице.
Уменьшить на 25 % цену препаратов, срок годности которых оканчивается ранее 10.10.05.
Выбрать всех поставщиков и число поставляемых ими препаратов.
Вариант 16. Автовокзал
маршруты (А) |
|
рейсы (B) |
|
автобусы (C) |
Номер маршрута |
|
Номер маршр. |
|
Код автобуса |
Конечный пункт назначения |
Код автобуса |
Марка автобуса |
||
Время отпр. из Омска |
Дата выезда |
Регистрационный номер |
||
Время приб. в конечный пункт |
Водитель |
Бортовой номер автобуса |
||
Время отправления |
|
Количество мест |
||
Время прибытия в Омск |
|
|
||
Дни движения по маршруту (чет./нечет./ежедн.) |
|
остановки (D) |
|
населенные пункты (E) |
|
|
Номер маршрута |
|
Код пункта |
|
|
Код остановки |
|
Название пункта назначения |
|
|
|
|
Расстояние от Омска |
|
|
|
|
Стоимость билета |
Выполнить SQL-запросы для созданной БД:
Вывести время отправления из г. Омска, время прибытия, марку автобуса, номер маршрута для автобусов, ходящих до станции «Чернолучье» до обеда (вывод данных из нескольких таблиц).
Вывести время в пути для автобусов по самому дальнему маршруту (простой вложенный).
Определить фамилию водителя для автобуса с заданным бортовым номером (коррелированный подзапрос).
Вывести маршрут автобуса, номер маршрута, конечный пункт назначения время отправления и время отправления из г. Омска для рейсов, проходящих через остановку «Марьяновка» (со сложным условием).
Определить по каким маршрутам ходят автобусы марки «ЛИАЗ» (с EXISTS).
Вывести номера маршрутов для автобусов, следующих через станцию «Азово» или номера автобусов, для которых время отправления из г. Омска с 9.00 до 10.00, или то и другое (с UNION).
Изменить время отправления из г. Омска и время прибытия в конечный пункт для указанного маршрута (UPDATE).
Определить марку автобуса с наибольшим количеством посадочных мест (с использованием встроенных функций или вычисляемых полей).