
- •Введение
- •1. Теоретическая часть
- •Анализ предметной области аис «Автосалон»
- •Разбиение предметной области на сущности и атрибуты
- •Сведение сущностей и атрибутов в таблицу предметной области
- •1.4 Нормализацию таблицы до 3нф
- •1 Таблица: Сотрудники
- •2 Таблица: Заработная плата
- •3 Таблица: Клиентская база
- •4 Таблица: Характеристики авто
- •5 Таблица: Сделки
- •6 Таблица: Машины сданные по страховке
- •7 Таблица: Штат автомехаников
- •8 Таблица: Машины в наличии
- •9 Таблица: Дополнительные услуги
- •2. Практическая часть
- •Процесс инсталляции PostgreSql
- •Реализация структуры бд в pg
- •Заполнение бд
- •Описание запросов к бд
- •Реализация запросов
- •Заключение
- •Список литературы
Реализация структуры бд в pg
После установки программы, нужно в нее зайти с ранее выбранным паролем и начать создавать сущности
Рис.10. Начальный экран
Рис.11. Ввод установленного пароля
Рис.12. Главный экран
Для создания таблиц, нужно раскрыть ветку базы данных и правой кнопкой мыши нажать на «Tables» и выбрать «Create > Table» (Рис.13).
Рис.13. Создание таблицы «Additions»
После создания таблиц, необходимо их заполнить основной информацией (указать имя столбца, тип данных, длину (вариативно), будет ли строка пустая и обязательно выбрать первичный ключ у ключевого столбца). (Рис. 14).
Рис.14. Создание и настройка сущностей
Также у ключевых столбцов с идентификаторами можно выбрать пункт Constraints, тип IDENTITY, и режим BY DEFAULT, чтобы идентификаторы сами прописывались и их можно было изменять (Рис. 15).
Рис. 15. Авто идентификаторы
Еще одна важная настройка – это Foreign Key (внешний ключ), нужен чтобы установить связь между подчиняемыми и основными таблицами, чтобы подчиняемые могли брать данные, только из основных заполненных таблиц (Рис. 16).
Рис. 16. Настройка внешних ключей
Заполнение бд
Используя схему БД 3НФ (Рис.2.), нужно все сущности и атрибуты перевести с русского языка на английский для удобства написания запросов, а затем создать следующие таблицы в pgAdmin 4 v5:
Additions (Дополнения)
CarSpecif (Характеристики авто)
Cars (Машины в наличии)
Clients (Клиентская база)
Deal (Сделки)
Managers (Менеджеры)
SalManagers (Заработная плата)
Insuranse (Страховка)
InsurRepl (СтраховкаАвтомеханик)
Repairer (Автомеханики)
Далее нужно описать структуру каждой сущности и параметры атрибутов.
Сделки:
DealID (ID сделки) - bigint NOT NULL PK
ClientID (ID клиента) - integer NOT NULL FK
MgrID (ID менеджера) - integer NOT NULL FK
ModelID (ID Модели) – integer NOT NULL FK
Date (Дата) - date NOT NULL
Insur (Cтрахование) - boolean NOT NULL
Equip (Комплектация) – charvar (20) NOT NULL
TransAmount (Сумма сделки) - numeric (10) NOT NULL
Менеджеры:
MgrID (ID менеджера) - bigint NOT NULL PK
MgrFIO (ФИО менеджера) - charvar (20) NOT NULL
Qual (Кол-во заключенных сделок) - charvar (20) NOT NULL
InclDealsNum (Квалификация) - integer NOT NULL
ЗП:
MgrID (ID менеджера) - bigint NOT NULL FK
Sal (ЗП) – numeric (10) NOT NULL
SalPerc (Процент c продаж) - numeric (10) NOT NULL
Страховка:
InsID (ID страховки) - bigint NOT NULL PK
DealID (ID сделки) - integer NOT NULL FK
СтраховкаАвтомеханик:
InsID (ID страховки) - integer NOT NULL FK
RepID (ID автомеханика) - integer NOT NULL FK
Автомеханики:
RepID (ID автомеханика) - bigint NOT NULL PK
RepFIO (ФИО) – charvar (20) NOT NULL
ShiftSal (ЗП за смену) - numeric (10) NOT NULL
Клиенты:
ClientID (ID клиента) - bigint NOT NULL PK
FIO (ФИО) - charvar (20) NOT NULL
Tel (Телефон) - charvar (20) NOT NULL
Pass (Паспорт) - charvar (20) NOT NULL
Машины в наличии:
ModelID (ID модели) - bigint NOT NULL PK
PriseMax (Цена макс) – numeric (10) NOT NULL
PriceMin (Цена база) - numeric (10) NOT NULL
Хор-ки авто:
ModelID (ID модели) - bigint NOT NULL FK
PlaseNum (Кол-во мест) - numeric (10) NOT NULL
TrunkVol (Обьем багажника) – numeric (10) NOT NULL
HPNum (Кол-во ЛС) – numeric (10) NOT NULL
EngineVol (Объем двигателя) – numeric (10) NOT NULL
CarType (Тип авто) – charvar (20) NOT NULL
Дополнения:
ModelID (ID модели) - bigint NOT NULL FK
Rugs (Коврики) - numeric (10) NOT NULL
Luke (Люк) - numeric (10) NOT NULL
WirelChat (Беспроводная зарядка) – numeric (10) NOT NULL
Multim (Мультимедиа) – numeric (10) NOT NULL
Cruise (Круиз) – numeric (10) NOT NULL
Disks (Диски) – numeric (10) NOT NULL
Ниже указаны итоговые таблицы (Таблицы 3 - 12)
Таблица 3. Additions
Таблица 4. CarSpecif
Таблица 5. Cars
Таблица 6. Clients
Таблица 7. Deal
Таблица 8. InsurRepl
Таблица 9. Insurance
Таблица 10. Managers
Таблица 11. Repairer
Таблица 12. SalManagers