🧠 1. Реляційні бази даних (основа)- Нормалізація (1NF–3NF, коли денормалізація виправдана)
- ACID властивості
- Типи зв’язків (1:1, 1:N, M:N)
- Constraints (PK, FK, UNIQUE, CHECK)
- NULL semantics
⚙️ 2. SQL- JOIN-и (INNER, LEFT, CROSS, SELF)
- GROUP BY / HAVING
- Window functions (ROW_NUMBER, RANK, LAG/LEAD)
- CTE (WITH)
- Subqueries vs JOIN
- Execution plans (читання і аналіз)
- Parameter sniffing
- Query hints (коли і навіщо)
🚀 3. Індекси і оптимізація- Clustered vs Non-clustered indexes
- Composite indexes (порядок колонок!)
- Covering index
- Index selectivity
- Index fragmentation
- Коли індекс шкодить
- Index scan vs seek
🧵 4. Транзакції і конкурентність- Isolation levels (усі 4 рівні)
- Deadlocks (причини + способи уникнення)
- Optimistic vs pessimistic locking
- Row versioning
- TransactionScope vs DbContext transactions
- Retry policies (особливо в cloud)
🧱 5. Entity Framework CoreБазове- DbContext lifecycle
- Change Tracker
Завантаження даних- Lazy vs Eager vs Explicit loading
- Include / ThenInclude
- N+1 problem
Оптимізація- Tracking vs NoTracking
- Projection (Select)
- Split queries
- Compiled queries
- Raw SQL (FromSql)
Під капотом- Як EF генерує SQL
- Client vs Server evaluation
- Як дебажити SQL
⚡ 6. Підключення і ресурси- Connection pooling (ADO.NET)
- Connection lifetime
- Pool exhaustion
- Async/await і робота з БД
- I/O bound операції
🔄 7. Міграції і версіонування БД- EF Core migrations
- Data seeding
- Breaking vs non-breaking changes
- Zero-downtime deployment
- Rollback стратегія
🧪 8. Робота з великими обсягами даних- Pagination (OFFSET vs keyset pagination)
- Batch processing
- Bulk operations (і обмеження EF Core)
- Streaming (IAsyncEnumerable)
🧩 9. Кешування- In-memory cache
- Distributed cache (Redis)
- Cache aside / write-through / write-behind
- Cache invalidation
- Stale data і consistency
🟥 10. NoSQLMongoDB- Schema design (embed vs reference)
- Indexing (TTL, compound)
- Aggregation pipeline
- Коли краще за SQL
Redis- Типи даних (string, hash, list, set)
- TTL
- Pub/Sub
- Distributed locks
- Cache eviction policies
⚖️ 11. MSSQL vs PostgreSQL- MVCC (PostgreSQL) vs locking (MSSQL)
- Indexing differences
- JSON support
- Query optimizer особливості
- Extensions (PostgreSQL)
- Tooling
- Коли що обирати (реальні кейси)
🔐 12. Безпека даних- SQL Injection
- Parameterized queries
- Encryption (at rest / in transit)
- Data masking
🔥 13. Практичні проблеми- N+1 і як його знайти/виправити
- Чому запит повільний (і як це довести)
- Чому EF Core генерує повільний SQL і як це виправити
- Коли краще писати raw SQL замість LINQ?
- Як оптимізувати read-heavy систему
- Як будувати write-heavy систему
- Як працювати з high concurrency
- Як реалізувати кешування без “битих” даних?
- Як зробити zero-downtime міграцію?
|