- •Содержание
- •1.1 Анализ предметной области
- •1.2 Постановка задачи
- •2.1 Функциональная модель
- •2.1.1 Контекстная диаграмма и диаграммы детализации процессов
- •2.2.1 Идентификация сущностей и связей. Er-диаграмма логического уровня
- •2.2.3 Определение представлений, хранимых процедур серверной компоненты
- •1. Вывод информации о блюдах при условии, что калорийность больше 800 ккал, а стоимость больше 30000р.
2.2.3 Определение представлений, хранимых процедур серверной компоненты
Представление (View) для конечных пользователей выглядит как таблица, но при этом само не содержит данных, а лишь представляет данные, расположенные в таблице. Физически представление реализовано в виде SQL-запроса, на основе которого производится выборка данных из одной или нескольких таблиц или представлений.
Представление может выбирать данные из других представлений, которые, в свою очередь, могут также основываться на представлениях или таблицах. Вложенность представлений не должна превышать 32. Представление часто применяется для ограничения доступа пользователей к конфиденциальным данным в таблице.
Для приложения были разработаны следующие представления:
– Bluda2 выводит информацию о блюдах при условии, что каллорийность больше 800, а стоимость больше 30000. Содержит информацию из таблицы «Блюда»;
– NameBluda выводит информацию облюдах, которые заказал клиент в определенный день. Содержит информацию из таблиц «Блюда», «Заказы» и «Клиенты»;
– ViborBlud выводит информацию о блюдах, название которых уже прописано, содержит информацию из талицы «Блюда»;
– VidBlud выводит информацию о блюдах вида «Салаты», с условием, что стоимость больше 20000. Содержит информацию из таблиц «Блюда» и «Вид блюда»;
– Zakaz3 выводит информацию о работнике, который выполнял заказы в определенный день. Содержит информацию из таблиц «Personal» и «Zakaz»;
– Personal2 выводит информацию о должности работника, оклад которого больше 2000000, а дата рождения находится в рамках от 06.12.1988 до 02.19.1990. Содержит информацию из таблиц «Персонал» и «Должности»;
– NameDolshnosti2 выводит информацию о должности определенного названия. Содержит информацию из таблицы «Должности»;
– KusokSlova выводит информацию о клиентах, фамилия которых содержит частицу «ин». Содержит информацию из таблицы «Клиенты».
– FamiliaKlienta выводит информацию о клиентах, фамилия которых начинается на букву, которая находится в диапазоне от "А" до "Г". Содержит информацию из таблицы «Клиенты»
– AdresPersonala выводит информацию о работнике, который проживает по определенному адресу. Содержит информацию из таблицы «Персонал».
Хранимые процедуры имеют много общего с обычными процедурами. Использование хранимых процедур позволяет значительно повысить скорость разработки приложений.
Для приложения были разработаны следующие хранимые процедуры:
Dolshnosti3 при вводе названия должности выдает имя и фамилию
подходящего работника;
Imya4 выводит ФИО клиента, имя которого совпадает с введенными с клавиатуры данными;
KolBlud3 выводит фамилию клиента, который заказал такое количество блюд, которое будет меньше, чем введенное с клавиатуры;
NameBlud2 выводит название блюда, вес которого меньше 300 г., а калорийность больше или равна 600 ккал.
Oklad выводит информацию о работнике, оклад которого равен цифре, введенной с клавиатуры;
Personal3 выводит данные о работнике, дата рождения которого находятся в указанном пользователем периоде;
Pol2 выводит данные о работнике, пол которого такой же, как и введенный с клавиатуры;
Skidki выводит данные о клиенте, у которого размер скидки больше, чем введенный с клавиатуры;
Sostav2 выводит данные о блюде, в состав которого входит слово, введенное пользователем;
SpisokBlud3 выводит название блюда равное введенному с клавиатуры названию;
StoimostBlud выводит название блюд, стоимость которых больше, чем введенная пользователем;
VidBluda выводит данные о блюдах, вид которых равен виду, введенному с клавиатуры и стоимость которого больше 50000р.
Vremya выводит название блюда, время приготовления которого больше 40 минут, а стоимость – меньше 100000р.
Zakaz5 выводит информацию о блюдах, код заказа которых равен коду, введенному с клавиатуры;
ZakKlient3 выводит данные о клиентах, сделавших заказ в период времени, который вводится с клавиатуры.
2.3 Верификация спроектированной логической модели
После разработки информационной модели ее следует связать с функциональной моделью. Такая связь гарантирует завершенность анализа, гарантирует, что есть источники данных (сущности) для всех работ. Связывание моделей способствует согласованности, корректности и завершенности анализа. Стрелки в функциональной модели обозначают некоторую информацию, использующуюся в моделируемой системе. В информационной модели на логическом уровне информация изображается в виде сущностей. Сущности состоят из совокупностей экземпляров сущностей (кортежи отношений). К информационной модели предъявляется требование нормализации, что должно обеспечить компактность и непротиворечивость хранения данных. Информация, которая моделируется одной стрелкой в функциональной модели, может содержаться в нескольких сущностях и атрибутах информационной модели. На функциональной модели могут присутствовать различные стрелки, изображающие одни и те же данные. Информация о таких стрелках находится в одних и тех же сущностях. Следовательно, одной и той же стрелке в функциональной модели могут соответствовать несколько сущностей в информационной модели и, наоборот, одной сущности может соответствовать несколько стрелок.
Работы в функциональной модели могут создавать или изменять данные, которые соответствуют входящим и выходящим стрелкам. Они могут воздействовать как целиком на сущности (создавая и модифицируя экземпляры сущности), так и на отдельные атрибуты сущности.
Таблица 1 – Отчет о верификации модели
Arrow Name |
Entity Name |
Attribute Name |
Информация о блюдах |
Bluda |
kalorinost |
|
|
kod_bluda |
|
|
kod_vida |
|
|
name_bluda |
|
|
sostav_bluda |
|
|
stoimost |
|
|
ves |
|
|
vremya_prigotovleniya |
Информация о должностях |
Dolshnosti |
kod_dolshnosti |
|
|
name_dolshnosti |
|
|
oklad |
|
|
vipoln_funkcii |
Информация о заказах |
Zakaz |
data_zakaza |
|
|
kod_bluda |
|
|
kod_klienta |
|
|
kod_rabotnika |
|
|
kod_zakaza |
|
|
kolichestvo_blud |
|
|
vremya_zakaza |
Информация о клиентах |
Klienti |
familia |
|
|
imya |
|
|
kod_klienta |
|
|
otchestvo |
|
|
skidki |
|
|
telephon |
Информация о персонале |
Personal |
adres |
|
|
data_roshdeniya |
|
|
familia |
|
|
imya |
|
|
kod_dolshnosti |
|
|
kod_rabotnika |
|
|
otchestvo |
|
|
pol |
|
|
telephon |
Отчет о блюдах |
Bluda |
kalorinost |
|
|
name_bluda |
|
|
stoimost |
|
|
ves |
|
|
vremya_prigotovleniya |
Отчет о заказах |
Klienti |
familia |
|
|
imya |
|
Zakaz |
data_zakaza |
|
|
kolichestvo_blud |
|
|
vremya_zakaza |
Отчет о клиентах |
Klienti |
familia |
|
|
imya |
|
|
otchestvo |
|
|
skidki |
|
|
telephon |
3 Реализация системы
3.1 T-SQL-определения регламентированных запросов
