Смекни!
smekni.com

Автоматизация учета студентов в ВУЗе (стр. 3 из 5)

Таким образом, после рассмотрения приведенных выше моделей данных для разработанной в пункте 3 схемы «объект-отношение» была выбрана реляционная модель, которая проста и понятна для пользователя и отвечает требованиям изучаемого курса.


4 Программная реализация СУБД

4.1 Описание таблиц

Таблица «Студент» – справочник студентов.

Код студента – код студента, тип счетчик, первичный ключ, содержит уникальное значения без повторений.

ФИО – фамилия, имя и отчество студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.

№ зачетки – содержит номер зачетки, тип текстовый, размер 10 символов, содержит маску ввода: 00\/000, условие на значение:>0, если вводится неправильное значение, выводится сообщение об ошибке ”Некорректный ввод”; поле обязательное, индексированное, совпадения не допускаются.

Дата рождения – содержит дату рождения, тип дата/время, имеет краткий формат даты, маска ввода 00.00.0000;0;_, условие на вводимое значение <Now()-365*16 (т.е. студенту должно быть не меньше 16 лет), если вводится неправильное значение, выводится сообщение об ошибке, обязательное поле, индексированное, допускаются повторения.

Домашний адрес – содержит адрес проживания студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.

Контактный телефон - содержит номер телефона, тип текстовый, размер 20 символов, содержит маску ввода: 0&bsol;-000&bsol;-000&bsol;-00&bsol;-00;;_ . Поле необязательное, индексированное, не допускаются совпадения.

Пол - содержит пол студента, тип текстовый, размер-10 символов, обязательное поле, индексированное поле, совпадения допускаются, поле со списком, тип источника строк- список значений, источник строк – мужской; женский.

Форма обучения- содержит информацию о форме обучения студента, тип текстовый, размер- 10 символов, обязательное поле, индексированное поле, совпадения допускается, поле со списком, тип источника строк- список значений, источник строк- очная; заочная.

ФИО матери - фамилия, имя, отчество матери студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.

ФИО отца - фамилия, имя, отчество отца студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.

Контактная информация отца - содержит место работы, должность и контактный телефон, тип текстовый, размер 100 символов, обязательное поле, индексированное поле, совпадения допускаются.

Контактная информация матери - содержит место работы, должность и контактный телефон, тип текстовый, размер 100 символов, обязательное поле, индексированное поле, совпадения допускаются.

Группа- код группы, тип числовой, размер поля - длинное целое, обязательное поле, поле со списком, тип источника - таблица или запрос: SELECT Группа.[Код группы], Группа.[Название группы] FROM Группа ORDER BY [Название группы];.

Таблица «Группа» содержит информацию о группах, в которых учатся студенты.

Код группы - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Название группы - тип текстовый, размер-10 символов, обязательное и индексированное поле, совпадения не допускаются.

Год набора - тип дата/время, размер 20 символов, маска ввода- 00.00.0000;0;_, обязательное и индексированное поле, совпадения допускаются, условие назначения:>Date()-(5*365). Если вводится неправильное значение, то выводится сообщение об ошибке.

Буква - тип текстовый, размер 5 символов, обязательное и индексированное поле, совпадения допускаются. Если вводится неправильное значение, то выводится сообщение об ошибке. Поле со списком, тип источника строк - список значений, источник строк – а; б; в; г; -;.

Специальность- код специальности, тип числовой, обязательное поле, размер поля - длинное целое. Тип источника строк -таблица или запрос, источник строк-SELECT Специальность.[Код специальности], Специальность.[Краткое название] FROM Специальность ORDER BY [Краткое название].

Таблица «Специальность» справочник специальностей факультетов.

Код специальности - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Полное название - тип текстовый, размер 50 символов, обязательное и индексированное поле, совпадения не допускаются.

Краткое название - тип текстовый, размер 10 символов, необязательное поле, без повторений.

Шифр - тип текстовый, размер 20 символов, содержит маску ввода: 0000000.0.00;. Обязательное и индексированное поле, без повторений.

Факультет - код факультета, тип числовой, обязательное поле, размер поля - длинное целое. Тип источника строк - таблица или запрос, источник строк-SELECT Факультет.[Код факультета], Факультет.[Краткое название] FROM Факультет ORDER BY [Краткое название];

Таблица «Факультет» содержит информацию о всех факультетах ВУЗа.

Код факультет - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Полное название - тип текстовый, размер 50 символов, обязательное и индексированное поле, совпадения не допускаются.

Краткое название - тип текстовый, размер 10 символов, необязательное поле, без повторений.

ФИО декана - тип текстовый, размер 50 символов, поле обязательное, индексированное, не допускаются совпадения.

№ телефона деканата - тип текстовый, размер 20 символов, маска ввода:000&bsol;-00&bsol;-00; поле обязательное, индексированное, совпадения не допускаются.

Таблица «Комната» содержит информацию о комнатах общежития.

Код комнаты - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Количество мест - тип числовой, размер 5 символов, обязательное и индексированное поле, совпадения допускаются. Значение по умолчанию: 0, условие на значение: >0, если вводится неправильное значение, то выдается ошибка.

Тип - тип текстовый, размер 10 символов, обязательное и индексированное поле, совпадения допускаются. Поле со списком, тип источника строк - список значений, источник строк – мужская; женская; семейная.

№ комнаты - тип числовой, содержит маску ввода: 0”.”000, обязательное поле, индексированное, совпадения допускаются. Значение по умолчанию: 0, условие на значение: >0, если вводится неправильное значение, то выдается ошибка.

Общежитие- код общежитие, тип числовой, обязательное поле, размер поля - длинное целое. Тип источника строк - таблица или запрос, источник строк:SELECT Общежитие.[Код общежития] FROM Общежитие ORDER BY [Код общежития];

Таблица «Общежитие» содержит информацию о общежитиях, которые принадлежат ВУЗу.

Код Общежитие - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Адрес – тип текстовый, размер 50 символов, поле обязательное, индексированное, не допускаются совпадения.

Телефон - тип текстовый, размер 20 символов, маска ввода:000&bsol;-00&bsol;-00; поле обязательное, индексированное, совпадения не допускаются.

ФИО Коменданта- тип текстовый, размер 50 символов, поле обязательное, индексированное, не допускаются совпадения.

Таблица «Проживает» - дополнительная таблица, созданная для исключения связи «многие-ко-многим». Таблица содержит информацию о дате заселения (выселения) студентов в (из) общежитие (ия).

Код проживает - тип счетчик, первичный ключ, содержит уникальные значения без повторений.

Студент - код студента, тип числовой, обязательное поле, размер поля- длинное целое. Подстановка из таблицы «Студент», отображается поле «Студент» таблицы «Студент».

Комната - код комнаты, тип числовой, обязательное поле, размер поля- длинное целое. Тип источника строк - таблица или запрос, источник строк:SELECT Комната.[Код комнаты], Комната.[№ комнаты] FROM Комната ORDER BY [№ комнаты];

Дата заселения - тип дата/время, размер 20 символов, маска ввода- 00.00.0000;0;_, обязательное и индексированное поле, совпадения допускаются.

Дата заселения - тип дата/время, размер 20 символов, маска ввода- 00.00.0000;0;_, обязательное и индексированное поле, совпадения допускаются.

4.2 Описание реализованных запросов к БД

В данном КП были реализованы следующие запросы к БД:

Запрос1 является запросом на выборку.

Осуществляется поиск повторений для таблицы «Студент».

Вид в режиме SQL:

SELECT Студент.Группа, Студент.ФИО

FROM Студент

WHERE (((Студент.Группа) In (SELECT [Группа] FROM [Студент] AsTmpGROUPBY [Группа] HAVINGCount(*)>1 )))

ORDER BY Студент.Группа;

Результат выполнения запроса 1 представлен на рисунке 4.2.1

Рис. 4.2.1- Результат выполнения запроса 1

Запрос 2 является запросом на создание таблицы.

Создается новая таблица, куда вносится новая информация.

Вид в режиме SQL:

SELECT Студент.ФИО, Общежитие.[Код общежития] INTO New

FROM Студент INNER JOIN (Общежитие INNER JOIN (Комната INNER JOIN Проживает ON (Комната.[Код комнаты] = Проживает.Комната) AND (Комната.[Код комнаты] = Проживает.Комната)) ON Общежитие.[Код общежития] = Комната.Общежитие) ON Студент.[Код студента] = Проживает.Студент

WHERE (((Общежитие.[Код общежития])=2));

Результат выполнения запроса 2 представлен на рисунке 4.2.2

Рис. 4.2.2- Результат выполнения запроса 2

Запрос 3 является запросом на добавление.

Выполняется заполнение архива.

Вид в режиме SQL:

INSERT INTO Архив ( ФИО, №Зачетки, [Дата рождения], [Домашний адресс], [Контактный телефон], Пол, [Форма обучения], [ФИО матери], [ФИО отца], [Контактная информация отца], [Контактная информация матери], Группа )

SELECT Студент.ФИО, Студент.№Зачетки, Студент.[Дата рождения], Студент.[Домашний адрес], Студент.[Контактный телефон], Студент.Пол, Студент.[Форма обучения], Студент.[ФИО матери], Студент.[ФИО отца], Студент.[Контактная информация отца], Студент.[Контактная информация матери], Студент.Группа