Поставка и реализация бытовой техники
Оглавление
Введение………………………………………………………
Введение
Реляционная СУБД (Система Управления Базами Данных) — СУБД, управляющая реляционными базами данных. Понятие реляционный (англ. relation — отношение) связано с разработками известного английского специалиста в области систем баз данных Эдгара Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная
модель ориентирована на организацию
данных в виде двумерных таблиц.
Каждая реляционная таблица
- каждый элемент таблицы — один элемент данных
- все ячейки в столбце таблицы однородные, то есть все элементы в столбце имеют одинаковый тип (числовой, символьный и т. д.)
- каждый столбец имеет уникальное имя
- одинаковые строки в таблице отсутствуют
- порядок следования строк и столбцов может быть произвольным
СУБД
позволяет структурировать, систематизировать
и организовать данные для их компьютерного
хранения и обработки. Сегодня невозможно
представить себе деятельность любого
современного предприятия или организации
без использования
В данном курсовом проекте была разработана база данных в MS Microsoft SQL Server 2005 для автоматизации процесса контроля поставок и продажи бытовой техники. Программа, работающая с БД, позволяет показывать информацию о товарах, о поставщиках, реализаторах и клиентах. Так же дает возможность сформировать отчеты по различным категориям.
- Описание предметной области
В настоящее время эффективное функционирование современного предприятия невозможно без применения информационных систем. Эта проблема актуальна как для крупных предприятий, так и для предприятий среднего и даже малого бизнеса. Информационные системы имеют ряд существенных отличий от стандартных прикладных программ. В зависимости от предметной области информационные системы могут сильно различаться по своей архитектуре и функциям.
При разработке базы данных «Поставка и реализация бытовой техники» было проведено обследование предметной области. В результате в БД «Поставка и реализация бытовой техники» используются следующие входные данные:
- информация о товаре;
- информация о сотрудниках;
- информация о поставщике;
- информация о реализаторе;
- информация о клиентах.
Выходными данными являются выходные формы, запросы. Так же в курсовом проекте использовано ограничение на ввод данных, например, пользователю сообщается об ошибке, если он введет отрицательную цену.
- Проектирование реляционной базы данных
В данном проекте «Поставка и реализация бытовой техники» главной таблицей является «Склад». Если таблицу не разбивать на подтаблицы, то можно наблюдать избыточность данных, а это не допустимо. Чтобы это избежать добавляем следующие таблицы:
- «Поставка» - содержит информацию о поставщике и поставляемом товаре;
- «Реализация» - содержит информацию о продаже товара.
2.1 Перечень атрибутов
Таблица «Клиент» содержит:
- id_клиента – уникальный идентификатор клиента
- Фамилия – фамилия клиента
- Телефон – телефон клиента
- Адрес – адрес клиента
Таблица «Поставка» содержит:
- id – уникальный номер поставки
- Наименование – наименование поставляемого товара
- Количество – количество поставляемого товара (шт.)
- Поставщик – уникальный номер поставщика
- Общая цена – цена поставляемых товаров
Таблица «Реализация» включает в себя:
- id – уникальный номер реализации
- Наименование – наименование реализуемого товара
- Количество – количество реализуемого товара (шт.)
- Общая цена – цена реализуемых товаров
- Дата продажи – дата реализации
- id_клиента – уникальный номер клиента-покупателя
В
таблице «Склад» следующие
- id – порядковый номер записи
- Наименование – наименование товара
- Марка – производитель товара
- Модель – модель товара
- Цена – цена товара
- id_поставщика – номер поставщика, доставившего товар на склад
- id_реализатора – номер реализатора, который продал товар
Таблица «Сотрудники» включает в себя:
- id – уникальный номер сотрудника
- Фамилия – фамилия сотрудника
- Имя – имя сотрудника
- Отчество – отчество сотрудника
- Телефон – телефон, по которому можно связаться с сотрудником
- Адрес – адрес проживания сотрудника
- Должность – занимаемая должность
- Стаж – стаж работы в организации
- Инфологическая модель базы данных
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Поэтому инфологическую модель данных пытаются строить по аналогии с естественным языком, который не может быть использован в чистом виде из-за сложности компьютерной обработки текстов и неоднозначности любого естественного языка. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность – любой различимый, информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе.
Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности. Например, атрибуты используются для определения того, какая информация должна быть собрана о сущности. Абсолютное различие между типами сущностей и атрибутами отсутствует. Атрибут является таковым только в связи с типом сущности. В другом контексте атрибут может выступать как самостоятельная сущность.
Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся атрибутам.
Связь – ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных – это обеспечение возможности отыскания одних сущностей по значениям других, для чего необходимо установить между ними определенные связи. А так как в реальных базах данных нередко содержатся сотни или даже тысячи сущностей, то теоретически между ними может быть установлено более миллиона связей. Наличие такого множества связей и определяет сложность инфологических моделей.
3.1 Описание связей
В базе данных определены следующие отношения между таблицами:
| Таблица «Поставка» | Таблица «Склад» |
| id | id_поставщика |
| Тип отношений: | Один ко многим |
| Таблица «Склад» | Таблица «Реализация» |
| id_реализатора | id |
| Тип отношений: | Один ко многим |
| Таблица «Клиент» | Таблица «Реализация» |
| id_клиента | id_клиента |
| Тип отношений: | Один ко многим |
Таблица «Сотрудники» не имеет связей с другими таблицами, так как несет только информацию о сотрудниках фирмы.
Инфологическая модель данных представлена в Приложении 1, рис. 2.
- Даталогическое проектирование БД
В этом разделе приводится состав таблиц БД. Для каждого поля таблицы указывается размер поля (количество символов), тип. Для первичных ключей необходимо ввести запрет неопределенных значений. Для остальных полей возможность запрета неопределенных значений определяется семантикой предметной области. Даталогическая модель представлена в Приложении 1, рис. 1.
4.1 Состав таблиц БД
Таблица 4.1.1 Поставка
| Наименование атрибутов | Тип полей | Размер полей | Допустимость неопределенных значений |
| id | Int | 4 | Not Null |
| Наименование | Char | 20 | |
| Количество | Int | 4 | |
| Поставщик | Int | 4 | |
| Общая цена | Smallmoney | 8 |
Таблица 4.1.2 Реализация
| Наименование атрибутов | Тип полей | Размер полей | Допустимость неопределенных значений |
| id | Int | 4 | Not Null |
| Наименование | Char | 20 | |
| Количество | Char | 10 | |
| Общая цена | Smallmoney | 8 | |
| Дата продажи | Smalldatetime | 8 | |
| Id_клиента | Int | 4 | Not Null |
Таблица 4.1.3 Клиент
| Наименование атрибутов | Тип полей | Размер полей | Допустимость неопределенных значений |
| Id_клиента | Int | 4 | Not Null |
| Фамилия | Chaк | 30 | |
| Телефон | Char | 20 | |
| Адрес | Char | 50 |
Таблица 4.1.4 Склад
| Наименование атрибутов | Тип полей | Размер полей | Допустимость неопределенных значений |
| Id | Int | 4 | Not Null |
| Наименование | Char | 20 | |
| Марка | Char | 10 | |
| Модель | Char | 10 | |
| Цена | Smallmoney | 8 | |
| id_поставщика | Int | 4 | Not Null |
| Id_реализатора | Int | 4 | Not Null |
Таблица 4.1.5 Сотрудники
| Наименование атрибутов | Тип полей | Размер полей | Допустимость неопределенных значений |
| Id | Int | 4 | Not Null |
| Фамилия | Char | 20 | |
| Имя | Char | 15 | |
| Отчество | Char | 20 | |
| Телефон | Char | 18 | |
| Адрес | Char | 20 | |
| Должность | Char | 20 | |
| Стаж | Int | 4 |
- Запросы к БД.
Одним из наиболее эффективных и универсальных способов выборки данных из таблиц базы данных является использование запросов SQL.
В разработанной базе данных предусмотрены запросы, отвечающие всем указанным требованиям, как по виду, так и по их количеству. Ниже приведены примеры некоторых запросов всех необходимых видов.
Запросы на SQL
- Простой запрос с сортировкой
Select наименование, марка, модель, цена from склад order by Цена
- Выборка по дате
select * from Реализация where Реализация.[Дата продажи]<'10.10.2010'
- Выборка значений из определенного диапазона
SELECT * FROM Реализация WHERE [Общая цена] BETWEEN '10000' AND '30000'
- Выборка данных по шаблону
select наименование, марка, модель, цена FROM склад where Наименование like 'Н%'
- Выборка вычисляемого значения
SELECT id, Наименование, Марка, Модель, id_поставщика, id_реализатора, цена+ цена*0.18 AS [Цнга с НДС] From Склад
- Разработка представлений для отображения результатов выборки
Представление – это динамическая таблица, служащая для отображения результатов выборки из информации. Представления являются удобным инструментом для работы с таблицами базы данных. Разработка представлений в SQL Server 2005 осуществляется в два этапа. На первом этапе оно создается при помощи утилиты SQL Server Enterprise Manager, а затем ее запуск осуществляется при помощи утилиты SQL Server Query Analyzer.
В базе данных разработано представление «Представление», в котором отображается id_клиента, фамилия клиента, количество и наименование купленного товара, id_поставщика и общая цена товара.
Рис. 6.1 Представление
- Проектирование хранимых процедур
При разработке приложений, основанных на платформе «клиент - сервер», для облегчения выполнения каких-либо операций с данными используются механизмы, при помощи которых можно создавать подпрограммы, работающие на сервере и управляющие процессами обработки информации. Эти механизмы носят название хранимых процедур.
В курсовом проекте была разработана хранимая процедура, предназначенная для изменения поля «Общая цена» в таблице «Поставка» с учетом увеличения стоимости товара на 35%. Код процедуры:
CREATE PROCEDURE new as
UPDATE Поставка
set [Общая цена]=[Общая цена]*0.35
Для запуска процедуры используется команда:
exec new
SELECT*FROM Поставка
Рис. 7.1 Выполнение хранимой процедуры
- Проектирование триггеров
Триггеры (trigger) являются особой разновидностью хранимых процедур, выполняемых автоматически при модификации данных таблицы. Триггеры находят разное применение – от проверки данных до обеспечения сложных деловых правил. Особенно полезным свойством триггеров является то, что они имеют доступ к образам записи до и после модификации; таким образом, можно сравнить две записи и принять соответствующее решение.
В данном курсовом проекте для таблицы «Поставка» был разработан триггер – trigger_4. Действие этого триггера направлено на то чтобы пользователь не мог вводить отрицательные значения в поле «Общая цена». Код триггера:
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[trigger_4]
ON [dbo].[Поставка]
AFTER INSERT,UPDATE
AS
BEGIN
IF EXISTS (SELECT * FROM dbo.Поставка WHERE [Общая цена]<0)
ROLLBACK TRAN
PRINT 'Цена не может быть меньше 0'
SET NOCOUNT ON;
END
Рис.8.1 – Результат работы триггера
- Проектирование клиентского приложения
9.1 Функциональное назначение
Пользователи могут работать с БД, используя клиентское приложение. Приложение разработано в Microsoft Visual C# 2008.
Клиентское приложение соединяется с БД, после чего получает копию данных из БД, отсоединяется от БД и пользователь работает с копией данных. Если необходимо сохранить изменения нужно это делать вручную (нажать на кнопку). Происходит соединение с БД и вносятся изменения непосредственно в БД.
Пользователем является администратор, который имеет неограниченные возможности, а именно:
- Добавление записей;
- Удаление записей;
- Просмотр записей;
- Сохранение записей;
- Сортировку записей;
- Редактирование записей.
Также администратор может выполнять определенную выборку данных из таблиц БД. Внутренние механизмы защиты и запросы на подтверждение критичных операций предохраняют всех пользователей от случайных ошибок в процессе работы, которые могут повлечь за собой нарушение целостности данных, и просто необдуманных действий.
9.2 Описание входных и выходных форм
В качестве входных данных выступает информация
об объектах БД т.е. записи в таблицах.
В каждой таблице присутствует первичный
ключ, отсюда следует, что на входные данные
накладывается ограничение на дублирование
значений некоторых атрибутов. Данные
в базу данных добавляет администратор
с помощью клавиатуры и экранных форм.
В качестве выходных данных выступают
экранные формы, в которых отображены
записи отношений БД.