- •Содержание
- •Глава 1. Системный анализ предметной области ис Прокат автомобилей «Ласточка». 4
- •Глава 2. Проектирование базы данных «Прокат автомобилей». 11
- •Глава 3. Программная реализация ис Прокат автомобилей «Ласточка». 29
- •Введение
- •Глава 1. Системный анализ предметной области ис Прокат автомобилей «Ласточка».
- •1.1. Системный анализ предметной области.
- •1.2. Обзор информационных технологий, подходящих для разработки бд.
- •1.3 Обзор продуктов - аналогов.
- •Глава 2. Проектирование базы данных «Прокат автомобилей».
- •2.1. Разработка инфологической модели.
- •2.2. Обоснование выбора модели данных.
- •Сетевая модель.
- •Иерархическая модель.
- •2.3. Логическое проектирование бд.
- •2.4. Нормализация, схема базы данных.
- •Глава 3. Программная реализация ис Прокат автомобилей «Ласточка».
- •3. 1. Анализ и выбор субд.
- •3.2. Физическое проектирование бд.
- •3.3. Реализация триггеров.
- •3.3. Безопасность и контроль.
- •Заключение
- •Список литературы.
- •Приложения.
2.3. Логическое проектирование бд.
Для логического проектирования выбрана реляционная модель данных, т.к. она наиболее полно соответствует требованиям, предъявленным к разрабатываемой информационной системе:
-
отсутствие дублируемой информации;
-
поддержание целостности данных при вставке, удалении или изменении записей;
-
возможность организации всех видов связи между отношениями 1:1, 1:M и M:M.
В реляционной базе данных даталогическое проектирование приводит к разработке корректной схемы базы данных, т.е. такой схемы, в которой отсутствуют нежелательные зависимости между атрибутами. При этом можно использовать процесс проектирования с помощью декомпозиции, т.е. последовательно нормализовывать схему отношений, тем самым накладывая ограничения и избавляясь от нежелательных зависимостей между атрибутами.
В реляционных базах данных (РБД) даталогическое проектирование приводит к разработке схемы БД, т.е. совокупности схем отношений, адекватно моделирующих объекты ПО и семантических связей между ними.
Основой анализа корректности схемы являются функциональные зависимости между атрибутами БД. Некоторые могут быть нежелательными.
В конце этого этапа должно быть получено описание схемы БД в терминах выбранной СУБД. Целью даталогического проектирования является построение корректной схемы БД, ориентированную на реляционную модель. Корректной называется схема БД, в которой отсутствуют нежелательные зависимости между атрибутами отношений.
Процесс разработки корректной схемы РБД и является даталогическим проектированием. Возможны 2-а способа:
-
Декомпозиция (разбиение).
-
Синтез.
Для перехода от инфологической модели к реляционной существует специальный алгоритм:
-
каждой сущности ставится в соответствие отношение;
-
каждому атрибуту сущности ставится в соответствие соответствующий атрибут соответствующего отношения;
-
первичный ключ сущности становится PK соответствующего отношения, при этом атрибуты, входящие в PK, обязательны для заполнения (NOTNULL);
-
в каждое отношение, соответствующее подчинённой сущности, добавляется набор атрибутов основной сущности, являющийся в ней первичным ключом. В отношении, соответствующее подчинённой сущности эти атрибуты становятся FK (внешним ключом);
-
по умолчанию, все атрибуты, не входящие в PK, необязательны;
-
для отражения категоризации сущностей возможны несколько вариантов;
-
все связи М:М должны быть раскрыты;
Воспользуемся данным алгоритмом и опишем каждую сущность инфологической модели:
Таблица 1. Схема отношения Клиенты (Clients)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
Табельный номер |
id |
N(4) |
Первичный ключ |
Фамилия, имя, отчество |
fio |
C(50) |
Обязательное поле |
Стаж вождения |
dyears |
N(2) |
Обязательное поле |
Рейтинг (кол-во заказов) |
rating |
N(4) |
Вычисляемое поле |
№ Паспорта |
passport |
N(12) |
Обязательное уникальное поле |
Кол-во штрафов |
taxes |
N(3) |
Вычисляемое поле |
Номер телефона |
phone |
N(12) |
Обязательное поле |
Таблица 2. Схема отношения Автомобили (Cars)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
Табельный номер |
id |
N(3) |
Первичный ключ |
Год выпуска |
year_of_issue |
N(4) |
Обязательное поле |
Цвет |
color |
N(4) |
Обязательное поле |
Состояние |
quality |
N(3) |
Обязательное поле |
В прокате |
rented |
N(1) |
вычисляемое поле |
ID модели |
modelid |
N(4) |
Обязательное поле (внеш. ключ к models) |
Таблица 3. Схема отношения Контракты (Contracts)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
Табельный номер |
id |
N(4) |
Первичный ключ |
ID Клиента |
clientid |
N(4) |
Обязательное поле (внеш. ключ к clients) |
ID Автомобиля |
carid |
N(3) |
Обязательное поле (внеш. ключ к cars) |
Дата заключения |
date |
D |
Обязательное поле |
Длительность |
days |
N(3) |
Обязательное поле |
Ценность |
value |
N(10) |
Обязательное поле |
ID сотрудника |
Staff_id |
N(4) |
Обязательное поле (внеш. ключ к Staff) |
Таблица 4. Схема отношения Марки (Brands)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID Фирмы |
id |
N(2) |
Первичный ключ |
Название |
brand |
C(25) |
Обязательное поле |
Таблица 5. Схема отношения Штрафы (Taxes)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
Табельный номер |
id |
N(4) |
Первичный ключ |
Дата |
date |
D |
Обязательное поле |
Описание |
descriptoin |
С(50) |
Обязательное поле |
Сумма |
result |
N(5) |
Обязательное поле |
ID Контракта |
id_contract |
N(4) |
Обязательное поле (внеш. ключ к contracts) |
Таблица 6. Схема отношения Модели (Models)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID модели (табельный номер) |
id |
N(6) |
Первичный ключ |
Название модели |
nae |
C(20) |
Обязательное поле |
ID Марки |
brand_id |
N(2) |
Обязательное поле (внеш. ключ к brands) |
Вместимость |
capacity |
N(1) |
Обязательное поле |
Id Тип кузова |
typeid |
N(6) |
Обязательное поле (внеш. ключ к bodytype) |
Id цвета |
colorid |
N(6) |
Обязательное поле (внеш. ключ к Colors) |
Таблица 7. Схема отношения Типы Кузова (Bodytype)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID типа |
id |
N(2) |
Первичный ключ |
Название |
type |
C(25) |
Обязательное поле |
Таблица 8. Схема отношения Цвет (Colors)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID Цвета |
id |
N(2) |
Первичный ключ |
Название |
color |
C(25) |
Обязательное поле |
Таблица 9. Схема отношения Должности (Positions)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID Должности |
id |
N(2) |
Первичный ключ |
Название |
color |
C(25) |
Обязательное поле |
Зарплата |
sallary |
N(10) |
Обязательное поле |
Таблица 10. Схема отношения Сотрудники (Staff)
Содержание поля |
Имя поля |
Тип, длина |
Примечания |
ID cотрудника |
id |
N(2) |
Первичный ключ |
ФИО |
Full_name |
C(25) |
Обязательное поле |
ID должности |
Position_id |
N(2) |
Обязательное поле |
№ Паспорта |
passport |
N(12) |
Обязательное уникальное поле |
Номер телефона |
phone |
N(12) |
Обязательное поле |