Финален извештај: Проект VidiDB
Оваа страница го претставува конечниот преглед на развојниот циклус на проектот VidiDB. Проектот беше фокусиран на креирање на робустен, скалабилен и интелигентен систем за управување со податоци за стриминг платформа, применувајќи напредни техники од областа на базите на податоци.
---
1. Резиме на проектот
VidiDB е систем развиен со цел да се справи со комплексноста на модерните стриминг сервиси кои управуваат со десетици милиони записи (корисници, медиуми, историја на гледање, рејтинзи). Клучниот предизвик беше оптимизацијата на перформансите при агрегација на огромни количини податоци и имплементација на интелигентен систем за препораки кој надминува обично математичко филтрирање.
---
2. Технички достигнувања
Во текот на проектот, тимот успешно ги реализираше следните клучни компоненти:
- Моделирање на базата: Дизајнирана е комплексна релациона шема која ги поврзува трансакциските податоци (WatchHistory, Rating) со корисничките и медиумските ентитети.
- Оптимизација (Query Optimization): Со анализа на плановите за извршување (
EXPLAIN ANALYZE), имплементиравме стратегија на индексирање на надворешните клучеви (FK Indexes), што резултираше со намалување на времето на одговор на клучните погледи за преку 35 пати. - Базно програмирање (Database Programming): Централизирање на деловната логика преку 6 функции, 6 тригери и 5 зачувани процедури, со што се осигури атомско извршување на критичните операции (регистрација, деактивација, управување со уреди).
- Advanced Topic (Семантички препораки): Имплементиран е модерен NLP систем базиран на
SentenceTransformersиpgvector, кој користи векторизација на корисничките коментари за интелигентно откривање на слични содржини.
---
3. Лекции и предизвици
Процесот на изработка на VidiDB нè соочи со неколку сериозни инженерски предизвици:
- I/O Bottlenecks при масовни податоци: Учевме како да избегнуваме
Seq Scanсо правилно користење на индекси и како да агрегираме податоци на ниво на база наместо на апликативно ниво. - Трансакциски интегритет: Разбравме дека сложените операции (како бришење на корисник со сите негови уреди и претплати) мора да бидат атомски — процедурите и тригерите беа клучни за ова.
- AI-Database интеграција: Имплементацијата на вектори во релациона база претставуваше спој на два различни света (традиционални SQL табели и модерни ML модели), што ја отвори вратата за „хибридна“ интелигенција на податоците.
---
4. Иден развој и скалабилност
Иако проектот VidiDB во оваа фаза ги задоволува сите функционални барања, за продукциска верзија би можеле да се разгледаат следните насоки:
- Partitioning: Имплементација на декларативно партиционирање на табелите
RatingиWatchHistoryпо временски периоди (на пр. месечни партиции) за уште побрз пристап. - Caching Layer: Додавање на Redis слој за кеширање на најчесто бараните резултати од погледите (
view_top_rated_content). - Real-time Streaming Analytics: Интеграција на Kafka за процесирање на настани во реално време, што би ја заменило потребата од периодично ре-енкодирање на коментарите.
---
5. Заклучок
Проектот VidiDB претставува успешна симбиоза на академските знаења од предметот Напредни бази на податоци и индустриските стандарди за развој на софтвер. Системот е целосно функционален, оптимизиран за големи обемови на податоци и подготвен за надградба со нови функционалности.
Тим:
- Дамјан Димовски (231166)
- Кристијан Атанасов (231063)
[Image of database architecture diagram]
