Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Курсовые работы / Создание электронного журнала занятий

.pdf
Скачиваний:
396
Добавлен:
28.06.2014
Размер:
938.85 Кб
Скачать

Национальный исследовательский университет Московский Энергетический Институт.

Отчет по курсовой работе по дисциплине

“Базы данных и экспертные системы” по теме:

Создание электронного журнала занятий.

Выполнил: Логинов Андрей Группа: А-13-08.

Преподаватель: Сидорова Наталья Петровна

Москва, 2011.

Содержание.

 

Постановка задачи ...................................................................................................

3

Введение. Инфологическое проектирование.........................................................

4

Логическое проектирование. Нормальные формы ...............................................

6

Модель в среде AllFusion ERwin ..............................................................................

8

Выполнение ...........................................................................................................

10

Пример использования .........................................................................................

16

2

Постановка задачи.

Ведение электронного журнала занятий по дисциплине. Функции процесса:

Формирование списка студентов, изучающих дисциплину;

Определение преподавателя, ведущего занятия;

Проверка полномочий преподавателя;

Учет посещения занятий;

Учет сданных работ;

Подсчет количества пропущенных часов;

Формирование списка студентов, имеющих задолженность по заданиям.

При выполнении использовались:

CASE-средство: AllFusion ERwin Data Modeler r7,

СУБД: Microsoft SQL Server 2008 R2,

язык высокого уровня: C# в среде Microsoft Visual Studio 2010.

3

Введение. Инфологическое проектирование.

Процесс проектирования включает в себя следующие этапы:

инфологическое проектирование;

определение требований к операционной среде, в которой будет функционировать информационная система, и выбор СУБД и инструментальных программных средств;

логическое проектирование БД;

физическое проектирование БД.

Основная цель процесса проектирования базы данных состоит в получении моделей БД, которые удовлетворяют следующим требованиям:

корректность схемы БД, т.е. база должна адекватно отображать моделируемую предметную область, в которой каждому объекту предметной области соответствуют данные в структуре БД, а каждому процессу — процедуры обработки данных:

обеспечение ограничений на целостность данных;

эффективность функционирования (соблюдение ограничений на время реакции системы на запрос и обновление данных);

простота и удобство эксплуатации;

гибкость, т.е. возможность развития БД и адаптации к изменениям предметной области и/или требований пользователей.

Инфологическая модель предметной области представляет собой описание её структуры и динамики, характера информационных потребностей пользователей в терминах, понятных пользователю и не зависимых от реализации БД. Одним из наиболее часто используемых видов моделей является модель «сущность-связь» (ER-модель). Основными элементами этой модели являются сущность, атрибут и связь.

Сущность — это объект, о котором в системе будет накапливаться информация. Сущности бывают как физически существующие, так и абстрактные.

4

Сущности:

1)Электронный журнал

2)Преподаватель

3)Дисциплина

4)Студент

Выделяют сильные и слабые типы сущностей. Сильные сущности существуют сами по себе, а существование слабых сущностей зависит от существования сильных.

Для каждой сущности выбираются свойства — атрибуты. Различают следующие:

1) идентифицирующие и описательные атрибуты. Идентифицирующие атрибуты имеют уникальное значение для сущностей данного типа и являются потенциальными ключами. Они позволяют однозначно распознавать экземпляры сущности. Из потенциальных ключей выбирается один первичный ключ, включающий в свой состав минимально необходимое для идентификации количество атрибутов. Остальные атрибуты называются описательными и заключают в себе интересующие свойства сущности;

2)составные и простые атрибуты. Простой атрибут состоит из одного компонента, его значение неделимо. Составной атрибут является комбинацией нескольких компонентов, возможно, принадлежащих разным типам данных (например, ФИО или адрес). Решение о том, использовать составной атрибут или разбивать его на компоненты, зависит от характера его обработки и формата пользовательского представления этого атрибута;

3)однозначные и многозначные атрибуты (могут иметь соответственно одно или много значений для каждого экземпляра сущности);

4)основные и производные атрибуты. Значение основного атрибута не зависит от других атрибутов. Значение производного атрибута вычисляется на основе значений других атрибутов (например, возраст студента вычисляется на основе даты его рождения и текущей даты).

По типу связи различают следующие виды:

связи один к одному — 1:1;

один ко многим — 1: n;

многие ко многим — т: n.

5

Логическое проектирование. Нормальные формы.

Ha этапе логического проектирования разрабатывается логическая структура базы данных. Решение этой задачи существенно зависит от модели данных, поддерживаемой выбранной СУБД.

Проектирование реляционной базы данных (РБД) имеет свои особенности. Оно должно отвечать дополнительным требованиям, связанным с минимизацией дублирования данных и упрощения процедур их обработки и обновления. В случае неправильно спроектированной РБД могут возникнуть аномалии модификации данных, которые обусловлены недостаточно полно проведенным анализом типов связей между объектами предметной области и неполнотой анализа правил целостности данных. Для устранения таких недостатков применяется процедура нормализации отношений, образующих схему РБД, и определяются правила целостности базы данных.

Для определения понятия нормальной формы было введено понятие простого и сложного атрибута. Простой атрибут — это атрибут, значения которого атомарны (т.е. неделимы с точки зрения их обработки). Сложный атрибут может иметь значение, представляющее собой объединение нескольких значений, каждое из которых может обрабатываться самостоятельно. Примером сложного атрибута может быть агрегат данных или повторяющийся агрегат данных.

Первая нормальная форма (1НФ).

Отношение находится в 1НФ, если все его атрибуты простые. Для того чтобы привести к 1НФ отношение, содержащее повторяющиеся атрибуты (агрегаты), нужно построить декартово произведение всех повторяющихся агрегатов с кортежами, к которым они относятся. Для идентификации кортежа отношения в этом случае понадобится составной ключ, включающий первичный ключ исходного отношения и идентифицирующие атрибуты агрегатов.

Дальнейший процесс нормализации отношений связан с анализом функциональных зависимостей, существующих в отношении. Пусть А" и Y— атрибуты некоторого отношения. Если в любой момент времени каждому значению X соответствует единственное значение Y, то Y функционально зависит от X (X—>Y). В нормализованном отношении все неключевые атрибуты функционально зависят от ключа отношения. Говорят, что неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.

6

Вторая нормальная форма (2НФ).

Отношение находится во 2НФ, если оно находится в 1НФ и каждый неключевой атрибут функционально полно зависит от ключа.

Для того чтобы привести отношение к 2НФ, нужно:

построить его проекцию, исключив атрибуты, которые не находятся в функционально полной зависимости от составного ключа;

построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа.

Особое значение при анализе функциональных зависимостей имеют транзитивные зависимости. Пусть X, Y, Z — атрибуты некоторого отношения R. При этом X—>Г и Y—> Z. Тогда говорят, что Z транзитивно зависит от X.

Третья нормальная форма (ЗНФ).

Отношение находится в ЗНФ, если оно находится в 2НФ, и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.

Для того чтобы привести отношение к ЗНФ, нужно:

построить его проекцию, исключив транзитивно зависящие от ключа атрибуты;

построить дополнительно одну или несколько проекций на детерминанты исходного отношения и атрибуты, функционально зависящие от них.

Для получения качественной РБД в большинстве случаев достаточно приведение её схемы в ЗНФ, при которой все её отношения также находятся в ЗНФ.

Нормализация отношений позволяет сократить дублирование данных, но появление новых отношений порождает проблему поддержки семантической целостности данных. Это требует разработки дополнительных процедур поддержки целостности данных средствами СУБД.

7

Модель в среде AllFusion ERwin.

Таблица ERegister:

name_ds: Код дисциплины

cod_z: Код занятия/лабораторной работы mark: Оценка

name_pr: Код преподавателя name_st: Код студента

Таблица Students:

nomer: Номер (код) студента

name: Имя студента

data_rogden: Дата рождения

pol: Пол

8

Таблица Teachers:

cod: Код преподавателя

name_prepod: Имя преподавателя

polnomochiya: Полномочия

Таблица Discipline:

cod: Код дисциплины

name_discip: Название дисциплины

dob: Добавлен ли соответствующий журнал kol_z: Количество занятий

kol_l: Количество лабораторных работ

9

Выполнение.

Используемые классы:

SqlConnection - Предоставляет открытое подключение к базе данных SQL Server.

oКонструктор SqlConnection(string connectionString)

SqlDataReader - Предоставляет возможность чтения потока строк только в прямом направлении из базы данных SQL Server.

SqlCommand - Представляет инструкцию Transact-SQL или хранимую процедуру, выполняемую над базой данных SQL Server.

oКонструктор - SqlCommand(string cmdText, SqlConnection connection)

SqlParametr - Предоставляет параметр для объекта SqlCommand.

oКонструктор - SqlParameter(string parameterName, SqlDbType dbType)

Установка соединения с базой данных:

private void button1_Click(object sender, EventArgs e)

{

myConnection = new SqlConnection("server=1-ПК;" + "Trusted_Connection=yes;" + "database=master;" + "connection timeout=30");

try

{

myConnection.Open();

label1.Text = "Соединение установлено"; button1.Enabled = false;

}

catch (Exception exp)

{

label1.Text = exp.ToString();

}

}

Метод SqlConnection.Open - Открывает подключение к базе данных со значениями свойств,

определяемыми объектом ConnectionString.

Загрузка данных для заполнения журнала на экране данными:

private void FillTheTable1()

{

string tab = comboBox3.Text; try

{

SqlDataReader myReader = null;

SqlCommand myCommand = new SqlCommand("select kol_z, kol_l from discipline where name_discip='" + tab + "'", myConnection);

myReader = myCommand.ExecuteReader(); while (myReader.Read())

{

10