По этой бд сделай всё что укажу ниже. Также пропиши в конце вывод процедур и функций: -- 1. Создание таблиц
CREATE TABLE RoleT (
    RoleIdentifier NUMBER PRIMARY KEY,
    RoleName NVARCHAR2(50) NOT NULL
);

CREATE TABLE UsersT (
    UserID NUMBER PRIMARY KEY,
    RoleIdentifier NUMBER,
    UserName NVARCHAR2(50) NOT NULL,
    Password NVARCHAR2(255) NOT NULL,
    CONSTRAINT fk_role FOREIGN KEY (RoleIdentifier) REFERENCES RoleT(RoleIdentifier)
);

CREATE TABLE PrivilegesT (
    PrivilegesID NUMBER PRIMARY KEY,
    RoleIdentifier NUMBER,
    PrivilegeName NVARCHAR2(200) NOT NULL,
    CONSTRAINT fk_privilege_role FOREIGN KEY (RoleIdentifier) REFERENCES RoleT(RoleIdentifier)
);

CREATE TABLE Products (
    ProductID NUMBER PRIMARY KEY,
    ProductName NVARCHAR2(50) NOT NULL,
    Quantity NUMBER NOT NULL,
    Location NVARCHAR2(50) NOT NULL
);

CREATE TABLE Orders (
    OrderID NUMBER PRIMARY KEY,
    UserID NUMBER,
    OrderDate DATE NOT NULL,
    Status NVARCHAR2(20) NOT NULL,
    CONSTRAINT fk_order_user FOREIGN KEY (UserID) REFERENCES UsersT(UserID)
);

CREATE TABLE OrderItems (
    OrderItemsID NUMBER PRIMARY KEY,
    OrderID NUMBER,
    ProductID NUMBER,
    Quantity NUMBER NOT NULL,
    CONSTRAINT fk_order_item_order FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
    CONSTRAINT fk_order_item_product FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);

-- 2. Вставка данных
INSERT INTO RoleT (RoleIdentifier, RoleName) VALUES (1, 'Admin');
INSERT INTO RoleT (RoleIdentifier, RoleName) VALUES (2, 'User');
INSERT INTO RoleT (RoleIdentifier, RoleName) VALUES (3, 'Manager');
INSERT INTO RoleT (RoleIdentifier, RoleName) VALUES (4, 'Guest');
INSERT INTO RoleT (RoleIdentifier, RoleName) VALUES (5, 'Support');

INSERT INTO UsersT (UserID, RoleIdentifier, UserName, Password) VALUES (1, 1, 'admin', 'adminpass');
INSERT INTO UsersT (UserID, RoleIdentifier, UserName, Password) VALUES (2, 2, 'john_doe', 'password123');
INSERT INTO UsersT (UserID, RoleIdentifier, UserName, Password) VALUES (3, 3, 'alice', 'alicepass');
INSERT INTO UsersT (UserID, RoleIdentifier, UserName, Password) VALUES (4, 4, 'guest_user', 'guestpass');
INSERT INTO UsersT (UserID, RoleIdentifier, UserName, Password) VALUES (5, 5, 'support_guy', 'supportpass');

INSERT INTO PrivilegesT (PrivilegesID, RoleIdentifier, PrivilegeName) VALUES (1, 1, 'Full Control');
INSERT INTO PrivilegesT (PrivilegesID, RoleIdentifier, PrivilegeName) VALUES (2, 2, 'Read Only');
INSERT INTO PrivilegesT (PrivilegesID, RoleIdentifier, PrivilegeName) VALUES (3, 3, 'Edit Content');
INSERT INTO PrivilegesT (PrivilegesID, RoleIdentifier, PrivilegeName) VALUES (4, 4, 'View Content');
INSERT INTO PrivilegesT (PrivilegesID, RoleIdentifier, PrivilegeName) VALUES (5, 5, 'Technical Support');

INSERT INTO Products (ProductID, ProductName, Quantity, Location) VALUES (1, 'Laptop', 50, 'Warehouse A');
INSERT INTO Products (ProductID, ProductName, Quantity, Location) VALUES (2, 'Mouse', 150, 'Warehouse B');
INSERT INTO Products (ProductID, ProductName, Quantity, Location) VALUES (3, 'Keyboard', 100, 'Warehouse A');
INSERT INTO Products (ProductID, ProductName, Quantity, Location) VALUES (4, 'Monitor', 75, 'Warehouse C');
INSERT INTO Products (ProductID, ProductName, Quantity, Location) VALUES (5, 'Printer', 60, 'Warehouse B');

INSERT INTO Orders (OrderID, UserID, OrderDate, Status) VALUES (1, 1, TO_DATE('2023-01-10', 'YYYY-MM-DD'), 'Completed');
INSERT INTO Orders (OrderID, UserID, OrderDate, Status) VALUES (2, 2, TO_DATE('2023-02-15', 'YYYY-MM-DD'), 'Pending');
INSERT INTO Orders (OrderID, UserID, OrderDate, Status) VALUES (3, 3, TO_DATE('2023-03-20', 'YYYY-MM-DD'), 'Shipped');
INSERT INTO Orders (OrderID, UserID, OrderDate, Status) VALUES (4, 4, TO_DATE('2023-04-25', 'YYYY-MM-DD'), 'Delivered');
INSERT INTO Orders (OrderID, UserID, OrderDate, Status) VALUES (5, 5, TO_DATE('2023-05-30', 'YYYY-MM-DD'), 'Canceled');

INSERT INTO OrderItems (OrderItemsID, OrderID, ProductID, Quantity) VALUES (1, 1, 1, 2);
INSERT INTO OrderItems (OrderItemsID, OrderID, ProductID, Quantity) VALUES (2, 2, 2, 5);
INSERT INTO OrderItems (OrderItemsID, OrderID, ProductID, Quantity) VALUES (3, 3, 3, 1);
INSERT INTO OrderItems (OrderItemsID, OrderID, ProductID, Quantity) VALUES (4, 4, 4, 3);
INSERT INTO OrderItems (OrderItemsID, OrderID, ProductID, Quantity) VALUES (5, 5, 5, 4);


-- Вывод всех объектов
SELECT * FROM RoleT;
SELECT * FROM UsersT;
SELECT * FROM PrivilegesT;
SELECT * FROM Products;
SELECT * FROM Orders;
SELECT * FROM OrderItems; Нужно сделать:  2.1 Представления
- V_OrdersWithProductDetails: Представление для отображения заказов с деталями продуктов, включая имя пользователя, дату заказа и статус.
  
- V_UserRolesPrivileges: Представление для отображения пользователей с их ролями и привилегиями.

- V_ProductInventoryStatus: Представление для отображения статуса инвентаря продуктов, основанного на количестве.

 2.2 Индексы
- IX_Orders_UserID: Индекс на поле UserID в таблице Orders, чтобы ускорить поиск заказов по пользователю.

 2.3 Последовательности
- seq_OrderID: Последовательность для автоматического инкремента идентификаторов заказов, начиная с 6(Для учитывая предзаписанных данных).

 2.4 Функции
- fn_TotalQuantityOrderedByUser: Возвращает общее количество товаров, заказанных пользователем по его идентификатору.
  
- fn_OrderCountByUser: Возвращает количество заказов, сделанных пользователем.

- fn_GetOrderStatus: Возвращает статус заказа по его идентификатору.

 2.5 Хранимые процедуры
- sp_InsertNewUser: Процедура для добавления нового пользователя с заданным именем, паролем и ролью.
  
- sp_UpdateOrderStatus: Процедура для обновления статуса заказа по его идентификатору.

- sp_AddNewProduct: Процедура для добавления нового продукта с заданным именем, количеством и местоположением.

 2.6 Триггеры
- trg_UpdateOrderStatusOnDelivery: Триггер, который обновляет статус заказа на "Завершен", если все товары в заказе были доставлены.

- trg_LogNewUser: Триггер для записи информации о новом пользователе в таблицу логов после его добавления.