Добавлен: 26.06.2023
Просмотров: 64
Скачиваний: 2
- Создание БД и таблиц с исчерпывающим описанием их структуры.
- Запрос от БД информации и представление ее в удобном для пользователя виде.
- Манипуляции с данными: добавление, редактирование и удаление данных.
Несколько позже SQL был обучен:
- Обработке транзакций.
- Управлению курсором.
- Определению прав пользователей.
Если классифицировать команды SQL в соответствии с их функциональным назначением, то можно выделить шесть подмножеств языка:
- Язык запросов – DQL (Data Query Language) предназначен для извлечения данных из таблиц и в своей основе опирается на инструкцию SELECT.
- Язык определения данных – DDL (Data Definition Language) в первую очередь нацелен на решение вопросов создания (CREATE) и удаления (DROP) различных объектов БД (таблиц, представлений, индексов, курсоров, определений доменов).
- Язык манипулирования данными – DML (Data Manipulation Language) осуществляет операции вставки, редактирования и удаления данных и базируется на инструкциях INSERT, UPDATE и DELETE.
- Язык управления доступом к данным – DCL (Data Control Language) устанавливает ограничения на права пользователей при работе с объектами базы данных. Характерными представителями инструкций этой категории выступают GRANT и REVOKE.
- Язык обработки транзакций – TPL (Transaction Processing Language) включает инструкции BEGIN TRANSACTION, COMMIT и ROLLBACK. Язык позволяет объединять несколько команд SQL в группу, называемую транзакцией. Если хотя бы одна из команд, входящих в транзакцию, не будет выполнена, осуществляется откат и всех других команд.
- Язык управления курсором – CCL (Cursor Control Language) выбирает для обработки одну строку результирующего множества запроса.
глава 2.Практическая часть
2.1 Анализ предметной области
В качестве предметной области для автоматизации процессов выбран абстрактный магазин пищевых товаров. Допустим, в его состав входит несколько складов и несколько торговых точек. Магазин небольшой, но имеет потенциал к расширению. На каждом складе за погрузкой и отгрузкой товара следит кладовщик, в каждой торговой точке есть кассовые аппараты, работу с которыми осуществляют продавцы. Также в магазине есть офис, где располагается вся бухгалтерия.
Исходя из описания предметной области, можно выделить несколько процессов, требующих автоматизации:
- работа со складом, документирование приема и отгрузки товара;
- работа по отпуску товара на кассах;
- формирование смен кассиров и кладовщиков, начисление заработной платы сотрудникам;
- работа с денежными средствами – прибылью и налогами;
- менеджмент продукции, организация заказов товара у поставщиков.
По территориальному признаку вышеописанные процессы реализуются в трех местах: на кассах, на складах и в офисе. Соответственно для каждого из этих мест необходимо разработать собственное средство автоматизации. Очевидно, что все средства автоматизации, несмотря на их развернутую структуру, работают с одним и тем же набором данных - списком товаров. Отсюда вытекает необходимость клиент-серверной реализации настоящей разработки с централизованным управлением транзакциями доступа к базе данных.
2.2 Разработка структуры базы данных
Для успешной реализации программного средства автоматизации необходимо разработать базу данных, способную отразить все процессы, протекающие в рассматриваемой предметной области.
Так как СУБД InterBase не поддерживает русского языка, в дальнейшем при описании объектов базы данных будет использоваться совместно русскоязычное название и англоязычный код, который в последующем будет использоваться при формировании физической модели базы данных.
Основными объектами любой реляционной базы данных являются таблицы. В СУБД InterBase каждое поле таблицы должно иметь определенный тип данных, основанный на встроенных типах данных InterBase.
Исходя из списка объектов предметной области, а также процессов, требующих автоматизации разработаем структуры таблиц базы данных (Таблица 2.1 – Таблица 2.22).
Таблица 2.1 – Структура таблицы «Выплаты»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Операция |
Operation |
INTEGER |
Работник |
Person |
INTEGER |
Период |
Start |
DATE |
Конец |
Ending |
DATE |
Сумма |
Cash |
DECIMAL(10,4) |
Таблица 2.2 – Структура таблицы «Заказ»
Поле |
Код |
Тип |
Заказ |
Order |
INTEGER |
Товар |
Good |
INTEGER |
Количество |
Amount |
INTEGER |
Таблица 2.3 – Структура таблицы «Заказы»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Поставщик |
Supplier |
INTEGER |
Дата |
Date |
DATE |
Сотрудник |
Employee |
INTEGER |
Таблица 2.4 – Структура таблицы «Занятость»
Поле |
Код |
Тип |
Поставщик |
Supplier |
INTEGER |
Подкатегория |
Subcategory |
INTEGER |
Таблица 2.5 – Структура таблицы «Кассы»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Сумма |
Cash |
DECIMAL(10,4) |
Разменные |
Trifle |
DECIMAL(10,4) |
Обслуживание |
Service |
DATE |
Таблица 2.6 – Структура таблицы «Категории»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Название |
Name |
VARCHAR(15) |
Таблица 2.7 – Структура таблицы «Кладовщики»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Работник |
Person |
INTEGER |
Оклад |
Salary |
DECIMAL(10,4) |
Премия |
Bonus |
DECIMAL(10,4) |
Отпускные |
Travel |
DECIMAL(10,4) |
Устройство |
Inauguration |
DATE |
Увольнение |
Dismissal |
DATE |
Таблица 2.8 – Структура таблицы «Налоги»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Операция |
Operation |
INTEGER |
Период |
Date |
DATE |
Конец |
Ending |
DATE |
Сумма |
Tax |
DECIMAL(10,4) |
Таблица 2.9 – Структура таблицы «Операции»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Касса |
Till |
INTEGER |
Дата |
Date |
DATE |
Остаток |
Balance |
DECIMAL(10,4) |
Плюс |
Plus |
DECIMAL(10,4) |
Минус |
Minus |
DECIMAL(10,4) |
Итог |
Total |
DECIMAL(10,4) |
Таблица 2.10 – Структура таблицы «Подкатегории»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Название |
Name |
VARCHAR(15) |
Категория |
Category |
INTEGER |
Таблица 2.11 – Структура таблицы «Поставки»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Поставщик |
Supplier |
INTEGER |
Заказ |
Order |
INTEGER |
Дата |
Date |
DATE |
Таблица 2.12 – Структура таблицы «Поставщики»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Организация |
Organization |
VARCHAR(50) |
ИНН |
Taxpayer |
VARCHAR(15) |
Адресс |
Adress |
VARCHAR(50) |
Телефон |
Phone |
VARCHAR(15) |
Таблица 2.13 – Структура таблицы «Продавцы»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Работник |
Person |
INTEGER |
Оклад |
Salary |
DECIMAL(10,4) |
Премия |
Bonus |
DECIMAL(10,4) |
Отпускные |
Travel |
DECIMAL(10,4) |
Устройство |
Inauguration |
DATE |
Увольнение |
Dismissal |
DATE |
Таблица 2.14 – Структура таблицы «Продажи»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Товар |
Product |
INTEGER |
Чек |
Ticket |
INTEGER |
Цена |
Price |
DECIMAL(10,4) |
Количество |
Counts |
INTEGER |
Таблица 2.15 – Структура таблицы «Продукты»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Товар |
Good |
INTEGER |
Годен до |
Expiration |
DATE |
Закупочная цена |
Purchase |
DECIMAL(10,4) |
Наценка |
Differential |
DECIMAL(10,4) |
НДС |
VAT |
DECIMAL(10,4) |
Скидка |
Discount |
DECIMAL(10,4) |
Цена |
Price |
DECIMAL(10,4) |
Количество |
Counts |
INTEGER |
Поставка |
Supply |
INTEGER |
Склад |
Stock |
INTEGER |
Таблица 2.16 – Структура таблицы «Работники»
Поле |
Код |
Тип |
Номер |
Number |
INTEGER |
Фамилия |
Surname |
VARCHAR(25) |
Имя |
Name |
VARCHAR(25) |
Отчество |
Patronymic |
VARCHAR(25) |
Дата рождения |
Birthday |
DATE |
Фотография |
Photo |
BLOB |
Счет |
Account |
VARCHAR(20) |
ИНН |
Taxpayer |
VARCHAR(15) |
Полис |
Policy |
VARCHAR(15) |
Пенсионный |
Pension |
VARCHAR(15) |
Должность |
Job |
VARCHAR(20) |
Доступ |
Access |
INTEGER |
Принят |
Inauguration |
DATE |
Уволен |
Dismissal |
DATE |
Отпуск |
Vacation |
DATE |