
- •Задание
- •Уточнение задания
- •Проектирование бд и по
- •Проектирование базы данных
- •Логическая модель базы данных
- •Проектирование программного обеспечения
- •Проектирование архитектуры
- •Рассмотрение базового класса редактирования таблиц
- •Реализация
- •Реализация базы данных
- •Физическая модель базы данных
- •Соединение с сервером
- •Реализация базы данных средствами Visual Studio
- •Редактирование данных в бд средствами Visual Studio
- •Реализация отображения базы данных
- •Реализация программного обеспечения
- •Интерфейс программы
- •Окно редактирования таблиц бд
- •Дополнительная возможность – консоль
- •Реализация создания отчетов
- •Создание sql запроса для отчета
- •Интерфейс отчета
- •Приложение
Реализация
Рассмотрим реализацию нашего программного продукта по порядку.
Реализация базы данных
Реализацию базы данных будем выполнять на Visual Studio 2005, причем, он подключится к серверу и можно создавать и менять БД в очень удобной форме.
Физическая модель базы данных
Физическая модель данных, напротив по отношению к логической модели, зависит от конкретной реализации СУБД, фактически являясь отображением системного каталога. В физической модели содержится информация о всех объектах БД. В ней важно описать всю информацию о конкретных физических объектах – таблицах, колонках, индексах и т.п.
Физическая модель нашей базы зависит от реализации СУБД Microsoft SQL Server 2000 (это объясняется тем, что более новых версий в Erwin’е нет) и принимает следующий вид:
В этой модели используются только два типа данных: int и nchar().
При существовании пустых значений в базе данных, она теряет как смысл хранения этих данных, так и надежность этой базы. Именно поэтому, почти все данные не могут принимать значения NULL. Имеется исключение, как, например, в таблице Disciplines_learning_plan (Дисциплины учебного плана) значение поля vid_rash_zadaniya_id (вид расчетного задания) может быть NULL, т.к. возможны отсутствия видов расчетных заданий. Также, отсутствия количества часов тоже возможны, однако в этом случае необходимо вводить 0. Подобная ситуация есть и в таблице vid_rash_rabot (Виды расчетных работ) – там можно создать отдельное значение, например, <пусто> и использовать его в качестве «отсутствия». При редактировании данных с помощью программного обеспечения (будет описано позже) необходимо использовать именно такой способ заполнения БД, т.к. в ней не предусмотрено вносить пустые данные.
Соединение с сервером
При помощи MS Visual Studio 2005 у нас есть возможность подключиться к серверу следующим образом. В меню Data выбрать Add new Data Source и там создать новое подключение к серверу или к уже созданному файлу SQL Server’а. В нашем случае сейчас уже имеется файл базы данных и это окно подключения будет иметь вид:
Видно, что подключение прошло успешно, а это значит что сделано правильно.
Вообще говоря, если подключаться через сервер, а не файл, это позволяет обращаться к базе данных с нескольких рабочих мест, что расширяет возможности использования базы данных.
Реализация базы данных средствами Visual Studio
Наша модель базы данных, а далее – уже реализация это базы будет представлена в таком виде (это база данных на MS SQL Server 2005 средствами MS Visual Studio 2005).
Рассмотрим каждую таблицу в отдельности, чтобы понять ее структуру (строковые размеры данных соответствуют размерам, приведенные в физической модели базы данных):
|
Эта таблица включает в себя такие поля как:
- идентификатор (уникальный номер) - идентификатор таблицы Дисциплины - идентификатор таблицы Учебный план - идентификатор таблицы Преподаватели - часы занятий в неделю: обязат. - часы занятий в неделю: лаб.пр. - часы занятий в неделю: самост. - экзамены - зачеты - часы учеб. занятий в неделю: лекции - часы учеб. занятий в неделю: лабор. - часы учеб. занятий в неделю: практ. - идентификатор таблицы вид расчетного задания - консульт. - идентификатор таблицы Группы - идентификатор таблицы Кафедры |
|
Включает поля: - идентификатор (уникальный номер) - имя преподавателя - идентификатор таблицы Должности - идентификатор таблицы Ученые степени - идентификатор таблицы Категории |
|
Включает поля: - идентификатор (уникальный номер) - название должности |
|
Включает поля: - идентификатор (уникальный номер) - название ученой степени |
|
Включает поля: - идентификатор (уникальный номер) - название категории |
|
Включает поля: - идентификатор (уникальный номер) - идентификатор таблицы Специальности - номер учебного плана - год - номер семестра - количество недель |
|
Включает поля: - идентификатор (уникальный номер) - код специальности - название специальности |
|
Включает поля: - идентификатор (уникальный номер) - условное обозначение вида работы - полное название вида работы |
|
Включает поля: - идентификатор (уникальный номер) - название группы - год приема - количество студентов - идентификатор таблицы Кафедры |
|
Включает поля: - идентификатор (уникальный номер) - название кафедры (аббревиатура) - полное название кафедры - идентификатор таблицы Институты (факультеты) |
|
Включает поля: - идентификатор (уникальный номер) - название института/факультета (аббревиатура) - полное название института/факультета |