Проектирование БД для проката автомобилей

Автор работы: Пользователь скрыл имя, 01 Декабря 2013 в 14:28, курсовая работа

Краткое описание

В настоящее время большинство организаций используют различные базы данных для автоматизации процессов автоматизации обработки информации, удобства её эксплуатации, повышения надёжности хранения данных, сокращения числа возможных ошибок в работе, предотвращения избыточности данных, а также в целях повышения производительности. Состав баз данных и их размер определяются направлением деятельности конкретного предприятия и его мощностью. В связи с тем, что современные информационные системы оперируют большими объемами и сложными структурами данных, средства управления базами данных можно выделить в отдельную группу информационных систем, отвечающих за управление сложными структурированными данными.

Содержание

Введение
Глава 1. Анализ БД
1.2 Описание предметной области
1.3 Инфологическая модель БД
1.4 Выбор СУБД
1.5 Логическое пректирование
Вывод к главе 1
Глава 2. Разработка
База данных «Прокат автомобилей»
2.1.1 Создание таблиц и заполнение их информацией
2.1.2 Создание связей между таблицами
2.1.3 Определение условий целостности данных
2.2. Создание форм, отчетов и запросов
Запросы
2.3 Обеспечение защиты от несанкционированного доступа
2.4 Создание меню проекта и программной оболочки
2.5 Создание справочной системы
2.6 Создание инсталляционного пакета
Вывод к главе 2
Список литературы

Вложенные файлы: 1 файл

Прокат автомобилей БД.docx

— 1.61 Мб (Скачать файл)



 

 

 

 

 

 

 

 

(таблица 5)

 

отношение Стоимость аренды (таблица 6)

Ear_of_issue

Price

2008

200

2009

250

2002

150

2007

190

2008

200

2007

250




 

 

 

 

 

 

 

 

(таблица 6)

 

отношения Клиенты (Clients)

d  - идентификатор (первичный ключ)

fio - Фамилия, имя, отчество

Dyers - Стаж вождения

Rating - Рейтинг (кол-во заказов)

Passport - № Паспорта

Accidents - Кол-во аварий

Date Дата заключения

(таблица 7)

Days – Длительность

Collisions – Повреждения

Id

Fio

Passport

Dears

Rating

Accidents

Date

Days

Collisions

Result

1

Громов И.Н.

EE543778

2

1

0

01.03.2012

1

No

0%

2

Ближина М.А.

AE452525

5

1

0

01.03.2012

1

No

0%

3

Тимохин С.С.

EA954437

6

4

0

01.03.2012

1

No

0%





Result - Результат (урон)

 

 

 

 

 

 

 

(таблица 7)

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

отношения Клиенты (Clients)

Отношение  приведено к 1НФ , если все его атрибуты простые.

отношения Клиенты (Clients) (таблица 8)

Id

Family

Imia

Otchestvo

Passport

Dyers

Rating

Accidents

Date

Days

Collisions

Result

1

Громов

Игорь

Николаевич

EE543778

2

1

0

01.03.2012

1

No

0%

2

Ближина

Мария

Анатольевна

AE452525

5

1

0

01.03.2012

1

No

0%

3

Тимохин

Степан

Сергеевич

EA954437

6

4

0

01.03.2012

1

No

0%

4

Качкурова

Зинаида

Михайловна

AB808764

4

1

0

01.03.2012

1

No

0%

5

Батраков

Степан

Сергевич

CA826498

1

1

0

01.03.2012

1

No

0%





(таблица 8)

 

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

Ключом отношения Клиенты (Clients) является комбинация полей (ID, Family, Dyers). Все поля не входящие в состав ключа, зависят только от идентификатора Clients. Поэтому отношение должно быть разбито на два: Клиенты и Клиенты – ФИО – Dyers Отношение Клиенты – ФИО – Dyers приведённое к 2НФ

(таблица 9)

Id

Familiya

Imya

Otchestvo

Dyers

1

Громов

Игорь

Николаевич

2

2

Ближина

Мария

Анатольевна

5

3

Тимохин

Степан

Сергеевич

6




 

 

 

 

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

Для отношения Клиенты (Clients)  атрибут Accidents зависит от Result, а не от ключа. Поэтому для приведения отношения к 3НФ нужно выделить из него ещё одно отношение ДТП  (таблица 10)

Id

Accidents

Result

1

0

0%

2

0

0%

3

1

5%

4

0

0%

5

0

0%

6

0

0%

7

0

0%

8

0

0%




 

 

 

 

 

 

 

 

 

 

(таблица 10) 

 

1НФ. Отношения данной БД не нарушают 1НФ, т.к. нет сложных атрибутов.

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

3НФ. Отношения данной БД нарушают 3НФ, т.к. есть транзитивные зависимости:

    1. Вынесем отдельное отношение Марка (Brand), в котором будут содержаться ID марки, название марки, фото и цена.
    2. Вынесем отношение ЦВЕТА (colors), в котором будут содержаться всевозможные цвета автомобилей: ID и название цвета.
    3. Вынесем отношение МОДЕЛИ (colors), в котором будут содержаться всевозможные цвета автомобилей: ID, ID марки (внешний ключ), вместимость и тип кузова.

Автомобили



Клиенты


ДТП


Контракты



 





Модель



 

 

 

 1.4.2. Определение дополнительных ограничений целостности

Перечислим ограничения  целостности, которые не указаны  в таблицах.

  1. Значения всех числовых атрибутов – больше 0 (или null, если атрибут необязателен).
  2. quality в cars и result в accidents не могут превышать 100, т.к. они означают %.
  3. Цвет (color) в cars – элемент списка цветов автомобилей.
  4. Год выпуска (year_of_issue) в cars не может быть меньше 1998 и не может превышать 2050.

 Денормализация

Соотношение КЛИЕНТЫ:

Рейтинг клиента и кол-во аварий лучше хранить как вычисляемые  поля, т.к. это рациональнее с точки  зрения реализации поиска постоянных клиентов и расчета скидки при  заказе.

Соотношение АВТОМОБИЛИ:

В прокате  автомобиль или нет рациональнее хранить как вычисляемое поле, чтобы быстрее реализовывать  поиск автомобилей.

1.4.3. Описание групп пользователей и прав доступа

Опишем для каждой группы пользователей права доступа  к каждой таблице и к каждому  полю (атрибуту).

  1. Администратор БД: имеет доступ ко всем данным (по записи), может изменять структуру базы данных и связи между отношениями. Устанавливает права доступа для всех остальных групп.
  2. Представители администрации компании: имеют доступ по чтению ко всем данным и доступ по записи к отношениям CARS, CLIENTS, CONTRACTS, ACCIDENTS, BRANDS, MODELS.
  3. Менеджеры: имеет доступ по чтению ко всем данным. Имеют доступ по записи к отношениям CARS, CLIENTS, BRANDS, MODELS, ACCIDENTS, CONTRACTS.
  4. Сотрудники, обслуживающие заказы (могут отсутствовать): имеет доступ по чтению и записи к отношениям CLIENTS, ACCIDENTS, CONTRACTS.
  5. Сотрудники, обслуживающие автомобили: имеют доступ по чтению к CARS и MODELS.

Вывод к главе 1

Выполнив главу 1, я понял что, базы данных это средство для организации  оптимизированного хранения, выборки  и представления информации. Программное  обеспечение, предназначенное для  организации и ведения баз  данных – это Система Управления Базами Данных. Таблицы составляют основу нашей БД. В них храниться  вся необходимая информация. Для  работы оптимальной СУБД является Visual FoxPro 9.0.

 

 

 

 

 

Глава 2. Разработка

Базы Данных «Прокат Автомобилей»

2.1 Проектирование  БД.

При разработке БД «Прокат автомобилей» были созданы следующие таблицы, которые осуществляют информационную поддержку БД «Прокат автомобилей»:

  • Автомобили
  • Клиенты
  • Контракты
  • ДТП
  • Модели

Для начала создания БД «Прокат автомобилей», с помощью СУБД FoxPro

Необходимо  запустьить приложение Microsoft Visual FoxPro. После программы в меню File, нужно кликнуть кнопку NEW. В результате появится окно New, в нем нужно выбрать вкладку Project. Будет предложено два варианта создания проекта: Вручную, либо же с помощью мастера. Выбираем вариант Wizard (с помощью мастера).

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

В меню File выберите команду New (рис.1)

Рис. 1. Новый  проект

Откроется диалоговое окно New, в котором нужно выбрать опцию Project и нажать кнопку Wizard.

Далее в  поле ввода Project name необходимо задать имя создаваемого проекта, а в поле ввода Project file указать его расположение. Для выбора папки, в которой вы хотите разместить прект, можно использовать кнопку Browse, открывающую диалоговое окно, позволяющее найти на компьютере необходимую папку. При этом ставим флажок Create project directory structure, который позволяет автоматически создать в указанной папке проекта специализированные папки. На данном этапе создается База Данных (рис. 2)

Рси.2 Создание проекта

После определения  имени файла и его расположения нажмите кнопку ОК для создания нового проекта. Мастер переходит к созданию нового проекта, и на экране появляется диалоговое окно построителя приложения Application Builder (рис. 3)

Рис.3. построитель  изображения

Диалоговое  окно содержит следующие вкладки:

General – основные параметры создаваемого проекта

Credits – информация об авторах проекта.

Data – Параметры создания баз данных и таблиц.

Form – информация о формах, входящих в проект.

Reports -  информация об отчетах, входящих в проект.

Advanced – параметры создания справочной системы, меню проекта.

2.1.1 Создание таблиц и заполнение  их информацией.

Следующим этапом проектирования базы данных является создание таблиц. Для того чтобы  создать таблицы  необходимо в  окне Projet Manager выбрать вкладку Data, которая содержит ветви для работы с источниками данных, внеё входят базы данных, таблицы, свободные таблицы и запросы.

Ввыбрав вкладку New Table, создаем новую таблицу.  Таблица может находиться в двух режимах:

    • В режиме Modify, где указывается название полей их типы и размеры, а также определяется тип индекса. (Рис. 4)
    • В режиме Drowse, предназначенный для заполнения таблицы  текстовой информацией. Для того чтобы ввести в таблицу данные нужно воспользоваться сочетанием клавиш CTRL+Y.

Следующим шагом  станет создание таблиц в базе данных «Прокат автомобилей» Таблицы эти  уже продуманны на этапе «логического проектирования» и нам остается только перенести их в созданную  базу данных. Начнем с сущности «Автомобили». Для этого создадим пустую таблицу  и присвоим ей поля соответсвующии атрибутам сущности «Автомобили».

      • номер машины в базе
      • номер модели в базе
      • цвет автомобиля
      • статус
      • регистрационный номер авто

 Рис.4. Поля  таблицы Автомобили

Как видно по рисунку 4, каждому полю, мы присваиваем тип хранимых в нем данных (колонка Type) и размер его поля (Width).

Для полей, которые  будут связывать наши таблицы, необходимо задать индексы (ключи) (рис.5). В таблице  автомобили (cars) такими полями будут:

    • ID (номер машины в базе) – первичный ключ. Это поле основное в таблице, по индексу которого таблица «Автомобили», будет связанна с таблицей «Контракты»
    • Model id (номер модели в базе) – вторичный ключ. Используется для связи с сущностью «Модели».

Рис.5. индексы таблицы «Автомобили».

 

Далее заполняем  текстовой информацией таблицу  «Автомобили» (рис. 6).

Рис. 6. Заполнение текстовой информацией таблицы  «Автомобили»

Те же действия проделали с оставшимися сущностями.

Создадим  таблицу «Клиенты» и заполним её полями(установив в них необходимые  типы данных) (Рис. 7)

Рис.7. Поля таблицы  «Клиенты»

Рис.8. Индексы  таблицы «Клиенты»

 

Заполним  таблицу «Клиенты» записями (рис.9)

Рис.9. Заполнение таблицы  «Клиенты»

Следующей создадим таблицу «Контракты»  » и заполним её полями(установив  в них необходимые типы данных) (Рис. 10)

  • номер контракта  - первичный ключ. Это поле основное в таблице
  • ДАТА ЗАКЛЮЧЕНИЯ КОНТРАКТА
  • ДАТАТ ОКОНЧАНИЯ КОНТРАКТА
  • номер клиента в базе - вторичный ключ. Используется для связи с сущностью «Клиенты».

 

  • номер машины - вторичный ключ. Используется для связи с сущностью «Автомобили».
  • Длительность аренды
  • Цена аренды/сутки

Рис.10. Поля таблицы «Контракты»

Рис.11. Индексы  таблицы «Контракты»

Рис.12. Заполнение таблицы  «Контракты»

Следующей создадим таблицу «ДТП»  » и заполним её полями(установив  в них необходимые типы данных) (Рис. 13)

Информация о работе Проектирование БД для проката автомобилей