Рис. 2.5. Таблица «Заказы».
Таблица «Заказы» определяет заказ клиента на конкретный автомобиль. В таблице отображаются данные о номере заказа, модели выбранного автомобиля, дате сборки , дате оформления договора с клиентом, ФИО менеджера составившего договор, данные об оставленной клиентом предоплате. Отдельное внимание стоит уделить графе «автомобиль в зачет». Если клиент сдает свой старый автомобиль по программе утилизации, то в графе ставится значение «Да», и клиенту предоставляется скидка в 50 000 рублей, в противном случае ставится значение «Нет» и скидка не предоставляется.
Рис.2.6. Таблица «Утилизация».
В этой таблице содержатся данные об утилизируемых автомобилях, такие как марка автомобиля, год выпуска (под программу утилизации попадают все автомобили произведенные до 2000 года), VIN –номер, а так же данные о владельце данного автомобиля.
Рис. 2.7. Таблица «Пользователи».
Таблица «пользователи» содержит сведения о пользователях создаваемой автоматизированной системы с указанием уровня доступа каждого.
Рис. 2.8. Таблица «Дополнительное оборудование».
Данная таблица описывает возможное оборудование, которое устанавливается дополнительно на автомобиль, и отображает данные о наименовании опции, а так же ее цене.
Рис. 2.9. Таблица «Диски».
Содержит информацию о радиусе и фирме-производителе оригинальных дисков.
Рис. 2.10. Таблица «Мультимедиа»
Данная таблица отображает сведения о фирме мультимедийной системы, сведения о ее размерах (1-2 din), а так же информацию о ее основных функциях.
Для создания физической модели базы данных, из меню на пакете Моя модель выполняем команду ÞDataModeler/TransformtoDataModel.
В открывшемся окне в списке TargetDatabase указать DB_0 и закрыть окно кнопкой ОК. В результате в логическом представлении в пакете Schemas появится пакет «Schema» S_0, в которую войдут все таблицы имеющие стереотип Сущность (entity). После чего из меню на пакете «Schema» S_0 выполняем команду ÞDataModeler/New/DataModelDiagram. В пакете «Schema» S_0 появится новая диаграмма NewDiagram (диаграмма «сущность – связь»). Затем открываем эту диаграмму и наносим на нее все классы – таблицы, находящиеся в пакете «Schema» S_0.
В результате получаем диаграмму физической модели данных, изображенную на следующем рисунке:
После того, как мы создали физическую модель базы данных, приступим к генерации описания базы данных на SQL. Для этого из меню на пакете «Schema» S_0 выполняем команду ÞDataModeler/ForwardEngineer. Произойдет запуск генератора описания БД на SQL, после чего нажимаем клавишу Next. На следующем шаге мастера устанавливаем все флажки генерации и опять жмем Next. В следующем меню в графе «FileName» указываем имя и расположение текстового файла с результатами генерации. После чего доводим до конца работу с мастером.
После завершения генерации получаем следующий файл с описанием структуры БД на SQL:
CREATE TABLE DO (
name_option VARCHAR ( 255 ) NOT NULL,
cena INT NOT NULL,
DO_ID INT IDENTITY NOT NULL,
CONSTRAINT PK_DO13 PRIMARY KEY NONCLUSTERED (DO_ID)
)
GO
CREATE TABLE Diski (
id_Disk INT NOT NULL,
radius INT NOT NULL,
firma VARCHAR ( 255 ) NOT NULL,
Diski_ID INT IDENTITY NOT NULL,
DO_ID INT NOT NULL,
CONSTRAINT PK_Diski12 PRIMARY KEY NONCLUSTERED (Diski_ID)
)
GO
CREATE TABLE Multimedia_system (
id_system INT NOT NULL,
firma VARCHAR ( 255 ) NOT NULL,
din BIT NOT NULL,
function VARCHAR ( 255 ) NOT NULL,
Multimedia_system_ID INT IDENTITY NOT NULL,
DO_ID INT NOT NULL,
CONSTRAINT PK_Multimedia_system14 PRIMARY KEY NONCLUSTERED (Multimedia_system_ID)
)
GO
CREATE TABLE Users (
id_users BIGINT NOT NULL,
FIO VARCHAR ( 255 ) NOT NULL,
Dostup INT NOT NULL,
Users_ID INT IDENTITY NOT NULL,
CONSTRAINT PK_Users15 PRIMARY KEY NONCLUSTERED (Users_ID)
)
GO
CREATE TABLE Т_3 (
Zakazi_ID INT NOT NULL,
Clients_ID INT NOT NULL,
CONSTRAINT PK_220 PRIMARY KEY NONCLUSTERED (Zakazi_ID, Clients_ID)
)
GO
CREATE TABLE Т_2 (
Zakazi_ID INT NOT NULL,
DO_ID INT NOT NULL,
CONSTRAINT PK_119 PRIMARY KEY NONCLUSTERED (Zakazi_ID, DO_ID)
)
GO
CREATE TABLE Т_1 (
CTO_ID INT NOT NULL,
Clients_ID INT NOT NULL,
CONSTRAINT PK_018 PRIMARY KEY NONCLUSTERED (CTO_ID, Clients_ID)
)
GO
CREATE TABLE Zakazi (
id_zakaz INT NOT NULL,
number INT NOT NULL,
model_avto VARCHAR ( 255 ) NOT NULL,
data_sborki DATETIME NOT NULL,
data_oforml_zakaz DATETIME NOT NULL,
FIO_manager VARCHAR ( 255 ) NOT NULL,
predoplata INT NOT NULL,
auto_v_zachet BIT NOT NULL,
Zakazi_ID INT IDENTITY NOT NULL,
New_auto_ID INT NOT NULL,
Users_ID INT NOT NULL,
CONSTRAINT TC_Zakazi4 UNIQUE NONCLUSTERED (New_auto_ID),
CONSTRAINT PK_Zakazi17 PRIMARY KEY NONCLUSTERED (Zakazi_ID)
)
GO
CREATE TABLE Utilization (
Id_Utiliz BIGINT NOT NULL,
Marka VARCHAR ( 255 ) NOT NULL,
God_v INT NOT NULL,
VIN INT NOT NULL,
Vladelec VARCHAR ( 255 ) NOT NULL,
Utilization_ID INT IDENTITY NOT NULL,
Zakazi_ID INT NOT NULL,
CONSTRAINT PK_Utilization16 PRIMARY KEY NONCLUSTERED (Utilization_ID)
)
GO
CREATE TABLE Clients (
id_client BIGINT NOT NULL,
FIO VARCHAR ( 255 ) NOT NULL,
Tel VARCHAR ( 255 ) NOT NULL,
Adr VARCHAR ( 255 ) NOT NULL,
N_pasport VARCHAR ( 255 ) NOT NULL,
N_VU VARCHAR ( 255 ) NOT NULL,
Clients_ID INT IDENTITY NOT NULL,
CONSTRAINT PK_Clients11 PRIMARY KEY NONCLUSTERED (Clients_ID)
)
GO
CREATE TABLE CTO (
id_CTO INT NOT NULL,
nuber_zakaz-naryada SMALLINT NOT NULL,
zayavlennie_neispravnosti VARCHAR ( 255 ) NOT NULL,
data_nachala_remonta DATETIME NOT NULL,
viyavlennie_neispravnosti VARCHAR ( 255 ) NOT NULL,
gotovnost DATETIME NOT NULL,
cena INT NOT NULL,
CTO_ID INT IDENTITY NOT NULL,
CONSTRAINT PK_CTO9 PRIMARY KEY NONCLUSTERED (CTO_ID)
)
GO
CREATE TABLE New_auto (
id_New_auto INT NOT NULL,
Model VARCHAR ( 255 ) NOT NULL,
Color INT NOT NULL,
VIN INT NOT NULL,
Complectation VARCHAR ( 255 ) NOT NULL,
status VARCHAR ( 255 ) NOT NULL,
New_auto_ID INT IDENTITY NOT NULL,
CONSTRAINT PK_New_auto10 PRIMARY KEY NONCLUSTERED (New_auto_ID)
)
GO
CREATE INDEX TC_Diski6 ON Diski (DO_ID)
GO
CREATE INDEX TC_Multimedia_system8 ON Multimedia_system (DO_ID)
GO
CREATE INDEX TC_215 ON Т_3 (Zakazi_ID)
GO
CREATE INDEX TC_216 ON Т_3 (Clients_ID)
GO
CREATE INDEX TC_111 ON Т_2 (Zakazi_ID)
GO
CREATE INDEX TC_112 ON Т_2 (DO_ID)
GO
CREATE INDEX TC_00 ON Т_1 (CTO_ID)
GO
CREATE INDEX TC_01 ON Т_1 (Clients_ID)
GO
CREATE INDEX TC_Zakazi3 ON Zakazi (New_auto_ID)
GO
CREATE INDEX TC_Zakazi10 ON Zakazi (Users_ID)
GO
CREATE INDEX TC_Utilization14 ON Utilization (Zakazi_ID)
GO
ALTER TABLE Diski ADD CONSTRAINT FK_Diski3 FOREIGN KEY (DO_ID) REFERENCES DO (DO_ID)
GO
ALTER TABLE Multimedia_system ADD CONSTRAINT FK_Multimedia_system4 FOREIGN KEY (DO_ID) REFERENCES DO (DO_ID)
GO
ALTER TABLE Т_3 ADD CONSTRAINT FK_29 FOREIGN KEY (Zakazi_ID) REFERENCES Zakazi (Zakazi_ID)
GO
ALTER TABLE Т_3 ADD CONSTRAINT FK_210 FOREIGN KEY (Clients_ID) REFERENCES Clients (Clients_ID)
GO
ALTER TABLE Т_2 ADD CONSTRAINT FK_16 FOREIGN KEY (Zakazi_ID) REFERENCES Zakazi (Zakazi_ID)
GO
ALTER TABLE Т_2 ADD CONSTRAINT FK_17 FOREIGN KEY (DO_ID) REFERENCES DO (DO_ID)
GO
ALTER TABLE Т_1 ADD CONSTRAINT FK_00 FOREIGN KEY (CTO_ID) REFERENCES CTO (CTO_ID)
GO
ALTER TABLE Т_1 ADD CONSTRAINT FK_01 FOREIGN KEY (Clients_ID) REFERENCES Clients (Clients_ID)
GO
ALTER TABLE Zakazi ADD CONSTRAINT FK_Zakazi2 FOREIGN KEY (New_auto_ID) REFERENCES New_auto (New_auto_ID)
GO
ALTER TABLE Zakazi ADD CONSTRAINT FK_Zakazi5 FOREIGN KEY (Users_ID) REFERENCES Users (Users_ID)
GO
ALTER TABLE Utilization ADD CONSTRAINT FK_Utilization8 FOREIGN KEY (Zakazi_ID) REFERENCES Zakazi (Zakazi_ID)
GO
2.4 Средства, используемые для построения системы учета
В настоящее время существует огромное количество программных приложений, облегчающих труд разработчиков по созданию баз данных и всевозможных манипуляций с ними. Из этой обширной группы стоит особым образом выделить те программные пакеты и среды, которые имеют удобный «дружественный» интерфейс, т.е. интерфейс, который приятен визуально и удобен на интуитивном уровне, а так же понятный и удобный пользователю. Обычно работа с таким интерфейсом происходит в диалоговом режиме, простые и богатые по своим функциональным возможностям непроцедурные языки запросов, а также мощные средства автоматизации программирования (генераторы отчетов, экранных форм, меню, прикладных программ), позволяют неквалифицированным пользователям создавать простые приложения без программирования, а квалифицированным пользователям значительно ускорять процесс создания сложных приложений.
В данном дипломном проекте для работы с базой данных «Автосалон» используется архитектура клиент-сервер. Каждая из составляющих эту архитектуру элементов играет свою роль: сервер владеет и распоряжается информационными ресурсами системы, клиент имеет возможность воспользоваться ими.
автосалон база учет моделирование
Рис. 2.13. Структура Клиент-сервер
Сервер базы данных представляет собой мультипользовательскую версию СУБД, параллельно обрабатывающую запросы, поступившие со всех рабочих станций. В его задачу входит реализация логики обработки транзакций с применением необходимой техники синхронизации - поддержки протоколов блокирования ресурсов, обеспечение, предотвращение и/или устранения тупиковых ситуаций.
В ответ на пользовательский запрос рабочая станция получит не «сырье» для последующей обработки, а готовые результаты. Программное обеспечение рабочей станции при такой архитектуре играет роль только внешнего интерфейса централизованной системы управления данными. Это позволяет существенно уменьшить сетевой трафик, сократить время на ожидание блокированных ресурсов данных в мультипользовательском режиме, разгрузить рабочие станции и при достаточно мощной центральной машине использовать для них более дешевое оборудование.
Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют собой некие средние значения, в конкретных случаях они могут отклоняться как в ту, так и в другую сторону. Что наиболее существенно, эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры. Системы же на основе серверов баз данных могут поддерживать тысячи пользователей и сотни ГБ информации - дайте им только соответствующую аппаратную платформу.