Загрузка данных
# ПРАКТИЧЕСКОЕ ЗАНЯТИЕ №2
## Тема: «Составление словаря данных»
### Вариант 22 — Кулинария (оптимизированная модель из ПЗ-1)
**Выполнил:** Dilan
**Преподаватель:** А.А. Кравченко
---
## Сводная информация о базе данных
**Название БД:** Кулинария
**Файл:** Kulinarya.mdb / Kulinarya.accdb
**Назначение:** Автоматизация учёта поставок продуктов, производства кулинарных изделий и продаж готовой продукции на предприятии общественного питания.
**Пользователи:** Администратор, менеджер по закупкам, кассир, технолог.
**Область данных:** Предприятие общественного питания «Кулинария».
---
## Таблица 1 — Таблица «ПОСТАВЩИК»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_поставщика | int | 4 | Уникальный идентификатор поставщика | Первичный | 1 |
| наименование | varchar(100) | 102 | Полное название организации-поставщика | | ООО «Молочный мир» |
| ИНН | varchar(12) | 14 | Индивидуальный номер налогоплательщика | Потенциальный | 7712345678 |
| телефон | varchar(15) | 17 | Контактный телефон поставщика | | 8-495-123-45-67 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **137** | Байт | | |
| **Предполагаемое число поставщиков:** | **10** | | | |
| **Занятость дискового пространства:** | **1370** | Байт | | |
---
## Таблица 2 — Таблица «ПРОДУКТ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_продукта | int | 4 | Уникальный идентификатор продукта | Первичный | 1 |
| наименование | varchar(100) | 102 | Название продукта (сырья) | | Мука пшеничная в/с |
| единица_измерения | varchar(20) | 22 | Единица измерения продукта | | кг |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **128** | Байт | | |
| **Предполагаемое число продуктов:** | **50** | | | |
| **Занятость дискового пространства:** | **6400** | Байт | | |
---
## Таблица 3 — Таблица «ДОЛЖНОСТЬ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_должности | int | 4 | Уникальный идентификатор должности | Первичный | 1 |
| название_должности | varchar(50) | 52 | Название должности сотрудника | | Повар |
| разряд | int | 4 | Квалификационный разряд | | 4 |
| оклад | decimal(10,2) | 8 | Оклад сотрудника в рублях | | 45000.00 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **68** | Байт | | |
| **Предполагаемое число должностей:** | **5** | | | |
| **Занятость дискового пространства:** | **340** | Байт | | |
---
## Таблица 4 — Таблица «СОТРУДНИК»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_сотрудника | int | 4 | Уникальный идентификатор сотрудника | Первичный | 1 |
| ФИО | varchar(100) | 102 | Фамилия, имя, отчество сотрудника | | Петров Иван Иванович |
| телефон | varchar(15) | 17 | Контактный телефон сотрудника | Потенциальный | 8-916-123-45-67 |
| id_должности | int | 4 | Идентификатор должности сотрудника | Внешний | 1 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **127** | Байт | | |
| **Предполагаемое число сотрудников:** | **20** | | | |
| **Занятость дискового пространства:** | **2540** | Байт | | |
---
## Таблица 5 — Таблица «КУЛИНАРНОЕ_ИЗДЕЛИЕ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_изделия | int | 4 | Уникальный идентификатор изделия | Первичный | 1 |
| наименование | varchar(100) | 102 | Название кулинарного изделия | | Торт «Наполеон» |
| цена | decimal(10,2) | 8 | Розничная цена изделия в рублях | | 850.00 |
| id_сотрудника | int | 4 | Идентификатор сотрудника, ответственного за изделие | Внешний | 1 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **118** | Байт | | |
| **Предполагаемое число изделий:** | **100** | | | |
| **Занятость дискового пространства:** | **11800** | Байт | | |
---
## Таблица 6 — Таблица «КЛИЕНТ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_клиента | int | 4 | Уникальный идентификатор клиента | Первичный | 1 |
| ФИО | varchar(100) | 102 | Фамилия, имя, отчество клиента | | Сидорова Анна Петровна |
| телефон | varchar(15) | 17 | Контактный телефон клиента | Потенциальный | 8-903-123-45-67 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **123** | Байт | | |
| **Предполагаемое число клиентов:** | **200** | | | |
| **Занятость дискового пространства:** | **24600** | Байт | | |
---
## Таблица 7 — Таблица «ЗАКАЗ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_заказа | int | 4 | Уникальный идентификатор заказа | Первичный | 1 |
| сумма | decimal(10,2) | 8 | Итоговая сумма заказа в рублях | | 1700.00 |
| id_клиента | int | 4 | Идентификатор клиента, оформившего заказ | Внешний | 1 |
| id_изделия | int | 4 | Идентификатор заказанного изделия | Внешний | 1 |
| количество | int | 4 | Количество единиц изделия в заказе | | 2 |
| цена | decimal(10,2) | 8 | Цена единицы изделия в момент заказа | | 850.00 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **32** | Байт | | |
| **Предполагаемое число заказов:** | **1000** | | | |
| **Занятость дискового пространства:** | **32000** | Байт | | |
---
## Таблица 8 — Таблица «ПОСТАВКА»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_поставки | int | 4 | Уникальный идентификатор поставки | Первичный | 1 |
| id_поставщика | int | 4 | Идентификатор поставщика | Внешний | 1 |
| id_продукта | int | 4 | Идентификатор поставленного продукта | Внешний | 1 |
| дата_поставки | date | 3 | Дата поступления продукта | | 2024-03-15 |
| количество | int | 4 | Количество поставленного продукта | | 50 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **19** | Байт | | |
| **Предполагаемое число поставок:** | **500** | | | |
| **Занятость дискового пространства:** | **9500** | Байт | | |
---
## Таблица 9 — Таблица «ПРИГОТОВЛЕНИЕ»
| Имя поля | Тип поля | Длина поля (байт) | Описание поля | Ключ (первичный, потенциальный, внешний) | Пример данных поля |
|----------|----------|-------------------|---------------|------------------------------------------|---------------------|
| id_приготовления | int | 4 | Уникальный идентификатор факта приготовления | Первичный | 1 |
| id_сотрудника | int | 4 | Идентификатор сотрудника, готовившего изделие | Внешний | 1 |
| id_изделия | int | 4 | Идентификатор приготовленного изделия | Внешний | 1 |
| дата | date | 3 | Дата приготовления | | 2024-03-15 |
| количество | int | 4 | Количество приготовленных единиц | | 10 |
| | | | | |
|---|---|---|---|---|
| **Длина одной записи:** | **19** | Байт | | |
| **Предполагаемое число записей:** | **500** | | | |
| **Занятость дискового пространства:** | **9500** | Байт | | |
---
## Лист «Сводная информация»
### Предварительные требования к объёму дискового пространства
| № | Таблица | Длина записи (байт) | Кол-во записей | Занятость (байт) |
|---|---------|---------------------|----------------|------------------|
| 1 | ПОСТАВЩИК | 137 | 10 | 1 370 |
| 2 | ПРОДУКТ | 128 | 50 | 6 400 |
| 3 | ДОЛЖНОСТЬ | 68 | 5 | 340 |
| 4 | СОТРУДНИК | 127 | 20 | 2 540 |
| 5 | КУЛИНАРНОЕ_ИЗДЕЛИЕ | 118 | 100 | 11 800 |
| 6 | КЛИЕНТ | 123 | 200 | 24 600 |
| 7 | ЗАКАЗ | 32 | 1 000 | 32 000 |
| 8 | ПОСТАВКА | 19 | 500 | 9 500 |
| 9 | ПРИГОТОВЛЕНИЕ | 19 | 500 | 9 500 |
| | **ИТОГО:** | | **2 385** | **98 050 байт** |
### Расчёт объёма дискового пространства
$$98\,050 \text{ байт} = 95{,}75 \text{ КБ} \approx 0{,}094 \text{ МБ}$$
> **Предварительные требования к объёму дискового пространства: ≈ 96 КБ**
---
## Описание связей между таблицами (для словаря данных)
| Связь | Тип | Описание |
|-------|-----|----------|
| ПОСТАВЩИК → ПОСТАВКА | 1:N | Один поставщик осуществляет множество поставок |
| ПРОДУКТ → ПОСТАВКА | 1:N | Один продукт может поставляться многократно |
| ДОЛЖНОСТЬ → СОТРУДНИК | 1:N | Одна должность может быть у многих сотрудников |
| СОТРУДНИК → КУЛИНАРНОЕ_ИЗДЕЛИЕ | 1:N | Один сотрудник отвечает за несколько изделий |
| СОТРУДНИК → ПРИГОТОВЛЕНИЕ | 1:N | Один сотрудник участвует во многих приготовлениях |
| КУЛИНАРНОЕ_ИЗДЕЛИЕ → ПРИГОТОВЛЕНИЕ | 1:N | Одно изделие готовится многократно |
| КЛИЕНТ → ЗАКАЗ | 1:N | Один клиент оформляет множество заказов |
| КУЛИНАРНОЕ_ИЗДЕЛИЕ → ЗАКАЗ | 1:N | Одно изделие может быть в разных заказах |
---
## Заключение
В ходе выполнения практической работы был составлен **словарь данных** для базы данных «Кулинария» (оптимизированная модель из ПЗ-1).
**Результаты:**
- Описано **9 таблиц** с указанием типов, длин полей, ключей и примеров данных.
- Рассчитана длина каждой записи и занятость дискового пространства для каждой таблицы.
- Определён **суммарный объём дискового пространства ≈ 96 КБ** при заданных предполагаемых количествах записей.
- Описаны связи между таблицами для полноты словаря данных.
Словарь данных позволяет быстро ориентироваться в структуре БД, понимать назначение каждого поля и контролировать целостность данных при разработке и эксплуатации системы.
---
**Список использованной литературы:**
1. Годин В.В. Базы данных: проектирование. Учебник для СПО. М: изд-во Юрайт, 2020 г.