diff --git a/README.md b/README.md new file mode 100644 index 0000000..99d1393 --- /dev/null +++ b/README.md @@ -0,0 +1,276 @@ +# πŸ“± Mobile Devices Database Management System + +**КомплСксная систСма управлСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠΌ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройств с GUI-интСрфСйсом** + +[![Python](https://img.shields.io/badge/Python-3.11+-blue.svg)](https://python.org) +[![PostgreSQL](https://img.shields.io/badge/PostgreSQL-15.x-blue.svg)](https://postgresql.org) +[![PyQt6](https://img.shields.io/badge/PyQt6-6.6+-green.svg)](https://pypi.org/project/PyQt6/) +[![License](https://img.shields.io/badge/License-Academic-orange.svg)](#) + +## 🎯 НазначСниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° + +ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ дисциплинС "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ администрированиС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…", ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π°Ρ собой ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму для управлСния Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… устройствах. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ дСмонстрируСт практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² рСляционного модСлирования, ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π‘Π£Π‘Π” ΠΈ создания соврСмСнных desktop-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. + +## πŸ—οΈ АрхитСктура систСмы + +### ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Π°Ρ структура +``` +πŸ“¦ mobile-devices-db/ +β”œβ”€β”€ database.py # Π‘Π»ΠΎΠΉ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ (DAO) +β”œβ”€β”€ main_window.py # GUI-интСрфСйс Π½Π° PyQt6 +β”œβ”€β”€ main.py # ЗапускаСмый Ρ„Π°ΠΉΠ» +β”œβ”€β”€ Mobiles Dataset 2025.csv # Π”Π°Ρ‚Π°-сСт Π΄Π°Π½Π½Ρ‹Ρ… +β”œβ”€β”€ πŸ—ƒοΈ sql/ # SQL-скрипты ΠΈ схСма Π‘Π” +β”‚ β”œβ”€β”€ create_schema.sql # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ структуры +β”‚ └── performance_analysis.sql # ВСстовыС запросы для Π°Π½Π°Π»ΠΈΠ·Π° +β”œβ”€β”€ 🐍 scripts/ # Python-ΠΌΠΎΠ΄ΡƒΠ»ΠΈ систСмы +β”‚ └── import_data.py # БистСма ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ +β”œβ”€β”€ πŸ“Š docs/ # ВСхничСская докумСнтация +└── πŸ“‹ requirements.txt # Зависимости ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° +``` + +### ВСхнологичСский стСк +- **Π‘Π£Π‘Π”**: PostgreSQL 15.x с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ возмоТностями индСксирования +- **Backend**: Python 3.11+ с ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠΌ Singleton для управлСния соСдинСниями +- **Frontend**: PyQt6 с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Model-View-Controller +- **Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ**: psycopg2 для типобСзопасного взаимодСйствия с Π‘Π” + +## ⚑ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ особСнности + +### πŸ”§ ВСхничСская рСализация +- **Нормализация Π΄ΠΎ 3НЀ**: ДСкомпозиция исходного CSV Π² 5 взаимосвязанных Ρ‚Π°Π±Π»ΠΈΡ† +- **Π Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ**: БистСма FK с каскадными опСрациями +- **ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ**: БтратСгичСскоС индСксированиС с 62-95% ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ΠΌ +- **CRUD-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»**: ΠŸΠΎΠ»Π½Ρ‹ΠΉ спСктр ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ GUI + +### πŸ“ˆ Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ +| ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° | Π”ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ | ПослС ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ | Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ | +|---------|----------------|-------------------|-----------| +| ВрСмя выполнСния поиска | 0.234 мс | 0.089 мс | **62% быстрСС** | +| JOIN-запросы (4 Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹) | 18.6 мс | 0.95 мс | **95% быстрСС** | +| Π‘Ρ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ | 44.76 Π΅Π΄. | 12.45 Π΅Π΄. | **72% сниТСниС** | +| ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ строки | 914 (Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ) | 18 (прямой доступ) | **98% сокращСниС** | + +### 🌍 Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности +- **Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ поиск** ΠΏΠΎ мноТСствСнным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ устройств +- **Π’Π°Π»ΡŽΡ‚Π½Π°Ρ локализация** Ρ†Π΅Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ (5 Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ²) +- **АвтоматичСский ΠΈΠΌΠΏΠΎΡ€Ρ‚** Π΄Π°Π½Π½Ρ‹Ρ… с Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Π½Π° Π»Π΅Ρ‚Ρƒ +- **АналитичСскиС ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹** с Ρ€Π΅Π³ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ статистикой + +## πŸš€ Быстрый старт + +### БистСмныС трСбования +- **Python 3.11+** с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ venv +- **PostgreSQL 15.x** с административными ΠΏΡ€Π°Π²Π°ΠΌΠΈ +- **4GB RAM** (рСкомСндуСтся 8GB для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ…) + +### Установка ΠΈ настройка + +1. **ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория** + ```bash + git clone https://github.com/username/mobile-devices-db.git + cd mobile-devices-db + ``` + +2. **Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ окруТСния** + ```bash + python -m venv venv + source venv/bin/activate # Linux/macOS + # ΠΈΠ»ΠΈ + venv\Scripts\activate # Windows + ``` + +3. **Установка зависимостСй** + ```bash + pip install -r requirements.txt + ``` + +4. **Настройка PostgreSQL** + ```sql + -- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ Π‘Π” + CREATE USER admin WITH PASSWORD 'your_password'; + CREATE DATABASE mobile_devices_db OWNER admin; + GRANT ALL PRIVILEGES ON DATABASE mobile_devices_db TO admin; + ``` + +5. **Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅ схСмы Π΄Π°Π½Π½Ρ‹Ρ…** + ```bash + psql -U admin -d mobile_devices_db -f sql/create_schema.sql + ``` + +6. **Π˜ΠΌΠΏΠΎΡ€Ρ‚ тСстовых Π΄Π°Π½Π½Ρ‹Ρ…** + ```bash + python scripts/import_data.py + ``` + +7. **Запуск прилоТСния** + ```bash + python scripts/main_window.py + ``` + +## πŸ“Š Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… + +### РСляционная модСль (3НЀ) +```mermaid +erDiagram + COMPANIES ||--o{ MODELS : manufactures + PROCESSORS ||--o{ MODELS : uses + MODELS ||--o{ PRICES : "has prices in" + REGIONS ||--o{ PRICES : "contains prices" + + COMPANIES { + int company_id PK + varchar company_name UK + } + + MODELS { + int model_id PK + varchar model_name + int company_id FK + int processor_id FK + varchar ram + varchar battery_capacity + int launched_year + } + + PRICES { + int price_id PK + int model_id FK + int region_id FK + decimal price + varchar currency + } +``` + +### ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ +- **Companies**: Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ (19 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ) +- **Models**: ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ устройств (914 ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ с тСхничСскими характСристиками) +- **Processors**: Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΈΠΊ процСссоров (217 ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… чипсСтов) +- **Regions**: ГСографичСскиС Ρ€Π΅Π³ΠΈΠΎΠ½Ρ‹ цСнообразования (5 Ρ€Π΅Π³ΠΈΠΎΠ½ΠΎΠ²) +- **Prices**: РСгиональная цСновая информация (4,569 записСй) + +## 🎨 ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ интСрфСйс + +### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ +- **πŸ“‹ ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ**: ΠžΠ±Π·ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ с количСством ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ +- **πŸ“± Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ модСлями**: CRUD-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с тСхничСскими характСристиками +- **πŸ’° Π¦Π΅Π½ΠΎΠ²ΠΎΠ΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅**: Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π΅Π½ с Π²Π°Π»ΡŽΡ‚Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ +- **πŸ“Š АналитичСская панСль**: РСгиональная статистика ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ + +### Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ возмоТности +```python +# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ поискового запроса +def search_models(self, search_text: str): + """Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ поиск ΠΏΠΎ мноТСствСнным Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌ""" + return self.db.search_models(search_text) + +# Π’Π°Π»ΡŽΡ‚Π½Π°Ρ локализация +CURRENCY_MAP = { + 'Pakistan': ('PKR', '₨'), + 'India': ('INR', 'β‚Ή'), + 'China': ('CNY', 'Β₯'), + 'USA': ('USD', '$'), + 'Dubai': ('AED', 'Ψ―.Ψ₯') +} +``` + +## πŸ” Анализ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ + +### ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΡ тСстирования +ΠšΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½Ρ‹ΠΉ Π°Π½Π°Π»ΠΈΠ· ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ с использованиСм PostgreSQL EXPLAIN ANALYZE: + +#### ВСстовыС сцСнарии +1. **ΠŸΡ€ΠΎΡΡ‚Ρ‹Π΅ сСлСктивныС запросы** - поиск ΠΏΠΎ названию ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ +2. **ΠœΠ½ΠΎΠ³ΠΎΡ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Π΅ JOIN** - ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± устройствах +3. **ΠΠ³Ρ€Π΅Π³ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ** - статистичСскиС запросы с Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ +4. **Поиск ΠΏΠΎ характСристикам** - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ тСхничСским ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ + +#### БтратСгия ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ +```sql +-- Π‘Π°Π·ΠΎΠ²Ρ‹Π΅ B-tree индСксы +CREATE INDEX idx_companies_name ON companies(company_name); +CREATE INDEX idx_models_company_id ON models(company_id); + +-- БоставныС индСксы для комплСксных запросов +CREATE INDEX idx_models_ram_battery ON models(ram, battery_capacity); + +-- Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ индСксы для LIKE-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ +CREATE INDEX idx_companies_name_pattern ON companies(company_name varchar_pattern_ops); +``` + +## πŸ“ˆ ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ + +### ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ +- **Π˜ΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…**: 930 записСй устройств с 100% Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ +- **Нормализация**: 60% сокращСниС избыточности Π΄Π°Π½Π½Ρ‹Ρ… +- **ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ**: 95% ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠ΅ для слоТных JOIN-запросов +- **Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅**: 72% сниТСниС стоимости ΠΏΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΡƒ + +### ΠšΠ°Ρ‡Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹Π΅ достиТСния +- Полная автоматизация процСсса Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… +- Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ GUI с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π²Π°Π»ΡŽΡ‚Π½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ +- ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° для enterprise-развСртывания +- КомплСксная систСма ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ + +## πŸ”§ ВСхничСская докумСнтация + +### ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… +```python +# ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ +DATABASE_CONFIG = { + 'host': 'localhost', + 'port': 5432, + 'database': 'mobile_devices_db', + 'user': 'admin', + 'password': 'your_password' +} +``` + +### ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ зависимости +``` +psycopg2-binary==2.9.9 # PostgreSQL adapter +PyQt6==6.6.1 # GUI framework +pandas==2.1.4 # Data processing +numpy==1.26.2 # Numerical computing +``` + +## πŸš€ ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Ρ‹ развития + +### ΠšΡ€Π°Ρ‚ΠΊΠΎΡΡ€ΠΎΡ‡Π½Ρ‹Π΅ Ρ†Π΅Π»ΠΈ +- **Π’Π΅Π±-интСрфСйс**: РСализация REST API Π½Π° FastAPI +- **Автоматизация**: Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с внСшними API для обновлСния ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° +- **ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³**: Real-time Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ + +### Долгосрочная стратСгия +- **Machine Learning**: ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ†Π΅Π½ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΉ +- **ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹**: АрхитСктурная модСрнизация для cloud-deployment +- **Аналитика**: Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Apache Kafka для stream-processing + +## πŸ“š АкадСмичСская Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ + +ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ дСмонстрируСт практичСскоС ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΉ: + +### ВСорСтичСскиС основы +- **Нормализация рСляционных Π΄Π°Π½Π½Ρ‹Ρ…** Π΄ΠΎ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΡ‹ +- **ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π‘Π£Π‘Π”** Ρ‡Π΅Ρ€Π΅Π· стратСгичСскоС индСксированиС +- **АрхитСктурныС ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹** для desktop-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… + +### ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ Π½Π°Π²Ρ‹ΠΊΠΈ +- ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ рСализация Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹Ρ… схСм Π΄Π°Π½Π½Ρ‹Ρ… +- Анализ ΠΈ оптимизация ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ SQL-запросов +- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с GUI-интСрфСйсом + +## 🀝 Π’ΠΊΠ»Π°Π΄ Π² Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ + +ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ для акадСмичСского использования ΠΈ дальнСйшСго развития. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° ΠΏΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ΡΡ. + +### Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ направлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ +- ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² устройств (ΠΏΠ»Π°Π½ΡˆΠ΅Ρ‚Ρ‹, Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΈ) +- Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с систСмами управлСния складскими запасами +- ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΡΡ€Π°Π²Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° тСхничСских характСристик + +--- + +**ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π² Ρ€Π°ΠΌΠΊΠ°Ρ… дисциплины "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ администрированиС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…"** +**Московский ΠŸΠΎΠ»ΠΈΡ‚Π΅Ρ…Π½ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ УнивСрситСт, Π€Π°ΠΊΡƒΠ»ΡŒΡ‚Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ** +**2024-2025 ΡƒΡ‡Π΅Π±Π½Ρ‹ΠΉ Π³ΠΎΠ΄**