Разработать базу данных с нуля. СУБД: MySQL. Разработка базы данных для предметной области «Учет командировок сотрудников предириятия» с использованием СУБД. Задание. Разработать базу данных, позволяющую собирать и накапливать сведения о сотрудниках предприятия и их командировках. База данных должна быть реализована с помощью MS SQL, PostgreSQL. Минимальное количество таблиц в базе данных 8. База данных должна быть приведена к 3 нормальной форме. Все запросы должны быть сохранены в базе данных, как и представления. • Выполнить следующие Запросы 1) Вывести список самых экономных сотрудников (тех кто тратит на командировки меньше всего) 2) Найти сотрудников, которые ни разу не были в командировке в Ижевске. • Написать функции о По заданному городу вывести СпиСок отелей, в которых могут останавливаться сотрудники. Работу нужно выполнить в PgAdmin. База данных “Учет командировок сотрудников предприятия“ состоит из следующих таблиц: 1. Таблица “Сотрудники“ (Employees) - ID сотрудника (EmployeeID) - первичный ключ - Фамилия (LastName) - Имя (FirstName) - Отчество (MiddleName) - Дата рождения (BirthDate) - Должность (Position) - Отдел (Department) 2. Таблица “Командировки“ (BusinessTrips) - ID командировки (BusinessTripID) - первичный ключ - ID сотрудника (EmployeeID) - внешний ключ к таблице “Сотрудники“ - Дата начала командировки (StartDate) - Дата окончания командировки (EndDate) - Город назначения (DestinationCity) - Стоимость командировки (Cost) 3. Таблица “Отели“ (Hotels) - ID отеля (HotelID) - первичный ключ - Название отеля (HotelName) - Адрес отеля (Address) - Город, в котором находится отель (City) 4. Таблица “Командировочные расходы“ (BusinessTripExpenses) - ID расхода (ExpenseID) - первичный ключ - ID командировки (BusinessTripID) - внешний ключ к таблице “Командировки“ - ID отеля (HotelID) - внешний ключ к таблице “Отели“ - Стоимость проживания в отеле (AccommodationCost) - Стоимость питания (FoodCost) - Стоимость транспорта (TransportCost) 5. Таблица “Города“ (Cities) - ID города (CityID) - первичный ключ - Название города (CityName) 6. Таблица “Страны“ (Countries) - ID страны (CountryID) - первичный ключ - Название страны (CountryName) 7. Таблица “Регионы“ (Regions) - ID региона (RegionID) - первичный ключ - Название региона (RegionName) 8. Таблица “Отделы“ (Departments) - ID отдела (DepartmentID) - первичный ключ - Название отдела (DepartmentName) Запросы: 1) Вывести список самых экономных сотрудников (тех кто тратит на командировки меньше всего) SELECT e.LastName, e.FirstName, SUM(bt.Cost) AS TotalCost FROM Employees e JOIN BusinessTrips bt ON e.EmployeeID = bt.EmployeeID GROUP BY e.LastName, e.FirstName ORDER BY TotalCost ASC 2) Найти сотрудников, которые ни разу не были в командировке в Ижевске. SELECT e.LastName, e.FirstName FROM Employees e LEFT JOIN BusinessTrips bt ON e.EmployeeID = bt.EmployeeID AND bt.DestinationCity = 'Ижевск' WHERE bt.BusinessTripID IS NULL Функция: CREATE FUNCTION GetHotelsInCity(cityName VARCHAR(50)) RETURNS TABLE (HotelName VARCHAR(100), Address VARCHAR(200)) AS $$ BEGIN RETURN QUERY SELECT h.HotelName, h.Address FROM Hotels h JOIN Cities c ON h.City = c.CityID WHERE c.CityName = cityName; END; $$ LANGUAGE plpgsql;.