Разработка базы данных для автоматизации складского учета

Анализ потока данных с учетом их прогнозирования, составления статических отчетов в системах учета. Ограничения на информацию в базе данных. Логическое проектирование баз данных. Описание основных функций групп пользователей и управления данными.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 09.03.2022
Размер файла 1,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра Информационных систем

Курсовая работа

по дисциплине «Управление данными»

Тема: Разработка базы данных для автоматизации складского учета

Студент гр. 8361 Чан Д.М.

Преподаватель Татарникова Т.М.

Санкт-Петербург 2020

Задание на курсовую работу

Студент Чан Д.М.

Группа 8361

Тема работы: Разработка и управление базой данных

Исходные данные:

Вариант 18. Спроектировать базу данных, построить программу, обеспечивающую взаимодействие с ней в режиме диалога, для автоматизации складского учета. В базе данных должны содержаться следующие данные:

- информация об единицах хранения, номер ордера, дата, код поставщика, балансный счет, код сопроводительного документа по справочнику документов, номер сопроводительного документа, код материала по справочнику материалов, счет материала, код единицы измерения, количество пришедшего материала, цена единицы измерения;

- информация о хранящихся на складе материалах (справочник материалов, код класса материала, код группы материала, наименование материала);

- информация о единицах измерения конкретных видов материалов, код материала, единица измерения (метры, килограммы, литры и т.д.);

- информация о поставщиках материалов, код поставщика, его наименование, ИНН, юридический адрес (индекс, город, улица, дом), адрес банка (индекс, город, улица, дом), номер банковского счета.

Помимо SQL запросов для создания таблиц базы данных, разработать пакет, состоящий из процедур и функций, позволяющий:

- посчитать количество поставщиков данного материала;

- предоставить возможность добавления единицы хранения с указанием всех реквизитов;

- вывести список поставщиков с указанием всех реквизитов данного материала на склад;

- для указанного адреса банка посчитать количество поставщиков склада, пользующихся услугами этого банка.

Модель базы данных: реляционная

Содержание пояснительной записки: Введение, Обоснование модели данных, Обоснование выбора СУБД, Описание функций групп пользователей, Описание функций управления данными, Организация защиты БД, Заключение, Список использованных источников, Приложение A. Руководство пользователя БД, Приложение Б. Листинг программного кода

Предполагаемый объем пояснительной записки:

Не менее 30 страниц.

Дата выдачи задания: 10.09.2020

Дата сдачи курсовой работы: 19.12.2020

Дата защиты курсовой работы: 19.12.2020

Студент Чан Д.М.

Преподаватель Татарникова Т.М.

Содержание

база данные проектирование учет

Введение

1. Анализ предметной области

1.1 Подход для анализа

1.2 Объекты

1.3 Группы пользователей

1.4 Входные и выходные документы

1.5 Ограничения на информацию в базе данных

2. Обоснование модели данных

2.1 Системный анализ предметной области

2.2 Инфологическое проектирование

2.3 Логическое проектирование БД

2.3.1 Первая нормальная форма

2.3.2 Вторая нормальная форма

2.3.3 Третья нормальная форма

3. Обоснование выбора СУБД

4. Описание функций групп пользователей

5. Описание функций управления данными

6. Организация защиты базы данных

Заключение

Список использованных источников

Приложение А Руководство пользователя БД

Приложение Б Листниг программного кода

Введение

В настоящее время информационные системы, применяющие базы данных, представляют собой одну из важнейших областей современных компьютерных технологий. С этой сферой связана большая часть современного рынка программных продуктов [1].

СУБД становятся наиболее популярным средством обработки табличной информации. Они являются инструментальным средством проектирования баз данных при обработке больших объемов информации.

СУБД реляционного типа являются наиболее распространенным на всех классах ЭВМ, а на ПК занимают доминирующее положение. СУБД позволяет структурировать, систематизировать и организовать данные для их компьютерного хранения и обработки.

В реляционной базе данных информация организована в виде прямоугольных таблиц, разделенных на строки и столбцы, на пересечении которых содержатся значения данных. Каждая таблица имеет уникальное имя, описывающее ее содержимое.

SQL основан на реляционной модели данных, в которой данные организованы в виде коллекции таблиц.

· Каждая таблица имеет уникальное имя.

· В каждой таблице есть один или несколько именованных столбцов, расположенных в определенном порядке слева направо.

· В каждой таблице есть нуль или более строк, каждая из которых содержит одно значение данных в каждом столбце; строки в таблице не упорядочены.

· Все значения данных в одном столбце имеют одинаковый тип данных и входят в набор допустимых значений, который называется доменом столбца [2].

Цель баз данных - анализ потока данных, с учетом их прогнозирования, составления статических отчетов в системах учета.

Отличительной чертой базы данных от других хранилищ типа архивов является то, что информация в ней обязательно подвергается обработке электронными носителями с последующей систематизацией, которая подчинена определенным правилам.

База данных очень важна для бесперебойного взаимодействия систем, содержащих глобальную информацию. Например, о государственных ресурсах или определенных территориях. В них детально расписаны все данные о строениях, гидрографии и растительности данных мест.

База данных представляет собой способ управления хранимой информации, и используется во всех сферах человеческой жизни.

Подводя итоги, можно сказать, что, база данных может хранить огромное количество систематизированной информации, и быстро предоставлять её после введения запроса пользователя [3].

1. Анализ предметной области

1.1 Подход для анализа

Для анализа можно использовать системный или функциональный подход. Будем использовать системный подход.

Системный анализ начинается с того, что выделяются атрибуты и количество информационных объектов, из которых будет состоять база данных.

1.2 Объекты

Выделим необходимые для проектирования информационные объекты - таблицы. У нас получились следующие объекты и атрибуты:

§ Единица хранения

· Номер ордера

· Дата

· Код поставщика

· Код сопроводительного документа по справочнику документов

· Код материала по справочнику материалов

· Количесвто пришедшего материала

· Цена единицы измерения

§ Справочника материал

· Код материала

· Код класс материала

· Код группы материала

· Код единица измерения

· Наименование материала

· Счет материала (Количесто материала)

§ Справочника документа

· Код спроводительного документа

· Номер спроводительного документа

§ Информациа о поставщиках

· Код поставщика

· Наименование поставщика

· ИНН

· Юридический адрес (индекс, город, улица, дом)

· Адрес банка (индекс, город, улица, дом)

· Номер банковского счета

§ Единица измерения

· Код единицы измерения

· Единица измерения

1.3 Группы пользователей

Пользователи будут разделены на 2 группы:

· Администратор

· Сотрудник (получивщик материалов)

Администратор будет иметь доступ ко всему функционалу СУБД и сможет выполнять любые SQL-запросы и транзакции. Сотрудник будет иметь право на сохранение единиц хранения в файл данных из таблиц БД “единица сохранение”.

1.4 Входные и выходные документы

Создаваемой в процессе этой курсовой работы базой данных используются следующие входные данные: информация об единицах хранения, справочнике материалов, справочнике документов, единицах измерения, поставщиках материалов.

Выходные данные:

· посчитать количество поставщиков данного материала;

· предоставить возможность добавления единицы хранения с указанием всех реквизитов;

· вывести список поставщиков с указанием всех реквизитов данного материала на склад;

· для указанного адреса банка посчитать количество поставщиков склада, пользующихся услугами этого банка.

1.5 Ограничения на информацию в базе данных

Необходимо предусмотреть следующие ограничения на информацию в системе:

· У единицы сохрание есть только один поставщик;

· У единицы сохрание есть только один материал;

· У единицы сохрание есть только один номер сопроводительного документа;

· Один сопроводительный документ используется несколькими единицей сохранения;

· Один поставщик может предоставить несколько единиц хранения;

· У материала есть несколько единиц сохрания и только одна единица измерения;

· Один материала использует только одну единицу измерения

2. Обоснование модели данных

2.1 Системный анализ предметной области

Требуется разработать систему автоматизации складского учета получения. Система должна добавления единицы хранения с указанием всех реквизитов, вывести список поставщиков с указанием всех реквизитов данного материала на склад, для указанного адреса банка посчитать количество поставщиков склада, пользующихся услугами этого банка.

Каждая единиця хранения характеризуется следующими параметрами:

· Номер ордера

· Дата

· Код поставщика

· Код сопроводительного документа по справочнику документов

· Код материала по справочнику материалов

· Количество пришедшего материала

· Цена единицы измерения

Каждый материал характеризуется следующими параметрами:

· Код материала

· Код класса материала

· Код группы материала

· Наименование материала

· Количество материала на складе

Справочнику документов характеризуется следующими параметрами:

· Код сопроводительного документа

· Номер сопроводительного документа

Информация о поставщиках материалов:

· Код поставщика

· Наименование

· ИНН

· Юридический адрес (индекс, город, улица, дом)

· Адрес банка (индекс, город, улица, дом)

· Номер банковского счета

Каждая единица измерения характеризуется следующими параметрами:

· Код единица измерения

· Единица измерения

2.2 Инфологическое проектирование

Существует несколько вариантов диаграмм «сущность-связь», являющихся результатом информационного проектирования. Построим ER-модель по нотации П. Чена. Множества сущностей изображаются в виде прямоугольников, множества отношений изображаются в виде ромбов. Если сущность участвует в отношении, они связаны линией. Если отношение не является обязательным, то линия пунктирная. Атрибуты изображаются в виде овалов и связываются линией с одним отношением или с одной сущностью.

Главная идея ER-модели - это получение рисунка, отображающего информационные объекты и связи между ними. Результат построения ER-модели можно увидеть на рисунке 1:

Рисунок 1 ER-модель БД

Кратко поясним построенную модель. Мы выбрали 5 объектов (сущностей): поставщик, едниица сохранения, справочник докуметов, материал, единица измерения. Между ними существуют следующие связи:

· Один поставщик может предоставлять несколькие единицы сохранения;

· Одна единица хранения должна предоставляться одним поставщиком;

· Одна единица хранения должна сохранять один материал;

· Один материал может сохраняться в нескольких единицах сохранения;

· Одна единица сохранения должна связана с одним справочником документа;

· Один справочник может связан с несколькими единицами сохранения;

· Один материал должен измеряться в одной единице измерения;

· Одна единица измерения может измерять несколькие материалы.

Таким образом информация в полученной базе данных будет структурирована.

2.3 Логическое проектирование БД

Процесс преобразования отношений базы данных к виду, отвечающему нормальным формам, называется нормализацией. Нормализация предназначена для приведения структуры БД к виду, обеспечивающему минимальную логическую избыточность, и не имеет целью уменьшение или увеличение производительности работы или же уменьшение или увеличение физического объёма базы данных. Конечной целью нормализации является уменьшение потенциальной противоречивости хранимой в базе данных информации [5].

Для содержания всей необходимой информации в нашей базе данных создадим три таблицы со следующими атрибутами:

Таблица 1

Единица хранения

Первичный ключ: Атрибут “Номер ордера”

Таблица 2

Поставщик

Первичный ключ: Атрибут “Код поставщика”

Таблица 3

Документ

Первичный ключ: Атрибут “Код поставщика”

Таблица 4

Материал

Первичный ключ: Атрибут “Код материала”

Таблица 5

Единица измерения

Первичный ключ: Атрибут “Код единицы измерения”

2.3.1 Первая нормальная форма

Переменная отношения находится в первой нормальной форме тогда и только тогда, когда в любом допустимом значении этой переменной каждый кортеж отношения содержит только одно значение для каждого из атрибутов [6].

В реляционной модели отношение всегда находится в первой нормальной форме по определению понятия отношение. Поэтому оставляем созданные атрибуты такими же и переходим к следующему пункту.

2.3.2 Вторая нормальная форма

Переменная отношения находится во второй нормальной форме тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут неприводимо зависит от первичного ключа [6].

Рассмотрим таблицу 1 “Единица хранения”. Все остальные атрибуты “Код поставщика”, “Дата”, “Код сопроводительного документа”, “Код материала”, “ Количество пришедшего материала”, “Цена единицы измерения” зависят от атрибута “Номер ордера”.

Рассмотрим таблицу 2 “Поставщик”. Все остальные атрибуты “Наименование”, “ИНН”, “Юридический адрес”, “Адрес банка”, “Номер банковского счета ” зависят от атрибута “Код поставщика”.

Рассмотрим таблицу 3 “Документ”. Атрибут “Номер сопроводительного документа ” зависит от атрибута “Код сопроводительного документа ”.

Рассмотрим таблицу 4 “Материал”. Все остальные атрибуты “Код класса материала”, “Код группы материала”, “Код единицы измерения”, “Наименование материала”, “ Cчет материала ” зависят от атрибута “Код материала”.

Рассмотрим таблицу 5 “Единица измерения”. Атрибут “Единица измерения” зависят от атрибута “Код единицы измерения”.

2.3.3 Третья нормальная форма

Переменная отношения находится в третьей нормальной форме тогда и только тогда, когда выполняются следующие условия:

· Отношение находится во второй нормальной форме;

· Ни один неключевой атрибут отношения не находится в транзитивной функциональной зависимости от потенциального ключа отношения.

Все таблицы уже удовлетворяют определению 3НФ.

3. Обоснование выбора СУБД

В результате проектирования базы данных и ее приведения к 3НФ получилось 5 таблиц.

База данных была создана в Microsoft SQL Server, таблицы показаны на рисунке 2:

Рисунок 2 Таблицы базы данных в Microsoft SQL Server

4. Описание функций групп пользователей

Группы пользователей созданы в базе данных. Таблица “Пользователь” состоит из атрибутов “Код пользователя” (первичный ключ), “Логин”, “Пароль” и “Тип пользователя”.

4.1 Первая группа. Администратор

Логин: admin

Пароль: admin123

Администратор имеет доступ ко всему функционалу СУБД и может выполнять любые SQL-запросы и транзакции. Администратор может добавить, изменять, удалить и смотреть любые данные из люыбых таблиц.

4.2 Первая группа. Персонал

Логни: user1

Пароль: user1123

Сотрудник может добавить единицу хранения и смотреть все единицы хранения.

Обьект

Администратор

Сотрудник

единица хранения

SUID

UI

Материал

SUID

-

справочнику документов

SUID

-

Поставщик

SUID

-

Единица измерения

SUID

-

5. Описание функций управления данными

· Создание таблиц

Следующий запрос использовался для создания таблицы “Поставщик” с полями “Код поставщика”, “ИНН”, “Юридический адрес”, “Адрес банка”, “Номер банковского счета” и первичным ключом “ Код поставщика ”.

create table Providers

(

ProviderID int unique not null check (ProviderID > 0),

ProviderName nvarchar(100) not null check (LEN(ProviderName) >= 1),

INN nvarchar(100) not null check (LEN(INN) = 10),

LegalAddress nvarchar(100) not null check (LegalAddress like N'%,%,%,%'),

AddressOfBank nvarchar(100) not null check (AddressOfBank like N'%,%,%,%'),

BankAccountNumber varchar(50) not null check (BankAccountNumber like '____ ____ ____ ____'),

primary key (ProviderID)

)

Аналогичным образом создавались другие таблицы.

· Добавление данных

Следующий запрос использовался для добавления информации о поставщике материалов (таблица “Поставщик”) с полями “Код поставщика”, “ИНН”, “Юридический адрес”, “Адрес банка”, “Номер банковского счета”:

create proc USP_insertPro

@ProviderID int,

@ProviderName nvarchar(100),

@INN nvarchar(100),

@LegalAddress nvarchar(100),

@AddressOfBank nvarchar(100),

@BankAccountNumber varchar(50)

as

begin

insert into Providers

values(@ProviderID,@ProviderName, @INN, @LegalAddress,

@AddressOfBank, @BankAccountNumber)

end

go

Аналогичным образом выводятся данные других таблиц.

· Смотрение данных

Следующий запрос использовался для смотрения информации о поставщике с введенной “Код поставщика”:

create proc USP_selectPro

@ProviderID int

as

begin

select * from Providers where ProviderID = @ProviderID;

end

go

· Измерение данных

Следующий запрос использовался для обновления поля “ Юридический адрес” для поставщика с введенными “Код поставщика”:

create proc USP_updateLegal

@ProviderID int,

@LegalAddress nvarchar(100)

as

begin

update Providers set LegalAddress = @LegalAddress

where ProviderID = @ProviderID;

end

go

Аналогичным образом выводятся данные других таблиц.

· Удаление данных

Следующий пример запроса использовался для удаления поставщика с введенной “Код поставщика”:

create proc USP_deletePro

@ProviderID int

as

begin

delete Providers where ProviderID = @ProviderID;

end

go

Аналогичным образом выводятся данные других таблиц.

· Посчитать количество поставщиков данного материала:

Следующий пример запрос использовался для счета количество поставщиков с введенной “Код материала” = 5:

create function UF_CountPro

(@MaterialID int)

returns int

as

begin

declare @Count int;

select @Count = count(*) from StorageUnits where MaterialID = @MaterialID;

return @Count;

end

go

· Предоставить возможность добавления единицы хранения с указанием всех реквизитов:

Следующий пример запрос использовался для добавления единицы хранения с указанием всех реквизитов;

create proc USP_insertSto

@ProviderID int,

@MaterialID int,

@DocumentID int,

@Data date,

@QuantityOfPassed int,

@UnitPrice float

as

begin

insert into StorageUnits

(ProviderID, MaterialID, DocumentID, Data, QuantityOfPassed, UnitPrice)

values(@ProviderID,@MaterialID,@DocumentID,@Data,@QuantityOfPassed,@UnitPrice);

end

go

· Вывести список поставщиков с указанием всех реквизитов данного материала на склад:

Следующий пример запрос использовался для вывода списка поставщика с указанием “Код материала” = 5;

create proc USP_ShowPro

@MaterialID int

as

begin

select * from Providers

where ProviderID

in (select ProviderID from StorageUnits where MaterialID = @MaterialID)

end

go

· Для указанного адреса банка посчитать количество поставщиков склада, пользующихся услугами этого банка.

Следующий пример запрос использовался для счет количество поставщиков склада с указанием “Адрес банка” ;

create proc USP_ShowBank

@AddressOfBank nvarchar(100)

as

begin

select count(*) from Providers

where AddressOfBank = @AddressOfBank;

end

go

6. Организация защиты базы данных

Для базы данных проверяются ограничения целостности - условия, которым должны соответствовать значения данных.

create table StorageUnits

(

OrderNumber int identity(1,1) not null,

ProviderID int not null check (ProviderID > 0),

MaterialID int not null check (MaterialID > 0),

DocumentID int not null check (DocumentID > 0),

Data date default getdate(),

QuantityOfPassed int not null check (QuantityOfPassed > 0),

UnitPrice float not null check (UnitPrice > 0),

primary key (OrderNumber),

foreign key (ProviderID) references Providers1(ProviderID),

foreign key (MaterialID) references Materials1(MaterialID),

foreign key (DocumentID) references Documents1(DocumentID),

)

На уровне приложений использование методов тестирования формата входных данных. Не возможно ввести неправильный формат данных:

Рисунок 3 Ввод неправильного формата данных

Только администратор имеет все права на все таблицы в базе данных. Пользователи имеют право только добавлять в таблицу “Единица хранения” и просматривать.

create login user1 with password = 'user1123';

grant select,insert on StorageUnits to user1;

Целостность информационных объектов реализуется через ограниченный доступ к тем или иным данным. У каждого пользователя своя логин и пароль.

Рисунок 4 Вход в учетную запись пользователя

Процедура подтверждения подлинности представляется в виде стартового окна с вводом пароля, который может быть изменён только пользователем. Данный пароль должен быть известен только людям, которые будут непосредственно работать с базой данных.

Рисунок 5 Обновления пароля пользователя

В качестве средств физической защиты рекомендуется не допускать посторонних к компьютеру, закрывать программу при уходе от компьютера, не разглашать пароль доступа лицам, не имеющим доступа к базе данных, соблюдать правила конфиденциальности при вводе пароля.

Заключение

В ходе выполнения курсовой работы была создана база данных для выставок собак на языке SQL. При написании курсовой работы по теме мною была изучена специальная литература.

Список использованных источников

1. И.Ф. Астахова. SQL в примерах и задачах. Учебное пособие. Мн: Новое знание, 2002. 176 с.

2. Д. Грофф, П. Вайнберг, Э. Опппель. SQL: полное руководство. 3-е издание. Научно популярное издание. Санкт-Петербург. 2015.

3. М.Ю. Дьяконов, А.В. Кузнеченкова. Современные инновации в образовании. 2017. № 24. С. 58-61.

Приложение А. Руководство пользователя БД

Пользователи работают с базой данных с помощью приложения, написанное на языке C#.

Главное окно изображено на рисунке 6. На нее же ссылается поле «Окно входа».

Рисунок 6 Главное окно

В поля «Логин» и «Пароль» пользователь вводит свои логин и пароль соответственно (рисунок 4).

Рисунок 7 Вход в учетную запись пользователя

При входе в аккаунт администратора admin, пользователь может использовать любую функцию приложения.

Рисунок 8 Окно программы

При выборе поля «Администратор» отображается окно, показанное на рисунке 9. На ней содержится информация о материалах, справочнике документов, поставщиках, единицах измерения, единицах хранения и пользователей.

Администратор может добавить, изменять, удалить и смотреть информации материалах, которые находятся в таблице “Материал”.

Рисунок 9 Доступ к таблице “Материал”

Администратор может добавить, изменять, удалить и смотреть справочнику документов, которые находятся в таблице “Справочника документа”.

Рисунок 10 Доступ к таблице “Справочника документа”

Администратор может добавить, изменять, удалить и смотреть информации поставщиков, которые находятся в таблице “Поставщик”.

Рисунок 11 Доступ к таблице “Поставщик”

Администратор может добавить, изменять, удалить и смотреть информации единиц измерения, которые находятся в таблице “Единица измерения”.

Рисунок 12 Доступ к таблице “Единица измерения”

Администратор может удалить и смотреть единиц хранения, которые находятся в таблице “Единица хранения”.

Рисунок 12 Доступ к таблице “Единица измерения”

Администратор может добавить, изменять, удалить и смотреть информации пользователей, которые находятся в таблице “Пользователь”.

Рисунок 12 Доступ к таблице “Пользователь”

При выборе поля “Информации об аккаунте” отображается окно, показанное на рисунке 13.

Рисунок 13 Функции в поле “Информации об аккаунте”

В этом поле можно менять пароль данного пользователя и можно выйти.

Рисунок 14 Обновления пароля данного пользователя

При выборе поля «Дополнительные функции» отображается окно, показанное на рисунке 15.

Рисунок 15 Окно дополнительных функций

Пользователь может посчитать количество постащиков данного материала.

Рисунок 16 Расчет количества поставщиков данного материала

Пользователь может посчитать количество поставщиков склад, пользующихся услугами указанного банка.

Рисунок 16 Расчет количества поставщиков склада

Пользователь может вывести список поставщиков с указанием всех реквизитов данного материала на склад.

Рисунок 16 Информации о поставщиках

Пользователь может посчитать количество материала на складе.

Рисунок 17 Расчет количества данного материала на складе

Здесь пользователь может добавить новую единицу хранения и смотреть данные единиц хранения по данной дате.

Рисунок 18 Успех добавления единицы хранения

Рисунок 19 Просмотр информаций о единицах хранения

В поля «Логин» и «Пароль» пользователь вводит свои логин и пароль соответственно (рисунок 4).

Рисунок 20 Вход в учетную запись пользователя

При входе в аккаунт сотрудник user1, пользователь только может добавить единицу хранения, смотреть информации единицах хранения по дате но не может вводить в поли “Администратор” и “Доп.функция”.

Рисунок 21 Успех добавления единицы хранения

Рисунок 22 Просмотр информаций о единицах хранения

Приложение Б Листинг программного кода

create database DBStock

go

use DBStock

go

create table Account

(

ID int identity(1,1),

username nvarchar(100) not null,

password nvarchar(1000) not null,

ad int not null

)

go

insert into Account

(username,password,ad)

values(N'admin',N'admin123',1)

create table Units

(

UnitID int identity(1,1) not null,

Unit nvarchar(5) not null check(LEN(Unit) >= 1),

primary key (UnitID),

)

go

create table Materials

(

MaterialID int unique Not null check (MaterialID > 0),

ClassID int not null check (ClassID > 0),

GroupID int not null check (GroupID > 0),

UnitID int not null check (UnitID > 0),

MaterialName nvarchar(50) not null check(LEN(MaterialName) >= 1),

QuantityInStock int default 0 check(QuantityInStock >= 0),

primary key (MaterialID),

foreign key (UnitID) references Units(UnitID)

)

go

create table Providers

(

ProviderID int unique not null check (ProviderID > 0),

ProviderName nvarchar(100) not null check (LEN(ProviderName) >= 1),

INN nvarchar(100) not null check (LEN(INN) = 10),

LegalAddress nvarchar(100) not null check (LegalAddress like N'%,%,%,%'),

AddressOfBank nvarchar(100) not null check (AddressOfBank like N'%,%,%,%'),

BankAccountNumber varchar(50) not null check (BankAccountNumber like '____ ____ ____ ____'),

primary key (ProviderID)

)

go

create table Documents

(

DocumentID int unique not null check (DocumentID > 0),

Number int not null check (Number > 0),

primary key(DocumentID),

)

go

create table StorageUnits

(

OrderNumber int identity(1,1) not null,

ProviderID int not null check (ProviderID > 0),

MaterialID int not null check (MaterialID > 0),

DocumentID int not null check (DocumentID > 0),

Data date default getdate(),

QuantityOfPassed int not null check (QuantityOfPassed > 0),

UnitPrice float not null check (UnitPrice > 0),

primary key (OrderNumber),

foreign key (ProviderID) references Providers(ProviderID),

foreign key (MaterialID) references Materials(MaterialID),

foreign key (DocumentID) references Documents(DocumentID),

)

go

create proc USP_insertPro

@ProviderID int,

@ProviderName nvarchar(100),

@INN nvarchar(100),

@LegalAddress nvarchar(100),

@AddressOfBank nvarchar(100),

@BankAccountNumber varchar(50)

as

begin

insert into Providers

values(@ProviderID,@ProviderName, @INN, @LegalAddress,

@AddressOfBank, @BankAccountNumber)

end

go

create proc USP_selectPro

@ProviderID int

as

begin

select * from Providers where ProviderID = @ProviderID;

end

go

create proc USP_updateLegal

@ProviderID int,

@LegalAddress nvarchar(100)

as

begin

update Providers set LegalAddress = @LegalAddress

where ProviderID = @ProviderID;

end

go

create proc USP_deletePro

@ProviderID int

as

begin

delete Providers where ProviderID = @ProviderID;

end

go

create proc USP_insertSto

@ProviderID int,

@MaterialID int,

@DocumentID int,

@Data date,

@QuantityOfPassed int,

@UnitPrice float

as

begin

insert into StorageUnits

(ProviderID, MaterialID, DocumentID, Data, QuantityOfPassed, UnitPrice)

values(@ProviderID,@MaterialID,@DocumentID,@Data,@QuantityOfPassed,@UnitPrice);

end

go

create proc USP_ShowPro

@MaterialID int

as

begin

select * from Providers

where ProviderID

in (select ProviderID from StorageUnits where MaterialID = @MaterialID)

end

go

create proc USP_ShowBank

@AddressOfBank nvarchar(100)

as

begin

select count(*) from Providers

where AddressOfBank = @AddressOfBank;

end

go

create function UF_CountPro

(@MaterialID int)

returns int

as

begin

declare @Count int;

select @Count = count(*) from StorageUnits where MaterialID = @MaterialID;

return @Count;

end

go

create login user1 with password = 'user1123';

grant select,insert on StorageUnits to user1;

go

Размещено на Allbest.ru


Подобные документы

  • Разработка программы для автоматизации складского учета. Описание предметной области и технологии функционирования информационной системы. Физическое проектирование базы данных. Создание экранных форм ввода-вывода, отчетов, модулей для прикладных решений.

    курсовая работа [3,6 M], добавлен 08.12.2013

  • Исследование свойств системы управления базами данных Firebird. Разработка базы данных для автоматизации учета товарно-материальных ценностей. Изучение главных сущностей и атрибутов, присутствующих в данной базе данных. Построение связей между сущностями.

    курсовая работа [832,8 K], добавлен 23.02.2014

  • Разработка базы данных для автоматизации учета и хранения сведений о заявках от работодателей. Проектирование приложения в СУБД Access. Описание запросов, отчетов и представлений данных. Интерфейс, условия выполнения и тестирование программного продукта.

    курсовая работа [3,7 M], добавлен 05.04.2012

  • Проектирование базы данных, содержащей информацию, которая всесторонне характеризует российский рынок медицинского оборудования. Описание атрибутов сущностей и связей, отраженных в разработанной ER-модели. Разработка отчетов, форм, запросов в базе данных.

    курсовая работа [3,2 M], добавлен 19.06.2015

  • Понятие, задачи и требования к разработке базы данных. Типы моделей данных, их преимущества и недостатки и обоснование выбора модели. Процесс учета студентов в больнице, описание структуры базы данных, перечень групп пользователей и доступа к данным.

    курсовая работа [45,1 K], добавлен 09.03.2009

  • Инструментальные средства для разработки структуры информационной базы данных "Программа автоматизации учета расчетов с поставщиками", пользовательский интерфейс СУБД Access. Разработка запросов отбора данных и вычислений, экранных форм коррекции данных.

    лабораторная работа [2,4 M], добавлен 15.11.2010

  • Описание технологии функционирования информационных систем. Разработка функционального модуля. Физическое проектирование базы данных. Разработка экранных форм ввода-вывода и отчетов. Анализ складского учета. Логическая модель информационной системы.

    курсовая работа [2,8 M], добавлен 29.11.2013

  • Определение функциональных зависимостей. Разработка структуры базы данных. Организация запросов к базе данных. Использование триггеров для поддержки данных в актуальном состоянии. Разработка хранимых процедур и функций. Ограничения ведения базы данных.

    курсовая работа [113,2 K], добавлен 17.06.2014

  • Проектирование и реализация базы данных для обеспечения автоматизированного учета результатов футбольного турнира. Осуществление логического, а также физического проектирования базы данных. Описание запросов на выборку и манипуляцию данными на языке SQL.

    курсовая работа [1,9 M], добавлен 17.06.2012

  • Выбор методологии проектирования и системы управления базами данных. Описание предметной области и проектирование физической структуры базы данных. Реализация проекта в MS SQL Server 2008. Построение инфологической модели. Ограничения целостности связи.

    курсовая работа [679,2 K], добавлен 22.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.