Metadata-Version: 2.4
Name: pg-data-tools
Version: 1.0.1
Summary: Light PostgreSQL data tools
Author: Andre
Requires-Python: >=3.10
Description-Content-Type: text/markdown

# Оценка заданий ДЭ БУ (Модули 1-3)
## Специальность 09.02.07 Информационные системы и программирование

---

## ⚠️ КРИТИЧЕСКОЕ УСЛОВИЕ: БЕЗ ДОСТУПА К ИНТЕРНЕТУ

**Важно:** Студентам запрещен доступ к интернету, кроме разового выхода в зоне общего пользования на **15 минут** (только для справочной информации, без использования репозиториев, StackOverflow, ChatGPT, социальных сетей).

---

## 📊 ИТОГОВАЯ ОЦЕНКА: ВЫСОКАЯ СЛОЖНОСТЬ ⚠️🔴

**Вердикт:** Задание РЕАЛИСТИЧНО только для **хорошо подготовленных студентов** (топ 20-30% группы)

**Процент выполнения по категориям студентов:**

| Категория студента | Реальность выполнения | Ожидаемый результат | Процент выполнения |
|-------------------|----------------------|---------------------|-------------------|
| **Отличник** (топ 10%) | ✅ Реально | Полное выполнение с минимальными недочетами | **75-90%** |
| **Хорошист** (топ 30%) | ⚠️ Сложно | Базовый функционал без всех деталей | **50-70%** |
| **Средний студент** | 🔴 Очень сложно | БД + базовая авторизация + частичный вывод | **30-50%** |
| **Троечник** | 🔴 Критично | Только БД, возможно авторизация | **15-30%** |

---

## ⏱️ ВРЕМЕННОЙ АНАЛИЗ (БЕЗ ИНТЕРНЕТА)

| Модуль | Выделено | Реально нужно БЕЗ интернета | Коэффициент сложности |
|--------|----------|----------------------------|----------------------|
| **Модуль 1** (БД) | 50 мин | **60-80 мин** | 🔴 **+20-60%** |
| **Модуль 2** (Приложение) | 40 мин | **90-120 мин** | 🔴 **+125-200%** |
| **Модуль 3** (CRUD) | 90 мин | **120-150 мин** | 🔴 **+33-67%** |
| **ИТОГО** | **180 мин (3 ч)** | **270-350 мин (4.5-5.8 ч)** | 🔴 **Дефицит 1.5-2.8 ч** |

---

## 📝 ДЕТАЛЬНАЯ ОЦЕНКА ПО МОДУЛЯМ

### **Модуль 1: Разработка БД средствами СУБД** (50 минут)

#### Задачи:
- Создать БД в 3НФ (8-10 таблиц)
- Настроить ссылочную целостность
- Импортировать данные из файлов
- Получить ER-диаграмму (PDF)
- Создать скрипт БД

#### Оценка сложности БЕЗ интернета:
**Сложность: 4/5** 🔴

**Критические проблемы без интернета:**
- ❌ Нельзя подсмотреть синтаксис `CREATE TABLE`, `FOREIGN KEY`
- ❌ Нельзя найти решение ошибок импорта (кодировки, форматы дат)
- ❌ Нельзя загуглить экспорт в PDF для ER-диаграммы
- ❌ Проблемы с нестандартными типами данных

**Что должен знать НАИЗУСТЬ:**
- ✅ Синтаксис SQL для своей СУБД (MySQL/PostgreSQL/MS SQL)
- ✅ Правила 3НФ
- ✅ Работа с FOREIGN KEY, ON DELETE CASCADE
- ✅ Импорт данных (LOAD DATA INFILE / COPY / BULK INSERT)
- ✅ Экспорт ER-диаграммы в конкретной СУБД

**Реальное время:** **60-80 минут** (дефицит 10-30 мин)

**Вероятность полного выполнения:**
- Отличник: 80%
- Хорошист: 60%
- Середняк: 40%

---

### **Модуль 2: Разработка алгоритма и создание приложения** (40 минут)

#### Задачи:
- Блок-схема по ГОСТ 19.701-90 (PDF)
- Подключение БД к приложению
- Авторизация (логин/пароль из БД + вход как гость)
- 4 разных интерфейса (гость, клиент, менеджер, администратор)
- Вывод товаров: фото, 9 полей, условное форматирование (3 условия)
- Отладка + скриншоты

#### Оценка сложности БЕЗ интернета:
**Сложность: 5/5** 🔴🔴

**КРИТИЧЕСКИ МАЛО ВРЕМЕНИ!**

**Критические проблемы без интернета:**
- ❌ Нельзя подсмотреть строку подключения к БД
- ❌ Нельзя найти примеры загрузки изображений из файла/БД
- ❌ Нельзя загуглить условное форматирование строк (цвета #2E8B57)
- ❌ Нельзя найти решение ошибок (NullReferenceException, SQLException)
- ❌ Нельзя посмотреть ГОСТ 19.701-90 для блок-схем

**Что должен знать/уметь НАИЗУСТЬ:**
- ✅ Строки подключения (ConnectionString) для своей СУБД
- ✅ SQL-запросы SELECT с JOIN (вывод товаров)
- ✅ Работа с изображениями (Image.FromFile, BitmapImage, PIL)
- ✅ Условное форматирование UI (Brush/Color/Style)
- ✅ Роутинг/навигация между формами
- ✅ ГОСТ 19.701-90 (символы блок-схем)
- ✅ Все библиотеки установлены ЗАРАНЕЕ

**Реальное время:** **90-120 минут** (дефицит 50-80 мин!) 🔴

**Что НЕ успеешь за 40 минут:**
- 🔴 Качественные интерфейсы для 4 ролей (максимум 2)
- 🔴 Все условия форматирования (успеешь 1-2 из 3)
- 🔴 Обработка отсутствующих изображений
- 🔴 Нормальная отладка

**Вероятность полного выполнения:**
- Отличник: 40% (только базовый функционал)
- Хорошист: 20%
- Середняк: 5-10%

---

### **Модуль 3: Последовательный интерфейс + CRUD** (90 минут)

#### Задачи:
- Навигация между окнами (кнопка "Назад")
- Обработка исключений (окна сообщений с пояснениями)
- **Поиск** в реальном времени (по всем текстовым полям)
- **Сортировка** (по количеству ↑↓)
- **Фильтрация** (по поставщику, с reset)
- Форма добавления/редактирования товаров (12+ полей)
- **Работа с изображениями:** загрузка, resize 300×200, сохранение, удаление старых
- Валидация (цена/количество не могут быть отрицательными)
- Удаление товаров (с проверкой наличия в заказах)
- Автообновление данных после CRUD

#### Оценка сложности БЕЗ интернета:
**Сложность: 5/5** 🔴🔴

**Критические проблемы без интернета:**
- ❌ Нельзя найти код resize изображений (Pillow, System.Drawing)
- ❌ Нельзя подсмотреть LINQ-запросы для поиска/фильтрации
- ❌ Нельзя найти примеры FileDialog/SaveFileDialog
- ❌ Нельзя загуглить проверку Foreign Key (товар в заказе)
- ❌ Нельзя найти решение проблем с путями к файлам

**Что должен знать/уметь НАИЗУСТЬ:**
- ✅ Resize изображений (библиотеки: Pillow/PIL, System.Drawing, ImageMagick)
- ✅ Работа с файловой системой (Path, Directory, File)
- ✅ LINQ / фильтрация коллекций
- ✅ SQL для проверки связей (JOIN, EXISTS)
- ✅ Валидация форм (TryParse, регулярные выражения)
- ✅ Обновление UI после изменения данных (ObservableCollection, BindingList)

**Самые сложные части (БЕЗ интернета):**

1. **Работа с изображениями** (40-50 мин) 🔴
   - Загрузка через FileDialog
   - Resize до 300×200
   - Сохранение в папку приложения
   - Удаление старого файла
   - Сохранение пути в БД

2. **Поиск + Сортировка + Фильтр одновременно** (25-35 мин) 🔴
   - Поиск в реальном времени по всем полям
   - Комбинирование с фильтром
   - Сохранение сортировки

3. **CRUD с валидацией** (20-30 мин) ⚠️
   - Форма 12+ полей
   - Выпадающие списки
   - Проверки + сообщения об ошибках

**Реальное время:** **120-150 минут** (дефицит 30-60 мин)

**Что можно НЕ успеть:**
- 🔴 Качественный resize изображений (может быть баг с памятью)
- 🔴 Полная обработка исключений
- 🔴 Удаление старых изображений
- ⚠️ Красивые сообщения об ошибках

**Вероятность полного выполнения:**
- Отличник: 60-70%
- Хорошист: 40-50%
- Середняк: 20-30%

---

## 🎯 КРИТИЧЕСКИЕ НАВЫКИ (БЕЗ ИНТЕРНЕТА)

### **Что ОБЯЗАТЕЛЬНО нужно знать наизусть:**

#### 1. **SQL (наизусть!)**
```sql
-- Создание таблиц с FK
CREATE TABLE products (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(255) NOT NULL,
    category_id INT,
    FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE
);

-- Импорт данных
LOAD DATA INFILE 'file.csv' INTO TABLE products ...;

-- Проверка связей
SELECT COUNT(*) FROM orders WHERE product_id = ?;
```

#### 2. **Работа с изображениями**

**C# (WPF):**
```csharp
// Resize
var bitmap = new Bitmap(originalImage, 300, 200);
bitmap.Save(path, ImageFormat.Jpeg);

// Загрузка
var dialog = new OpenFileDialog();
if (dialog.ShowDialog() == true) { ... }
```

**Python (Tkinter + Pillow):**
```python
from PIL import Image
img = Image.open(path)
img = img.resize((300, 200))
img.save(new_path)
```

#### 3. **Подключение к БД**

**C# (SQL Server):**
```csharp
string connectionString = "Server=localhost;Database=shop;Trusted_Connection=True;";
SqlConnection connection = new SqlConnection(connectionString);
```

**Python (MySQL):**
```python
import mysql.connector
conn = mysql.connector.connect(
    host="localhost", user="root", password="", database="shop"
)
```

#### 4. **Поиск + Фильтр + Сортировка (LINQ / Python)**

**C#:**
```csharp
var filtered = products
    .Where(p => searchText == "" || p.Name.Contains(searchText))
    .Where(p => supplierId == 0 || p.SupplierId == supplierId)
    .OrderBy(p => p.Quantity);
```

---

## 🚨 ПОДВОДНЫЕ КАМНИ (БЕЗ ИНТЕРНЕТА)

### **Где студенты застревают:**

| Проблема | Почему критично БЕЗ интернета | Время потери |
|----------|-------------------------------|--------------|
| **Забыл синтаксис SQL** | Нельзя загуглить | 10-20 мин |
| **Ошибка импорта данных** (кодировка UTF-8) | Нельзя найти решение | 15-30 мин |
| **Не помнит, как resize изображения** | Нельзя найти код | 20-40 мин 🔴 |
| **NullReferenceException** (изображение = null) | Нельзя загуглить | 10-20 мин |
| **Путь к файлу** (относительный/абсолютный) | Нельзя посмотреть примеры | 10-15 мин |
| **Foreign Key constraint** при удалении | Нельзя найти SQL-запрос проверки | 10-20 мин |
| **Блок-схема ГОСТ** (забыл символы) | Нельзя посмотреть стандарт | 10-15 мин |

**Итого возможная потеря времени:** **85-160 минут** 🔴

---

## 💡 РЕКОМЕНДАЦИИ ДЛЯ ПОДГОТОВКИ

### **1. Что ОБЯЗАТЕЛЬНО отработать ЗАРАНЕЕ (минимум 10 раз!):**

- ✅ **Полный цикл:** БД → авторизация → CRUD → поиск/фильтр
- ✅ **Работа с изображениями** (загрузка, resize, сохранение, удаление)
- ✅ **SQL-запросы** (CREATE, INSERT, SELECT с JOIN, проверка FK)
- ✅ **Поиск + фильтр + сортировка** одновременно
- ✅ **Обработка исключений** (try-catch, красивые окна ошибок)
- ✅ **Блок-схемы ГОСТ** (выучить символы)

### **2. Подготовить ШПАРГАЛКИ (на бумаге!):**

**Можно взять с собой:**
- 📋 Шпаргалка SQL (CREATE TABLE, FOREIGN KEY, JOIN)
- 📋 Строки подключения к БД
- 📋 Код resize изображений
- 📋 Символы ГОСТ 19.701-90
- 📋 Типовые обработчики ошибок

**Нельзя:**
- ❌ Электронные шпаргалки (USB, телефон)
- ❌ Готовый код (только справочная информация)

### **3. Установить ВСЁ ПО заранее:**

- ✅ СУБД (MySQL/PostgreSQL/MS SQL + Management Studio)
- ✅ IDE (Visual Studio / PyCharm / IntelliJ IDEA)
- ✅ Библиотеки:
  - C#: System.Drawing, WPF
  - Python: Pillow, tkinter, mysql-connector
  - Java: JDBC, JavaFX/Swing
- ✅ Программа для блок-схем (draw.io, Visio, yEd)
- ✅ PDF-экспорт

### **4. Потренироваться НА ВРЕМЯ (БЕЗ интернета!):**

**Симуляция экзамена:**
1. Отключить интернет
2. Засечь 3 часа
3. Выполнить ВСЁ задание
4. Записать, что НЕ успел
5. Повторить 5-7 раз на разных предметных областях

**Предметные области для тренировки:**
- Интернет-магазин (товары, заказы)
- Библиотека (книги, читатели)
- Автосервис (машины, услуги)
- Склад (товары, поставки)
- Кинотеатр (фильмы, сеансы)

---

## 📊 ИТОГОВЫЙ ВЕРДИКТ

### **Общая сложность:** 🔴🔴 **8/10 (ВЫСОКАЯ)**

### **Реалистичность выполнения за 3 часа БЕЗ интернета:**

```
┌─────────────────────────────────────────────────────────┐
│ Отличник (топ 10%)     ████████████████░░░░   75-90%   │
│ Хорошист (топ 30%)     ██████████░░░░░░░░░░   50-70%   │
│ Средний студент        █████░░░░░░░░░░░░░░░   30-50%   │
│ Троечник               ███░░░░░░░░░░░░░░░░░   15-30%   │
└─────────────────────────────────────────────────────────┘
```

### **Ключевые факторы успеха:**

| Фактор | Важность | Описание |
|--------|----------|----------|
| **Практика БЕЗ интернета** | 🔴🔴🔴 **КРИТИЧНО** | Минимум 5-7 полных прогонов |
| **Знание синтаксиса наизусть** | 🔴🔴🔴 **КРИТИЧНО** | SQL, работа с изображениями, LINQ/фильтры |
| **Скорость набора кода** | 🔴🔴 **ВАЖНО** | Горячие клавиши, автодополнение |
| **Стрессоустойчивость** | 🔴🔴 **ВАЖНО** | Не паниковать при ошибках |
| **Шпаргалки** | 🔴 **ПОЛЕЗНО** | Справочная информация на бумаге |

---

## ⚠️ ГЛАВНЫЕ ВЫВОДЫ

### **1. Задание СЛОЖНОЕ для среднего студента БЕЗ интернета**
- Времени мало даже для отличников
- Требует **отличного знания стека**
- Нет права на ошибку (нельзя загуглить решение)

### **2. Критические узкие места:**
- 🔴 **Модуль 2 (40 мин)** - дефицит 50-80 минут
- 🔴 **Работа с изображениями** - 40-50 минут БЕЗ интернета
- 🔴 **Поиск + фильтр + сортировка** - сложная логика

### **3. Кто справится:**
- ✅ Студенты, которые **многократно тренировались БЕЗ интернета**
- ✅ Те, кто **знает синтаксис наизусть**
- ✅ Те, кто **быстро пишет код** (горячие клавиши, шаблоны)
- ✅ Те, кто **не паникует** при ошибках

### **4. Кто НЕ справится:**
- ❌ Студенты, привыкшие гуглить каждую ошибку
- ❌ Те, кто не практиковался БЕЗ интернета
- ❌ Те, кто медленно набирает код
- ❌ Те, кто впервые видит такое задание

---

## 🎓 ФИНАЛЬНАЯ РЕКОМЕНДАЦИЯ

**Для успешной сдачи БЕЗ интернета:**

1. **Минимум 5-7 полных прогонов** (3 часа каждый, БЕЗ интернета)
2. **Выучить наизусть:**
   - SQL-синтаксис
   - Работа с изображениями
   - Поиск/фильтры/сортировка
   - Блок-схемы ГОСТ
3. **Подготовить шпаргалки** (на бумаге)
4. **Установить ВСЁ ПО** заранее
5. **Отработать скорость** (горячие клавиши, автодополнение)

**Если НЕ готов:** высокий риск провала (< 40% выполнения)

**Если готов:** реальный шанс на 70-90% выполнения

---

**Дата оценки:** 2025-11-19
**Оценивающий:** Claude Code (AI-ассистент)
