3.3.2 Описание нормальных форм
Докажем, что спроектированная БД нормализована до третей нормальной формы. Так как, по определению, если БД находится в третьей нормальной форме, то она находится и в первой и во второй нормальных формах, то докажем сперва, что данная БД находится в первой нормальной форме.
Первая нормальная форма требует, чтобы каждое поле таблицы БД было неделимым и не содержало повторяющихся групп.
Неделимость поля означает, что содержащиеся в нем значения должны быть атомарные, то есть невозможно выделить из неделимого поля какую либо структуру или запись. А также невозможно разбиение поля на два и более при условии, что у получающихся в результате разбиения атрибутов полей будет свой смысл.
Повторяющимися являются поля, содержащие одинаковые по смыслу значения.
Так как разрабатываемая БД удовлетворяет этим ограничениям, то она находится в первой нормальной форме.
Вторая нормальная форма требует, чтобы все поля таблицы зависели от первичного ключа, то есть, чтобы первичный ключ однозначно определял запись и не был избыточен.
Итак, ограничениям, накладываемым второй нормальной формой, разрабатываемая БД удовлетворяет.
Третья нормальная форма требует, чтобы в таблице не имелось транзитивных зависимостей между не ключевыми полями, то есть, чтобы значение любого поля, не входящего в первичный ключ, не зависело от значения другого поля, также не входящего в первичный ключ.
Все таблицы данной БД удовлетворяют этому условию, следовательно, БД находится в третьей нормальной форме.
3.3.3 Описание РМД
Объекты данной предметной области предоставляются в виде таблиц, свойства становятся атрибутами либо полями. Таблиц и полей с одинаковыми названиями быть не может. В каждой таблице выделяется свойство, которое является ключевым. В каждой таблице первичным ключом будет первичное поле (#). По правилу построения РМД, ключевое поле из таблицы, объект которой связан с другим объектом отношением , добавляется в таблицу, которое соответствует отношению «много» (). Таких связей получается 5. «Студент» связан с объектом «Группа» отношением , значит, первичным ключом у нас является код группы (# КГр) и подсоединяем его к таблице «Студент», где записываем внешний ключ (КГр #). Аналогичным образом мы проделываем остальные таблички:
· таблицу «Специальность», где первичный ключ (счетчик) (#КСп), соединяем стрелочкой с таблицей «Группа» (КСп # );
· «Факультет» (#КФ) соединяем с таблицей «Специальность», где внешним ключом будет (КФ#);
· таблицу «Общежитие» (первичный ключ(#КО)) соединяем с «Комната» (КО#);
· «Студент» (#КСт) соединяем с «Проживает» (КСт #).
Отношение преобразуется по следующему принципу: вводится дополнительная таблица, в которую ключевые поля таблиц, связанных отношением , также включаются поля, которые являются свойствами отношений между этими объектами.
В нашей схеме присутствует только одна такая связь, т.е. к таблице отношения «Проживает», где счетчиком является (#КПр), присоединяется внешний ключ (#КК(код комнаты)), внешний ключ (Ст#) и свойства отношения: дата заселения и дата выселения. На рис. 2 показана схема РМД.
Таким образом, после рассмотрения приведенных выше моделей данных для разработанной в пункте 3 схемы «объект-отношение» была выбрана реляционная модель, которая проста и понятна для пользователя и отвечает требованиям изучаемого курса.
4 Программная реализация СУБД
4.1 Описание таблиц
Таблица «Студент» – справочник студентов.
Код студента – код студента, тип счетчик, первичный ключ, содержит уникальное значения без повторений.
ФИО – фамилия, имя и отчество студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.
№ зачетки – содержит номер зачетки, тип текстовый, размер 10 символов, содержит маску ввода: 00\/000, условие на значение:>0, если вводится неправильное значение, выводится сообщение об ошибке ”Некорректный ввод”; поле обязательное, индексированное, совпадения не допускаются.
Дата рождения – содержит дату рождения, тип дата/время, имеет краткий формат даты, маска ввода 00.00.0000;0;_, условие на вводимое значение <Now()-365*16 (т.е. студенту должно быть не меньше 16 лет), если вводится неправильное значение, выводится сообщение об ошибке, обязательное поле, индексированное, допускаются повторения.
Домашний адрес – содержит адрес проживания студента, тип текстовый, размер 50 символов, поле обязательное, индексированное, допускаются совпадения.
Контактный телефон - содержит номер телефона, тип текстовый, размер 20 символов, содержит маску ввода: 0\-000\-000\-00\-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\-00\-00; поле обязательное, индексированное, совпадения не допускаются.
Таблица «Комната» содержит информацию о комнатах общежития.
Код комнаты - тип счетчик, первичный ключ, содержит уникальные значения без повторений.
Количество мест - тип числовой, размер 5 символов, обязательное и индексированное поле, совпадения допускаются. Значение по умолчанию: 0, условие на значение: >0, если вводится неправильное значение, то выдается ошибка.
Тип - тип текстовый, размер 10 символов, обязательное и индексированное поле, совпадения допускаются. Поле со списком, тип источника строк - список значений, источник строк – мужская; женская; семейная.
№ комнаты - тип числовой, содержит маску ввода: 0”.”000, обязательное поле, индексированное, совпадения допускаются. Значение по умолчанию: 0, условие на значение: >0, если вводится неправильное значение, то выдается ошибка.
Общежитие- код общежитие, тип числовой, обязательное поле, размер поля - длинное целое. Тип источника строк - таблица или запрос, источник строк: SELECT Общежитие.[Код общежития] FROM Общежитие ORDER BY [Код общежития];
Таблица «Общежитие» содержит информацию о общежитиях, которые принадлежат ВУЗу.
Код Общежитие - тип счетчик, первичный ключ, содержит уникальные значения без повторений.
Адрес – тип текстовый, размер 50 символов, поле обязательное, индексированное, не допускаются совпадения.
Телефон - тип текстовый, размер 20 символов, маска ввода: 000\-00\-00; поле обязательное, индексированное, совпадения не допускаются.
ФИО Коменданта- тип текстовый, размер 50 символов, поле обязательное, индексированное, не допускаются совпадения.
Таблица «Проживает» - дополнительная таблица, созданная для исключения связи «многие-ко-многим». Таблица содержит информацию о дате заселения (выселения) студентов в (из) общежитие (ия).
Код проживает - тип счетчик, первичный ключ, содержит уникальные значения без повторений.
Студент - код студента, тип числовой, обязательное поле, размер поля- длинное целое. Подстановка из таблицы «Студент», отображается поле «Студент» таблицы «Студент».
Комната - код комнаты, тип числовой, обязательное поле, размер поля- длинное целое. Тип источника строк - таблица или запрос, источник строк: SELECT Комната.[Код комнаты], Комната.[№ комнаты] FROM Комната ORDER BY [№ комнаты];
Дата заселения - тип дата/время, размер 20 символов, маска ввода- 00.00.0000;0;_, обязательное и индексированное поле, совпадения допускаются.
Дата заселения - тип дата/время, размер 20 символов, маска ввода- 00.00.0000;0;_, обязательное и индексированное поле, совпадения допускаются.
... ). Причем, дата начала заболевания не может быть больше даты окончания заболевания. 2 ПОСТАНОВКА ЗАДАЧИ Перед разработчиком была поставлена задача спроектировать и разработать базу данных автоматизации учета больных студентов. Она включает в себя подробное изучение предметной области данного курсового проекта: сбор и группировка информации о заболеваниях студентов, лечащих врачах, типа лечения ...
... повысить качества фундаментальной естественно-научной подготовки студентов в контексте информатизации и формирования мотивационного синдрома. Тема исследования «Теоретические основы фундаментальной естественно-научной подготовки студентов технического вуза в условиях использования информационных технологий» обусловлена актуальностью решения и педагогической значимостью этой проблемы. Объектом ...
... интервал времени. В этом случае поведение АСОД может быть представлено только в дискретных точках (группа динамических моделей с дискретным временем). 6 Описание программы автоматизации учета исполнения бюджета Краснодарского края 6.1 Средства разработки 6.1.1 Компилятор BORLAND PASCAL 7.0 Программа написана на языке Turbo Pascal версии 7.0. Турбо Паскаль появился на рынке программных ...
... улучшить справочно -библиографическую работу, повысить уровень поисковых возможностей, но и усовершенствовать издательскую деятельность. Состояние и проблемы автоматизации в вузовских библиотеках Урала. В уральском регионе насчитывается 49 вузовских библиотек, которые расположены в 14 городах 6 областей (Курганской, Оренбургской, Пермской, Свердловской, Тюменской, Челябинской). Компьютерная ...
0 комментариев