Израда и оптимизација база података – примери рада

Ови примери приказују различите врсте рада које обухвата моја услуга израде, оптимизације и миграције база података: пројектовање структуре, убрзавање PostgreSQL-а, напредне MySQL упите и процедуре, аутоматизовану обраду података и постављање SQL Server окружења.

База такмичара, резултата и купова

Реализовано у другом кварталу 2023, уз допуне у другом кварталу 2024.

База такмичара, трка и резултата повезана са Joomla модулима

Проблем

Савез за пливање на отвореним водама Србије водио је такмичења на постојећем Joomla сајту, а подаци о такмичарима, тркама, резултатима и куповима нису били повезани у једну целину. Пријаве такмичара, бодовање и приказ претходних и текућих такмичења захтевали су ручни рад, а дипломе и обавештења припремали су се посебно.

Решење

Циљ је био да се направи база података која омогућава ефикасно управљање такмичењима, резултатима и свим повезаним информацијама, и да се она уклопи у постојећи Joomla сајт кроз модуле направљене по мери:

  • база података за такмичаре, трке, резултате, купове и остале повезане евиденције;
  • Joomla модули за приказ резултата, бодовање, записнике и извештаје;
  • побољшан део за пријаве такмичара за предстојеће трке;
  • HTML шаблони за дипломе и е-поруке;
  • интеграција са постојећом Joomla инсталацијом, без преласка на нови сајт;
  • повезивање са ЦацаТајка системом за управљање подацима.

Коришћене технологије

Резултат

Бодовање је аутоматизовано кроз повезане базе података, пријаве за трке су побољшане, а претходна и текућа такмичења приказују се на сајту из истих података.

Утисак клијента

★★★★★5/5

„Дејан Дозет нам је радио на сајту Савеза за пливање на отвореним водама Србије, побољшања у делу пријава такмичара за предстојеће трке, као и укупну аутоматизацију бодовања кроз повезивање база података и приказе претходних и текућих такмичења. Све похвале за урађено, као и за преданост и професионалност у раду!”


Оптимизација PostgreSQL базе

Реализовано у трећем кварталу 2022, уз допуне у четвртом кварталу 2022.

Проблем

Компанија клијента користила је PostgreSQL базу прилагођену својим посебним оперативним потребама. Функционално је све било на нивоу, али су брзина и одзив остављали много да се пожели. База се налазила на наменском серверу, а застоји у току рада постајали су све приметнији проблем.

Решење

Циљ је био да се задрже све постојеће функције и изглед система, а да се побољшају брзина и одзив:

  • анализа перформанси: дијагностичким алатима намењеним PostgreSQL-у пронађени су делови система који изазивају успорење;
  • оптимизација SQL упита: пречишћени су сложени упити, а кључне колоне су индексиране, како би се подаци брже добијали;
  • подешавања на нивоу сервера: PostgreSQL конфигурација на наменском серверу прилагођена је оптималном раду базе;
  • измене архитектуре података: урађене су циљане промене у структури података, без ометања основне функционалности;
  • доследан изглед: сва унапређења урађена су у позадини, док је интерфејс који корисници виде остао исти.

Коришћене технологије

  • PostgreSQL: релациона база података која је оптимизована.
  • PgAdmin и други дијагностички алати: анализа перформанси и оптимизација.
  • Алати за конфигурацију сервера: фино подешавање наменског сервера за PostgreSQL.

Резултат

База је оптимизована на нивоу упита, индекса, структуре и сервера, а корисници су задржали исти интерфејс и исти начин рада.


MySQL упити и процедуре за науку о подацима

Реализовано у четвртом кварталу 2022, уз допуне у трећем кварталу 2023.

Проблем

Клијент развија апликацију за науку о подацима која анализира учинак објеката у краткорочном издавању за одмор, са крајњим циљем да предвиди који типови кућа доносе најбоље резултате. Инжењерски тим, предвођен оснивачем компаније који је и сам инжењер база података, тражио је додатну помоћ за напредне упите и за посао који тим није стизао да уради. Опис задатака наговештавао је и сложеније захтеве.

Решење

Циљ је био да се апликација унапреди напредним MySQL упитима и процедурама који омогућавају дубљи увид у учинак објеката и припрему података за предикције:

  • ускладиштене процедуре које CTE Update упитима разврставају записе по учинку у квартиле и дециле;
  • ефикасни упити, писани заједно са пажљиво постављеним индексима, ради бољих перформанси;
  • статичке извештајне табеле, припремљене тако да их веб апликација чита великом брзином.

Коришћене технологије

  • MySQL: систем за управљање базом података у коме су направљени напредни упити, ускладиштене процедуре и оптимизација перформанси апликације.

Резултат

Апликација добија податке разврстане по учинку и извештајне табеле спремне за брзо читање, што је подлога за поређење објеката и предикције.


SQL статистика прихода у угоститељству

Реализовано у четвртом кварталу 2020, уз допуне у другом кварталу 2021.

Проблем

Клијент је имао месечне податке о приходима за више објеката, сложене по објекту и месецу, а требало је да их посматра по сезонама. Изазов је био да се подаци саберу и групишу тако да се месечни приходи поуздано сврстају у одговарајуће сезонске целине, уз сложеније детаље који у опису посла нису били изричито наведени.

Решење

Циљ је био да се направи SQL процедура која разврстава и сабира месечне приходе у сезонске категорије и тако омогућава напреднију анализу:

  • груписање података: месечни приходи различитих објеката и месеци групишу се у заокружене сезонске блокове;
  • аутоматска обрада: процедура се извршава сама, без ручне интервенције, па се подаци стално ажурирају и анализирају;
  • прилагодљивост расту: процедура прихвата нове објекте и дуже периоде података.

Коришћене технологије

Резултат

Сезонска статистика добија се поновљивом обрадом која расте заједно са подацима, а клијент је задатке завршио како је планирао.

Утисак клијента

★★★★★5/5

„Дејан је непроцењив члан нашег тима, ради на сложеним упитима и процедурама у бази података. Завршили смо задатке које смо планирали и поново ћемо га ангажовати!”


Аутоматизовано постављање SQL Server-а

Реализовано у четвртом кварталу 2020, уз допуне у трећем кварталу 2021.

Проблем

Клијенту је било потребно да се SQL Server у издању за програмере поставља тихо, без ручног проласка кроз инсталационе екране, и да одмах буде спреман за рад: са укљученим SQL Server Agent-ом и направљеним профилом за слање поште из базе. Сервер је морао да буде доступан искључиво преко једне SQL аутентификације, а подаци за SMTP требало је да се унесу накнадно.

Решење

Направљена је C# скрипта која аутоматизује цео поступак постављања:

  • тиха инсталација SQL Server-а за програмере, у позадини и без ручних корака;
  • укључивање SQL Server Agent-а одмах при постављању;
  • Database Mail профил, направљен и спреман за накнадни унос SMTP података;
  • ограничен приступ: сервер је доступан само преко предвиђене SQL аутентификације.

Коришћене технологије

Резултат

SQL Server за развој поставља се на исти начин сваки пут, са укљученим агентом, припремљеним профилом за пошту и ограниченим приступом.


Издвојена студија: GeoPackage миграција у SQL Server

Миграција геопросторних података има посебну техничку и претраживачку намеру, па је остала засебна студија случаја. Развијена C# апликација преноси податке из GeoPackage (.gpkg) датотека, заснованих на SQLite-у, у Microsoft SQL Server уз обраду различитих геопросторних типова, проверу интегритета и евидентирање грешака.

Погледајте целу студију миграције GeoPackage базе у SQL Server.

Ако треба да пројектујете нову структуру, убрзате постојеће упите или безбедно пренесете податке, погледајте услугу израде и оптимизације база података.