- •О. Б. Малков работа с базами данных в среде delphi Учебное пособие для студентов заочной формы обучения
- •Содержание
- •1. Реализация работы с базами данных в среде delphi
- •1.1. Базы данных и системы управления базами данных
- •1.2. Технология доступа к данным bde
- •1.3. Компоненты приложений, работающих с базами данных
- •2. Демонстрационная база данных
- •2.1. Логическая модель данных предметной области
- •2.2. Физическая модель данных предметной области
- •3. Создание базы данных
- •3.1. Создание псевдонима
- •3.2. Создание структуры таблиц базы данных
- •3.3. Свойства таблиц Paradox
- •3.4. Заполнение таблиц базы данных
- •4. МодулЬ данных
- •4.1. Создание модуля данных
- •4.2. Связывание наборов данных
- •4.3. Создание объектов-полей
- •4.4. Проектирование и анализ структуры базы данных
- •4.5. Создание объектов-столбцов
- •4.6. Реализация бизнес-правил
- •5. Создание приложения, работающего с базой данных
- •5.1. Выбор типа пользовательского интерфейса
- •5.2. Создание главной формы
- •5.3. Создание рабочих форм
- •5.4. Создание форм ввода новых данных
- •6. Создание запросов
- •6.1. Компонент Query
- •6.2. Создание sql-запросов
- •6.2.1. Простая выборка данных
- •6.2.2. Выборка из связанных таблиц
- •6.2.3. Сортировка записей
- •6.2.4. Сложные критерии отбора
- •6.2.5. Псевдонимы таблиц и комментарии
- •6.2.6. Агрегатные функции и группировка записей
- •6.2.7. Создание и удаление таблиц и индексов
- •6.2.8. Вставка, удаление и редактирование записей
- •Insert into Имя_таблицы (Список_полей
- •Values (Список_значений)
- •6.3. Построение запроса в демонстрационной базе данных
- •7. Создание отчетов
- •7.1. Основы технологии Rave Reports
- •7.2. Визуальная среда Rave Designer
- •7.3. Составляющие проекта отчета
- •7.3.1. Библиотека отчетов
- •7.3.2. Каталог глобальных страниц
- •7.3.3. Каталог объектов данных
- •7.4. Типы отчетов
- •7.4.1. Отчет с единственной таблицей или запросом
- •7.4.2. Отчет главный-детальный
- •7.4.3. Группирующий отчет
- •7.5. Пример создания отчетов в приложении Sale
- •7.6. Экспорт отчета в файл
- •8. Создание СправочнОй системЫ
- •8.1. Создание файла документа справочной информации
- •8.2. Создание проекта справочной системы
- •8.3. Доступ к справочной информации
- •9. Создание установочного диска
- •9.1. Программа InstallShield Express
- •9.2. Создание проекта инсталляционной программы
- •Библиографический список
2. Демонстрационная база данных
2.1. Логическая модель данных предметной области
Все примеры в учебном пособии рассматриваются на демонстрационной БД «Сбыт готовой продукции предприятия». Подробное описание предметной области, анализ документов, поступающих в отдел сбыта и формируемых в нем, а также процедуру построения логической модели данных с использованием CASE-технологии и CASE–средств можно найти в работе [6]. Напомним, каким образом отдел сбыта осуществляет свою деятельность.
В процессе договорной кампании предприятие заключает договоры с заказчиками на поставку своей продукции. Один заказчик может иметь несколько договоров. При отгрузке готовой продукции заказчикам выписываются товаротранспортные накладные (ТТН). Оплата отгруженной продукции заказчиком оформляется платежным требованием (ПТР). Оно выписывается на основании ТТН, сопровождающих товар. Возможна частичная оплата отгруженной продукции. Продукция, отгруженная по одной ТТН, может оплачиваться с помощью нескольких ПТР.
Логическая модель данных предметной области в виде ER-диаграммы с указанием наиболее важных сущностей, атрибутов и связей показана на рис. 6.
Рис. 6. Логическая модель данных предметной области
2.2. Физическая модель данных предметной области
Физическая модель данных содержит информацию о конкретных объектах БД – таблицах, полях, индексах, процедурах и т. д. Эта модель создается на базе конкретной целевой СУБД. В работе [6] в качестве целевой была выбрана СУБД Microsoft Access 2000.
Для локальных и файл-серверных БД наилучшим вариантом принято считать таблицы СУБД Paradox. Физическая модель данных рассматриваемой предметной области, ориентированная на СУБД Paradox, представлена на рис. 7.
В файл-серверных БД имя таблицы совпадает с именем файла, в котором размещаются содержащиеся в таблице данные. Поскольку Windows разрешает длинные русскоязычные имена файлов, возникает соблазн назвать таблицы ПЛАТЕЖНЫЕ ТРЕБОВАНИЯ, ДОГОВОРЫ и т. д. Это делать не следует, поскольку использование кириллицы в SQL ограничено (полное название таблицы придется заключать в кавычки). По этой же причине не следует использовать кириллицу в именах полей.
Рис. 7. Физическая модель данных предметной области
В именах полей полезно ставить префикс из одной-двух букв названия таблицы (в таблице DOGOVOR имена начинать с «D», в таблице SPLAT – с «Sp» и т. п.) Это исключит случайное использование зарезервированных в SQL слов. Лаконичные имена полей сокращают код программы и сроки ее создания.
Современные CASE-средства могут автоматически генерировать код БД по физической модели. Однако при выборе СУБД Paradox создавать таблицы и устанавливать связи ссылочной целостности между таблицами придется «вручную».
В эффективном средстве Embarcadero ER/Studio 5.0 СУБД Paradox не включена в список целевых, а скрипты, генерируемые средством ERwin 4.0, базу данных в формате Paradox не создают. Заметим, что столь же безрезультатными оказались и попытки осуществить с помощью ERwin 4.0 кодогенерацию БД в Access 2000.
Данные таблицы ZAKAZCIK показаны в табл. 9, таблицы IZDELIE – в табл. 10, таблицы NAKLAD – в табл. 11, таблицы SNAKL – в табл. 12, таблицы PLATEG – в табл. 13, таблицы SPLAT – в табл. 14. Для упрощения таблицы DOGOVOR и SSPEZ в рассматриваемом примере не создаются и не используются.
Таблица 9
Код заказчика |
Наименование заказчика |
Адрес заказчика |
Телефон заказчика |
001 002 003 004 005 |
ТОО «Петр» Магазин «Диета» АО «Полюстрово» Магазин «Лига» Универмаг «Клен» |
пр. Энгельса, д. 23 ул. Пархоменко, д. 5 пр. Литейный, д. 58 пр. Испытателей, д. 8 пр. Шверника, д. 6 |
176-12-34 192-45-98 251-11-87 185-17-41 182-21-76 |
Таблица 10
Код изделия |
Наименование изделия |
Ед. измерения |
Цена, руб. |
001 002 003 004 005 |
Балтика «Светлое» Балтика «Особое» Балтика «Классическое» Балтика «Оригинальное» Балтика «Портер» |
шт. шт. шт. шт. шт. |
32 34 36 38 42 |
Таблица 11
Номер накладной |
Код заказчика |
Сумма отгрузки, руб. |
Дата отгрузки |
0024 0025 0028 0030 0050 0075 0081 |
001 003 004 002 004 005 003 |
16.300 4.200 22.600 23.500 6.400 6.800 30.000 |
18.09.03 18.09.03 22.09.03 22.09.03 23.09.03 25.09.03 29.09.03 |
Таблица 12
Номер накладной |
Код изделия |
Отгруженное количество |
0024 0024 0024 |
001 002 005 |
100 200 150 |
0025 |
005 |
100 |
0028 0028 0028 |
003 004 005 |
300 200 100 |
0030 0030 0030 0030 |
001 002 004 005 |
200 100 250 100 |
0050 |
001 |
200 |
0075 0075 |
001 003 |
100 100 |
0081 0081 0081 |
001 002 003 |
500 200 200 |
Таблица 13
Номер ПТР |
Код заказчика |
Номер ТТН |
Дата оплаты |
Сумма оплаты |
0125 0125 0127 0140 0141 0143 0154 |
001 004 001 003 002 004 003 |
0024 0028 0024 0025 0030 0050 0081 |
20.09.03 29.09.03 22.09.03 30.09.03 30.09.03 02.10.03 06.10.03 |
6.600 22.600 9.700 2.100 10.800 3.200 16.000 |
Таблица 14
Номер ПТР |
Код заказчика |
Код изделия |
Оплаченное количество |
0125 0125 |
001 001 |
001 002 |
100 100 |
0125 0125 0125 |
004 004 004 |
003 004 005 |
300 200 100 |
0127 0127 |
001 001 |
002 005 |
100 150 |
0140 |
003 |
005 |
50 |
0141 0141 0141 |
002 002 002 |
001 002 005 |
100 100 100 |
0143 |
004 |
001 |
100 |
0154 |
003 |
001 |
500 |