Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Oracle / Отчет по курсовой работе - Филатов.doc
Скачиваний:
62
Добавлен:
20.06.2014
Размер:
2.48 Mб
Скачать

2.4 Основные запросы к базе данных

2.4.1 Формулировка на естественном языке

2.4.1.1 Оплаченные проекты фирмы.

Из таблицы «Zakaz» выбрать записи, в которых поле «date_pay» не равно NULL и поле «cost» больше cost_value.

2.4.1.2 Список разработчиков

Выбрать из таблицы «Worker» поле «worker_fio».

2.4.1.3 Проекты на хостинге

Из таблицы «Zakaz» выбрать все записи, если для текущего заказа есть ссылка на execution, в которой есть ссылка на hosting.

2.4.1.4 Поставить скидку.

В таблице «Zakaz» для всех полей, «client_id» которых встречается более N раз, «discount» которых меньше D, установить «discount» = newDiscount.

2.4.2 Формулировка в виде выражения реляционной алгебры

2.4.2.1 Оплаченные проекты фирмы

,

где D – отношение "Zakaz" («zakaz_id», «date_add», «date_pay», «cost», «discount», «advance», «design», «type», «fill»).

2.4.2.2 Список разработчиков

,

где W– отношение "Worker" («worker_id», «worker_fio»).

2.4.3 Формулировка в виде выражения реляционного исчисления с переменными-кортежами

2.4.3.1 Оплаченные проекты фирмы

Результатом запроса, является отношение S:

где D – отношение "Zakaz" («zakaz_id», «date_add», «date_pay», «cost», «discount», «advance», «design», «type», «fill»).

2.4.3.2 Список разработчиков

Результатом запроса является отношение R:

где W– отношение "Worker" («worker_id», «worker_fio»).

2.4.4 Формулировка на языке SQL

2.4.4.1 Оплаченные проекты фирмы.

SELECT * FROM “Zakaz”

WHERE “date_pay” IS NOT NULL AND “cost” > ‘cost_value’

2.4.4.2 Список разработчиков

SELECT * FROM “Worker”

2.4.4.3 Проекты на хостинге

SELECT Z.*, H.* FROM “Zakaz” Z INNER JOIN “Execution” E

ON Z.”zakaz_id” = E.”zakaz_id” INNER JOIN “Hosting” H

ON E.”execution_id” = H.”execution_id”

2.4.4.4 Поставить скидку.

SELECT E."maket_link", CASE WHEN H."url" IS NULL THEN '-'

ELSE H."url" END AS "url", T."type_name", Z."cost"

FROM "Zakaz" Z INNER JOIN SELECT *

FROM "Execution" E1 WHERE E1."date_end" =

(SELECT MAX(E2."date_end") FROM "Execution" E2

WHERE E2."zakaz_id" = E1."zakaz_id")) E

ON E."zakaz_id" = Z."zakaz_id"

INNER JOIN "Type" T ON T."type_id" = Z."type_id"

LEFT JOIN "Hosting" H ON H."EXECUTION_ID" = E."execution_id" AND H."date_end_support" > SYSDATE

WHERE Z."date_pay" IS NOT NULL

AND Z."cost" > 'numericUpDown1.Value'

ORDER BY Z."zakaz_id" ASC, E."date_end" DESC"

2.5 Хранимые процедуры

2.5.1 Блок-схема алгоритма

2.5.1.1 Хранимая процедура удаления клиентов

2.5.1.2 Хранимая процедура изменения скидки

2.5.2 Код на языке PL/SQL

2.5.2.1 Хранимая процедура удаления клиентов

create or replace procedure deleteclient as

begin

DELETE FROM "Client" WHERE "Client"."client_id" NOT IN (SELECT Z."client_id" FROM "Zakaz" Z GROUP BY Z."client_id" HAVING COUNT(*) > 0);

end deleteclient;

2.5.2.2 Хранимая процедура изменения скидки

create or replace procedure upddisc

(

param1 in number

, param2 in number

, param3 in number

) as

begin

UPDATE "Zakaz" SET "discount" = param1

WHERE "client_id" IN

(SELECT Z."client_id" FROM "Zakaz" Z GROUP BY Z."client_id" HAVING COUNT(*) > param2)

AND ("discount" IS NULL OR "discount" < param3)

AND "date_pay" IS NULL;

end upddisc;

2.6 Архитектура информационной системы

В данной информационной системе основное приложение для работников ресторана написано с использованием платформы .NET Framework.

Приложение оперирует с базой данных посредством объектно-реляционная система управления базами данных Oracle 11g Express Edition.

В программе основным является класс Form1. Данный класс реализует пользовательский интерфейс приложения, а также все функциональные возможности программы.

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

Методы класса Form1:

  • public Form1() – конструктор класса Form1.

  • private void button1_Click () – вывод проектов на вкладке «Проекты» пр нажатии на соответствующую кнопку.

  • private void Form1_Load() – загрузка всех таблиц из базы данных.