Помощь в написании студенческих работ
Антистрессовый сервис

Разработка приложения баз данных для информационных систем

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

Рисунок 2.1 — Диаграмма базы данных Данные таблицы соответствуют требованиям нормализации реляционных БД. Таблицы находятся в 1НФ, т. к. все их поля являются простыми (неделимыми), нет повторяющихся полей и каждый столбец таблиц хранит одно-единственное значение и не является ни списком, ни множеством значений. Таблицы находятся во 2НФ, т. к. они находятся в 1НФ, имеют простые первичные ключи… Читать ещё >

Разработка приложения баз данных для информационных систем (реферат, курсовая, диплом, контрольная)

1. Логическая структура базы данных

Изучив заданную предметную область можно выделить 9 основных сущностей: автомобили, автомобили в угоне, владельцы, должности сотрудников, звания сотрудников ГАИ, марки автомобилей, послужной список сотрудников, регистрация и сотрудники. Каждая из них содержит свои атрибуты определённого типа данных.

Описание всех сущностей и их атрибутов приведено в таблице 1.1.

Таблица 1.1 — Описание сущностей

Название сущности

Название атрибута

Тип данных

Наличие ключа

Автомобили

Марка

Текстовый

Внешний ключ

Фото

Текстовый

;

Номер_кузова

Числовой

;

Номер_двигателя

Числовой

;

Номер_тех_паспорта

Числовой

Первичный ключ

Дата_выпуска

Дата

;

Дата_регистрации

Дата

;

Дата_последнего_ТО

Дата

;

Цвет

Текстовый

;

Описание

Текстовый

;

Автомобили в угоне

Регистрационный_номер

Числовой

;

Дата_угона

Дата

;

Дата_заявления_об_угоне

Дата

;

Вид_страховки

Текстовый

;

Обстоятельства_угона

Текстовый

;

Отметка_о_нахождении

Текстовый

;

Дата_нахождения

Дата

;

Марка

Текстовый

;

Номер_двигателя

Числовой

;

Ф.И.О._владельца

Текстовый

;

Код_сотрудника_ведущего_дело

Числовой

Внешний ключ

Специальное

Счётчик

Первичный ключ

Дело_номер

Счётчик

;

Владельцы

Дата_рождения

Дата

;

Адрес

Текстовый

;

Ф.И.О._владельца

Текстовый

Первичный ключ

Паспортные_данные

Текстовый

;

Номер_водит_удостоверения

Числовой

;

Дата_выдачи_удостоврения

Дата

;

Срок_действия_удостоверения

Дата

;

Категория

Текстовый

;

Доп_информация

Текстовый

;

Должности сотрудников

Код_должности

Числовой

Первичный ключ

Наименование_должности

Текстовый

;

Оклад

Денежный

;

Обязанности

Текстовый

;

Требования

Тестовый

;

Звания сотрудников ГАИ

Звание

Текстовый

Первичный ключ

Надбавка

Денежный

;

Обязанности

Текстовый

;

Требования

Текстовый

;

Марки автомобилей

Марка

Текстовый

Первичный ключ

Фирма_производитель

Текстовый

;

Страна_производитель

Текстовый

;

Дата_начала_производства

Дата

;

Дата_окончания_производства

Дата

;

Характеристики

Текстовый

;

Категория

Текстовый

;

Описание

Текстовый

;

Послужной список сотрудников

Код_сотрудника

Числовой

Внешний ключ

Код_должности

Числовой

;

Дата_занятия_должности

Дата

;

Краткая_характ_работы

Текстовый

;

Специальное

Счётчик

Первичный ключ

Название сущности

Название атрибута

Тип данных

Наличие ключа

Регистрация

Код_регистрации

Числовой

;

Регистрационный_номер

Числовой

;

Дата_регистрации

Дата

;

Ф.И.О._владельца

Текстовый

Внешний ключ

Код_сотрудника_выполн_регистрацию

Числовой

Внешний ключ

Марка

Текстовый

;

Номер_тех_паспорта

Числовой

;

Номер_кузова

Числовой

;

Номер_двигателя

Числовой

;

Специальное

Счётчик

Первичный ключ

Сотрудники

Код_сотрудника

Числовой

Первичный ключ

Ф.И.О._сотрудника

Текстовый

;

Фото

Текстовый

;

Дата_рождения

Дата

;

Пол

Текстовый

;

Адрес

Текстовый

;

Паспортные_данные

Текстовый

;

Телефон

Числовой

;

Образование

Текстовый

;

Код_должности

Числовой

Внешний ключ

Звание

Текстовый

Внешний ключ

Между сущностями определяются связи. Все связи типа один ко многим:

— связь между сущностями «Сотрудники» (на стороне один) и «Послужной список сотрудников» (на стороне многие) по полю «Код_сотрудника»;

— связь между сущностями «Сотрудники» (на стороне один) и «Автомобили в угоне» (на стороне многие) по полю «Код_сотрудника»;

— связь между сущностями «Сотрудники» (на стороне один) и «Регистрация» (на стороне многие) по полю «Код_сотрудника»;

— связь между сущностями «Звания сотрудников ГАИ» (на стороне один) и «Сотрудники» (на стороне многие) по полю «Звание»;

— связь между сущностями «Должности сотрудников» (на стороне один) и «Сотрудники» (на стороне многие) по полю «Код должности»;

— связь между сущностями «Владельцы» (на стороне один) и «Регистрация» (на стороне многие) по полю «Ф.И.О._владельца»;

— связь между сущностями «Марки автомобилей» (на стороне один) и «Автомобили» (на стороне многие) по полю «Марка»;

— связь между сущностями «Автомобили» (на стороне один) и «Доп таблица» (на стороне многие) по полю «Номер_тех_паспорта»;

связь между сущностями «Владельцы» (на стороне один) и «Доп таблица» (на стороне многие) по полю «Ф.И.О._владельца»;

Так же связи могут быть идентифицирующими или не идентифицирующими. Если задана идентифицирующая связь, то это значит, что каждому экземпляру дочерней сущности должен соответствовать хотя бы один экземпляр родительской[3]. Не идентифицирующая связь, означает, что экземпляр дочерней сущности может быть идентифицирован без использования экземпляра родительской сущности[3]. Все первичные ключи в сущностях являются простыми — состоят из одного поля и однозначно идентифицируют запись.

Логическая структура базы данных приведена на рисунке 1.1.

Рисунок 1.1 — Логическая структура базы данных

2. Физическая структура базы данных. Аппаратное и программное обеспечение системы

2.1 Физическая структура базы данных

По созданной логической структуре была разработана база данных средствами СУБД MS SQL Server. В неё входят 10 таблиц: автомобили, автомобили в угоне, владельцы, должности сотрудников, доп. таблица, звания сотрудников ГАИ, марки автомобилей, послужной список сотрудников, регистрация и сотрудники. В свою очередь таблицы содержат столбцы.

В таблицу «Автомобили» входят поля: «Марка» типа varchar (20)," Фото" типа varchar (MAX), «Номер_кузова» типа int, «Номер_двигателя» типа int, «Номер_тех_паспорта» типа int, «Дата_выпуска» типа datetime, «Дата_регистрации» типа datetime, «Дата_последнего_ТО» типа datetime, «Цвет» типа varchar (20), «Описание» типа text. Пустые значения разрешены только в столбцах «Фото» и «Описание».

В таблицу «Автомобили в угоне» — «Регистрационный_номер» типа int, «Дата_угона» типа datetime, «Дата_заявления_об_угоне» типа datetime, «Вид_страховки» типа varchar (20), «Обстоятельства_угона» типа text, «Отметка_о_нахождении» типа varchar (20), «Дата_нахождения» типа datetime, «Марка» типа varchar (20), «Номер_двигателя» типа int, «Ф.И.О._владельца» типа varchar (50), «Код_сотрудника_ведущего_дело» типа int, «Специальное» типа int, «Дело_номер» типа int. В столбце «Дата_нахождения» разрешены пустые значения.

В таблицу «Владельцы» — «Дата_рождения» типа datetime, «Адрес» типа varchar (20), «Ф.И.О._владельца» типа varchar (50), «Паспортные_данные» типа varchar (20), «Номер_водит_удостоверения» типа int, «Дата_выдачи_удостоврения» типа datetime, «Срок_действия_удостоверения» типа datetime, «Категория» типа varchar (20), «Доп_информация» типа text. В столбце «Доп_информация» разрешены пустые значения.

В таблицу «Должности сотрудников» — «Код_должности» типа int, «Наименование_должности» типа varchar (20), «Оклад» типа money, «Обязанности» типа text, «Требования» типа text. Пустые значения разрешены только в столбцах «Обязанности» и «Требования».

В таблицу «Доп таблица» — «Ф.И.О._владельца» типа varchar (50), «Номер_тех_паспорта» типа int, «Специальное» типа int.

В таблицу «Звания сотрудников ГАИ» — «Звание» типа varchar (20), «Надбавка» типа money, «Обязанности» типа text, «Требования» типа text.

Пустые значения разрешены только в столбцах «Обязанности» и «Требования».

В таблицу «Марки автомобилей» — «Марка» типа varchar (20), «Фирма_производитель» типа varchar (20), «Страна_производитель» типа varchar (20), «Дата_начала_производства» типа datetime, «Дата_окончания_производства» типа datetime, «Характеристики» типа text, «Категория» типа varchar (20), «Описание» типа text. Пустые значения разрешены только в столбцах «Характеристики» и «Описание».

В таблицу «Послужной список сотрудников» — «Код_сотрудника» типа int, «Код_должности» типа int, «Дата_занятия_должности» типа datetime, «Краткая_характ_работы» типа text, «Специальное» типа int. В столбце «Краткая_характ_работы» разрешены пустые значения.

В таблицу «Регистрация» — «Код_регистрации» типа int, «Регистрационный_номер» типа int, «Дата_регистрации» типа datetime, «Ф.И.О._владельца» типа varchar (50), «Код_сотрудника_выполн_регистрацию» типа int, «Марка» типа varchar (20), «Номер_тех_паспорта» типа int, «Номер_кузова» типа int, «Номер_двигателя» типа int, «Специальное» типа int.

В таблицу «Сотрудники» — «Код_сотрудника» типа int, «Ф.И.О._сотрудника» типа varchar (50), «Фото» типа varchar (MAX), «Дата_рождения» типа datetime, «Пол» типа varchar (20), «Адрес» типа varchar (20), «Паспортные_данные» типа varchar (20), «Телефон» типа int, «Образование» типа varchar (20), «Код_должности» типа int, «Звание» типа varchar (20). Пустые значения разрешены только в столбцах «Фото» и «Звание».

Диаграмма созданной базы данных приведена на рисунке 2.1.

Рисунок 2.1 — Диаграмма базы данных Данные таблицы соответствуют требованиям нормализации реляционных БД. Таблицы находятся в 1НФ, т. к. все их поля являются простыми (неделимыми), нет повторяющихся полей и каждый столбец таблиц хранит одно-единственное значение и не является ни списком, ни множеством значений. Таблицы находятся во 2НФ, т. к. они находятся в 1НФ, имеют простые первичные ключи и каждое неключевое поле функционально зависит от первичного ключа. Таблицы находится в 3НФ, т. к. они находятся во 2НФ и все не ключевые поля являются взаимно-независимыми.

2.2 Создание представлений, хранимых процедур, пользовательских функций, триггеров

Сведения о всех сотрудниках и их должностях:

SELECT Сотрудники.Ф.И.О._сотрудника, Сотрудники. Дата_рождения, Сотрудники. Пол, Сотрудники. Адрес, Сотрудники. Паспортные_данные, Сотрудники. Телефон, Сотрудники. Образование, Сотрудники. Звание, Должности_сотрудников. Наименование_должности FROM Сотрудники INNER JOIN Должности_сотрудников ON Сотрудники. Код_должности = Должности_сотрудников. Код_должности

Сведения о сотрудниках ведущих текущие дела об угоне:

SELECT Автомобили_в_угоне. Дело_номер, Сотрудники.Ф.И.О._сотрудника FROM Автомобили_в_угоне INNER JOIN Сотрудники ON Автомобили_в_угоне. Код_сотрудника_ведущего_дело = Сотрудники. Код_сотрудника

Сведений обо всех зарегистрированных автомобилях:

SELECT Регистрационный_номер, Дата_регистрации, Ф.И.О._владельца, Марка, Номер_тех_паспорта, Номер_кузова, Номер_двигателя FROM Регистрация

Сведения об автомобиле определённого владельца:

SELECT Регистрационный_номер, Дата_регистрации, Ф.И.О._владельца, Марка, Номер_тех_паспорта, Номер_кузова, Номер_двигателя FROM Регистрация WHERE (Ф.И.О._владельца = @Ф.И.О._владельца)

Сведения об автомобилях с определённой маркой:

SELECT Регистрационный_номер, Дата_регистрации, Ф.И.О._владельца, Марка, Номер_тех_паспорта, Номер_кузова, Номер_двигателя FROM Регистрация WHERE (Марка = @Марка)

Сведения об автомобилях с определённым номером двигателя:

SELECT Регистрационный_номер, Дата_регистрации, Ф.И.О._владельца, Марка, Номер_тех_паспорта, Номер_кузова, Номер_двигателя FROM Регистрация WHERE (Номер_двигателя = @Номер_двигателя)

Сведения об автомобилях зарегистрированных в заданный промежуток времени:

SELECT Регистрационный_номер, Дата_регистрации, Ф.И.О._владельца, Марка, Номер_тех_паспорта, Номер_кузова, Номер_двигателя FROM Регистрация WHERE (Дата_регистрации BETWEEN @Param1 AND @Param2)

Сведения обо всех угнанных автомобилях:

SELECT Регистрационный_номер, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона, Отметка_о_нахождении, Дата_нахождения, Марка, Номер_двигателя, Ф.И.О._владельца FROM Автомобили_в_угоне

Сведения о автомобиле угнанном у определённого владельца:

SELECT Ф.И.О._владельца, Марка, Регистрационный_номер, Номер_двигателя, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона FROM Автомобили_в_угоне WHERE (Ф.И.О._владельца = @Ф.И.О._владельца)

Сведения о угнанном автомобиле с определённой маркой:

SELECT Ф.И.О._владельца, Марка, Регистрационный_номер, Номер_двигателя, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона FROM Автомобили_в_угоне WHERE (Марка = @Марка)

Сведения о автомобилях угнанных в определённую дату:

SELECT Ф.И.О._владельца, Марка, Регистрационный_номер, Номер_двигателя, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона FROM Автомобили_в_угоне WHERE (Дата_угона = @Дата_угона)

Сведения о автомобилях угнанных с определённым номером двигателя:

SELECT Ф.И.О._владельца, Марка, Регистрационный_номер, Номер_двигателя, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона FROM Автомобили_в_угоне WHERE (Номер_двигателя = @Номер_двигателя)

Сведения о автомобилях угнанных в заданный промежуток времени:

SELECT Ф.И.О._владельца, Марка, Регистрационный_номер, Номер_двигателя, Дата_угона, Дата_заявления_об_угоне, Вид_страховки, Обстоятельства_угона FROM Автомобили_в_угоне WHERE (Дата_угона BETWEEN @Param1 AND @Param2)

Список владельцев не имеющих водительских удостоверений:

SELECT Ф.И.О._владельца, Дата_выдачи_удостоврения, Срок_действия_удостоверения FROM Владельцы WHERE (Срок_действия_удостоверения < @Срок_действия_удостоверения) Также в данной базе данных были разработаны функции, возвращающие табличные значения:

— выводит сведения о сотрудниках с определённым званием. SQL-код функции приведен на рисунке 2.2;

— выводит сведения о сотрудниках с определённым образованием. SQL-код функции приведен на рисунке 2.3.

Рисунок 2.2 — SQL-код табличной функции Inline

Рисунок 2.3 — SQL-код табличной функции Multi-statement

2.3 Аппаратное и программное обеспечение системы

Разработанная база данных содержит одну файловую PRIMARY, которая создаётся по умолчанию и состоит из двух основных файлов:

— kursa4. mdf — файл самой базы данных. В нём хранятся непосредственно данные и структура базы данных. Размер данного файла 3МБ, рост файла неограничен;

— kursa4_log.ldf — журнал транзакций. Размер журнала 1 МБ, рост ограничивается лишь свободной памятью на жёстком диске.

Перечислим минимальные программные и аппаратные требования серверной части для работы с ИС [4]:

— процессор: IntelP4 — 1GHz;

— память (ОЗУ): 512 MB;

— операционная система: Windows Server 2003 Service Pack 2; Windows Server 2008; Windows Vista; Windows Vista Service Pack 1; Windows 7; Windows XP Service Pack 2; Windows XP Service Pack 3.

Перечислим минимальные программные и аппаратные требования клиентской части для работы с ИС:

— процессор: Pentium III — совместимый процессор с тактовой частотой 1 GHz;

— оперативная память (RAM): 256 MB;

— объём жёсткого диска (HDD): 500 MB;

— монитор: видеоадаптер SuperVGA с разрешением 800×600 или выше

— операционная система: Windows XP; Windows Server 2003; Windows Vista; Windows Server 2008.

3. Реализация интерфейса пользователя

3.1 Описание основной структуры ASP.NET документов

Интерфейс пользователя был разработан с помощью технологии ASP.NET [5], предоставляемой Microsoft. Она позволяет быстро, эффективно и просто создать полноценное и многофункциональное Web — приложение. Структура приложений разрабатываемых с помощью данной технологии позволяет разграничивать логику и содержимое страниц, что является очень удобной возможностью.

Приложение состоит из набора ASP.NET страниц и условно делится на 2 части, а именно вывод обработанных данных и редактирование данных из таблиц. Все страницы имеют единый стиль оформления. Это достигается путём использования ещё одной удобной возможностью технологии ASP.NET-MasterPage. Она позволяет создать страницу-шаблон, которая впоследствии может быть унаследована другими страницами. Это означает, что у страницы-шаблона есть специальный тег — ContentPlaceHolder, в который помещается содержимое страниц с наполнением, в результате чего страница отображается как единое целое. Здесь можно провести некую аналогию с фреймами в HTML. Для разметки MasterPage страницы использовались обычные HTML таблицы и CSS (каскадные таблицы стилей). Пример такой страницы приведен в приложении А.

Все созданные страницы связанны между собой серверными элементами управления, таковыми являются компоненты LinkButton и Button (приложение Б)

3.2 Создание ASP.NET документов

Любая ASP.NET страница состоит из двух частей. Первая часть — Design, представляет собой пустое пространство, на котором можно разместить элементы управления. Вторая часть — Source, представляет собой код языка ASP.NET. Добавление нового кода, происходит при добавлении нового объекта в окне Design, либо при ручном заполнении. Для того чтобы добавить новый элемент в окно Design, его необходимо выбрать из вкладки Toolbox, и перетащить на форму. По аналогии с C#, имеется окно Properties, в котором можно задать те или иные параметры для элементов управления, или задать те или иные события.

Каждая страница начинается со следующего кода: «<% Page Language=» текущий язык программирования»%>». Где тег «

Показать весь текст
Заполнить форму текущей работой