Постановка задачи
Разработать клиент-серверное приложение, серверная часть которой реализована на MS SQL Server (или Oracle), представляющая собой модель предметной области в соответствии с вариантом задания. В рамках заданной предметной области реализовать заданную (по варианту) схему отношений, т.е. выделить сущности и их атрибуты, так чтобы связи между сущностями соответствовали представленной схеме. В рамках курсовой работы необходимо на стороне сервера реализовать и использовать при демонстрации приложения следующие компоненты:
Постоянные таблицы и связи между ними, количество таблиц и наличие связей должно соответствовать заданию, допускается увеличение числа таблиц и их полей для более адекватного представления предметной области;
В приложении реализовать не менее пяти запросов, включая (для демонстрации навыков работы)
Составной многотабличный запрос с параметром, включающий соединение таблиц и CASE-выражение;
На основе обновляющего представления (многотабличного VIEW), в котором критерий упорядоченности задает пользователь при выполнении;
Запрос, содержащий коррелированные и некоррелированные подзапросы в разделах SELECT, FROM и WHERE (в каждом хотя бы по одному);
Многотабличный запрос, содержащий группировку записей, агрегативные функции и параметр, используемый в разделе HAVING;
Запрос, содержащий предикат ANY, SOME или ALL;
Создать необходимые кластерные (по первичным ключам) и не кластерные индексы для увеличения скорости выполнения запросов;
В таблице (в соответствии с вариантом) предусмотреть поле, которое заполняется автоматически по срабатыванию триггера при добавлении, обновлении и удалении данных, иметь возможность продемонстрировать работу триггера при работе приложения. Триггера должны обрабатывать только те записи, которые были добавлены, изменены или удалены в ходе текущей операции (транзакции).
Операции добавления, удаления и обновления реализовать в виде хранимых процедур (с параметрами) хотя бы для одной таблицы; для остальных допустимо использовать возможности связывания полей ввода в приложении с полями БД;
Реализовать отдельную хранимую процедуру, состоящую из нескольких отдельных операций в виде единой транзакции, которая при определенных условиях может быть зафиксирована или откатана;
В триггере или хранимой процедуре реализовать курсор на обновления отдельных данных;
В запросе (из пункта 2 или в дополнительном к тому перечню) использовать собственную скалярную функцию, а в хранимой процедуре – векторную (или табличную) функцию. Функции сохранить в базе данных
Распределение прав пользователей: предусмотреть не менее двух пользователей с разным набором привилегий. Каждый набор привилегий оформить в виде роли.
Клиент должен обеспечивать добавление, модификацию и удаление данных по всей предметной области. Добавление, редактирование данных хотя бы по одной таблице производить в отдельном окне.
Запрещено в качестве вводимых данных, в том числе для связи таблиц, указывать значения первичных и внешних ключей – для обеспечения ссылочной целостности пользователь должен выбирать значения из справочника, а соответствующие значения должны подставляться программно (тем или иным способом – автоматически).
Ограничение на выбор средства реализации (языка программирования) клиента отсутствуют.
№ варианта курсовой работы. |
Предметная область |
Примерные отношения предметной области |
№ схемы (вариант схемы) |
Триггер (таблица №…) |
49 |
Автоматизированная система для расчетов с потребителями электроэнергии |
Ведение справочников и информационной базы физических и юридических лиц - потребителей энергии. Расчет размера оплаты за услуги. Поиск должников. |
3 |
1 |
СХЕМА БАЗЫ ДАННЫХ
CREATE TABLE test123.dbo.katalog (
id_katalog INT NOT NULL
,name VARCHAR(50) NOT NULL
,raspologenie VARCHAR(50) NOT NULL
,CONSTRAINT FK_katalog PRIMARY KEY CLUSTERED (id_katalog)
) ON [PRIMARY]
GO
CREATE TABLE test123.dbo.soderganie (
id_soderg INT NOT NULL
,dir VARCHAR(50) NOT NULL
,[file] VARCHAR(50) NOT NULL
,CONSTRAINT FK_soderg PRIMARY KEY CLUSTERED (id_soderg)
,CONSTRAINT FK_soderganie FOREIGN KEY (id_soderg) REFERENCES dbo.katalog (id_katalog)
) ON [PRIMARY]
GO
CREATE TABLE test123.dbo.tip (
id_tip INT IDENTITY
,CONSTRAINT FK_tip PRIMARY KEY CLUSTERED (id_tip)
,CONSTRAINT FK_tip2 FOREIGN KEY (id_tip) REFERENCES dbo.katalog (id_katalog)
) ON [PRIMARY]
GO
CREATE TABLE test123.dbo.vladelec (
id_vladelec INT IDENTITY
,name VARCHAR(50) NULL
,otch VARCHAR(50) NULL
,CONSTRAINT FK_vladelec PRIMARY KEY CLUSTERED (id_vladelec)
,CONSTRAINT FK_vladelec_katalog_id_katalog FOREIGN KEY (id_vladelec) REFERENCES dbo.katalog (id_katalog)
) ON [PRIMARY]
GO
