- •«Московский технический университет связи и информатики»
- •«Принципы построения систем управления базами данных и знаний»
- •Этап 1. Анализ предметной области
- •Этап 2. Определение бизнес-функции, выделение сущностей и их атрибутов.
- •Этап 3. Определить связи сущностей, составить инфологическую модель данных.
- •Этап 4. Определить поля бд, определить ключевые поля, определить типы данных полей. Нормальные формы. Составить даталогическую модель.
- •1 Таблица: Products
- •2 Таблица: Customers
- •3 Таблица: Suppliers
- •4 Таблица: Orders
- •Даталогическая модель.
- •Этап 4. Выбор субд
- •Этап 5. Создание физической модели в PostgreSql.
- •Этап 6. Запросы к бд
Этап 5. Создание физической модели в PostgreSql.
Физическая модель данных — модель, которая определяет каким образом представляются данные и содержит в себе все, что нужно для построения базы данных.
Таблица 1. Products
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля |
1 |
ProductID |
Идентификатор продукта |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
Name |
Название продукта
|
VARCHAR(255)
|
255 |
- |
- |
3 |
Brand |
Бренд продукта |
VARCHAR(100) |
100 |
- |
- |
4 |
Type |
Тип продукта
|
VARCHAR(50)
|
50 |
- |
- |
5 |
Price |
Цена продукта
|
DECIMAL(10, 2) |
- |
2 |
- |
6 |
Description |
Описание продукта |
TEXT |
- |
- |
- |
7 |
Ingredients |
Ингредиенты продукта |
TEXT |
- |
- |
- |
8 |
Characteristics |
Характеристики продукта |
TEXT |
- |
- |
- |
Таблица 2. Customers
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
CustomerID |
Идентификатор клиента |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
Name |
Имя клиента |
VARCHAR(255)
|
255 |
- |
- |
3 |
ContactInfo |
Контактная информация клиента |
TEXT |
- |
- |
- |
4 |
Address |
Адрес клиента |
TEXT |
- |
- |
- |
Таблица 3. ProductDetails
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
ProductID |
Идентификатор продукта |
INT PRIMARY KEY REFERENCES Products(ProductID) |
- |
- |
Да (Primary Key, Foreign Key) Внешний ключ (ссылается на Products) |
2 |
Price |
Цена продукта |
DECIMAL(10, 2) |
- |
2 |
- |
3 |
Ingredients |
Ингредиенты продукта |
TEXT |
- |
- |
- |
4 |
Characteristics |
Характеристики продукта |
TEXT |
- |
- |
- |
Таблица 4. Suppliers
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
SupplierID |
Идентификатор поставщика |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
Name |
Название поставщика |
VARCHAR(255) |
255 |
- |
- |
3 |
ContactInfo |
Контактная информация поставщика |
TEXT |
- |
- |
- |
4 |
DeliveryTerms |
Условия поставки от поставщика |
TEXT |
- |
- |
- |
Таблица 5. Orders
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
OrderID |
Идентификатор заказа |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
CustomerID |
Идентификатор клиента
|
INT REFERENCES Customers(CustomerID) |
- |
- |
Foreign Key (ссылается на Customers) |
3 |
ProductID |
Идентификатор продукта в заказе |
INT REFERENCES Products(ProductID) |
- |
- |
Foreign Key (ссылается на Products) |
4 |
Quantity |
Количество продуктов в заказе |
INT |
- |
- |
- |
5 |
Price |
Цена заказа |
DECIMAL(10, 2) |
- |
2 |
- |
6 |
DeliveryStatus |
Статус доставки заказа |
VARCHAR(50) |
50 |
- |
- |
7 |
PaymentStatus |
Статус оплаты заказа |
VARCHAR(50) |
50 |
- |
- |
Таблица 6. OrderDetails
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
OrderID |
Идентификатор заказа |
INT REFERENCES Orders(OrderID)
|
- |
- |
Foreign Key (ссылается на Orders) |
2 |
ProductID |
Идентификатор продукта в заказе |
INT REFERENCES Products(ProductID) |
- |
- |
Foreign Key (ссылается на Products) |
3 |
Quantity |
Количество продуктов в заказе |
INT |
- |
- |
Нет |
4 |
Price |
Цена заказа |
DECIMAL(10, 2) |
- |
2 |
Нет |
Таблица 7. WarehouseInventory
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля |
1 |
ItemID |
Идентификатор товара на складе |
SERIAL PRIMARY KEY
|
- |
- |
Primary Key |
2 |
ProductID |
Идентификатор продукта на складе |
INT REFERENCES Products(ProductID)
|
- |
- |
Foreign Key (ссылается на Products) |
3 |
AdminID |
Индентификатор администратора |
REFERENCES AdminData(AdminID) |
- |
- |
Foreign Key (ссылается на AdminData) |
4 |
Quantity |
Количество товара на складе |
INT |
- |
- |
Нет |
5 |
Location |
Местонахождение товара на складе |
VARCHAR(100) |
100 |
- |
Нет |
Таблица 8. Sales and Reports
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
ReportID |
Идентификатор отчета |
SERIAL PRIMARY KEY Date: DATE
|
- |
- |
Да (Primary Key) |
2 |
ProductID |
Идентификатор продукта на складе |
INT REFERENCES Products(ProductID)
|
- |
- |
Foreign Key (ссылается на Products) |
3 |
Date |
Дата создания отчета
|
DATE |
- |
- |
Нет |
4 |
Revenue |
Выручка от продаж |
DECIMAL(10, 2)
|
- |
2 |
Нет |
5 |
SoldProducts |
Проданные продукты |
TEXT |
- |
- |
Нет |
Таблица 9. Marketing and Promotions
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
PromotionID |
Идентификатор маркетинговой акции |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
ProductID |
Идентификатор продукта на складе |
INT REFERENCES Products(ProductID)
|
- |
- |
Foreign Key (ссылается на Products) |
3 |
Name |
Название маркетинговой акции |
VARCHAR(255)
|
255 |
- |
- |
43 |
Description |
Описание маркетинговой акции |
TEXT |
- |
- |
- |
4 |
Cost |
Стоимость маркетинговой акции |
DECIMAL(10, 2)
|
- |
2 |
- |
Таблица 10. Employees
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
EmployeeID |
Идентификатор сотрудника |
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
ProductID |
Идентификатор продукта на складе |
INT REFERENCES Products(ProductID)
|
- |
- |
Foreign Key (ссылается на Products) |
3 |
AdminID |
Индентификатор администратора |
REFERENCES AdminData(AdminID) |
- |
- |
Foreign Key (ссылается на AdminData) |
2 |
Name |
Имя сотрудника |
VARCHAR(255) |
255 |
- |
Нет |
3 |
Role |
Роль сотрудника |
VARCHAR(100) |
100 |
- |
Нет |
4 |
ContactInfo |
Контактная информация сотрудника |
TEXT |
- |
- |
Нет |
5 |
WorkSchedule |
Рабочий график сотрудника |
TEXT |
- |
- |
Нет |
Таблица 11. AdminData
N |
Имя поля |
Подпись поля |
Тип поля |
Длина поля |
Число после запятой |
Тип поля
|
1 |
AdminID |
Идентификатор администратора
|
SERIAL PRIMARY KEY |
- |
- |
Да (Primary Key) |
2 |
UserName |
Имя пользователя администратора |
VARCHAR(255) |
255 |
- |
Нет |
3 |
Password |
Пароль администратора |
VARCHAR(255) |
255 |
- |
Нет |
4 |
AccessLevel |
Уровень доступа администратора |
VARCHAR(50) |
50 |
- |
Нет |
Физическая модель базы данных представлена на рисунке 3:
Рисунок 3 – Физическая модель базы данных