- •СПб гбоу спо «Петровский колледж» Контрольная работа по дисциплине Базы данных
- •Общие положения
- •Представление результатов выполнения кр
- •Задание на выполнение
- •Описание предметной области
- •4.Формулировка задания для выполнения кр (Задание 1) по дисциплине «Базы данных»
- •5.Формулировка заданий для выполнения Задание 2 кр по дисциплине «Базы данных»
- •Введение
- •Содержание
- •1.1 Описание предметной области 3
- •Заключение
Содержание
Информационная система «Для завуча школы» 28
ВВЕДЕНИЕ 30
Описание задания для контрольной работы 31
Описание предметной области 31
Задание для построения АИС 31
Ограничения предметной области 31
Проектирование базы данных 31
Концептуальное проектирование базы данных 31
Построение ER-Диаграмм 31
Логическое проектирование 35
Схема данных 37
Схема данных ИС «БД для завуча школы» 38
Описание приложения 39
Интерфейс пользователя 39
Основные возможности при работе пользователя «Гость» 40
Формы для получения статистических данных 59
ЗАКЛЮЧЕНИЕ 77
ВВЕДЕНИЕ 2
1 Описание задания для расчётно-графической работы 3
1.1 Описание предметной области 3
1.2 Задание для построения АИС 3
1.3 Ограничения предметной области 3
Представления использования 4
2 Проектирование базы данных 4
2.1 Концептуальное проектирование базы данных 4
2.1.1 Построение ER-Диаграмм 4
2.2 Логическое проектирование 8
2.2.1 Схема данных 10
Схема данных ИС «БД для завуча школы» 11
3 Описание приложения 12
3.1 Интерфейс пользователя 12
3.1.1 Основные возможности при работе пользователя «Гость» 13
3.1.2 Формы для получения статистических данных 30
ЗАКЛЮЧЕНИЕ 40
Введение
Целью создания данного программного продукта является сокращение трудозатрат на выполнение типовых информационных процессов учета учеников школы и их успеваемости, учителей, кабинетов, расписания занятий.
Программа «БД для завуча школы» представляет собой автоматизированную систему. В базу данных программы внесены данные о учениках, успеваемости, учителях, кабинетах, расписании, которые можно добавлять, редактировать либо удалять данные. В функции системы заложен поиск данных по определённым критериям и просмотр статистики.
Описание задания для контрольной работы
Описание предметной области
В школе работают (или не работают) учителя, учатся (или не учатся) ученики. Каждый учитель преподает определенные предметы. За учителем может быть закреплен кабинет. Ученики учатся в каком то классе и получают оценки. В школе предусмотрено для этого расписание.
Задание для построения АИС
Необходимо создать АИС, позволяющую:
хранить в БД следующие данные: ФИО учителей, его кабинет(при его наличии), перечень преподаваемых им предметов, его расписании уроков, ФИО ученика, его успеваемость, его расписание, в каким классе он учится.
осуществлять просмотр данных о учителях, учениках, успеваемости, расписании занятий (в виде форм и отчётов);
осуществлять изменение данных в БД;
осуществлять поиск данных.
Запросы, связанные с поиском данных должны предусматривать возможность поиска по нескольким критериям. Критерии поиска продумать самостоятельно.
Ограничения предметной области
В данной разработке существуют следующие ограничения:
Существуют учителя, которые не имеют собственного кабинета;
Учитель может преподавать несколько дисциплин;
Несколько учителей могут преподавать одинаковые дисциплины;
Ученик может учиться только в одном классе;
Проектирование базы данных
Концептуальное проектирование базы данных
Построение ER-Диаграмм
Исходя из данных, которые необходимо хранить в БД, можно выделить следующие сущности: УЧИТЕЛЬ, УЧЕНИК, КАБИНЕТ, ПРЕДМЕТ, РАСПИСАНИЕ, ОЦЕНКА, КЛАСС.
Учитель имеет кабинет.
КАБИНЕТ
УЧИТЕЛЬ
ИМЕЕТ
КУчит,… НКаб,…
В соответствии с правилом, гласящим , что, если степень бинарной связи равна 1:п, и класс принадлежности п-связной сущности является обязательным, то достаточным является использование двух таблиц (по одной на каждую сущность), при условии, что ключ каждой сущности служит в качестве первичного ключа для соответствующей таблицы. Помимо этого, ключ 1-связной сущности должен быть добавлен как атрибут в таблицу, отводимую n-связной сущности. Получим следующие два отношения (таблицы):
УЧИТЕЛЬ (КУчит, И, Ф, О)
КАБИНЕТ (НКаб, КУчит)
Учителя преподают
УЧИТЕЛЬ
ПРЕДМЕТ
ПРЕПОДАЕТ
N
M
КУчит,… КПредм,…
Полученная бинарная связь также соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
УЧТЕЛЬ (КУчит, И, Ф, О)
ПРЕДМЕТ (Кпредм, Предм, КУчит)
Когда можно прослушать предмет.
РАСПИСАНИЕ
Преподают
ПРЕДМЕТ
1
N
КПредм,… КЗан,…
Полученная бинарная связь также соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
ПРЕДМЕТ (Кпредм, Предм, КУчит)
РАСПИСАНИЕ (КЗан, ДН, НУр, КПредм, ККлас, НКаб)
Когда кабинет занят.
КАБИНЕТ
ЗАНЯТ
1
N
РАСПИСАНИЕ
НКаб,… КЗан,…
Полученная бинарная связь также соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
КАБИНЕТ (НКаб, КУчит)
РАСПИСАНИЕ (КЗан, ДН, НУр, КПредм, ККлас, НКаб)
Когда класс учится.
КЛАСС
ЗАНИМАЕТСЯ
1
N
РАСПИСАНИЕ
ККлас,… КЗан,…
Полученная бинарная связь также соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
КЛАСС (ККлас, Ном, Бук)
РАСПИСАНИЕ (КЗан, ДН, НУр, КПредм, ККлас, НКаб)
В классе учатся.
КЛАСС
СОДЕРЖИТ
1
M
УЧЕНИК
ККлас,… КУч,…
Полученная бинарная связь также соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
КЛАСС (ККлас, Ном, Бук)
УЧЕНИК (КУч, И, Ф, О)
Какая оценка у ученика.
УЧЕНИК
ПОЛУЧИЛ
1
M
ОЦЕНКА
КУч,… КОц,…
Полученная бинарная связь соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
УЧЕНИК (КУч, И, Ф, О)
ОЦЕНКА (КОц, КПредм, КУч, Оцен)
По какому предмету получена оценка
ОЦЕНКА
ЗА
1
M
ПРЕДМЕТ
КОц,… КПредм,…
Полученная бинарная связь соответствует правилу формирования отношений, изложенному в пункте 1. Получим следующие отношения:
ОЦЕНКА (КОц, КПредм, КУч, Оцен)
ПРЕДМЕТ (Кпредм, Предм, КУчит)
Логическое проектирование
Таблица Кабинеты
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
НКаб |
Счётчик |
Длинное целое |
ДА |
|
ДА |
КУчит |
Числовой |
Длинное целое |
ДА |
|
|
Таблица Классы
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
ККлас |
Счётчик |
Длинное целое |
ДА |
|
ДА |
Ном |
Числовой |
Байт |
ДА |
|
|
Бук |
Текстовый |
1 |
ДА |
|
|
Таблица Предметы
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
КПредм |
Счётчик |
Длинное целое |
ДА |
|
ДА |
Предм |
Текстовый |
25 |
ДА |
|
|
КУчит |
Числовой |
Длинное целое |
ДА |
|
|
Таблица Расписание
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
КЗан |
Счётчик |
Длинное целое |
ДА |
|
ДА |
ДН |
Текстовый |
11 |
ДА |
Понедельник |
|
НУр |
Числовое |
Байт |
ДА |
|
|
КПредм |
Числовое |
Длинное целое |
ДА |
|
|
ККлас |
Числовое |
Длинное целое |
ДА |
|
|
НКаб |
Числовое |
Длинное целое |
ДА |
|
|
Таблица Оценки
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
КОц |
Счётчик |
Длинное целое |
ДА |
|
ДА |
КПредм |
Числовой |
Длинное целое |
ДА |
|
|
КУч |
Числовой |
Длинное целое |
ДА |
|
|
Оцен |
Числовой |
Байт |
ДА |
|
|
Таблица Ученики
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
КУч |
Счётчик |
Длинное целое |
ДА |
|
ДА |
И |
Текстовый |
25 |
ДА |
|
|
Ф |
Текстовый |
25 |
ДА |
|
|
О |
Текстовый |
25 |
ДА |
|
|
ККлас |
Числовой |
Длинное целое |
ДА |
|
|
Таблица Учителя
Имя поля |
Тип данных |
Размер |
Индексация |
Значение по умолчанию |
Ключевое поле |
КУчит |
Счётчик |
Длинное целое |
ДА |
|
ДА |
И |
Текстовый |
25 |
ДА |
|
|
Ф |
Текстовый |
25 |
ДА |
|
ДА |
О |
Текстовый |
25 |
ДА |
|
|
Схема данных
На основании концептуального прокетирования получим следующую инфологическую молель предметной области.
С
хема
данных ИС «БД для завуча школы»
Описание приложения
Интерфейс пользователя
Работа с программой начинается с главной формы (смотри рисунок 1). С помощью каждой кнопки можно перейти к следующей форме.
Р
исунок
1. Главная форма
Основные возможности при работе пользователя «Гость»
Формы для редактирования информации.
Форма Добавить учителя (рисунок 2) позволяет добавить данные об учителе.
Рисунок 2. Форма «Добавить учителя»
Форма Добавить ученика (рисунок 3) позволяет добавить нового ученика.
Рисунок 3. Форма «Добавить ученика»
Форма Удалить ученика (рисунок 4) предназначена для удаления данных о ученике.
Рисунок 4. Форма «Удалить ученика»
Форма Исправить оценку (рисунок 5) предназначена для редактирования оценок учеников.
Рисунок 5. Форма «Исправить оценку»
Для изменения оценки ученику заполните поля и нажмите кнопку Изменить. Появится окно(рисунок 6) для изменения оценки содержащее информацию о текущей оценке. При вводе некорректных данных появится соответствующее сообщение(рисунок 7)..
Рисунок 6. Окно «Исправить»
Рисунок 6. Окно «Некорректное значение»
Формы для получения справочной информации
Форма Количество учеников (рисунок 7) предназначена для получения справки о количестве учеников в классе.
Рисунок 7. Форма «Количество учеников»
Для этого на форме из поля со списком необходимо выбрать класс. В поле количество учеников появится значение.
Чтобы в поле появлялось значение предусмотрен макрос class_AfterUpdate при наступлении события После обновления.
Источником данных для списка является запрос: KolUch (рисунок 7).
Рисунок 7. Запрос «KolUch»
В режиме SQL:
SELECT DISTINCTROW Классы.Ном, Классы.Бук, Count(Ученики.КУч) AS [Количество учеников]
FROM Классы INNER JOIN Ученики ON Классы.[ККлас] = Ученики.[ККлас]
GROUP BY Классы.Ном, Классы.Бук;
Ф
орма
Кабинеты
в которых преподают учителя
(рисунок 8) предназначена для поиска
кабинетов в которых преподает учитель
определенный предмет, данные о нужном
учителе и предмете вводятся через окна
ввода(рисунок 8)
Рисунок 8. Окна ввода данных
Рисунок
10. Запрос «: Кабинеты, в которых преподают
учителя»
В режиме SQL:
SELECT Расписание.НКаб
FROM Учителя INNER JOIN (Предметы INNER JOIN Расписание ON Предметы.КПредм=Расписание.КПредм) ON Учителя.КУчит=Предметы.КУчит
WHERE (((Учителя.И)=[Введите имя учителя]) AND ((Учителя.Ф)=[Введите фомилию учителя]) AND ((Учителя.О)=[Введите отчество учителя]) AND ((Предметы.Предм)=[Введите предмет])) GROUP BY НКаб;
Ф
орма
Предмет
в заданном классе, на заданном уроке,
в заданный день
предназначена для получения информации
о занятии в кабинете в определенное
время. Данные вводятся через окна ввода
(рисунок 11).
Рисунок 11. Окна ввода данных
Данные о кабинетах отображаются в виде списка(рисунок 12)
Рисунок 12. Форма «Предмет в заданном классе, на заданном уроке, в заданный день»
Источником данных для данной формы является запрос: Предмет в заданном классе, на заданном уроке, в заданный день (рисунок 13)
Рисунок
13. Запрос: «Предмет в заданном классе,
на заданном уроке, в заданный день»
В режиме SQL:
SELECT Расписание.ДН, Расписание.НКаб, Предметы.Предм, Расписание.КЗан
FROM Предметы INNER JOIN Расписание ON Предметы.КПредм = Расписание.КПредм
WHERE (((Расписание.ДН)=[Введите день недели]) AND ((Расписание.НКаб)=[Введите номер кабинета]));
Форма Предмет заданного класса в заданное время предназначена для получения справки о том, какое занятие проходит в заданном классе. Данные вводятся через окна ввода (рисунок 14).
Рисунок 14. Окна ввода данных
Данные о кабинетах отображаются в виде списка(рисунок 15)
Рисунок 15. Форма «Предмет заданного класса в заданное время»
Для этого на форме из поля со списком необходимо выбрать класс. В поле количество учеников появится значение.
Источником данных для списка является запрос: Предмет заданного класса в заданное время (рисунок 16).
Рисунок 16. Запрос «Предмет заданного класса в заданное время»
В режиме SQL:
SELECT Классы.Ном, Классы.Бук, Расписание.ДН, Расписание.НУр, Предметы.Предм
FROM Предметы INNER JOIN (Классы INNER JOIN Расписание ON Классы.ККлас = Расписание.ККлас) ON Предметы.КПредм = Расписание.КПредм
WHERE (((Классы.Ном)=[Введите класс]) AND ((Классы.Бук)=[Введите букву класса]) AND ((Расписание.ДН)=[Введите день недели]) AND ((Расписание.НУр)=[Введите номер урока]));
Форма Расписание на день предназначена для получения справки о расписании занятий на день у определенного класса. Данные вводятся через окна ввода (рисунок 17).
Рисунок 17. Окна ввода данных
Данные о кабинетах отображаются в виде списка(рисунок 18)
Рисунок 18. Форма «Расписание на день»
Источником данных для данной формы является запрос: Расписание на день (рисунок 19)
Рисунок
19. Запрос: «Расписание на день»
В режиме SQL:
SELECT Предметы.Предм, Расписание.НКаб, Расписание.НУр
FROM Предметы INNER JOIN (Классы INNER JOIN Расписание ON Классы.ККлас = Расписание.ККлас) ON Предметы.КПредм = Расписание.КПредм
WHERE (((Классы.Ном)=[Введите номер класса]) AND ((Классы.Бук)=[Введите букву класса]) AND ((Расписание.ДН)=[Введите день недели]));
Форма Чей кабинет предназначена для получения информации о том, за кем из учителей закреплен кабинет. Данные вводятся через окно ввода (рисунок 20).
Рисунок 20. Окно ввода данных
Данные о том, за кем закреплен кабинет отображаются в виде таблицы(рисунок 21)
Рисунок 21. Форма «Чей кабинет»
Источником данных для данной формы является запрос: Чей кабинет (рисунок 22)
Рисунок
22. Запрос: «Чей кабинет»
В режиме SQL:
SELECT Кабинеты.НКаб, Учителя.И, Учителя.Ф, Учителя.О
FROM Учителя INNER JOIN Кабинеты ON Учителя.КУчит = Кабинеты.КУчит
WHERE (((Кабинеты.НКаб)=[Укажите кабинет]));
Формы для получения статистических данных
В информационной системе предусмотрено составление отчетов по школе.
Отчет Количество кабинетов (рисунок 23)
Рисунок 23. Отчет «Количество кабинетов»
Для составления отчета использовался запрос Kolkab (рисунок 24)
Рисунок 24. Запрос «Kolkab»
В режиме SQL:
SELECT Count(Кабинеты.[НКаб]) AS [Количество кабинетов]
FROM Кабинеты;
Отчет Количество учеников (рисунок 25) для отчета о количестве учащихся в школе по классам.
Рисунок
25. Отчет «Количество учеников»
Для
составления отчета используется запрос
KolUch
(рисунок
26)
Рисунок 26. Запрос «KolUch»
В режиме SQL:
SELECT DISTINCTROW Классы.Ном, Классы.Бук, Count(Ученики.КУч) AS [Количество учеников]
FROM Классы INNER JOIN Ученики ON Классы.[ККлас] = Ученики.[ККлас]
GROUP BY Классы.Ном, Классы.Бук;
Отчет Количество учителей (рисунок 27) для отчета о количестве учителей по каждому предмету.
Рисунок
27. Отчет «Количество учителей»
Для составления отчета используется запрос KolUchit (рисунок 28)
Рисунок
28. Запрос «KolUchit»
В режиме SQL:
SELECT Предметы.Предм, Count(Предметы.КУчит) AS [Киличество учителей]
FROM Предметы
GROUP BY Предметы.Предм;
Отчет Статистика успеваемости по школе (рисунок 29) .
Рисунок
29. Отчет «Статистика успеваемости по
школе»
Для составления отчета используется запрос Статистика успеваемости по школе (рисунок 30)
Рисунок 30. Запрос «Статистика успеваемости по школе»
В режиме SQL:
SELECT [МинОц].[Минимальная оценка] AS [Минимальная оценка ученика], Count([МинОц].[Минимальная оценка]) AS [Количество учеников]
FROM (SELECT Оценки.КУч, Min(Оценки.Оцен) AS [Минимальная оценка] FROM Оценки GROUP BY Оценки.КУч) AS МинОц
GROUP BY [МинОц].[Минимальная оценка];
Отчет Статистика успеваемости по классам (рисунок 31) .
Рисунок
31. Отчет «Статистика успеваемости по
классам»
Для составления отчета используется запрос Статистика успеваемости по классам (рисунок 32)
Рисунок 32. Запрос «Статистика успеваемости по классам»
В режиме SQL:
SELECT Все.[Минимальная оценка] AS [Минимальная оценка ученика], Count(Все.[Минимальная оценка]) AS [Количество учеников], Все.Ном, Все.Бук
FROM (SELECT Оценки.КУч, Min(Оценки.Оцен) AS [Минимальная оценка], Классы.Ном, Классы.Бук, Классы.ККлас FROM (Классы INNER JOIN Ученики ON Классы.ККлас = Ученики.ККлас) INNER JOIN Оценки ON Ученики.КУч = Оценки.КУч GROUP BY Оценки.КУч, Классы.Ном, Классы.Бук, Классы.ККлас) AS Все
GROUP BY [Минимальная оценка], Все.Ном, Все.Бук;
Также есть полный отчет по школе включающий все выше приведенные отчета, Полный Отчет (рисунок 33)
Рисунок 32. Запрос «Полный отчет»
Организован такой отчет компоновкой всех отчетов (рисунок 33)
Рисунок 32. Компоновка отчетов
