Changes between Initial Version and Version 1 of AdvancedTopic


Ignore:
Timestamp:
05/29/26 17:59:31 (3 weeks ago)
Author:
231101
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AdvancedTopic

    v1 v1  
     1= Напредна тема
     2
     3== Вовед
     4
     5Во рамки на проектот Universal Library Management System 2026, во шестата фаза беше имплементирана напредна техника за оптимизација на базата на податоци – партиционирање (Partitioning). Оваа фаза овозможува подобрување на перформансите, организацијата и скалабилноста на системот, особено при работа со големи количини податоци.
     6Библиотечните системи секојдневно обработуваат огромен број информации поврзани со позајмување книги, резервации, казни, членства и локации. Со текот на времето, табелите стануваат сè поголеми, што може да доведе до забавување на пребарувањата, обработката и извршувањето на SQL операции. Поради тоа, беше избрана техниката partitioning како современо решение за организација и оптимизација на податоците.
     7
     8
     9== Цел на имплементацијата
     10
     11Главната цел на оваа фаза беше:
     12• оптимизација на перформансите,
     13• побрзо пребарување и филтрирање на податоци,
     14• подобра организација на табелите,
     15• олеснето одржување на базата,
     16• подобрување на скалабилноста на системот,
     17• подготовка на системот за работа со многу големи количини податоци во иднина.
     18Со партиционирањето, системот станува поефикасен и поспремен за реална продукциска околина.
     19
     20
     21== Имплементирани типови на партиционирање
     22
     23
     24Во проектот беа имплементирани два различни типа на partitioning:
     25'''1. RANGE Partitioning'''
     26Овој тип на partitioning се користи кога податоците се делат според одреден опсег на вредности, најчесто датуми.
     27
     28'''Табела borrowing_new'''
     29
     30Табелата borrowing_new беше партиционирана според колоната borrow_date.
     31Секоја партиција содржи записи за една календарска година:
     32• borrowing_2015
     33• borrowing_2016
     34• ...
     35• borrowing_2027
     36На овој начин, кога се пребаруваат податоци за одредена година, системот пристапува само до конкретната партиција наместо до целата табела.
     37
     38'''Предности'''
     39
     40
     41• значително побрзо пребарување по датум,
     42• подобра организација на историски податоци,
     43• намалување на времето за извршување на queries,
     44• полесно архивирање на постари податоци.
     45
     46'''Табела reservation_new'''
     47
     48Исто така беше применет RANGE partitioning и кај табелата reservation_new, според колоната requested_date.
     49Резервациите беа поделени по години:
     50• reservation_2015
     51• reservation_2016
     52• ...
     53• reservation_2027
     54Со ова се подобрува обработката на резервации и анализа на податоците по временски периоди.
     55
     56== 2. LIST Partitioning
     57
     58
     59LIST partitioning се користи кога податоците се делат според однапред дефинирани вредности.
     60
     61
     62'''Табела fine_new'''
     63
     64Табелата fine_new беше партиционирана според fee_type_id.
     65Секоја партиција претставува различен тип на казна:
     66• членарина,
     67• резервација,
     68• доцнење,
     69• оштетена книга,
     70• изгубена книга.
     71
     72
     73Партициите се:
     74• fine_membership
     75• fine_reservation
     76• fine_late_return
     77• fine_damaged
     78• fine_lost
     79'''Предности'''
     80
     81
     82• побрзо филтрирање по тип на казна,
     83• подобра организација на финансиските записи,
     84• поефикасна статистичка анализа,
     85• олеснето одржување на системот.
     86
     87'''Табела location_new'''
     88
     89Кај табелата location_new беше имплементирано LIST partitioning според колоната floor.
     90Секоја партиција претставува одреден кат во библиотеката:
     91• location_floor_1
     92• location_floor_2
     93• location_floor_3
     94• location_floor_4
     95• location_floor_5
     96
     97
     98'''Предности'''
     99
     100• подобра организација на физичките локации,
     101• побрзо пребарување книги по кат,
     102• подобра логичка распределба на податоците,
     103• поедноставено управување со библиотечните простории.
     104
     105
     106== Миграција на податоците
     107
     108
     109При имплементацијата на partitioning беше потребно да се изврши миграција на податоците од оригиналните табели во новокреираните partitioned табели.
     110Причината за ова е што во PostgreSQL постоечка табела која веќе содржи податоци не може директно да се конвертира во partitioned table со едноставна SQL наредба. Partitioning мора да биде дефиниран уште при самото креирање на табелата преку PARTITION BY.
     111Поради тоа беше применет следниот процес:
     1121. Креирање на нова parent partitioned табела.
     1132. Креирање на сите потребни partitions.
     1143. Миграција на податоците од оригиналната табела во новата partitioned структура.
     1154. Автоматско распределување на записите во соодветните partitions.
     116
     117
     118
     119== Придобивки од имплементацијата
     120
     121
     122Имплементацијата на partitioning овозможи повеќе значајни придобивки:
     123• Подобрување на перформансите
     124Системот пребарува само релевантна партиција наместо целата табела, што значително го намалува времето на извршување.
     125•Подобра скалабилност
     126Базата на податоци може да обработува многу поголем број записи без значително намалување на перформансите.
     127•Полесно одржување
     128Секоја партиција може индивидуално да се менаџира, backup-ира или архивира.
     129•Подобра организација
     130Податоците се логички групирани според: година, тип на казна, кат на библиотеката.
     131•Оптимизација на storage management
     132Се намалува непотребното скенирање на записи и се подобрува искористеноста на ресурсите.
     133
     134
     135
     136== Заклучок
     137
     138
     139Партиционирањето претставува напредна техника за оптимизација која значително ја подобрува ефикасноста на системот Universal Library Management System 2026. Со имплементацијата на RANGE и LIST partitioning, базата на податоци доби подобри перформанси, подобра организација и поголема скалабилност.
     140Оваа фаза покажува дека системот е дизајниран според современи принципи за работа со големи бази на податоци и е подготвен за понатамошно проширување и реална употреба.
     141
     142