Анализ сущностей и связей между ними
Ключевые поля
Классы: Код класса
Предметы: Код предмета
Ученики: Код учителя
Учителя: Код учителя
Характеристики связей
Сущность «Классы» имеет ключевой атрибут «Код класса» и связывается с сущностью «Ученики» через атрибут «Код класса».
Сущность «Предметы» имеет ключевой атрибут «Код предмета» и связывается с сущностью «Учителя» через атрибут «Код предмета».
Сущность «Учителя» имеет ключевой атрибут «Код учителя» и связывается с сущностью «Заказы» через атрибут «Номер ткани».
Рисунок 1 – Характеристика связей
Рисунок 2 – ER-диаграмма
Рисунок 3 – Схема данных
Рисунок 4 – Предварительная схема данных
Рисунок 5 – Схема данных с не ключевыми атрибутами
Составление требуемых запросов к базе данных (на языке sql)
Было создано 7 запросов на языке SQL:
Информация об учителе;
Преподаватель предмета в данном классе;
Ф.И.О. классного руководителя в данном классе;
Выдача информация об ученике;
Состав класса;
Перевод ученика в следующий класс (запрос на обновление);
Формирование архива по окончании учеником школы (переводе в другую).
Запрос 1:
Информация об учителе Кутякова, результат продемонстрирован на рисунке 6.
Листинг программного кода:
-
SELECT Учителя.*
FROM Учителя
WHERE (((Учителя.ФИО) Like "Кутякова*"));
Рисунок 6 – Результат выполнения запроса
Запрос 2:
Преподаватель предмета Истории в 6 классе, результат продемонстрирован на рисунке 7.
Листинг программного кода:
-
SELECT Предметы.Предмет, Учителя.ФИО, Классы.НомерКласса
FROM (Предметы INNER JOIN Учителя ON Предметы.Код = Учителя.КодПредмета) INNER JOIN Классы ON Учителя.Код = Классы.КодУчителя
WHERE (((Предметы.Предмет) Like "История*") AND ((Классы.НомерКласса)=6));
Рисунок 7 – Результат выполнения запроса
Запрос 3:
Ф.И.О. классного руководителя в 8 классе, результат продемонстрирован на рисунке 8.
Листинг программного кода:
-
SELECT Учителя.ФИО, Классы.НомерКласса
FROM Учителя INNER JOIN Классы ON Учителя.Код = Классы.КодУчителя
WHERE (((Классы.НомерКласса)=8));
Рисунок 8 – Результат выполнения запроса
Запрос 4:
Выдача информация об ученике, чья фамилия начинается на букву К, результат продемонстрирован на рисунке 9.
Листинг программного кода:
-
SELECT Ученики.*
FROM Ученики
WHERE (((Ученики.ФИО) Like "К*"));
Рисунок 9 – Результат выполнения запроса
Запрос 5:
Состав 9 класса, результат продемонстрирован на рисунке 10.
Листинг программного кода:
-
SELECT Ученики.ФИО
FROM Классы INNER JOIN Ученики ON Классы.Код = Ученики.КодКласса
WHERE НомерКласса=9;
Рисунок 10 – Результат выполнения запроса
Запрос 6:
Перевод ученика в следующий класс (запрос на обновление), результат продемонстрирован на рисунке 11 и 12.
Листинг программного кода:
-
UPDATE Классы SET Классы.НомерКласса = [НомерКласса]+1;
Рисунок 11 – Исходная таблица
Рисунок 12 – Результат выполнения запроса
Запрос 7:
Формирование архива по окончании учеником школы (переводе в другую)., результат продемонстрирован на рисунке 13.
Листинг программного кода:
-
INSERT INTO Архив ( Код, ФИО, Пол, ДатаРождения, АдресПрописки, ДатаПоступленияВшколу, СведенияОродителях, НомерКонтактногоТелефона, КодКласса )
Рисунок 13 – Результат выполнения запроса