logo
Разработка информационной системы автосервиса

2.2 Проектирование базы данных

Целью базы данных, разрабатываемой для пользователей, является учет клиентов, сотрудников, поставщиков, работ, выполненных сотрудниками, а также суммы их вознаграждения. Пользователями базы данных «автосервис» являются работники автосервиса.

Реляционная БД - основной тип современных баз данных. Состоит из таблиц, между которыми могут существовать связи по ключевым значениям.

Таблица базы данных (table) - регулярная структура, которая состоит из однотипных строк (записей, records), разбитых на столбцы (поля, fields).

В теории реляционных баз данных синоним таблицы - отношение (relation), в котором строка называется кортежем, а столбец называется атрибутом.

В концептуальной модели реляционной БД аналогом таблицы является сущность (entity), с определенным набором свойств - атрибутов, способных принимать определенные значения (набор допустимых значений - домен).

Ключевой элемент таблицы (ключ, regular key) - такое ее поле (простой ключ) или строковое выражение, образованное из значений нескольких полей (составной ключ), по которому можно определить значения других полей для одной или нескольких записей таблицы. На практике для использования ключей создаются индексы - служебная информация, содержащая упорядоченные сведения о ключевых значениях. В реляционной теории и концептуальной модели понятие "ключ" применяется для атрибутов отношения или сущности.

Первичный ключ (primary key) - главный ключевой элемент, однозначно идентифицирующий строку в таблице. Могут также существовать альтернативный (candidate key) и уникальный (unique key) ключи, служащие также для идентификации строк в таблице.

В реляционной теории первичный ключ - минимальный набор атрибутов, однозначно идентифицирующий кортеж в отношении.

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

Связь (relation) - функциональная зависимость между объектами. В реляционных базах данных между таблицами устанавливаются связи по ключам, один из которых в главной (parent, родительской) таблице - первичный, второй - внешний ключ - во внешней (child, дочерней) таблице, как правило, первичным не является и образует связь "один ко многим" (1:N). В случае первичного внешнего ключа связь между таблицами имеет тип "один к одному" (1:1). Информация о связях сохраняется в базе данных.

Внешний ключ (foreign key) - такое подмножество атрибутов дочернего отношения, что для любого его непустого значения обязательно найдется равное значение первичного ключа главного отношения.

Реляционная модель

Клиент (код клиента, наименование, контакты)

Автомобиль (код авто, марка, модель, регистрационный номер)

Исполнитель заказа (код заказа, код сотрудника, процент участия)

Внешние ключи: код сотрудника, ссылается на таблицу «сотрудник».

Сотрудник (код сотрудника, ФИО, код должности, контакты)

Внешние ключи: код должности, ссылается на таблицу «должность».

Работа (код работы, наименование, код единицы измерения, контакты)

Внешние ключи: код единицы измерения, ссылается на таблицу «единицы измерения».

Заказ (код заказа, дата, код клиента, код авто, причина, состояние)

Внешние ключи: код клиента, код авто, ссылаются на таблицы «клиент», «автомобиль».

Должность (код должности, наименование, оклад)

Полномочия (код должности, объект доступа, чтение, изменение, удаление)

Единицы измерения (код единицы измерения, наименование)

Запасы (код запасов, номер по каталогу, наименование, производитель, код единицы измерения, цена отпускная)

Внешние ключи: код единицы измерения, ссылается на таблицу «единицы измерения»

Поставщики (код поставщика, наименование, реквизиты, контакты)

Место хранения (код места, наименование)

Модель данных, сделанная в MS SQL Server, представлена на рисунке 2.1.

Рисунок 2.1 - Модель данных

Рисунок 2.2 - Концептуальная модель БД

На рисунке 2.2 представлена концептуальная модель БД, на которой изображены все таблицы из реляционной модели и связи между ними. Например: Таблицы КЛИЕНТ и СОТРУДНИК имеют связь многие ко многим. Таблицы КЛИЕНТ и АВТОМОБИЛЬ имеют связь один ко многим, так как один клиент может иметь несколько автомобилей.

На основе концептуальной и реляционной моделей были спроектированны таблицы БД в MS SQL.

На рисунке 2.3 показана таблица с данными о клиентах. Для того, чтобы оформить заказ, администратору для начала необходимо будет занести контактные данные клиента в этот справочник, а уже в форме заказа выбрать из списка клиента. Такой способ позволит избежать потери контактных данных клиентов и ошибок при вводе фамилии, имени и отчества.

Рисунок 2.3 - Таблица «клиенты»

На рисунке 2.4 представлена таблица с данными о сотрудниках, здесь хранятся логины и пароли для входа в информационную систему, пароли хранятся в зашифрованном виде, алгоритм хэширования MD5.

Рисунок 2.4 - Таблица «сотрудники»

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

На рисунке 2.6 показана таблица должностей в автосервисе, а так же оклад для каждой должности.

Рисунок 2.5 - Таблица «автомобили»

Рисунок 2.6 - Таблица «должности»

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

Рисунок 2.7 - Таблица «работы»

На рисунке 2.8 показана таблица полномочий, в ней показаны полномочия для каждой должности, эти полномочия определяют доступ к информационной системе.

На рисунке 2.9 представлена таблица запасов, в ней перечислены все запчасти, которые используются в работах. Данный перечень будет использоваться при оформлении заказа на поставку запчастей мастером-приемщиком.

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

Рисунок 2.8 - Таблица «полномочия»

Рисунок 2.9 - Таблица «запасы»

Рисунок 2.10 - Таблица «места хранения»

На рисунке 2.11 показана таблица единиц измерения.

На рисунке 2.12 представлена таблица поставщиков, в ней хранятся данные о поставщиках. Данные этой таблицы нужны для оформления поставки мастером-приемщиком.

Рисунок 2.11 - Таблица «единицы измерения»

Рисунок 2.12 - Таблица «Поставщики»

Во время проектирования базы данных так же нужно подумать о целостности данных. Правильная структура таблиц позволяет защитить данные от нарушения связей и внесения неверных значений. Необходимо определить наилучший путь обеспечения целостности данных. Целостность данных основывается на стойкости и точности данных, которые хранит база данных.

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

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

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