Эксперт
Сергей
Сергей
Задать вопрос
Мы готовы помочь Вам.

Задание

Создать базу данных для автоматизации деятельности подразделений ВУЗа, рассмотрев часть предметной области. Информация о предметной области ВУЗ, представлена в Таблице 2. Сформировать и выполнить запросы, представления, хранимые процедуры и функции. Создать к одной таблице триггер. Создать пользователя к созданной базе данных. Определить его права доступа к таблицам и столбцам.

Таблица 1

Порядковый номер студента Номера сущностей Номера задач
38 10, 2, 5, 8 2, 7, 12

Таблица 2

Номер сущности (связи) Имя сущности

(связи)

Свойства сущности (связи)
2 Группа Шифр группы, численность.
5 Дисциплина Шифр дисциплины, название дисциплины, лекции, практические, прочее (кол-во часов).
8 Кафедра Код кафедры, название кафедры, ФИО зав.кафедрой, телефон.
10 Студент Номер зачетной книжки, ФИО, год рождения, адрес, телефон, балл при поступлении.

Таблица 3

Номер задачи Формулировка задачи
2 Определить количество студентов, обучающихся в каждой группе.
7 Определить число читаемых дисциплин.
12 Определить число кафедр в ВУЗе.

 

Работа выполнялась в СУБД Microsoft SQL Server 2008 R2.

Ход работы
Создание связей
Свяжем таблицы, создав внешние ключи, «Группа.ШифрГруппа → Студент.ШифрГруппа» и «Кафедра.КодКафедра → Дисциплина.КодКафедра». Для этого в таблицу Студент добавим внешний ключ «ШифрГруппа», а в таблицу «Дисциплина» — «КодКафедра». После чего создадим связи «один-ко-многим».
Создание триггера
Создадим триггер, который будет вносить в таблицу «Лог» запись об обновлении данных в таблице «Студент».
Запрос на создание триггера представлен ниже.
USE в38
GO
CREATE TRIGGER Студент_UPDATE
ON Студент
AFTER UPDATE
AS
INSERT INTO Лог(Операция)
SELECT ‘Обновление’
FROM INSERTED

На рисунке 1 представлена таблица «Лог».
Ниже представлен пример запроса на изменение данных в таблице «Студент».
USE в38;
UPDATE dbo.Студент SET НомерЗачётнойКнижки = ‘12399910’ WHERE НомерЗачётнойКнижки = ‘12300010’;

Данные из таблицы «Лог» после выполнения запросов на обновление представлены на рисунке 2.

izobrazhenie 2025 04 22 170237

 

Создание хранимой процедуры
Создадим хранимую процедуру на основе запроса «Определить количество студентов, обучающихся в каждой группе» согласно заданию.
Ниже представлено создание хранимой процедуры «КоличествоСтудентовВГруппах».
USE в38
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE dbo.КоличествоСтудентовВГруппах
AS
SELECT Группа.ШифрГруппа, COUNT(dbo.НомерЗачётнойКнижки) AS ‘Кол-во’
FROM Студент
JOIN Группа ON dbo.Студент.ШифрГруппа = Группа.ШифрГруппа
GROUP BY Группа.ШифрГруппа
GO
На рисунке 3 представлен результат работы хранимой процедуры.

Рисунок 3 — Результат работы
Функции
Создадим функцию «Определить число читаемых дисциплин» согласно заданию.
USE [в38]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[ЧислоЧитаемыхДисциплин]()
RETURNS INT
AS
BEGIN
DECLARE @c INT
SET @c =
(SELECT COUNT(Дисциплина.ШифрДисциплина)
FROM Дисциплина);
RETURN (@c)
END

Результат работы представлен на рисунке 4.

Рисунок 4 — Результат работы

Создадим функцию «Определить число кафедр в ВУЗе» согласно заданию.
USE [в38]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER FUNCTION [dbo].[ЧислоКафедр]()
RETURNS INT
AS
BEGIN
DECLARE @c INT
SET @c =
(SELECT COUNT(Кафедра.КодКафедра)
FROM Кафедра);
RETURN (@c)
END

Результат работы представлен на рисунке 5.

Рисунок 5 — Результат работы

 

Представления
На рисунке 6 представлен проект представления «СписокСтудентов». На рисунке 7 представлен результат работы представления «СписокСтудентов».
На рисунке 8 представлен проект представления «СписокДисциплин». На рисунке 9 представлен результат работы представления «СписокДисциплин».

Рисунок 6 — Список студентов

Рисунок 7 — Результат работы

Рисунок 8 — Список студентов

Рисунок 9 — Результат работы
Создание пользователя
На рисунке 10 представлено окно создания пользователя. Пользователь userreader получает права только на чтение. Создание пользователя осуществляется в базе данных в каталоге «Безопасность».
На рисунке 11 представлен список пользователей окно базы данных после создания пользователя и назначения ему прав.

izobrazhenie 2025 04 22 170432

Была ли полезна данная статья?
Да
61.05%
Нет
38.95%
Проголосовало: 1104

или напишите нам прямо сейчас:

⚠️ Пожалуйста, пишите в MAX или заполните форму выше.
В России Telegram и WhatsApp блокируют - сообщения могут не дойти.
Написать в MAXНаписать в TelegramНаписать в WhatsApp