- •Содержание
- •Описание предметной области
- •Цель и задачи создания базы данных
- •Концептуальная модель базы данных
- •Реляционная модель базы данных
- •Модель данных в sql Server 2005
- •Структура таблиц и данные в таблицах
- •Запросы
- •Представления (Views)
- •Хранимые процедуры (Stored Procedure)
- •Триггеры (Triggers)
- •Курсоры (Cursor)
- •Список литературы
Модель данных в sql Server 2005
Рис.2 Модель данных в SQL Server 2005
Структура таблиц и данные в таблицах
Рис.3 Таблицы базы данных
Таблица «Студенты» (STUDENTS)
Таблица «Группа» (GROUPS)
Таблица «Поток»(GRUPS_STUD)
Таблица «Дисциплина» (DISC)
Таблица «Курс дисциплины» (DISC_KURS)
Таблица «Прохождение курса» (CHECK_KURS)
Таблица «Форма контроля ИДЗ» (IDZ)
Таблица «Форма контроля экзамен» (EKZAM)
Таблица «Форма контроля зачет» (ZACHET)
Таблица «Форма контроля курсовая работа» (KURSACH)
Запросы
Запрос, который выдает фамилии студентов, чье суммарное количество пропусков по всем дисциплинам превышает 20 часов
ПРОГРАММНЫЙ КОД
use lab_prac1
go
select dbo.students.firstname, sum(dbo.check_kurs.count_progul) as Было_пропущено
from
dbo.students inner join dbo.check_kurs on
dbo.students.id_un_card=dbo.check_kurs.id_un_card
group by dbo.students.firstname
having sum(dbo.check_kurs.count_progul)>20
Результат выполнения запроса:
Запрос, выдающий фамилии преподавателей и количество обучающихся у него студентов.
ПРОГРАММНЫЙ КОД
select distinct dbo.disc_kurs.teacher,count(distinct dbo.check_kurs.id_un_card) as Количество_студентов
from
dbo.disc_kurs inner join dbo.check_kurs on
dbo.disc_kurs.id_predm=dbo.check_kurs.id_predm
group by dbo.disc_kurs.teacher
Результат выполнения запроса:
Запрос, позволяющий выбрать список групп с фамилиями старост
ПРОГРАММНЫЙ КОД
select dbo.groups.id_groupe,dbo.students.firstname
from dbo.groups inner join dbo.groups_stud on
dbo.groups.id_groupe=dbo.groups_stud.id_groupe
inner join dbo.students on
dbo.students.id_un_card=dbo.groups_stud.id_un_card
where dbo.groups.star=dbo.students.id_un_card
Результат выполнения запроса:
Представления (Views)
Представление, которое содержит информацию о пропусках студента
ПРОГРАММНЫЙ КОД
use lab_prac1
go
SELECT dbo.students.firstname, dbo.disc.name, dbo.check_kurs.count_progul
FROM dbo.students
INNER JOIN dbo.groups_stud ON dbo.students.id_un_card = dbo.groups_stud.id_un_card
INNER JOIN dbo.check_kurs ON dbo.groups_stud.id_un_card = dbo.check_kurs.id_un_card
INNER JOIN dbo.disc ON dbo.disc.id_predm= dbo.check_kurs.id_predm
Результат создания представления:
Хранимые процедуры (Stored Procedure)
Процедура, которая выдает список студентов с оценкой курсовой работы по заданной группе.
ПРОГРАММНЫЙ КОД
use lab_prac1
go
CREATE PROCEDURE ocenki_kursovoi @t int
as
select dbo.students.firstname,dbo.kursach.itog
from dbo.students inner join dbo.kursach on
dbo.students.id_un_card=dbo.kursach.id_un_card
where dbo.kursach.id_groupe=@t
GO
Вызов процедуры
exec ocenki_kursovoi @t = '7092'
Результат выполнения процедуры:
Процедура, позволяющая фиксировать текущую успеваемость студента.
ПРОГРАММНЫЙ КОД
CREATE PROCEDURE yspevaemost @t int ,@p int
AS
Select dbo.students.firstname,dbo.check_kurs.id_predm,dbo.check_kurs.count_progul,
Count(dbo.idz.sdano)as Колличество_сданных_ИДЗ
from
dbo.students
inner join dbo.check_kurs on dbo.students.id_un_card=dbo.check_kurs.id_un_card
inner join dbo.idz on dbo.check_kurs.id_un_card=dbo.idz.id_un_card
and dbo.check_kurs.id_predm=dbo.idz.id_predm
where
dbo.students.id_un_card=@t
and dbo.check_kurs.id_predm=@p
group by dbo.students.firstname,dbo.check_kurs.count_progul,dbo.check_kurs.id_predm
GO
Вызов процедуры
exec yspevaemost @t = '70515',@p = '24'
Результат выполнения процедуры: