<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Glosar on Ivan Luminaria</title><link>https://ivanluminaria.com/ro/glossary/</link><description>Recent content in Glosar on Ivan Luminaria</description><generator>Hugo</generator><language>ro</language><atom:link href="https://ivanluminaria.com/ro/glossary/index.xml" rel="self" type="application/rss+xml"/><item><title>Additive Measure</title><link>https://ivanluminaria.com/ro/glossary/additive-measure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/additive-measure/</guid><description>&lt;p&gt;O &lt;strong&gt;additive measure&lt;/strong&gt; (măsură aditivă) este o valoare numerică într-o fact table care poate fi sumată legitim de-a lungul oricărei dimensiuni: pe client, pe produs, pe perioadă, pe zonă.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Măsurile din fact table se clasifică în trei categorii:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aditive&lt;/strong&gt;: pot fi sumate de-a lungul tuturor dimensiunilor (ex. sumă vânzare, cantitate, cost). Cele mai comune și cele mai utile&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semi-aditive&lt;/strong&gt;: pot fi sumate de-a lungul unor dimensiuni dar nu de-a lungul timpului (ex. sold al unui cont: sumabil pe sucursală, nu pe lună)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Non-aditive&lt;/strong&gt;: nu pot fi sumate deloc (ex. procente, rapoarte, medii precalculate)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="la-ce-servește" class="relative group"&gt;La ce servește &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#la-ce-serve%c8%99te" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Măsurile aditive sunt inima fiecărei fact table deoarece permit agregările pe care business-ul le cere: totaluri pe perioadă, pe regiune, pe produs. Regula cheie: stochează întotdeauna valorile atomice (detaliul), niciodată agregatele. Dintr-o sumă pe linie de factură poți obține totalul lunar; din totalul lunar nu poți reconstitui liniile individuale.&lt;/p&gt;</description></item><item><title>AI Manager</title><link>https://ivanluminaria.com/ro/glossary/ai-manager/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/ai-manager/</guid><description>&lt;p&gt;&lt;strong&gt;AI Manager&lt;/strong&gt; este rolul profesional care guvernează introducerea și utilizarea inteligenței artificiale într-un proiect sau organizație. Nu este cel care folosește AI-ul — este cel care decide unde, cum și cu ce precauții să-l integreze în arhitecturile existente.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;AI Managerul răspunde la întrebări la care niciun model nu poate răspunde: unde AI-ul generează valoare reală și unde generează doar entuziasm? Cât costă menținerea lui, nu doar implementarea? Ce se întâmplă când modelul greșește? Cum se integrează cu arhitecturile mission-critical fără a le compromite stabilitatea?&lt;/p&gt;</description></item><item><title>ANALYZE</title><link>https://ivanluminaria.com/ro/glossary/postgresql-analyze/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/postgresql-analyze/</guid><description>&lt;p&gt;&lt;strong&gt;ANALYZE&lt;/strong&gt; este comanda PostgreSQL care colecteaza statistici despre distributia datelor in tabele si le stocheaza in catalogul &lt;code&gt;pg_statistic&lt;/code&gt; (citibil prin vizualizarea &lt;code&gt;pg_stats&lt;/code&gt;). Optimizatorul foloseste aceste statistici pentru a estima cardinalitatea — cate randuri va returna fiecare operatie — si a alege cel mai eficient plan de executie.&lt;/p&gt;
&lt;h2 id="ce-colecteaza" class="relative group"&gt;Ce colecteaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#ce-colecteaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Statisticile colectate de ANALYZE includ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Most common values&lt;/strong&gt;: valorile cele mai frecvente pentru fiecare coloana si procentul lor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Histograme de distributie&lt;/strong&gt;: cum sunt distribuite valorile ramase&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Numarul de valori distincte&lt;/strong&gt;: cate valori unice are fiecare coloana&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Procentul de NULL&lt;/strong&gt;: cate randuri au valoarea NULL pentru fiecare coloana&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Calitatea acestor statistici depinde de numarul de esantioane colectate, controlat de parametrul &lt;code&gt;default_statistics_target&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Anonymous User</title><link>https://ivanluminaria.com/ro/glossary/anonymous-user/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/anonymous-user/</guid><description>&lt;p&gt;&lt;strong&gt;Anonymous User&lt;/strong&gt; (utilizatorul anonim) este un cont MySQL/MariaDB cu username gol (&lt;code&gt;''@'localhost'&lt;/code&gt;) care este creat automat în timpul instalării. Nu are nume și adesea nu are parolă.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un utilizator se conectează, MySQL caută potrivirea cea mai specifică în tabelul &lt;code&gt;mysql.user&lt;/code&gt;. Utilizatorul anonim &lt;code&gt;''@'localhost'&lt;/code&gt; este mai specific decât &lt;code&gt;'mario'@'%'&lt;/code&gt; pentru o conexiune de pe localhost, deoarece &lt;code&gt;'localhost'&lt;/code&gt; bate &lt;code&gt;'%'&lt;/code&gt; în ierarhia specificității. În consecință, Mario care se conectează local este autentificat ca utilizator anonim și pierde toate privilegiile sale.&lt;/p&gt;</description></item><item><title>ASH</title><link>https://ivanluminaria.com/ro/glossary/ash/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/ash/</guid><description>&lt;p&gt;&lt;strong&gt;ASH&lt;/strong&gt; (Active Session History) este o componenta a Oracle Database care esantioneaza starea fiecarei sesiuni active o data pe secunda si stocheaza datele intr-un buffer circular in memorie (view-ul &lt;code&gt;V$ACTIVE_SESSION_HISTORY&lt;/code&gt;).&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;In fiecare secunda Oracle inregistreaza pentru fiecare sesiune activa:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQL-ul in executie (&lt;code&gt;SQL_ID&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Wait event-ul curent&lt;/li&gt;
&lt;li&gt;Programul si modulul apelant&lt;/li&gt;
&lt;li&gt;Planul de executie utilizat (&lt;code&gt;SQL_PLAN_HASH_VALUE&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Datele mai vechi sunt descarcate automat in tabelele AWR (&lt;code&gt;DBA_HIST_ACTIVE_SESS_HISTORY&lt;/code&gt;) si pastrate pentru perioada configurata.&lt;/p&gt;</description></item><item><title>Authentication Plugin</title><link>https://ivanluminaria.com/ro/glossary/authentication-plugin/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/authentication-plugin/</guid><description>&lt;p&gt;Un &lt;strong&gt;Authentication Plugin&lt;/strong&gt; este modulul pe care MySQL sau MariaDB îl folosește pentru a verifica credențialele unui utilizator la momentul conexiunii. Fiecare utilizator din sistem este asociat cu un plugin specific care determină cum parola este hashată, transmisă și verificată.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Plugin-urile principale sunt: &lt;code&gt;mysql_native_password&lt;/code&gt; (implicit în MySQL 5.7 și MariaDB), care folosește un hash SHA1 dublu; &lt;code&gt;caching_sha2_password&lt;/code&gt; (implicit în MySQL 8.0+), care folosește SHA-256 cu caching pentru îmbunătățirea securității și performanței. Când un client se conectează, trebuie să suporte plugin-ul utilizatorului la care încearcă să se autentifice.&lt;/p&gt;</description></item><item><title>Autovacuum</title><link>https://ivanluminaria.com/ro/glossary/autovacuum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/autovacuum/</guid><description>&lt;p&gt;&lt;strong&gt;Autovacuum&lt;/strong&gt; este un daemon PostgreSQL care rulează automat VACUUM și ANALYZE pe tabele când numărul de dead tuples depășește un prag calculat ca: &lt;code&gt;threshold + scale_factor × n_live_tup&lt;/code&gt;. Cu valorile implicite (threshold=50, scale_factor=0.2), pe o tabelă cu 10 milioane de rânduri se activează după 2 milioane de dead tuples.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Daemon-ul verifică periodic &lt;code&gt;pg_stat_user_tables&lt;/code&gt; și lansează un worker pentru fiecare tabelă care depășește pragul. Numărul maxim de workeri simultani este controlat de &lt;code&gt;autovacuum_max_workers&lt;/code&gt; (implicit 3). Parametrul &lt;code&gt;autovacuum_vacuum_cost_delay&lt;/code&gt; controlează cât se autofrânează vacuum-ul pentru a nu supraîncărca I/O-ul.&lt;/p&gt;</description></item><item><title>AWR</title><link>https://ivanluminaria.com/ro/glossary/awr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/awr/</guid><description>&lt;p&gt;&lt;strong&gt;AWR&lt;/strong&gt; (Automatic Workload Repository) este o componenta integrata in Oracle Database care colecteaza automat statistici de performanta ale sistemului la intervale regulate (implicit la fiecare 60 de minute) si le pastreaza pentru o perioada configurabila.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;AWR captureaza snapshot-uri periodice care includ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Statistici ale sesiunilor si wait events&lt;/li&gt;
&lt;li&gt;Metrici SQL (top SQL dupa timp de executie, I/O, CPU)&lt;/li&gt;
&lt;li&gt;Statistici ale structurilor de memorie (SGA, PGA)&lt;/li&gt;
&lt;li&gt;Statistici I/O per datafile si tablespace&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="la-ce-serveste" class="relative group"&gt;La ce serveste &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#la-ce-serveste" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Raportul AWR este instrumentul principal pentru diagnosticarea problemelor de performanta in Oracle. Comparand doua snapshot-uri se pot identifica:&lt;/p&gt;</description></item><item><title>B-Tree</title><link>https://ivanluminaria.com/ro/glossary/b-tree/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/b-tree/</guid><description>&lt;p&gt;&lt;strong&gt;B-Tree&lt;/strong&gt; (Balanced Tree) este cea mai comună structură de date pentru indexuri în bazele de date relaționale și este tipul implicit de index în PostgreSQL, MySQL și Oracle. Menține datele sortate într-o structură de arbore echilibrat care garantează timpi de căutare logaritmici.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un B-Tree organizează cheile în noduri sortate, cu fiecare nod conținând pointeri către noduri copil. Căutarea pornește de la rădăcină și coboară către frunze, înjumătățind spațiul de căutare la fiecare nivel. Pentru o tabelă cu 6 milioane de rânduri, un B-Tree necesită tipic 3-4 nivele de adâncime, adică 3-4 citiri de pagină pentru a găsi o valoare.&lt;/p&gt;</description></item><item><title>Bicicletă Pliabilă</title><link>https://ivanluminaria.com/ro/glossary/bicicletta-pieghevole/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/bicicletta-pieghevole/</guid><description>&lt;p&gt;O &lt;strong&gt;Bicicletă Pliabilă&lt;/strong&gt; este o bicicletă proiectată să se plieze în dimensiuni compacte (de obicei 60×55×25 cm) în câteva secunde, devenind transportabilă ca un bagaj. Brompton este cel mai cunoscut model, cu mecanism de pliere în 10-20 secunde.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un sistem de balamale și eliberări rapide permite plierea cadrului, ghidonului și pedalelor într-un pachet compact. Odată pliată, merge la birou sub birou, în metrou sau în portbagaj. În versiunea electrică, combină avantajele pedalării asistate cu portabilitatea totală.&lt;/p&gt;</description></item><item><title>Binary log</title><link>https://ivanluminaria.com/ro/glossary/binary-log/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/binary-log/</guid><description>&lt;p&gt;&lt;strong&gt;Binary log-ul&lt;/strong&gt; (sau binlog) este un registru secvențial în format binar în care MySQL scrie toate evenimentele care modifică datele: INSERT, UPDATE, DELETE și operațiuni DDL. Fișierele sunt numerotate progresiv (&lt;code&gt;mysql-bin.000001&lt;/code&gt;, &lt;code&gt;mysql-bin.000002&lt;/code&gt;, etc.) și gestionate printr-un fișier index.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;De la MySQL 8.0, binary log-ul este activat implicit prin parametrul &lt;code&gt;log_bin&lt;/code&gt;. MySQL creează un nou fișier binlog când serverul pornește, când fișierul curent atinge &lt;code&gt;max_binlog_size&lt;/code&gt;, sau când se execută &lt;code&gt;FLUSH BINARY LOGS&lt;/code&gt;. Suportă trei formate de înregistrare: STATEMENT (înregistrează instrucțiunile SQL), ROW (înregistrează modificările la nivel de rând) și MIXED (alegere automată).&lt;/p&gt;</description></item><item><title>Bloat</title><link>https://ivanluminaria.com/ro/glossary/bloat/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/bloat/</guid><description>&lt;p&gt;&lt;strong&gt;Bloat&lt;/strong&gt; este acumularea de spațiu mort în cadrul unei tabele sau index PostgreSQL, cauzată de dead tuples care nu au fost încă eliminate de VACUUM. O tabelă cu 50% bloat ocupă de două ori spațiul necesar și forțează scanările secvențiale să citească de două ori mai multe pagini.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Bloat-ul se măsoară comparând dimensiunea efectivă a tabelei cu dimensiunea așteptată bazată pe rândurile vii. Extensia &lt;code&gt;pgstattuple&lt;/code&gt; oferă câmpul &lt;code&gt;dead_tuple_percent&lt;/code&gt;. Un bloat peste 20-30% este un semnal de alarmă; peste 50% este o urgență.&lt;/p&gt;</description></item><item><title>Branch</title><link>https://ivanluminaria.com/ro/glossary/branch/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/branch/</guid><description>&lt;p&gt;Un &lt;strong&gt;Branch&lt;/strong&gt; (ramură) este o linie de dezvoltare independentă într-un repository Git. Fiecare branch conține o copie a codului pe care se poate lucra fără a afecta branch-ul principal (main) sau munca altor dezvoltatori.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un dezvoltator creează un branch (ex. &lt;code&gt;fix/issue-234-eroare-calcul&lt;/code&gt;), Git creează un pointer la versiunea curentă a codului. Din acel moment, modificările făcute pe branch rămân izolate. La finalul lucrului, modificările se propun echipei prin Pull Request și, după aprobare, se unesc (merge) în branch-ul principal.&lt;/p&gt;</description></item><item><title>Brompton</title><link>https://ivanluminaria.com/ro/glossary/brompton/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/brompton/</guid><description>&lt;p&gt;&lt;strong&gt;Brompton&lt;/strong&gt; este o bicicletă pliabilă fabricată la Londra din 1975, considerată referința mondială în categoria sa. Se pliază în 10-20 secunde atingând dimensiuni de aproximativ 58×56×27 cm — suficient de compactă pentru a încăpea sub un birou sau în portbagajul unei mașini mici.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Mecanismul brevetat permite plierea bicicletei în trei mișcări: cadru, ghidon și șa. În versiunea electrică (Brompton Electric), un motor în butucul frontal oferă pedalare asistată până la 25 km/h cu o autonomie de 40-70 km. Bateria este detașabilă și se încarcă în 4 ore.&lt;/p&gt;</description></item><item><title>BYOL</title><link>https://ivanluminaria.com/ro/glossary/byol/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/byol/</guid><description>&lt;p&gt;&lt;strong&gt;BYOL&lt;/strong&gt; (Bring Your Own License) este un program Oracle care permite organizatiilor sa transfere licentele software achizitionate pentru infrastructura on-premises catre Oracle Cloud Infrastructure (OCI), fara a fi nevoie sa achizitioneze licente cloud noi.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Cand o organizatie detine deja licente Oracle — de obicei Enterprise Edition cu optiuni precum RAC, Data Guard sau Partitioning — le poate &amp;ldquo;lua cu sine&amp;rdquo; in migrarea catre OCI. Contractul de suport (Software Update License &amp;amp; Support) se mentine, iar licentele sunt asociate resurselor cloud in locul serverelor fizice.&lt;/p&gt;</description></item><item><title>Carbon Footprint</title><link>https://ivanluminaria.com/ro/glossary/carbon-footprint/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/carbon-footprint/</guid><description>&lt;p&gt;&lt;strong&gt;Carbon Footprint&lt;/strong&gt; (amprenta de carbon) este cantitatea totală de gaze cu efect de seră — în principal CO₂ — emise direct sau indirect de o activitate, produs sau individ, exprimată în tone de CO₂ echivalent.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Pentru navetismul urban, calculul este direct: o mașină blocată în traficul din Roma produce în medie 120-150 g de CO₂ pe kilometru. În trafic congestionat chiar mai mult, pentru că motorul funcționează în gol consumând fără a se deplasa. O bicicletă produce zero emisii directe.&lt;/p&gt;</description></item><item><title>CDC</title><link>https://ivanluminaria.com/ro/glossary/cdc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/cdc/</guid><description>&lt;p&gt;&lt;strong&gt;CDC&lt;/strong&gt; (Change Data Capture) este o tehnică pentru interceptarea modificărilor de date (INSERT, UPDATE, DELETE) în momentul în care au loc și propagarea lor către alte sisteme în timp real sau aproape real. Spre deosebire de abordările batch tradiționale (ETL periodic), CDC captează modificările în mod continuu și incremental.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Cea mai răspândită abordare este &lt;strong&gt;log-based CDC&lt;/strong&gt;: o componentă externă citește log-urile de tranzacții ale bazei de date (binary log în MySQL, WAL în PostgreSQL, redo log în Oracle) și convertește evenimentele într-un flux de date consumabil de alte sisteme. Instrumente precum Debezium, Maxwell și Canal implementează această abordare pentru MySQL citind direct binary log-urile.&lt;/p&gt;</description></item><item><title>Cheie surogat</title><link>https://ivanluminaria.com/ro/glossary/chiave-surrogata/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/chiave-surrogata/</guid><description>&lt;p&gt;&lt;strong&gt;Cheia surogat&lt;/strong&gt; (surrogate key) este un identificator numeric secvențial generat intern de data warehouse, fără nicio semnificație de business. Este distinctă de cheia naturală — cea care vine din sistemul sursă (ex. codul clientului, numărul de angajat).&lt;/p&gt;
&lt;h2 id="de-ce-este-necesară" class="relative group"&gt;De ce este necesară &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#de-ce-este-necesar%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În SCD Tip 2, același client poate avea mai multe linii în tabela dimensională — câte una pentru fiecare versiune istorică. Cheia naturală (&lt;code&gt;client_id&lt;/code&gt;) nu mai este unică, deci este nevoie de un identificator care să distingă fiecare versiune individuală: cheia surogat (&lt;code&gt;client_key&lt;/code&gt;).&lt;/p&gt;</description></item><item><title>Churn</title><link>https://ivanluminaria.com/ro/glossary/churn/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/churn/</guid><description>&lt;p&gt;&lt;strong&gt;Churn-ul&lt;/strong&gt; unei tabele este măsura a cât de mult se modifică datele sale după inserare. O tabelă cu churn ridicat suportă frecvente UPDATE-uri și DELETE-uri; o tabelă cu churn scăzut este predominant append-only (doar INSERT).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În PostgreSQL, fiecare UPDATE creează o versiune nouă a rândului (datorită modelului MVCC) iar versiunea veche devine un dead tuple. DELETE-urile creează de asemenea dead tuples. Cu cât churn-ul este mai mare, cu atât mai multă muncă trebuie să facă VACUUM și indexurile pentru a menține performanța. Un index GIN pe o tabelă cu churn ridicat poate degrada semnificativ performanța la scriere.&lt;/p&gt;</description></item><item><title>COALESCE</title><link>https://ivanluminaria.com/ro/glossary/coalesce/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/coalesce/</guid><description>&lt;p&gt;&lt;strong&gt;COALESCE&lt;/strong&gt; este o funcție SQL standard care acceptă o listă de expresii și returnează prima care nu este NULL. Dacă toate expresiile sunt NULL, returnează NULL.&lt;/p&gt;
&lt;h2 id="sintaxă" class="relative group"&gt;Sintaxă &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#sintax%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;COALESCE&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;expresie1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie3&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;...)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Echivalent cu un lanț de CASE WHEN:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;CASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;IS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie1&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie2&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;IS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie2&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;WHEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;IS&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;expresie3&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ELSE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NULL&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;END&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="utilizare-în-ierarhii" class="relative group"&gt;Utilizare în ierarhii &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#utilizare-%c3%aen-ierarhii" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În contextul ragged hierarchies, COALESCE este adesea folosită pentru a completa nivelurile lipsă:&lt;/p&gt;</description></item><item><title>Code Review</title><link>https://ivanluminaria.com/ro/glossary/code-review/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/code-review/</guid><description>&lt;p&gt;&lt;strong&gt;Code Review&lt;/strong&gt; este practica prin care un coleg examinează codul scris de un alt dezvoltator înainte ca acesta să fie incorporat în branch-ul principal. Pe GitHub are loc în interiorul Pull Request-urilor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Dezvoltatorul deschide un Pull Request cu modificările sale. Un reviewer atribuit examinează diff-ul codului, lasă comentarii, sugerează îmbunătățiri și în final aprobă sau cere modificări. Procesul este asincron: nu sunt necesare ședințe, review-ul are loc pe instrument. Doar după aprobare codul se fuzionează în branch-ul principal.&lt;/p&gt;</description></item><item><title>Compliance</title><link>https://ivanluminaria.com/ro/glossary/compliance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/compliance/</guid><description>&lt;p&gt;&lt;strong&gt;Compliance&lt;/strong&gt; (conformitate normativă) este aderarea unei organizații la legile, reglementările și standardele de sector aplicabile activității sale. În contextul AI, include GDPR, reglementări bancare (SOX, PCI-DSS), reglementări sanitare și politici interne privind utilizarea datelor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Conformitatea se verifică prin audituri, controale documentare și monitorizare continuă. Pentru proiectele AI, necesită trasabilitatea datelor folosite pentru training, documentarea deciziilor automatizate și capacitatea de a explica cum a ajuns modelul la un anumit output (explainability).&lt;/p&gt;</description></item><item><title>CTAS</title><link>https://ivanluminaria.com/ro/glossary/ctas/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/ctas/</guid><description>&lt;p&gt;&lt;strong&gt;CTAS&lt;/strong&gt; (Create Table As Select) este o comandă SQL Oracle care creează o tabelă nouă și o populează într-o singură operație cu rezultatele unui SELECT. Este tehnica standard pentru migrarea datelor de la o structură la alta pe tabele de dimensiuni mari.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Comanda combină DDL și DML: creează tabela cu structura derivată din SELECT și inserează datele într-un singur pas. Cu hint-ul &lt;code&gt;PARALLEL&lt;/code&gt; și modul &lt;code&gt;NOLOGGING&lt;/code&gt;, copierea a sute de GB se poate completa în câteva ore. După copiere, tabela originală se redenumește, cea nouă îi ia locul, iar downtime-ul se limitează la cele câteva secunde ale redenumirii.&lt;/p&gt;</description></item><item><title>Cutover</title><link>https://ivanluminaria.com/ro/glossary/cutover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/cutover/</guid><description>&lt;p&gt;&lt;strong&gt;Cutover-ul&lt;/strong&gt; este momentul in care un sistem de productie este mutat de pe infrastructura veche pe cea noua. Este faza cea mai vizibila a unei migrari — cea pe care toata lumea si-o aminteste, in bine sau in rau.&lt;/p&gt;
&lt;h2 id="anatomia-unui-cutover" class="relative group"&gt;Anatomia unui cutover &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#anatomia-unui-cutover" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un cutover bine planificat urmeaza un runbook detaliat cu pasi numerotati, timpi estimati, criterii de succes si proceduri de rollback pentru fiecare pas. Componentele tipice:&lt;/p&gt;</description></item><item><title>Daily Standup</title><link>https://ivanluminaria.com/ro/glossary/daily-standup/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/daily-standup/</guid><description>&lt;p&gt;&lt;strong&gt;Daily Standup&lt;/strong&gt; este o ședință zilnică scurtă (maximum 15 minute) în care fiecare membru al echipei răspunde la trei întrebări: ce am făcut ieri, ce voi face azi, mă blochează ceva. Scopul este sincronizarea echipei, nu rezolvarea problemelor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare persoană are aproximativ două minute pentru actualizarea sa. Problemele sunt semnalate dar nu discutate: rezolvarea are loc după, între persoanele implicate. Constrângerea temporală este ceea ce face standup-ul eficient — fără ea, degenerează într-o ședință de status de 45 de minute.&lt;/p&gt;</description></item><item><title>Data Governance</title><link>https://ivanluminaria.com/ro/glossary/data-governance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/data-governance/</guid><description>&lt;p&gt;&lt;strong&gt;Data Governance&lt;/strong&gt; este setul de politici, procese, roluri și standarde pe care o organizație le adoptă pentru a garanta că datele sale sunt corecte, sigure, conforme cu reglementările și utilizate în mod coerent.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Definește cine este responsabil de date (data owner, data steward), ce reguli de calitate se aplică, cum se clasifică datele după sensibilitate și cum se trasează proveniența lor (data lineage). Într-un context AI, include și verificarea provenienței și calității datelor folosite pentru training-ul modelelor.&lt;/p&gt;</description></item><item><title>Data Guard</title><link>https://ivanluminaria.com/ro/glossary/data-guard/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/data-guard/</guid><description>&lt;p&gt;&lt;strong&gt;Data Guard&lt;/strong&gt; este tehnologia Oracle care mentine una sau mai multe copii sincronizate (standby) ale unei baze de date de productie (primar). Standby-ul primeste si aplica continuu redo log-urile generate de primar, ramanand aliniat in timp real sau aproape.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Primarul genereaza redo log-uri cu fiecare tranzactie. Aceste log-uri sunt transmise standby-ului prin retea, unde sunt aplicate in doua moduri posibile:&lt;/p&gt;</description></item><item><title>Data Warehouse</title><link>https://ivanluminaria.com/ro/glossary/data-warehouse/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/data-warehouse/</guid><description>&lt;p&gt;Un &lt;strong&gt;Data Warehouse&lt;/strong&gt; (DWH) este un sistem de stocare a datelor proiectat specific pentru analiză, raportare și suport al deciziilor de afaceri. Spre deosebire de bazele de date operaționale (OLTP), un DWH colectează date din surse multiple, le transformă și le organizează în structuri optimizate pentru interogări analitice.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Datele sunt extrase din sistemele sursă (aplicații de gestiune, CRM, ERP), transformate prin procese ETL care le curăță, normalizează și îmbogățesc, și în final încărcate în DWH. Modelul de date tipic este star schema: o tabelă de fapte centrală cu măsurile numerice conectată la tabele dimensionale care descriu contextul (timp, client, produs, geografie).&lt;/p&gt;</description></item><item><title>Dead Tuple</title><link>https://ivanluminaria.com/ro/glossary/dead-tuple/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/dead-tuple/</guid><description>&lt;p&gt;Un &lt;strong&gt;Dead Tuple&lt;/strong&gt; este un rând într-o tabelă PostgreSQL care a fost actualizat (UPDATE) sau șters (DELETE) dar nu a fost încă eliminat fizic. Rămâne în paginile de date, ocupând spațiu pe disc și încetinind scanările.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când PostgreSQL execută un UPDATE, nu suprascrie rândul original: creează o versiune nouă și o marchează pe cea veche ca &amp;ldquo;moartă.&amp;rdquo; Rândul vechi rămâne fizic în pagina de date până când VACUUM îl curăță. Dead tuple-urile sunt prețul modelului MVCC — necesare pentru a garanta izolarea tranzacțională.&lt;/p&gt;</description></item><item><title>DEFAULT PRIVILEGES</title><link>https://ivanluminaria.com/ro/glossary/default-privileges/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/default-privileges/</guid><description>&lt;p&gt;&lt;strong&gt;DEFAULT PRIVILEGES&lt;/strong&gt; este un mecanism PostgreSQL care permite definirea în avans a privilegiilor ce vor fi atribuite automat tuturor obiectelor viitoare create într-o schemă. Se configurează cu comanda &lt;code&gt;ALTER DEFAULT PRIVILEGES&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Comanda &lt;code&gt;ALTER DEFAULT PRIVILEGES IN SCHEMA schema1 GRANT SELECT ON TABLES TO srv_monitorizare&lt;/code&gt; face ca fiecare tabelă nouă creată în &lt;code&gt;schema1&lt;/code&gt; să fie automat citibilă de &lt;code&gt;srv_monitorizare&lt;/code&gt;. Fără această configurare, tabelele viitoare ar necesita un GRANT manual de fiecare dată.&lt;/p&gt;</description></item><item><title>default_statistics_target</title><link>https://ivanluminaria.com/ro/glossary/postgresql-default-statistics-target/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/postgresql-default-statistics-target/</guid><description>&lt;p&gt;&lt;strong&gt;default_statistics_target&lt;/strong&gt; este parametrul PostgreSQL care defineste numarul de esantioane colectate de comanda &lt;code&gt;ANALYZE&lt;/code&gt; pentru a construi statisticile fiecarei coloane. Valoarea implicita este 100.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;PostgreSQL esantioneaza un anumit numar de valori pentru fiecare coloana si le foloseste pentru a construi doua structuri:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Most common values (MCV)&lt;/strong&gt;: lista valorilor celor mai frecvente, cu frecventele respective&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Histograma&lt;/strong&gt;: distributia valorilor ramase, impartita in bucket-uri de populatie egala&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Parametrul &lt;code&gt;default_statistics_target&lt;/code&gt; determina cate elemente vor avea aceste structuri. Cu valoarea implicita de 100, histograma va avea 100 de bucket-uri si lista MCV va contine pana la 100 de valori.&lt;/p&gt;</description></item><item><title>Directiva 2011/7/UE</title><link>https://ivanluminaria.com/ro/glossary/direttiva-2011-7-ue/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/direttiva-2011-7-ue/</guid><description>&lt;p&gt;&lt;strong&gt;Directiva 2011/7/UE&lt;/strong&gt; este reglementarea europeană privind întârzierile la plată în tranzacțiile comerciale. Stabilește reguli clare: termen standard de 30 de zile, maxim 60 între întreprinderi (cu acord explicit), 30 pentru administrația publică, și dobânzi de întârziere automate la rata BCE + 8%.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Directiva a fost transpusă în dreptul italian prin D.Lgs. 231/2002 (modificat în 2012). Pe hârtie regulile există: 30 de zile standard, dobânzi automate, compensație forfetară de 40€ per factură plătită cu întârziere. În practica italiană e ca și cum n-ar exista — DSO-ul mediu italian este de 80 de zile, mult peste maximul de 60.&lt;/p&gt;</description></item><item><title>Dobânzi de Întârziere</title><link>https://ivanluminaria.com/ro/glossary/interessi-di-mora/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/interessi-di-mora/</guid><description>&lt;p&gt;&lt;strong&gt;Dobânzile de Întârziere&lt;/strong&gt; sunt dobânzile care se acumulează automat pe fiecare factură plătită cu întârziere față de termenul contractual. Conform D.Lgs. 231/2002 italian (transpunerea Directivei UE 2011/7/UE), rata este egală cu rata BCE + 8 puncte procentuale, fără necesitatea unei somații formale.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Din ziua următoare scadenței facturii, dobânzile se acumulează automat. Creditorul are dreptul și la o compensație forfetară de 40€ pentru fiecare factură plătită cu întârziere, pentru cheltuielile de recuperare. Nu este necesară trimiterea unei somații — dreptul se naște din lege.&lt;/p&gt;</description></item><item><title>Drill-down</title><link>https://ivanluminaria.com/ro/glossary/drill-down/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/drill-down/</guid><description>&lt;p&gt;&lt;strong&gt;Drill-down-ul&lt;/strong&gt; este operațiunea de navigare în rapoarte care permite trecerea de la un nivel agregat la un nivel de detaliu mai mare, coborând de-a lungul unei ierarhii.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-o ierarhie Top Group → Group → Client:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Se pornește de la nivelul cel mai înalt: cifra de afaceri totală pe Top Group&lt;/li&gt;
&lt;li&gt;Se face clic pe un Top Group pentru a vedea Group-urile sale (drill-down de primul nivel)&lt;/li&gt;
&lt;li&gt;Se face clic pe un Group pentru a vedea Clienții individuali (drill-down de al doilea nivel)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Operațiunea inversă — revenirea de la detaliu la agregat — se numește &lt;strong&gt;drill-up&lt;/strong&gt; (sau roll-up).&lt;/p&gt;</description></item><item><title>DSO</title><link>https://ivanluminaria.com/ro/glossary/dso/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/dso/</guid><description>&lt;p&gt;&lt;strong&gt;DSO&lt;/strong&gt; (Days Sales Outstanding) este metrica care măsoară numărul mediu de zile pe care o companie le necesită pentru a-și încasa creanțele după emiterea facturii. Este indicatorul principal al vitezei de plată într-o piață.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Se calculează ca: &lt;code&gt;(Creanțe comerciale / Venituri) × Zile din perioadă&lt;/code&gt;. Un DSO de 30 înseamnă că în medie clienții plătesc într-o lună. În Italia DSO-ul mediu este de 80 de zile conform European Payment Report — aproape de trei ori media nordului Europei (24-27 zile).&lt;/p&gt;</description></item><item><title>ETL</title><link>https://ivanluminaria.com/ro/glossary/etl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/etl/</guid><description>&lt;p&gt;&lt;strong&gt;ETL&lt;/strong&gt; (Extract, Transform, Load) este procesul fundamental prin care datele sunt mutate din sistemele sursa (baze de date operationale, fisiere, API-uri) in data warehouse.&lt;/p&gt;
&lt;h2 id="cele-trei-faze" class="relative group"&gt;Cele trei faze &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cele-trei-faze" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Extract&lt;/strong&gt;: extragerea datelor din sistemele sursa. Poate fi completa (full load) sau incrementala (doar date noi sau modificate)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transform&lt;/strong&gt;: curatarea, validarea, standardizarea si imbogatirea datelor. Aici se aplica regulile de business, lookup-urile pe dimensiuni, calculele derivate&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Load&lt;/strong&gt;: incarcarea datelor transformate in tabelele data warehouse-ului (fact si dimension)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="de-ce-este-critic" class="relative group"&gt;De ce este critic &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#de-ce-este-critic" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;ETL este partea cea mai putin vizibila dar cea mai critica a unui data warehouse. Daca datele sunt extrase incomplet, transformate cu reguli eronate sau incarcate fara verificari, tot ce sta deasupra — rapoarte, dashboard-uri, decizii — va fi gresit.&lt;/p&gt;</description></item><item><title>Exchange Partition</title><link>https://ivanluminaria.com/ro/glossary/exchange-partition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/exchange-partition/</guid><description>&lt;p&gt;&lt;strong&gt;Exchange Partition&lt;/strong&gt; este o operațiune DDL Oracle care permite schimbarea instantanee a conținutului unei partiții cu cel al unei tabele nepartiționate. Nu se mută niciun byte de date — operațiunea modifică doar pointerii din data dictionary.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Comanda &lt;code&gt;ALTER TABLE ... EXCHANGE PARTITION ... WITH TABLE ...&lt;/code&gt; modifică metadatele din data dictionary astfel încât segmentele fizice ale partiției și ale tabelei de staging să își schimbe proprietarul. Tabela de staging devine partiția și invers. Operațiunea durează mai puțin de o secundă indiferent de volumul datelor, deoarece nu implică nicio mișcare fizică.&lt;/p&gt;</description></item><item><title>Execution Plan</title><link>https://ivanluminaria.com/ro/glossary/execution-plan/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/execution-plan/</guid><description>&lt;p&gt;Un &lt;strong&gt;execution plan&lt;/strong&gt; (plan de executie) este secventa de operatii pe care baza de date o alege pentru a rezolva o interogare SQL. Cand scrii un SELECT cu JOIN-uri, filtre WHERE si sortari, optimizatorul evalueaza zeci de strategii posibile si alege una pe baza statisticilor disponibile.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Planul este reprezentat ca un arbore de noduri: fiecare nod este o operatie (scan, join, sort, aggregate) care primeste date de la nodurile copil si le transmite nodului parinte. In PostgreSQL se vizualizeaza cu &lt;code&gt;EXPLAIN&lt;/code&gt; (plan estimat) sau &lt;code&gt;EXPLAIN ANALYZE&lt;/code&gt; (plan real cu timpii efectivi si contoarele de randuri).&lt;/p&gt;</description></item><item><title>Facilitator</title><link>https://ivanluminaria.com/ro/glossary/facilitatore/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/facilitatore/</guid><description>&lt;p&gt;&lt;strong&gt;Facilitatorul&lt;/strong&gt; este persoana însărcinată cu ghidarea desfășurării unei ședințe. Nu este cel care decide — este cel care garantează că decizia se ia în mod ordonat, în timpul prevăzut și cu contribuția tuturor participanților.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Facilitatorul ține timpul, gestionează turele de cuvânt, taie discuțiile în afara subiectului (&amp;ldquo;o notez în parking lot, discutăm după&amp;rdquo;) și se asigură că standup-ul nu depășește 15 minute. Rolul poate fi fix sau prin rotație în echipă.&lt;/p&gt;</description></item><item><title>Fact table</title><link>https://ivanluminaria.com/ro/glossary/fact-table/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/fact-table/</guid><description>&lt;p&gt;&lt;strong&gt;Fact table&lt;/strong&gt; (tabela de fapte) este tabela centrală a unui star schema în data warehouse. Conține măsurile numerice — sume, cantități, contorizări, durate — și cheile externe care o conectează la tabelele dimensionale.&lt;/p&gt;
&lt;h2 id="structură" class="relative group"&gt;Structură &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#structur%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare linie din fact table reprezintă un eveniment sau o tranzacție de business: o vânzare, o daună, o expediere, un acces. Coloanele se împart în două categorii:&lt;/p&gt;</description></item><item><title>Float Financiar</title><link>https://ivanluminaria.com/ro/glossary/float-finanziario/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/float-finanziario/</guid><description>&lt;p&gt;&lt;strong&gt;Float-ul Financiar&lt;/strong&gt; este lichiditatea pe care o companie o generează din diferența dintre timpii de încasare de la clienții săi (mai scurți) și timpii de plată către furnizorii săi (mai lungi). Este efectiv un împrumut la cost zero obținut pe cheltuiala furnizorilor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;O firmă de consultanță încasează de la clientul final la 30 de zile dar plătește consultanții proprii la 90 de zile. Diferența de 60 de zile generează un float: pentru fiecare 100.000€ de venituri lunare, compania dispune de ~200.000€ de lichiditate gratuită pe care o poate investi sau folosi ca capital circulant.&lt;/p&gt;</description></item><item><title>FLUSH PRIVILEGES</title><link>https://ivanluminaria.com/ro/glossary/flush-privileges/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/flush-privileges/</guid><description>&lt;p&gt;&lt;strong&gt;FLUSH PRIVILEGES&lt;/strong&gt; este o comandă MySQL/MariaDB care forțează serverul să reîncarce în memorie tabelele de privilegii din baza de date &lt;code&gt;mysql&lt;/code&gt;. Face imediat efective modificările permisiunilor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;MySQL menține în memorie un cache al tabelelor de grant (&lt;code&gt;mysql.user&lt;/code&gt;, &lt;code&gt;mysql.db&lt;/code&gt;, &lt;code&gt;mysql.tables_priv&lt;/code&gt;). Când se folosesc &lt;code&gt;CREATE USER&lt;/code&gt; și &lt;code&gt;GRANT&lt;/code&gt;, MySQL actualizează atât tabelele cât și cache-ul automat. Dar dacă tabelele de grant sunt modificate direct cu &lt;code&gt;INSERT&lt;/code&gt;, &lt;code&gt;UPDATE&lt;/code&gt; sau &lt;code&gt;DELETE&lt;/code&gt;, cache-ul nu se actualizează. &lt;code&gt;FLUSH PRIVILEGES&lt;/code&gt; forțează reîncărcarea cache-ului din tabele.&lt;/p&gt;</description></item><item><title>Full Table Scan</title><link>https://ivanluminaria.com/ro/glossary/full-table-scan/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/full-table-scan/</guid><description>&lt;p&gt;&lt;strong&gt;Full Table Scan&lt;/strong&gt; (sau TABLE ACCESS FULL) este o operatie in care baza de date citeste toate blocurile de date ale unei tabele, de la inceput la sfarsit, fara a trece prin vreun index.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Oracle solicita blocuri de pe disc (sau din cache) in secventa, folosind citiri multi-bloc (&lt;code&gt;db file scattered read&lt;/code&gt;). Fiecare rand din tabela este examinat, indiferent daca indeplineste sau nu criteriile query-ului.&lt;/p&gt;</description></item><item><title>GIN Index</title><link>https://ivanluminaria.com/ro/glossary/gin-index/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/gin-index/</guid><description>&lt;p&gt;Un &lt;strong&gt;GIN Index&lt;/strong&gt; (Generalized Inverted Index) este un tip de index PostgreSQL proiectat pentru indexarea valorilor compuse: array-uri, documente JSONB, text cu trigrame și căutări full-text. Spre deosebire de B-Tree, un GIN creează un mapping inversat: de la fiecare element (cuvânt, trigramă, cheie JSON) la înregistrările care îl conțin.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Pentru fiecare valoare distinctă din datele indexate, GIN menține o listă de pointeri către rândurile care conțin acea valoare. În cazul &lt;code&gt;pg_trgm&lt;/code&gt;, textul este descompus în trigrame (secvențe de 3 caractere) și fiecare trigramă este indexată. O căutare &lt;code&gt;LIKE '%ABC%'&lt;/code&gt; este tradusă într-o intersecție de trigrame, evitând scanarea secvențială.&lt;/p&gt;</description></item><item><title>Grain</title><link>https://ivanluminaria.com/ro/glossary/grain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/grain/</guid><description>&lt;p&gt;&lt;strong&gt;Grain-ul&lt;/strong&gt; (granularitatea) este nivelul de detaliu al unei fact table într-un data warehouse. Definește ce reprezintă un singur rând: o tranzacție, un sumar zilnic, un total lunar, o linie de factură.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Alegerea grain-ului este prima decizie la proiectarea unei fact table. Toate celelalte decizii — măsuri, dimensiuni, ETL — decurg din ea:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Grain fin&lt;/strong&gt; (ex. linie de factură): flexibilitate maximă în interogări, mai multe rânduri de gestionat&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grain agregat&lt;/strong&gt; (ex. total lunar per client): mai puține rânduri, interogări mai rapide, dar imposibilitatea de a coborî în detaliu&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Principiul fundamental al lui Kimball: modelează întotdeauna la cel mai fin nivel de detaliu disponibil în sistemul sursă.&lt;/p&gt;</description></item><item><title>GRANT</title><link>https://ivanluminaria.com/ro/glossary/grant/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/grant/</guid><description>&lt;p&gt;&lt;strong&gt;GRANT&lt;/strong&gt; este comanda SQL folosită pentru atribuirea de privilegii unui utilizator sau rol pe obiecte specifice ale bazei de date. În MySQL și MariaDB, privilegiile se atribuie perechii &lt;code&gt;'utilizator'@'host'&lt;/code&gt;, nu doar numelui de utilizator.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Sintaxa de bază este &lt;code&gt;GRANT &amp;lt;privilegii&amp;gt; ON &amp;lt;baza_de_date&amp;gt;.&amp;lt;tabel&amp;gt; TO 'utilizator'@'host'&lt;/code&gt;. Privilegiile pot fi granulare (SELECT, INSERT, UPDATE, DELETE) sau globale (ALL PRIVILEGES). În MySQL 8, GRANT nu mai creează utilizatori implicit: e nevoie mai întâi de un &lt;code&gt;CREATE USER&lt;/code&gt; explicit, apoi GRANT. În MySQL 5.7 și MariaDB, GRANT cu &lt;code&gt;IDENTIFIED BY&lt;/code&gt; creează utilizatorul și atribuie privilegiile într-o singură comandă.&lt;/p&gt;</description></item><item><title>Group Replication</title><link>https://ivanluminaria.com/ro/glossary/group-replication/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/group-replication/</guid><description>&lt;p&gt;&lt;strong&gt;Group Replication&lt;/strong&gt; este mecanismul nativ al MySQL pentru crearea de clustere cu disponibilitate ridicată și replicare sincronă între mai multe noduri. Spre deosebire de replicarea clasică (asincronă, master-slave), Group Replication garantează că fiecare tranzacție este confirmată de majoritatea nodurilor înainte de a fi considerată committed.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Nodurile comunică printr-un protocol de grup (GCS — Group Communication System) care gestionează consensul distribuit. Fiecare nod menține o copie completă a datelor. Tranzacțiile sunt certificate de grup: dacă nu există conflicte, sunt aplicate pe toate nodurile. Dacă apare un conflict, tranzacția este anulată pe nodul care a inițiat-o.&lt;/p&gt;</description></item><item><title>GTID</title><link>https://ivanluminaria.com/ro/glossary/gtid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/gtid/</guid><description>&lt;p&gt;&lt;strong&gt;GTID&lt;/strong&gt; (Global Transaction Identifier) este un identificator unic atribuit automat fiecărei tranzacții confirmate pe un server MySQL. Formatul este &lt;code&gt;server_uuid:transaction_id&lt;/code&gt; — de exemplu &lt;code&gt;3E11FA47-71CA-11E1-9E33-C80AA9429562:23&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când GTID este activat (&lt;code&gt;gtid_mode = ON&lt;/code&gt;), fiecare tranzacție primește un identificator care o face trasabilă pe orice server din clusterul de replicare. Replica știe exact ce tranzacții a executat deja și care îi mai lipsesc, fără a fi nevoie să specifice manual pozițiile binlog (fișier + offset).&lt;/p&gt;</description></item><item><title>Hash Join</title><link>https://ivanluminaria.com/ro/glossary/hash-join/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/hash-join/</guid><description>&lt;p&gt;&lt;strong&gt;Hash join&lt;/strong&gt; este o strategie de join proiectata pentru volume mari de date. Functioneaza in doua faze: mai intai construieste o structura de date in memorie, apoi o foloseste pentru a gasi corespondentele eficient.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Baza de date citeste tabelul mai mic (build side) si construieste o hash table in memorie, indexand randurile dupa coloana de join. Apoi scaneaza tabelul mai mare (probe side) si pentru fiecare rand cauta corespondenta in hash table cu un lookup O(1).&lt;/p&gt;</description></item><item><title>Hot Desk</title><link>https://ivanluminaria.com/ro/glossary/hot-desk/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/hot-desk/</guid><description>&lt;p&gt;&lt;strong&gt;Hot Desk&lt;/strong&gt; (hot desking) este un model de organizare a spațiilor de lucru în care birourile nu sunt atribuite angajaților individuali. Cine vine la birou ocupă un post de lucru liber, de obicei rezervabil printr-un sistem digital.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În loc de 50 de posturi fixe pentru 50 de angajați, compania amenajează 15-20 de posturi partajate (hot desks) echipate cu monitor, docking station și conectivitate. Angajații rezervă postul în zilele în care trebuie să fie la birou, folosind celelalte zile în smart working.&lt;/p&gt;</description></item><item><title>Huge Pages</title><link>https://ivanluminaria.com/ro/glossary/huge-pages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/huge-pages/</guid><description>&lt;p&gt;&lt;strong&gt;Huge Pages&lt;/strong&gt; sunt pagini de memorie de 2 MB, față de cele standard de 4 KB ale Linux. Pentru o SGA Oracle de 64 GB, trecerea de la pagini de 4 KB (16,7 milioane de pagini) la Huge Pages de 2 MB (32.768 pagini) reduce de 500 de ori numărul de intrări în Page Table.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Se configurează prin parametrul kernel &lt;code&gt;vm.nr_hugepages&lt;/code&gt; în &lt;code&gt;/etc/sysctl.d/&lt;/code&gt;. Numărul necesar se calculează împărțind dimensiunea SGA la 2 MB și adăugând o marjă de 1,5%. După repornirea instanței Oracle, SGA este alocată în Huge Pages, verificabil din &lt;code&gt;/proc/meminfo&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>I/O Scheduler</title><link>https://ivanluminaria.com/ro/glossary/io-scheduler/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/io-scheduler/</guid><description>&lt;p&gt;&lt;strong&gt;I/O Scheduler&lt;/strong&gt; este componenta kernelului Linux care gestionează coada cererilor de citire și scriere către dispozitivele bloc (discuri). Decide ordinea de execuție a cererilor pentru a optimiza throughput-ul și a minimiza latența.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Linux oferă mai mulți scheduleri: &lt;code&gt;cfq&lt;/code&gt; (Completely Fair Queuing, pentru desktop), &lt;code&gt;deadline&lt;/code&gt;/&lt;code&gt;mq-deadline&lt;/code&gt; (pentru servere și baze de date), &lt;code&gt;noop&lt;/code&gt;/&lt;code&gt;none&lt;/code&gt; (pentru SSD/NVMe). Pentru Oracle recomandarea este &lt;code&gt;deadline&lt;/code&gt;, care servește cererile minimizând seek-urile discului. Se configurează prin &lt;code&gt;/sys/block/sdX/queue/scheduler&lt;/code&gt; și se face permanent prin GRUB.&lt;/p&gt;</description></item><item><title>INTO OUTFILE</title><link>https://ivanluminaria.com/ro/glossary/into-outfile/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/into-outfile/</guid><description>&lt;p&gt;&lt;strong&gt;INTO OUTFILE&lt;/strong&gt; este o clauză SQL MySQL care permite exportul rezultatului unei interogări direct într-un fișier pe filesystem-ul serverului de baze de date. Este metoda nativă pentru generarea de fișiere CSV, TSV sau cu separatori personalizați.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Clauza se adaugă la sfârșitul unui &lt;code&gt;SELECT&lt;/code&gt; și specifică calea fișierului de destinație. Parametrii &lt;code&gt;FIELDS TERMINATED BY&lt;/code&gt;, &lt;code&gt;ENCLOSED BY&lt;/code&gt; și &lt;code&gt;LINES TERMINATED BY&lt;/code&gt; controlează formatul output-ului. Fișierul este creat de utilizatorul de sistem MySQL (nu de utilizatorul care execută query-ul), deci trebuie să fie într-un director cu permisiunile corecte.&lt;/p&gt;</description></item><item><title>Issue Tracker</title><link>https://ivanluminaria.com/ro/glossary/issue-tracker/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/issue-tracker/</guid><description>&lt;p&gt;Un &lt;strong&gt;Issue Tracker&lt;/strong&gt; este un sistem pentru înregistrarea, atribuirea, prioritizarea și monitorizarea bug-urilor, cererilor de funcționalități și task-urilor de proiect. Pe GitHub este integrat direct în repository-ul de cod.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare problemă sau cerere este creată ca &amp;ldquo;issue&amp;rdquo; cu titlu, descriere, etichete de categorie/prioritate și atribuire unui dezvoltator. Issue-urile pot fi legate de branch-uri și Pull Request-uri: când un PR care referențiază un issue este fuzionat, issue-ul se închide automat. Aceasta creează o trasabilitate completă de la problemă la soluție.&lt;/p&gt;</description></item><item><title>IST</title><link>https://ivanluminaria.com/ro/glossary/ist/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/ist/</guid><description>&lt;p&gt;&lt;strong&gt;IST&lt;/strong&gt; (Incremental State Transfer) este mecanismul prin care un nod Galera care revine în cluster după o absență scurtă primește doar tranzacțiile lipsă, fără a fi nevoie să descarce întregul set de date.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un nod se reconectează la cluster, donatorul verifică dacă tranzacțiile lipsă sunt încă disponibile în gcache-ul său (Galera cache). Dacă gap-ul este acoperit de gcache, se execută un IST: doar tranzacțiile lipsă sunt trimise nodului, care le aplică și revine în starea Synced. Dacă gap-ul depășește gcache-ul, Galera recurge la un SST complet.&lt;/p&gt;</description></item><item><title>Kimball</title><link>https://ivanluminaria.com/ro/glossary/kimball/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/kimball/</guid><description>&lt;p&gt;&lt;strong&gt;Kimball&lt;/strong&gt; se referă la Ralph Kimball și la metodologia sa de proiectare a data warehouse-urilor, descrisă în cartea &lt;em&gt;The Data Warehouse Toolkit&lt;/em&gt; (prima ediție 1996, a treia ediție 2013).&lt;/p&gt;
&lt;h2 id="abordarea" class="relative group"&gt;Abordarea &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#abordarea" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Metodologia Kimball se bazează pe trei piloni:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dimensional modeling&lt;/strong&gt;: organizarea datelor în star schema cu fact tables și dimension tables, optimizate pentru interogări analitice&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bottom-up&lt;/strong&gt;: construirea DWH-ului pornind de la data mart-uri departamentale individuale, integrându-le progresiv prin dimensiuni conforme (conformed dimensions)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bus architecture&lt;/strong&gt;: un framework pentru a garanta coerența între data mart-uri prin dimensiuni și fapte partajate&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="slowly-changing-dimensions" class="relative group"&gt;Slowly Changing Dimensions &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#slowly-changing-dimensions" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Kimball a definit clasificarea SCD (Slowly Changing Dimensions) în tipurile de la 0 la 7, care a devenit standardul de facto în industrie. Tipul 2 — cu chei surogat și date de valabilitate — este cel mai utilizat pentru urmărirea istoriei dimensiunilor.&lt;/p&gt;</description></item><item><title>Knowledge Transfer</title><link>https://ivanluminaria.com/ro/glossary/knowledge-transfer/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/knowledge-transfer/</guid><description>&lt;p&gt;&lt;strong&gt;Knowledge Transfer&lt;/strong&gt; (transfer de cunoștințe) este procesul prin care competențe, informații și know-how sunt transferate de la cei care le dețin la cei care au nevoie de ele — între colegi, între echipe, sau între persoane și sisteme de documentare.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Poate fi formal (documentare, sesiuni de training, wiki-uri) sau informal (pair programming, mentorat, însoțire). AI-ul poate accelera knowledge transfer-ul generând documentație din cod, commituri și issue-uri — nu perfectă, dar suficientă pentru a nu pierde cunoștințe când cineva părăsește proiectul.&lt;/p&gt;</description></item><item><title>KPI</title><link>https://ivanluminaria.com/ro/glossary/kpi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/kpi/</guid><description>&lt;p&gt;Un &lt;strong&gt;KPI&lt;/strong&gt; (Key Performance Indicator) este o metrică cuantificabilă folosită pentru a evalua succesul unei activități, proiect sau organizații față de obiective predefinite. În contextul muncii la distanță, KPI-urile înlocuiesc prezența fizică ca indicator de productivitate.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un KPI eficient este specific, măsurabil și legat de un obiectiv concret. În consultanța IT: tickete închise, cod livrat, SLA-uri respectate, clienți satisfăcuți. Nu &amp;ldquo;ore la birou&amp;rdquo; — pentru că orele nu măsoară valoarea produsă, măsoară doar timpul petrecut.&lt;/p&gt;</description></item><item><title>Least Privilege</title><link>https://ivanluminaria.com/ro/glossary/least-privilege/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/least-privilege/</guid><description>&lt;p&gt;&lt;strong&gt;Least Privilege&lt;/strong&gt; (principiul privilegiului minim) este un principiu fundamental al securității informatice: fiecare utilizator, proces sau sistem trebuie să aibă doar permisiunile strict necesare pentru a-și îndeplini funcția, nimic mai mult.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În contextul bazelor de date, principiul se aplică atribuind privilegii granulare: &lt;code&gt;SELECT&lt;/code&gt; dacă utilizatorul trebuie doar să citească, &lt;code&gt;SELECT + INSERT + UPDATE&lt;/code&gt; dacă trebuie și să scrie, niciodată &lt;code&gt;ALL PRIVILEGES&lt;/code&gt; dacă nu este strict necesar. Combinat cu modelul &lt;code&gt;utilizator@host&lt;/code&gt; al MySQL, principiul poate fi aplicat și în funcție de originea conexiunii.&lt;/p&gt;</description></item><item><title>Lift-and-Shift</title><link>https://ivanluminaria.com/ro/glossary/lift-and-shift/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/lift-and-shift/</guid><description>&lt;p&gt;&lt;strong&gt;Lift-and-Shift&lt;/strong&gt; (rehosting) este o strategie de migrare care constă în mutarea unui sistem dintr-un mediu în altul — de obicei din on-premise în cloud — fără a-i modifica arhitectura, codul aplicativ sau configurația. Sistemul este luat ca atare și &amp;ldquo;ridicat și mutat&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Infrastructura este replicată în mediul de destinație: aceleași mașini virtuale, aceleași baze de date, același middleware. Avantajul este viteza: nu există rescrierea codului, nu există reproiectare arhitecturală. Riscul este de a duce cu sine toate problemele din mediul original, inclusiv ineficiențele și datoria tehnică.&lt;/p&gt;</description></item><item><title>Local Index</title><link>https://ivanluminaria.com/ro/glossary/local-index/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/local-index/</guid><description>&lt;p&gt;Un &lt;strong&gt;Local Index&lt;/strong&gt; este un index Oracle creat pe o tabelă partițională, care este automat partiționat cu aceeași cheie și aceleași limite ca tabela. Fiecare partiție a tabelei are o partiție de index corespunzătoare.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când se creează un index cu clauza &lt;code&gt;LOCAL&lt;/code&gt;, Oracle creează o partiție de index pentru fiecare partiție a tabelei. Dacă tabela are 100 de partiții lunare, indexul va avea 100 de partiții corespunzătoare. Operațiile DDL pe o partiție (DROP, TRUNCATE, SPLIT) invalidează doar partiția de index corespunzătoare, nu întregul index.&lt;/p&gt;</description></item><item><title>MERGE</title><link>https://ivanluminaria.com/ro/glossary/merge-sql/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/merge-sql/</guid><description>&lt;p&gt;&lt;strong&gt;MERGE&lt;/strong&gt; este o instrucțiune SQL care combină operațiunile de INSERT și UPDATE (și opțional DELETE) într-un singur statement. Dacă înregistrarea există o actualizează, dacă nu există o inserează. Este numită informal &amp;ldquo;upsert&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="sintaxă-oracle" class="relative group"&gt;Sintaxă Oracle &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#sintax%c4%83-oracle" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-sql" data-lang="sql"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;MERGE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INTO&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tabel_destinatie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;USING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;tabel_sursa&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;ON&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cheie&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cheie&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MATCHED&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;UPDATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;SET&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;camp&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;camp&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;WHEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;NOT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;MATCHED&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;THEN&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;INSERT&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;cheie&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;camp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;VALUES&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cheie&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;camp&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="utilizare-în-data-warehouse" class="relative group"&gt;Utilizare în data warehouse &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#utilizare-%c3%aen-data-warehouse" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În contextul ETL, MERGE este mecanismul de bază pentru încărcarea tabelelor dimensionale:&lt;/p&gt;</description></item><item><title>Mobilitate Durabilă</title><link>https://ivanluminaria.com/ro/glossary/mobilita-sostenibile/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mobilita-sostenibile/</guid><description>&lt;p&gt;&lt;strong&gt;Mobilitatea Durabilă&lt;/strong&gt; este o abordare a transportului urban care privilegiază utilizarea mijloacelor cu impact scăzut asupra mediului — bicicletă, transport public, vehicule electrice, car sharing — față de mașina privată cu motor cu combustie internă.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Se bazează pe o schimbare de paradigmă: în loc să se construiască mai multe drumuri pentru mai multe mașini, se investește în infrastructură ciclabilă, transport public eficient și stimulente pentru mobilitatea activă. Orașe precum Amsterdam, Copenhaga și München demonstrează că modelul funcționează la scară largă.&lt;/p&gt;</description></item><item><title>MVCC</title><link>https://ivanluminaria.com/ro/glossary/mvcc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mvcc/</guid><description>&lt;p&gt;&lt;strong&gt;MVCC&lt;/strong&gt; (Multi-Version Concurrency Control) este modelul de concurență folosit de PostgreSQL pentru a gestiona accesul simultan la date. Fiecare UPDATE creează o nouă versiune a rândului și o marchează pe cea veche ca &amp;ldquo;moartă&amp;rdquo;; fiecare DELETE marchează rândul ca nevizibil. Citirile nu blochează scrierile și invers.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare tranzacție vede un snapshot consistent al bazei de date din momentul începerii sale. Rândurile modificate de alte tranzacții neconfirmate sunt invizibile. Aceasta elimină nevoia de lock-uri exclusive pe citiri, permițând concurență ridicată — dar generează &amp;ldquo;gunoi&amp;rdquo; sub formă de dead tuples care trebuie curățate de VACUUM.&lt;/p&gt;</description></item><item><title>mydumper</title><link>https://ivanluminaria.com/ro/glossary/mydumper/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mydumper/</guid><description>&lt;p&gt;&lt;strong&gt;mydumper&lt;/strong&gt; este un instrument open source de backup logic pentru MySQL și MariaDB care implementează paralelism adevărat: nu doar între tabele diferite, ci și în interiorul aceleiași tabele, împărțind-o în chunk-uri bazate pe primary key.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;mydumper se conectează la serverul MySQL, achiziționează un snapshot consistent cu &lt;code&gt;FLUSH TABLES WITH READ LOCK&lt;/code&gt; (sau &lt;code&gt;--trx-consistency-only&lt;/code&gt; pentru a evita lock-urile globale pe InnoDB), apoi distribuie munca între thread-uri multiple. Fiecare tabelă mare este spartă în chunk-uri — implicit bazate pe range-urile primary key-ului — și fiecare chunk este exportat de un thread separat.&lt;/p&gt;</description></item><item><title>mysqlbinlog</title><link>https://ivanluminaria.com/ro/glossary/mysqlbinlog/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mysqlbinlog/</guid><description>&lt;p&gt;&lt;strong&gt;mysqlbinlog&lt;/strong&gt; este utilitarul de linie de comandă furnizat cu MySQL pentru citirea și decodificarea conținutului fișierelor binary log. Este singurul instrument capabil să convertească formatul binar al binlog-urilor în output lizibil sau în instrucțiuni SQL re-executabile.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;mysqlbinlog citește fișierele binlog și produce output în format text. Suportă mai multe filtre:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Pe interval de timp&lt;/strong&gt;: &lt;code&gt;--start-datetime&lt;/code&gt; și &lt;code&gt;--stop-datetime&lt;/code&gt; pentru a limita output-ul la o fereastră temporală&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pe bază de date&lt;/strong&gt;: &lt;code&gt;--database&lt;/code&gt; pentru a filtra evenimentele unei baze de date specifice&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Pe poziție&lt;/strong&gt;: &lt;code&gt;--start-position&lt;/code&gt; și &lt;code&gt;--stop-position&lt;/code&gt; pentru a selecta evenimente specifice&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cu format ROW, flag-ul &lt;code&gt;--verbose&lt;/code&gt; decodifică modificările la nivel de rând în format pseudo-SQL comentat, altfel output-ul este un blob binar ilizibil.&lt;/p&gt;</description></item><item><title>mysqldump</title><link>https://ivanluminaria.com/ro/glossary/mysqldump/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mysqldump/</guid><description>&lt;p&gt;&lt;strong&gt;mysqldump&lt;/strong&gt; este utilitarul de backup logic inclus standard în fiecare instalare de MySQL și MariaDB. Produce un fișier SQL care conține toate instrucțiunile (CREATE TABLE, INSERT) necesare pentru a reconstrui complet schema și datele unei baze de date.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;mysqldump se conectează la serverul MySQL și citește tabelele una câte una, generând instrucțiunile SQL corespunzătoare la ieșire. Operația este strict single-threaded: o tabelă după alta, un rând după altul. Fișierul produs poate fi comprimat extern (gzip, zstd) dar instrumentul în sine nu oferă compresie nativă.&lt;/p&gt;</description></item><item><title>mysqlpump</title><link>https://ivanluminaria.com/ro/glossary/mysqlpump/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/mysqlpump/</guid><description>&lt;p&gt;&lt;strong&gt;mysqlpump&lt;/strong&gt; este utilitarul de backup logic introdus de Oracle în MySQL 5.7 ca evoluție a mysqldump. Diferența principală este suportul pentru paralelism la nivel de tabelă și compresia nativă a output-ului (zlib, lz4, zstd).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;mysqlpump poate face dump la mai multe tabele simultan folosind thread-uri paralele, configurabile cu &lt;code&gt;--default-parallelism&lt;/code&gt;. Compresia se aplică direct în timpul dump-ului, fără a necesita pipe-uri externe către gzip. Suportă și dump-ul selectiv al utilizatorilor și conturilor MySQL.&lt;/p&gt;</description></item><item><title>Navetism</title><link>https://ivanluminaria.com/ro/glossary/pendolarismo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pendolarismo/</guid><description>&lt;p&gt;&lt;strong&gt;Navetismul&lt;/strong&gt; (commuting) este deplasarea zilnică între casă și locul de muncă. În marile orașe italiene precum Roma, naveta medie absoarbe 2-4 ore pe zi, cu costuri directe (combustibil, parcare, transport public) și indirecte (stres, oboseală, productivitate pierdută).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un consultant IT care locuiește la 30 km de birou în Roma poate petrece 1h15-2h30 doar pentru dus. Pe 220 de zile lucrătoare, sunt 47-89 de ore pierdute pe lună — până la două săptămâni lucrătoare petrecute în mașină fără a produce nimic.&lt;/p&gt;</description></item><item><title>Nested Loop</title><link>https://ivanluminaria.com/ro/glossary/nested-loop/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/nested-loop/</guid><description>&lt;p&gt;&lt;strong&gt;Nested loop&lt;/strong&gt; este cea mai simpla strategie de join: pentru fiecare rand din tabelul extern, baza de date cauta randurile corespunzatoare in tabelul intern. Functioneaza ca un dublu ciclu &lt;code&gt;for&lt;/code&gt; imbricat — de aici numele.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Optimizatorul alege un tabel ca &amp;ldquo;extern&amp;rdquo; (outer) si unul ca &amp;ldquo;intern&amp;rdquo; (inner). Pentru fiecare rand din tabelul extern, executa o cautare in tabelul intern pe coloana de join. Daca tabelul intern are un index pe coloana de join, fiecare cautare este un acces direct via B-tree. Fara index, fiecare cautare devine un sequential scan complet.&lt;/p&gt;</description></item><item><title>NOLOGGING</title><link>https://ivanluminaria.com/ro/glossary/nologging/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/nologging/</guid><description>&lt;p&gt;&lt;strong&gt;NOLOGGING&lt;/strong&gt; este un mod Oracle care dezactivează generarea de redo log în timpul operațiunilor de încărcare masivă. Operațiunile se completează mult mai rapid, dar datele nu sunt recuperabile prin redo în caz de crash înainte de un backup.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un segment (tabelă, index, partiție) este în mod NOLOGGING, operațiunile masive precum CTAS, &lt;code&gt;INSERT /*+ APPEND */&lt;/code&gt; și &lt;code&gt;ALTER TABLE MOVE&lt;/code&gt; nu scriu redo log pentru blocurile de date. Pe o copie de 380 GB, acest lucru elimină generarea aceleiași cantități de redo, prevenind saturarea zonei de archivelog și reducând timpii de la zile la ore.&lt;/p&gt;</description></item><item><title>Object Privilege</title><link>https://ivanluminaria.com/ro/glossary/object-privilege/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/object-privilege/</guid><description>&lt;p&gt;Un &lt;strong&gt;Object Privilege&lt;/strong&gt; în Oracle este o autorizare care permite executarea operațiunilor pe un obiect specific al bazei de date: o tabelă, o vizualizare, o secvență sau o procedură PL/SQL. Exemple tipice includ &lt;code&gt;SELECT ON schema.tabela&lt;/code&gt;, &lt;code&gt;INSERT ON schema.tabela&lt;/code&gt; și &lt;code&gt;EXECUTE ON schema.procedura&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Privilegiile de obiect se acordă cu &lt;code&gt;GRANT&lt;/code&gt; specificând operațiunea și obiectul țintă: &lt;code&gt;GRANT SELECT ON app_owner.clienti TO srv_report&lt;/code&gt;. Pot fi atribuite utilizatorilor individuali sau rolurilor. Spre deosebire de privilegiile de sistem, operează pe un singur obiect și nu conferă puteri globale asupra bazei de date.&lt;/p&gt;</description></item><item><title>OCI</title><link>https://ivanluminaria.com/ro/glossary/oci/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/oci/</guid><description>&lt;p&gt;&lt;strong&gt;OCI&lt;/strong&gt; (Oracle Cloud Infrastructure) este platforma cloud a Oracle, lansata in a doua generatie in 2018. Spre deosebire de alti furnizori cloud, OCI este proiectata nativ pentru workload-uri Oracle Database si ofera avantaje semnificative in ceea ce priveste licentierea si performanta.&lt;/p&gt;
&lt;h2 id="de-ce-oci-pentru-oracle-database" class="relative group"&gt;De ce OCI pentru Oracle Database &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#de-ce-oci-pentru-oracle-database" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Avantajul principal tine de licentiere. Pe OCI, Oracle recunoaste propriile OCPU (Oracle CPU) cu un raport 1:1 pentru calculul licentelor. Pe alti furnizori cloud precum AWS sau Azure, raportul vCPU-licente este mai putin favorabil si riscul de audit este real.&lt;/p&gt;</description></item><item><title>OLAP</title><link>https://ivanluminaria.com/ro/glossary/olap/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/olap/</guid><description>&lt;p&gt;&lt;strong&gt;OLAP&lt;/strong&gt; (Online Analytical Processing) indică o abordare a procesării datelor orientată spre analiza multidimensională: agregări, drill-down, comparații temporale, slice-and-dice pe volume mari de date istorice.&lt;/p&gt;
&lt;h2 id="olap-vs-oltp" class="relative group"&gt;OLAP vs OLTP &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#olap-vs-oltp" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Caracteristică&lt;/th&gt;
 &lt;th&gt;OLAP&lt;/th&gt;
 &lt;th&gt;OLTP&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Scop&lt;/td&gt;
 &lt;td&gt;Analiză și raportare&lt;/td&gt;
 &lt;td&gt;Tranzacții operative&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Model de date&lt;/td&gt;
 &lt;td&gt;Star schema, denormalizat&lt;/td&gt;
 &lt;td&gt;3NF, normalizat&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Interogare tipică&lt;/td&gt;
 &lt;td&gt;Agregări pe milioane de linii&lt;/td&gt;
 &lt;td&gt;Citire/scriere a câtorva linii&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Utilizatori&lt;/td&gt;
 &lt;td&gt;Analiști, management&lt;/td&gt;
 &lt;td&gt;Aplicații, operatori&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Actualizare&lt;/td&gt;
 &lt;td&gt;Batch (ETL periodic)&lt;/td&gt;
 &lt;td&gt;Timp real&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="operațiuni-olap" class="relative group"&gt;Operațiuni OLAP &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#opera%c8%9biuni-olap" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Operațiunile fundamentale ale analizei OLAP sunt:&lt;/p&gt;</description></item><item><title>Outsourcing</title><link>https://ivanluminaria.com/ro/glossary/outsourcing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/outsourcing/</guid><description>&lt;p&gt;&lt;strong&gt;Outsourcing-ul&lt;/strong&gt; este practica de a încredința dezvoltarea, mentenanța sau gestionarea sistemelor IT unor furnizori externi companiei. Poate implica proiecte complete (dezvoltarea de software custom) sau servicii continue (gestionarea infrastructurii, suport aplicativ).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Compania client definește cerințele și semnează un contract cu un furnizor extern care se angajează să realizeze proiectul. Cele mai comune modele contractuale sunt: la pachet (preț fix pentru rezultat definit), pe timp și materiale (zile-om facturate), sau hibride. Furnizorul pune la dispoziție o echipă de consultanți care lucrează pe proiect, adesea cu rotație periodică a personalului.&lt;/p&gt;</description></item><item><title>Parking Lot</title><link>https://ivanluminaria.com/ro/glossary/parking-lot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/parking-lot/</guid><description>&lt;p&gt;&lt;strong&gt;Parking Lot&lt;/strong&gt; este o listă vizibilă — pe o tablă, un document partajat sau chat — unde facilitatorul notează subiectele care apar în timpul unei ședințe dar care nu pot fi discutate în timpul disponibil. Subiectele sunt &amp;ldquo;parcate&amp;rdquo; și abordate după ședință doar cu persoanele implicate.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când în timpul unui standup cineva ridică o problemă complexă, facilitatorul spune: &amp;ldquo;O notez în parking lot, discutăm după.&amp;rdquo; Subiectul nu este ignorat — este doar mutat în contextul potrivit, unde poate fi abordat fără a pierde timpul celor neimplicați.&lt;/p&gt;</description></item><item><title>Partita IVA</title><link>https://ivanluminaria.com/ro/glossary/partita-iva/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/partita-iva/</guid><description>&lt;p&gt;&lt;strong&gt;Partita IVA&lt;/strong&gt; este codul de identificare fiscală atribuit lucrătorilor independenți și întreprinderilor din Italia pentru operațiunile supuse TVA. În consultanța IT, &amp;ldquo;a lucra cu partita IVA&amp;rdquo; înseamnă a opera ca freelancer, facturând serviciile direct clientului.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Consultantul freelancer emite factură clientului la sfârșitul perioadei de lucru. Plata se face conform termenilor contractuali — care în Italia sunt de obicei 60-90-120 de zile sfârșit de lună. Între timp, consultantul suportă toate cheltuielile (contribuții sociale, impozite, chirie, utilități) din fonduri proprii.&lt;/p&gt;</description></item><item><title>Partition Pruning</title><link>https://ivanluminaria.com/ro/glossary/partition-pruning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/partition-pruning/</guid><description>&lt;p&gt;&lt;strong&gt;Partition Pruning&lt;/strong&gt; este mecanismul prin care Oracle, în timpul execuției unei interogări pe o tabelă partițională, identifică și exclude automat partițiile care nu pot conține date relevante pentru predicatul interogării.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când o interogare include un predicat pe coloana de partiție (ex. &lt;code&gt;WHERE data_movimento BETWEEN ...&lt;/code&gt;), Oracle consultă metadatele partițiilor și determină care partiții conțin date în intervalul solicitat. Doar acele partiții sunt citite. În planul de execuție apare ca &lt;code&gt;PARTITION RANGE SINGLE&lt;/code&gt; sau &lt;code&gt;PARTITION RANGE ITERATOR&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Pedalare Asistată</title><link>https://ivanluminaria.com/ro/glossary/pedalata-assistita/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pedalata-assistita/</guid><description>&lt;p&gt;&lt;strong&gt;Pedalarea Asistată&lt;/strong&gt; este un sistem de propulsie electrică montat pe o bicicletă care amplifică forța de pedalare a ciclistului printr-un motor electric. Motorul se activează doar când se pedalează și se dezactivează peste 25 km/h (limita europeană).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un senzor detectează forța și cadența pedalării și activează motorul electric proporțional. Cu cât pedalezi mai tare, cu atât motorul ajută mai mult. Rezultatul este că urcări precum dealul Celio din Roma devin o pantă ușoară, iar la destinație ajungi fără să transpiri — un detaliu crucial pentru cine trebuie să se prezinte la birou.&lt;/p&gt;</description></item><item><title>pg_stat_statements</title><link>https://ivanluminaria.com/ro/glossary/pg-stat-statements/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pg-stat-statements/</guid><description>&lt;p&gt;&lt;strong&gt;pg_stat_statements&lt;/strong&gt; este o extensie PostgreSQL — inclusă în distribuția oficială dar neactivă implicit — care ține evidența statisticilor de execuție pentru toate query-urile SQL care trec prin server. Query-urile sunt normalizate (valorile literale înlocuite cu parametri) pentru a grupa execuțiile aceluiași pattern.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Extensia necesită încărcarea ca shared library la pornirea serverului prin parametrul &lt;code&gt;shared_preload_libraries&lt;/code&gt;. Odată activă, înregistrează pentru fiecare query: numărul de execuții, timpul total și mediu, rândurile returnate, blocurile citite de pe disc și din cache. Parametrul &lt;code&gt;pg_stat_statements.max&lt;/code&gt; controlează câte query-uri distincte sunt urmărite (implicit 5000).&lt;/p&gt;</description></item><item><title>pg_trgm</title><link>https://ivanluminaria.com/ro/glossary/pg-trgm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pg-trgm/</guid><description>&lt;p&gt;&lt;strong&gt;pg_trgm&lt;/strong&gt; este o extensie PostgreSQL care implementează căutarea bazată pe trigrame — secvențe de trei caractere consecutive extrase din text. Activează utilizarea indexurilor GIN și GiST pentru a accelera căutări &lt;code&gt;LIKE '%valoare%'&lt;/code&gt; și &lt;code&gt;ILIKE&lt;/code&gt;, care altfel ar necesita scanări secvențiale.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Extensia descompune fiecare șir în trigrame: de exemplu, &amp;ldquo;hello&amp;rdquo; devine {&amp;quot; h&amp;quot;, &amp;quot; he&amp;quot;, &amp;ldquo;hel&amp;rdquo;, &amp;ldquo;ell&amp;rdquo;, &amp;ldquo;llo&amp;rdquo;, &amp;ldquo;lo &amp;ldquo;}. Un index GIN cu operator class &lt;code&gt;gin_trgm_ops&lt;/code&gt; indexează aceste trigrame. Când se execută un &lt;code&gt;LIKE '%ell%'&lt;/code&gt;, PostgreSQL caută trigramele corespunzătoare în index în loc să scaneze întreaga tabelă.&lt;/p&gt;</description></item><item><title>PITR</title><link>https://ivanluminaria.com/ro/glossary/pitr/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pitr/</guid><description>&lt;p&gt;&lt;strong&gt;PITR&lt;/strong&gt; (Point-in-Time Recovery) este o tehnică de restaurare care permite readucerea unei baze de date la orice moment în timp, nu doar la momentul backup-ului. Se bazează pe combinarea unui backup complet cu log-urile de tranzacții (binary log în MySQL, WAL în PostgreSQL, redo log în Oracle).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Procesul se desfășoară în două faze:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Restaurarea backup-ului&lt;/strong&gt;: baza de date este restaurată la ultimul backup disponibil&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replay-ul log-urilor&lt;/strong&gt;: log-urile de tranzacții sunt reaplicate de la momentul backup-ului până la momentul dorit, excluzând evenimentul care a cauzat problema&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;În MySQL, tool-ul &lt;code&gt;mysqlbinlog&lt;/code&gt; extrage evenimentele din binary log-uri și le reproduce pe baza de date restaurată.&lt;/p&gt;</description></item><item><title>Presenteism</title><link>https://ivanluminaria.com/ro/glossary/presenteismo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/presenteismo/</guid><description>&lt;p&gt;&lt;strong&gt;Presenteismul&lt;/strong&gt; este cultura organizațională care măsoară valoarea muncii pe baza prezenței fizice a angajatului la birou, indiferent de calitatea și cantitatea rezultatelor produse. Este presupunerea că &amp;ldquo;dacă te văd la birou, lucrezi.&amp;rdquo;&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-o organizație presenteistă, a fi la birou de la 9 la 18 este mai important decât închiderea task-urilor. A veni târziu este o problemă chiar dacă ai produs mai mult decât toți. A lucra de acasă este suspect chiar dacă rezultatele sunt excelente. Controlul se bazează pe vedere, nu pe metrici.&lt;/p&gt;</description></item><item><title>Pull Request</title><link>https://ivanluminaria.com/ro/glossary/pull-request/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/pull-request/</guid><description>&lt;p&gt;Un &lt;strong&gt;Pull Request&lt;/strong&gt; (PR) este o cerere formală de incorporare a modificărilor dintr-un branch de dezvoltare în branch-ul principal al repository-ului. Este mecanismul central de colaborare pe GitHub și platforme similare.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Dezvoltatorul lucrează pe un branch dedicat (ex. &lt;code&gt;fix/issue-234-eroare-calcul&lt;/code&gt;), completează modificările și deschide un PR. PR-ul arată diff-ul codului, permite colegilor să comenteze rând cu rând, să ceară modificări sau să aprobe. Doar după aprobare codul se unește (merge) în branch-ul principal. Aceasta garantează că codul &amp;ldquo;bun&amp;rdquo; rămâne bun.&lt;/p&gt;</description></item><item><title>Quorum</title><link>https://ivanluminaria.com/ro/glossary/quorum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/quorum/</guid><description>&lt;p&gt;&lt;strong&gt;Quorum-ul&lt;/strong&gt; este numărul minim de noduri care trebuie să fie de acord pentru ca clusterul să fie considerat operațional. Într-un cluster cu 3 noduri, quorum-ul este 2 (majoritatea). Dacă un nod se deconectează, celelalte două recunosc că sunt majoritatea și continuă să funcționeze normal.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Galera Cluster folosește un protocol de comunicare de grup care verifică continuu câte noduri sunt accesibile. Calculul este simplu: quorum = (număr total noduri / 2) + 1. Cu 3 noduri quorum-ul este 2, cu 5 noduri este 3. Nodurile care pierd quorum-ul trec în starea Non-Primary și refuză scrierile pentru a evita inconsistențele.&lt;/p&gt;</description></item><item><title>RAC</title><link>https://ivanluminaria.com/ro/glossary/rac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/rac/</guid><description>&lt;p&gt;&lt;strong&gt;RAC&lt;/strong&gt; (Real Application Clusters) este tehnologia Oracle care permite mai multor instante ale bazei de date sa acceseze simultan acelasi storage partajat. Daca un nod se defecteaza, celelalte continua sa serveasca cererile fara intrerupere — failover-ul este transparent pentru aplicatii.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Un cluster RAC este compus din doua sau mai multe servere (noduri) conectate printr-o retea privata de mare viteza (interconnect) si storage partajat (de obicei ASM — Automatic Storage Management). Fiecare nod ruleaza propria instanta Oracle, dar toate acceseaza aceleasi datafile-uri.&lt;/p&gt;</description></item><item><title>Ragged hierarchy</title><link>https://ivanluminaria.com/ro/glossary/ragged-hierarchy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/ragged-hierarchy/</guid><description>&lt;p&gt;O &lt;strong&gt;ragged hierarchy&lt;/strong&gt; (ierarhie dezechilibrată) este o structură ierarhică în care nu toate ramurile ating aceeași adâncime. Unele niveluri intermediare lipsesc pentru anumite entități.&lt;/p&gt;
&lt;h2 id="exemplu-concret" class="relative group"&gt;Exemplu concret &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#exemplu-concret" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-o ierarhie cu trei niveluri Top Group → Group → Client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Unii clienți au toate cele trei niveluri (ierarhie completă)&lt;/li&gt;
&lt;li&gt;Unii clienți au un Group dar niciun Top Group&lt;/li&gt;
&lt;li&gt;Unii clienți nu au nici Group nici Top Group (clienți direcți)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rezultatul este o structură cu &amp;ldquo;goluri&amp;rdquo; care cauzează probleme în rapoartele de agregare: linii cu NULL, totaluri împărțite, drill-down-uri incomplete.&lt;/p&gt;</description></item><item><title>Range Partitioning</title><link>https://ivanluminaria.com/ro/glossary/range-partitioning/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/range-partitioning/</guid><description>&lt;p&gt;&lt;strong&gt;Range Partitioning&lt;/strong&gt; (partiționare pe intervale) este o strategie de partiționare a tabelelor în care rândurile sunt distribuite în partiții diferite pe baza valorii unei coloane relative la intervale predefinite. Coloana de partiționare este aproape întotdeauna o dată în data warehouse-uri.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare partiție este definită cu o clauză &lt;code&gt;VALUES LESS THAN&lt;/code&gt; care stabilește limita superioară a intervalului. Oracle atribuie automat fiecare rând partiției corecte pe baza valorii coloanei de partiționare. Dacă un rând are &lt;code&gt;data_vendita = '2025-03-15'&lt;/code&gt;, este inserat în partiția al cărei interval include acea dată.&lt;/p&gt;</description></item><item><title>Redo Log</title><link>https://ivanluminaria.com/ro/glossary/redo-log/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/redo-log/</guid><description>&lt;p&gt;&lt;strong&gt;Redo Log&lt;/strong&gt; este mecanismul prin care Oracle inregistreaza fiecare modificare a datelor (INSERT, UPDATE, DELETE, DDL) inainte ca aceasta sa fie scrisa definitiv in datafile-uri. Este garantia fundamentala a durabilitatii tranzactiilor.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Oracle scrie modificarile in redo log-urile online secvential si continuu. Redo log-urile sunt organizate in grupuri circulare: cand un grup se umple, Oracle trece la urmatorul. Cand toate grupurile au fost folosite, Oracle revine la primul (log switch).&lt;/p&gt;</description></item><item><title>Relay log</title><link>https://ivanluminaria.com/ro/glossary/relay-log/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/relay-log/</guid><description>&lt;p&gt;&lt;strong&gt;Relay log-ul&lt;/strong&gt; este un fișier de log intermediar prezent pe slave într-o arhitectură de replicare MySQL. Conține evenimentele primite din binary log-ul master-ului, în așteptarea de a fi executate local de către thread-ul SQL al slave-ului.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fluxul replicării MySQL trece prin relay log în trei faze:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;I/O thread-ul&lt;/strong&gt; slave-ului se conectează la master și citește binary log-urile&lt;/li&gt;
&lt;li&gt;Evenimentele primite sunt scrise în relay log-ul local&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SQL thread-ul&lt;/strong&gt; slave-ului citește evenimentele din relay log și le execută pe baza de date locală&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Această arhitectură cu două thread-uri permite decuplarea recepției datelor de aplicarea lor: slave-ul poate continua să primească evenimente de la master chiar dacă execuția locală este temporar mai lentă.&lt;/p&gt;</description></item><item><title>REVOKE</title><link>https://ivanluminaria.com/ro/glossary/revoke/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/revoke/</guid><description>&lt;p&gt;&lt;strong&gt;REVOKE&lt;/strong&gt; este comanda SQL care elimină privilegiile sau rolurile acordate anterior cu &lt;code&gt;GRANT&lt;/code&gt;. Este complementul indispensabil al GRANT și instrumentul principal pentru restricționarea permisiunilor atunci când un model de securitate este restructurat.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Sintaxa urmează același tipar ca GRANT: &lt;code&gt;REVOKE SELECT ON schema.tabela FROM utilizator&lt;/code&gt; sau &lt;code&gt;REVOKE rol FROM utilizator&lt;/code&gt;. În Oracle, revocarea unui rol precum &lt;code&gt;DBA&lt;/code&gt; elimină dintr-o singură lovitură toate privilegiile de sistem incluse în acel rol. Înainte de a executa un REVOKE critic, este esențial să se verifice că utilizatorul păstrează privilegiile necesare pentru funcțiile sale.&lt;/p&gt;</description></item><item><title>RMAN</title><link>https://ivanluminaria.com/ro/glossary/rman/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/rman/</guid><description>&lt;p&gt;&lt;strong&gt;RMAN&lt;/strong&gt; (Recovery Manager) este instrumentul nativ Oracle pentru backup, restore si recovery al bazei de date. Este o utilitate de linie de comanda care gestioneaza toate operatiunile de protectie a datelor in mod integrat cu baza de date.&lt;/p&gt;
&lt;h2 id="ce-face" class="relative group"&gt;Ce face &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#ce-face" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backup&lt;/strong&gt;: complet, incremental, doar archived log-uri&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Restore&lt;/strong&gt;: recuperarea datafile-urilor, tablespace-urilor sau a intregii baze de date&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recovery&lt;/strong&gt;: aplicarea redo log-urilor pentru a aduce baza de date la un punct specific in timp&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Duplicate&lt;/strong&gt;: crearea de copii ale bazei de date, inclusiv baze de date standby pentru Data Guard&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="rman-si-data-guard" class="relative group"&gt;RMAN si Data Guard &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#rman-si-data-guard" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Pentru crearea unei baze de date standby, RMAN permite &lt;code&gt;DUPLICATE ... FOR STANDBY FROM ACTIVE DATABASE&lt;/code&gt; — o copie directa prin retea de la primar la standby, fara nevoia de backup-uri intermediare pe banda sau disc. Comanda transfera toate datafile-urile si controlfile-urile si le configureaza automat pentru replicare.&lt;/p&gt;</description></item><item><title>ROI</title><link>https://ivanluminaria.com/ro/glossary/roi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/roi/</guid><description>&lt;p&gt;&lt;strong&gt;ROI&lt;/strong&gt; (Return on Investment) este metrica care măsoară randamentul unei investiții raportând beneficiul net la costul suportat, exprimat ca procent. Un ROI de 200% înseamnă că fiecare euro investit a generat doi euro retur.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Se calculează ca: &lt;code&gt;(Beneficiu - Cost) / Cost × 100&lt;/code&gt;. În contextul proiectelor IT cu componente AI, calculul ROI trebuie să includă nu doar costurile de implementare ci și cele de mentenanță, training al echipei, guvernanță și gestionare a erorilor modelului.&lt;/p&gt;</description></item><item><title>ROLE</title><link>https://ivanluminaria.com/ro/glossary/postgresql-role/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/postgresql-role/</guid><description>&lt;p&gt;În PostgreSQL, &lt;strong&gt;ROLE&lt;/strong&gt; este singura entitate de securitate. Nu există o distincție între &amp;ldquo;utilizator&amp;rdquo; și &amp;ldquo;rol&amp;rdquo;: totul este un ROLE. Un ROLE cu atributul &lt;code&gt;LOGIN&lt;/code&gt; se comportă ca un utilizator; fără &lt;code&gt;LOGIN&lt;/code&gt;, este un container de privilegii atribuibil altor ROLE-uri.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;CREATE USER mario&lt;/code&gt; este pur și simplu o scurtătură pentru &lt;code&gt;CREATE ROLE mario WITH LOGIN&lt;/code&gt;. ROLE-urile pot deține obiecte, moșteni privilegii de la alte ROLE-uri prin atributul &lt;code&gt;INHERIT&lt;/code&gt;, și fi utilizate pentru a construi ierarhii de permisiuni. Un ROLE &amp;ldquo;funcțional&amp;rdquo; (fără LOGIN) grupează privilegii; ROLE-urile &amp;ldquo;utilizator&amp;rdquo; (cu LOGIN) le moștenesc.&lt;/p&gt;</description></item><item><title>RPO</title><link>https://ivanluminaria.com/ro/glossary/rpo/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/rpo/</guid><description>&lt;p&gt;&lt;strong&gt;RPO&lt;/strong&gt; (Recovery Point Objective) este cantitatea maxima de date pe care o organizatie si-o poate permite sa piarda in caz de defectiune sau dezastru. Se masoara in timp: un RPO de 1 ora inseamna acceptarea pierderii a cel mult ultimei ore de tranzactii.&lt;/p&gt;
&lt;h2 id="cum-se-determina" class="relative group"&gt;Cum se determina &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-se-determina" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;RPO-ul depinde de strategia de backup si replicare:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Strategie&lt;/th&gt;
 &lt;th&gt;RPO tipic&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Backup nocturn pe banda&lt;/td&gt;
 &lt;td&gt;12-24 ore&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Backup + archived log-uri pe storage remote&lt;/td&gt;
 &lt;td&gt;1-4 ore&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data Guard asincron (MaxPerformance)&lt;/td&gt;
 &lt;td&gt;Cateva secunde&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data Guard sincron (MaxAvailability)&lt;/td&gt;
 &lt;td&gt;Zero&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="rpo-vs-rto" class="relative group"&gt;RPO vs RTO &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#rpo-vs-rto" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;RPO si RTO sunt complementare dar distincte:&lt;/p&gt;</description></item><item><title>RTO</title><link>https://ivanluminaria.com/ro/glossary/rto/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/rto/</guid><description>&lt;p&gt;&lt;strong&gt;RTO&lt;/strong&gt; (Recovery Time Objective) este timpul maxim acceptabil pentru restaurarea serviciului dupa o defectiune sau un dezastru. Se masoara din momentul defectiunii pana in momentul in care sistemul redevine operational.&lt;/p&gt;
&lt;h2 id="cum-se-determina" class="relative group"&gt;Cum se determina &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-se-determina" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;RTO-ul depinde de strategia de recuperare si de infrastructura disponibila:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Strategie&lt;/th&gt;
 &lt;th&gt;RTO tipic&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Restore din backup pe banda&lt;/td&gt;
 &lt;td&gt;4-12 ore&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Restore din backup pe disc&lt;/td&gt;
 &lt;td&gt;1-4 ore&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data Guard cu switchover manual&lt;/td&gt;
 &lt;td&gt;1-5 minute&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Data Guard cu Fast-Start Failover&lt;/td&gt;
 &lt;td&gt;10-30 secunde&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="rto-vs-rpo" class="relative group"&gt;RTO vs RPO &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#rto-vs-rpo" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RTO&lt;/strong&gt;: cat timp dureaza repornirea (priveste inainte)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RPO&lt;/strong&gt;: cate date poti pierde (priveste inapoi)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Sunt metrici independente. Un restore din backup poate avea RTO=2 ore si RPO=24 ore. Un Data Guard sincron poate avea RTO=30 secunde si RPO=0.&lt;/p&gt;</description></item><item><title>SCAN Listener</title><link>https://ivanluminaria.com/ro/glossary/scan-listener/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/scan-listener/</guid><description>&lt;p&gt;&lt;strong&gt;SCAN Listener&lt;/strong&gt; (Single Client Access Name) este componenta Oracle RAC care ofera un singur nume DNS pentru accesul la cluster. Aplicatiile se conecteaza la SCAN name fara a fi nevoie sa cunoasca nodurile individuale: listener-ul distribuie automat conexiunile intre nodurile active.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;SCAN este un nume DNS care se rezolva la trei adrese IP virtuale (VIP), distribuite intre nodurile clusterului. Cand un client se conecteaza la SCAN name, DNS-ul returneaza una dintre cele trei IP-uri, iar listener-ul de pe acel IP redirectioneaza conexiunea catre nodul cel mai potrivit in functie de serviciul solicitat si de sarcina.&lt;/p&gt;</description></item><item><title>SCD</title><link>https://ivanluminaria.com/ro/glossary/scd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/scd/</guid><description>&lt;p&gt;&lt;strong&gt;SCD&lt;/strong&gt; (Slowly Changing Dimension) se refera la un set de tehnici folosite in data warehouse pentru gestionarea modificarilor in datele tabelelor dimensionale de-a lungul timpului.&lt;/p&gt;
&lt;h2 id="tipurile-principale" class="relative group"&gt;Tipurile principale &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#tipurile-principale" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tipul 1&lt;/strong&gt;: suprascrierea valorii anterioare. Nicio istorie conservata&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tipul 2&lt;/strong&gt;: inserarea unui rand nou cu date de valabilitate (data inceput, data sfarsit). Conserva toata istoria&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tipul 3&lt;/strong&gt;: adaugarea unei coloane pentru valoarea anterioara. Conserva doar ultima modificare&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="de-ce-conteaza" class="relative group"&gt;De ce conteaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#de-ce-conteaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Intr-o baza de date tranzactionala, cand un client isi schimba adresa se actualizeaza inregistrarea. Intr-un data warehouse acest lucru ar insemna pierderea istoriei: toate vanzarile anterioare ar aparea asociate noii adrese.&lt;/p&gt;</description></item><item><title>Schema</title><link>https://ivanluminaria.com/ro/glossary/schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/schema/</guid><description>&lt;p&gt;O &lt;strong&gt;Schemă&lt;/strong&gt; într-o bază de date relațională este un namespace logic care grupează obiecte precum tabele, vizualizări, funcții și secvențe. Funcționează ca un container organizațional în cadrul unei baze de date.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În PostgreSQL, schema prestabilită este &lt;code&gt;public&lt;/code&gt;. Pentru a accesa un obiect dintr-o altă schemă este necesar prefixul: &lt;code&gt;schema1.tabela&lt;/code&gt;. Privilegiul &lt;code&gt;USAGE&lt;/code&gt; pe o schemă este prerequisit pentru accesarea oricărui obiect din ea — fără &lt;code&gt;USAGE&lt;/code&gt;, nici măcar un &lt;code&gt;GRANT SELECT&lt;/code&gt; pe tabele nu funcționează.&lt;/p&gt;</description></item><item><title>Scope</title><link>https://ivanluminaria.com/ro/glossary/scope/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/scope/</guid><description>&lt;p&gt;&lt;strong&gt;Scope&lt;/strong&gt;-ul (domeniul) unui proiect definește perimetrul a ceea ce proiectul trebuie să realizeze: funcționalități incluse, livrabile așteptate, constrângeri și limite convenite cu stakeholderii. Tot ce este în scope se face; tot ce este în afara, nu.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Scope-ul se definește în fazele inițiale ale proiectului prin documente precum Statement of Work sau Project Charter. Orice cerere de modificare ulterioară trebuie să treacă printr-un proces formal de gestionare a schimbărilor pentru a evalua impactul asupra termenelor, bugetului și resurselor.&lt;/p&gt;</description></item><item><title>Scope Creep</title><link>https://ivanluminaria.com/ro/glossary/scope-creep/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/scope-creep/</guid><description>&lt;p&gt;&lt;strong&gt;Scope Creep&lt;/strong&gt; este expansiunea progresivă și adesea necontrolată a scopului unui proiect față de ceea ce fusese definit inițial. Cerințe noi, modificări ale specificațiilor și funcționalități suplimentare se acumulează fără o ajustare corespunzătoare a bugetului și a termenelor.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-un proiect software, scope creep-ul începe de obicei cu cereri aparent mici: &amp;ldquo;hai să adăugăm și acest câmp&amp;rdquo;, &amp;ldquo;ar fi util și această funcție&amp;rdquo;. Fiecare modificare individuală pare rezonabilă, dar efectul cumulativ este devastator. Specificațiile devin o țintă mobilă, echipa nu reușește niciodată să atingă o baseline stabilă, iar proiectul intră într-un ciclu infinit de revizuiri.&lt;/p&gt;</description></item><item><title>Scrum</title><link>https://ivanluminaria.com/ro/glossary/scrum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/scrum/</guid><description>&lt;p&gt;&lt;strong&gt;Scrum&lt;/strong&gt; este un framework agil pentru gestionarea proiectelor care organizează munca în iterații cu durată fixă numite sprinturi (de obicei 2 săptămâni). Definește trei roluri (Product Owner, Scrum Master, Development Team) și patru ceremonii (Sprint Planning, Daily Standup, Sprint Review, Sprint Retrospective).&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare sprint începe cu o planificare, continuă cu standup-uri zilnice pentru sincronizare, și se termină cu o review (ce s-a făcut) și o retrospectivă (cum să îmbunătățim procesul). Timeboxing-ul este principiul fundamental: fiecare ceremonie are o durată maximă nenegociabilă.&lt;/p&gt;</description></item><item><title>secure-file-priv</title><link>https://ivanluminaria.com/ro/glossary/secure-file-priv/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/secure-file-priv/</guid><description>&lt;p&gt;&lt;strong&gt;secure-file-priv&lt;/strong&gt; este o variabilă de sistem MySQL care controlează unde instrucțiunile &lt;code&gt;LOAD DATA INFILE&lt;/code&gt;, &lt;code&gt;SELECT INTO OUTFILE&lt;/code&gt; și funcția &lt;code&gt;LOAD_FILE()&lt;/code&gt; pot opera pe filesystem-ul serverului.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Variabila acceptă trei valori: o cale specifică (ex. &lt;code&gt;/var/lib/mysql-files/&lt;/code&gt;), care limitează operațiunile pe fișiere la acel director; un șir gol (&lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt;), care nu impune nicio restricție; sau &lt;code&gt;NULL&lt;/code&gt;, care dezactivează complet operațiunile pe fișiere. Valoarea poate fi setată doar în fișierul de configurare (&lt;code&gt;my.cnf&lt;/code&gt;) și necesită restart al serviciului pentru a fi modificată — nu poate fi schimbată la runtime.&lt;/p&gt;</description></item><item><title>Self-parenting</title><link>https://ivanluminaria.com/ro/glossary/self-parenting/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/self-parenting/</guid><description>&lt;p&gt;&lt;strong&gt;Self-parenting-ul&lt;/strong&gt; este o tehnică de dimensional modeling folosită pentru a echilibra ierarhiile dezechilibrate (ragged hierarchies). Principiul este simplu: o entitate care nu are un nivel ierarhic superior devine propriul părinte la acel nivel.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-o ierarhie cu trei niveluri Top Group → Group → Client:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Un Client fără Group folosește propriul nume/ID ca Group&lt;/li&gt;
&lt;li&gt;Un Group fără Top Group folosește propriul nume/ID ca Top Group&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Rezultatul este o tabelă dimensională fără NULL-uri în coloanele ierarhice, cu toate nivelurile întotdeauna populate.&lt;/p&gt;</description></item><item><title>Sequential Scan</title><link>https://ivanluminaria.com/ro/glossary/sequential-scan/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/sequential-scan/</guid><description>&lt;p&gt;&lt;strong&gt;Sequential Scan&lt;/strong&gt; (Seq Scan) este operația prin care PostgreSQL citește o tabelă de la început până la sfârșit, bloc cu bloc, fără a folosi vreun index. Este echivalentul PostgreSQL al Full Table Scan din Oracle.&lt;/p&gt;
&lt;h2 id="când-este-normal" class="relative group"&gt;Când este normal &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#c%c3%a2nd-este-normal" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Pe tabele mici (câteva mii de rânduri), sequential scan-ul este adesea opțiunea cea mai eficientă. Citirea unei tabele întregi secvențial este mai rapidă decât lookup-urile pe un index când tabela încape în câteva pagini. Optimizer-ul alege sequential scan-ul când estimează că este mai ieftin decât un index scan.&lt;/p&gt;</description></item><item><title>SGA</title><link>https://ivanluminaria.com/ro/glossary/sga/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/sga/</guid><description>&lt;p&gt;&lt;strong&gt;SGA&lt;/strong&gt; (System Global Area) este zona de memorie partajată principală a Oracle Database. Conține structurile de date fundamentale: buffer cache (pagini de date citite de pe disc), shared pool (planuri de execuție și dicționar de date), redo log buffer și large pool.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Dimensiunea SGA este controlată de parametrul &lt;code&gt;SGA_TARGET&lt;/code&gt; sau &lt;code&gt;SGA_MAX_SIZE&lt;/code&gt;. Oracle alocă SGA la pornirea instanței în memoria partajată a sistemului de operare. Parametrii kernel Linux &lt;code&gt;shmmax&lt;/code&gt; și &lt;code&gt;shmall&lt;/code&gt; trebuie dimensionați pentru a permite alocarea completă a SGA.&lt;/p&gt;</description></item><item><title>shared_buffers</title><link>https://ivanluminaria.com/ro/glossary/shared-buffers/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/shared-buffers/</guid><description>&lt;p&gt;&lt;strong&gt;shared_buffers&lt;/strong&gt; este parametrul care controlează dimensiunea zonei de memorie partajată pe care PostgreSQL o folosește ca cache pentru blocurile de date citite de pe disc. De fiecare dată când PostgreSQL citește o pagină de date (8 KB), o păstrează în shared_buffers pentru citirile ulterioare.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;PostgreSQL alocă memoria pentru shared_buffers la pornirea serviciului. Toate procesele backend partajează această zonă de memorie. Când un proces are nevoie de un bloc de date, caută mai întâi în shared_buffers. Dacă îl găsește (cache hit), citirea este imediată. Dacă nu (cache miss), trebuie să citească de pe disc — o operație cu ordine de mărime mai lentă.&lt;/p&gt;</description></item><item><title>Single-primary</title><link>https://ivanluminaria.com/ro/glossary/single-primary/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/single-primary/</guid><description>&lt;p&gt;&lt;strong&gt;Single-primary&lt;/strong&gt; este modul de operare cel mai frecvent al MySQL Group Replication, în care un singur nod din cluster — primary-ul — acceptă operații de scriere. Celelalte noduri (secondary) sunt read-only (&lt;code&gt;read_only=ON&lt;/code&gt;, &lt;code&gt;super_read_only=ON&lt;/code&gt;) și primesc modificările prin replicarea sincronă a grupului.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Parametrul &lt;code&gt;group_replication_single_primary_mode=ON&lt;/code&gt; activează acest mod. Primary-ul este singurul nod cu &lt;code&gt;read_only=OFF&lt;/code&gt;. Dacă primary-ul este oprit sau devine inaccesibil, clusterul declanșează o alegere automată și unul dintre secondary devine noul primary în câteva secunde.&lt;/p&gt;</description></item><item><title>Smart Working</title><link>https://ivanluminaria.com/ro/glossary/smart-working/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/smart-working/</guid><description>&lt;p&gt;&lt;strong&gt;Smart Working&lt;/strong&gt;-ul (lucru agil) este un model organizațional care permite angajatului să lucreze de oriunde, combinând zile la birou și zile la distanță, cu program flexibil și evaluare bazată pe rezultate în loc de prezență.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Modelul tipic este 80/20: 80% la distanță, 20% la birou. Zilele la birou servesc pentru workshopuri, review-uri de proiect și team building — nu pentru a încălzi scaunul. Compania furnizează echipament pentru postul de lucru de acasă (monitor, scaun ergonomic, căști) și o contribuție pentru conectivitate.&lt;/p&gt;</description></item><item><title>Snapshot (Oracle)</title><link>https://ivanluminaria.com/ro/glossary/snapshot-oracle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/snapshot-oracle/</guid><description>&lt;p&gt;&lt;strong&gt;Snapshot&lt;/strong&gt; in Oracle este o captura punctuala a statisticilor de performanta ale bazei de date stocata in repository-ul AWR. Implicit Oracle genereaza un snapshot la fiecare 60 de minute si le pastreaza timp de 8 zile.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare snapshot inregistreaza sute de metrici: wait events, statistici SQL, metrici de memorie (SGA, PGA), I/O per datafile, statistici de sistem. Compararea a doua snapshot-uri genereaza raportul AWR, care arata ce s-a schimbat intre cele doua momente.&lt;/p&gt;</description></item><item><title>Split-brain</title><link>https://ivanluminaria.com/ro/glossary/split-brain/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/split-brain/</guid><description>&lt;p&gt;&lt;strong&gt;Split-brain-ul&lt;/strong&gt; este o condiție critică care apare când un cluster de baze de date se împarte în două sau mai multe partiții care nu pot comunica între ele, iar fiecare partiție continuă să accepte scrieri independent. Rezultatul sunt date divergente imposibil de reconciliat automat.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Într-un cluster cu 3 noduri, dacă rețeaua dintre Nodul 1 și Nodurile 2-3 se întrerupe, fără protecția quorum-ului ambele părți ar putea continua să accepte scrieri. Când rețeaua se restabilește, clusterul s-ar găsi cu două versiuni diferite ale acelorași date. Mecanismul de quorum previne acest scenariu: doar partiția cu majoritatea nodurilor (quorum) poate continua să funcționeze.&lt;/p&gt;</description></item><item><title>SQL Injection</title><link>https://ivanluminaria.com/ro/glossary/sql-injection/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/sql-injection/</guid><description>&lt;p&gt;&lt;strong&gt;SQL Injection&lt;/strong&gt; este una dintre cele mai răspândite și periculoase vulnerabilități în aplicațiile web. Apare când input-urile furnizate de utilizator sunt inserate direct în interogările SQL fără validare sau parametrizare, permițând unui atacator să modifice logica interogării.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Atacatorul inserează fragmente de cod SQL în câmpurile de input ale aplicației (formulare de autentificare, câmpuri de căutare, parametri URL). Dacă aplicația concatenează aceste input-uri direct în interogările SQL, codul malițios este executat de baza de date cu privilegiile utilizatorului aplicativ. În combinație cu privilegiul &lt;code&gt;FILE&lt;/code&gt; al MySQL-ului și un &lt;code&gt;secure-file-priv&lt;/code&gt; neconfigurat, atacatorul poate citi fișiere de sistem sau scrie fișiere arbitrare pe server.&lt;/p&gt;</description></item><item><title>SST</title><link>https://ivanluminaria.com/ro/glossary/sst/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/sst/</guid><description>&lt;p&gt;&lt;strong&gt;SST&lt;/strong&gt; (State Snapshot Transfer) este mecanismul prin care un nod Galera care se alătură clusterului (sau care a fost offline prea mult timp) primește o copie completă a întregului set de date de la un nod donator.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un nod se alătură clusterului și gap-ul de tranzacții lipsă depășește dimensiunea gcache-ului, clusterul inițiază un SST. Nodul donator creează un snapshot complet al bazei de date și îl transferă nodului receptor. Metodele disponibile sunt: &lt;code&gt;mariabackup&lt;/code&gt; (nu blochează donatorul), &lt;code&gt;rsync&lt;/code&gt; (rapid dar blochează donatorul pe citire), și &lt;code&gt;mysqldump&lt;/code&gt; (lent și blocant).&lt;/p&gt;</description></item><item><title>Stakeholder</title><link>https://ivanluminaria.com/ro/glossary/stakeholder/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/stakeholder/</guid><description>&lt;p&gt;Un &lt;strong&gt;Stakeholder&lt;/strong&gt; este orice persoană, grup sau organizație cu un interes direct sau indirect în rezultatul unui proiect. Include clienți, sponsori, utilizatori finali, echipe de dezvoltare, management și furnizori externi.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;În project management, stakeholderii sunt identificați, clasificați după nivelul de influență și interes, și gestionați cu strategii de comunicare diferențiate. Un stakeholder cu influență și interes ridicate (precum CTO) necesită implicare activă; unul cu influență scăzută necesită doar actualizări periodice.&lt;/p&gt;</description></item><item><title>Star schema</title><link>https://ivanluminaria.com/ro/glossary/star-schema/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/star-schema/</guid><description>&lt;p&gt;&lt;strong&gt;Star schema&lt;/strong&gt; (schema stea) este cel mai utilizat model de date în data warehouse. Își primește numele de la forma sa: o tabelă centrală de fapte (fact table) conectată la mai multe tabele dimensionale care o înconjoară, ca razele unei stele.&lt;/p&gt;
&lt;h2 id="structură" class="relative group"&gt;Structură &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#structur%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fact table&lt;/strong&gt; în centru: conține măsurile numerice și cheile externe către dimensiuni&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dimension tables&lt;/strong&gt; în jurul ei: conțin atributele descriptive (cine, ce, unde, când) cu structură denormalizată&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dimensiunile într-un star schema sunt tipic denormalizate — toate atributele într-o singură tabelă plată, fără ierarhii normalizate. Acest lucru simplifică interogările și îmbunătățește performanța agregărilor.&lt;/p&gt;</description></item><item><title>Swappiness</title><link>https://ivanluminaria.com/ro/glossary/swappiness/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/swappiness/</guid><description>&lt;p&gt;&lt;strong&gt;Swappiness&lt;/strong&gt; (&lt;code&gt;vm.swappiness&lt;/code&gt;) este un parametru al kernelului Linux care controlează cât de agresiv mută sistemul pagini de memorie din RAM în swap pe disc. Valoarea variază de la 0 (swap doar în cazuri extreme) la 100 (swap agresiv). Valoarea implicită este 60.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Cu valoarea implicită de 60, Linux începe să facă swap când presiunea pe memorie este încă relativ scăzută. Pentru un server de baze de date dedicat, acest lucru este inacceptabil: SGA trebuie să rămână în RAM, întotdeauna. Valoarea recomandată pentru Oracle este 1 — nu 0, care ar dezactiva complet swap-ul și ar putea declanșa OOM killer-ul.&lt;/p&gt;</description></item><item><title>Switchover</title><link>https://ivanluminaria.com/ro/glossary/switchover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/switchover/</guid><description>&lt;p&gt;&lt;strong&gt;Switchover-ul&lt;/strong&gt; este o operatiune planificata in Oracle Data Guard care inverseaza rolurile intre baza de date primary si standby. Primary-ul devine standby, standby-ul devine primary. Nicio data nu se pierde, nicio tranzactie nu esueaza — este o tranzitie curata si controlata.&lt;/p&gt;
&lt;h2 id="switchover-vs-failover" class="relative group"&gt;Switchover vs Failover &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#switchover-vs-failover" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Distinctia este fundamentala:&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;&lt;/th&gt;
 &lt;th&gt;Switchover&lt;/th&gt;
 &lt;th&gt;Failover&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Cand&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Planificat (mentenanta, migrare)&lt;/td&gt;
 &lt;td&gt;Urgenta (defectiune a primary-ului)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Pierdere de date&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Zero&lt;/td&gt;
 &lt;td&gt;Posibila (depinde de mod)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Reversibilitate&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Da, cu un alt switchover&lt;/td&gt;
 &lt;td&gt;Nu, standby-ul devine primary permanent&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;strong&gt;Timp&lt;/strong&gt;&lt;/td&gt;
 &lt;td&gt;Minute (de obicei 1-3)&lt;/td&gt;
 &lt;td&gt;Secunde pana la minute&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="cum-se-executa" class="relative group"&gt;Cum se executa &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-se-executa" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Cu Data Guard Broker, switchover-ul este o singura comanda:&lt;/p&gt;</description></item><item><title>System Privilege</title><link>https://ivanluminaria.com/ro/glossary/system-privilege/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/system-privilege/</guid><description>&lt;p&gt;Un &lt;strong&gt;System Privilege&lt;/strong&gt; în Oracle este o autorizare care permite executarea operațiunilor globale pe baza de date, independent de un obiect specific. Exemple tipice includ &lt;code&gt;CREATE TABLE&lt;/code&gt;, &lt;code&gt;CREATE SESSION&lt;/code&gt;, &lt;code&gt;ALTER SYSTEM&lt;/code&gt;, &lt;code&gt;CREATE USER&lt;/code&gt; și &lt;code&gt;DROP ANY TABLE&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Privilegiile de sistem se acordă cu &lt;code&gt;GRANT&lt;/code&gt; și se revocă cu &lt;code&gt;REVOKE&lt;/code&gt;. Pot fi atribuite direct unui utilizator sau unui rol. Rolul predefinit &lt;code&gt;DBA&lt;/code&gt; include peste 200 de privilegii de sistem, motiv pentru care atribuirea sa utilizatorilor aplicativi este o practică periculoasă.&lt;/p&gt;</description></item><item><title>systemd</title><link>https://ivanluminaria.com/ro/glossary/systemd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/systemd/</guid><description>&lt;p&gt;&lt;strong&gt;systemd&lt;/strong&gt; este sistemul de inițializare și managerul de servicii implicit pe distribuțiile Linux moderne (CentOS/RHEL 7+, Ubuntu 16.04+, Debian 8+). În contextul bazelor de date, este mecanismul care pornește, oprește și monitorizează instanțele MySQL sau MariaDB.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare serviciu este definit de un fișier unit (ex. &lt;code&gt;mysqld.service&lt;/code&gt;) care specifică comanda de pornire, fișierul de configurare, dependențele și comportamentul în caz de crash. Într-un setup multi-instanță, se creează fișiere unit separate pentru fiecare instanță (ex. &lt;code&gt;mysqld-app2.service&lt;/code&gt;, &lt;code&gt;mysqld-reporting.service&lt;/code&gt;), fiecare cu propriul &lt;code&gt;--defaults-file&lt;/code&gt; care indică spre un &lt;code&gt;my.cnf&lt;/code&gt; diferit.&lt;/p&gt;</description></item><item><title>Tablespace</title><link>https://ivanluminaria.com/ro/glossary/tablespace/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/tablespace/</guid><description>&lt;p&gt;Un &lt;strong&gt;Tablespace&lt;/strong&gt; este unitatea logică de organizare a stocării în Oracle Database. Fiecare tablespace este compus din unul sau mai multe fișiere de date (datafile) fizice pe disc, iar fiecare obiect al bazei de date (tabelă, index, partiție) rezidă într-un tablespace.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Oracle separă gestionarea logică (tablespace) de cea fizică (datafile). Un DBA poate crea tablespace-uri dedicate pentru scopuri diferite: unul pentru datele active, unul pentru indexuri, unul pentru arhivă. Aceasta permite distribuirea sarcinii de I/O pe discuri diferite și aplicarea de politici de gestionare diferențiate (ex. read-only pentru datele istorice).&lt;/p&gt;</description></item><item><title>THP</title><link>https://ivanluminaria.com/ro/glossary/thp/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/thp/</guid><description>&lt;p&gt;&lt;strong&gt;THP&lt;/strong&gt; (Transparent Huge Pages) este o funcție a kernelului Linux care promovează automat paginile de memorie de la 4 KB la 2 MB în fundal, fără configurare explicită. Spre deosebire de Huge Pages statice, sunt gestionate de procesul kernel &lt;code&gt;khugepaged&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când sunt active (implicit &lt;code&gt;always&lt;/code&gt;), kernelul încearcă să compacteze paginile normale în pagini mari în fundal. Procesul &lt;code&gt;khugepaged&lt;/code&gt; lucrează continuu pentru a găsi și uni grupuri de pagini contigue, cauzând micro-înghețări imprevizibile în timpul operațiunilor de compactare.&lt;/p&gt;</description></item><item><title>Timeboxing</title><link>https://ivanluminaria.com/ro/glossary/timeboxing/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/timeboxing/</guid><description>&lt;p&gt;&lt;strong&gt;Timeboxing&lt;/strong&gt; este o tehnică de gestionare a timpului care constă în atribuirea unui interval temporal fix și nenegociabil unei activități. Când timpul expiră, activitatea se încheie — indiferent dacă a fost finalizată sau nu.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Se definește durata maximă (15 minute pentru un standup, 1 oră pentru o ședință de design, 2 săptămâni pentru un sprint) și constrângerea se respectă. Timeboxul forțează persoanele să se concentreze pe esențial, evitând discuțiile interminabile și perfecționismul paralizant.&lt;/p&gt;</description></item><item><title>Transport Lag</title><link>https://ivanluminaria.com/ro/glossary/transport-lag/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/transport-lag/</guid><description>&lt;p&gt;&lt;strong&gt;Transport lag&lt;/strong&gt; este intarzierea intre momentul in care baza de date primary genereaza un redo log si momentul in care acel redo log este primit de baza de date standby intr-o configuratie Oracle Data Guard. Este unul dintre cei mai importanti indicatori pentru evaluarea sanatatii replicarii.&lt;/p&gt;
&lt;h2 id="cum-se-masoara" class="relative group"&gt;Cum se masoara &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-se-masoara" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Transport lag-ul se monitorizeaza printr-un query pe view-ul &lt;code&gt;V$DATAGUARD_STATS&lt;/code&gt; sau prin Data Guard Broker:&lt;/p&gt;</description></item><item><title>Unified Audit</title><link>https://ivanluminaria.com/ro/glossary/unified-audit/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/unified-audit/</guid><description>&lt;p&gt;&lt;strong&gt;Unified Audit&lt;/strong&gt; (Oracle Unified Auditing) este sistemul de audit centralizat introdus în Oracle Database 12c care înlocuiește mecanismele de audit tradiționale cu o singură infrastructură unificată. Toate evenimentele de audit converg în vizualizarea &lt;code&gt;UNIFIED_AUDIT_TRAIL&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Unified Audit se bazează pe &lt;strong&gt;audit policies&lt;/strong&gt;: reguli declarative care specifică ce acțiuni să fie monitorizate (DDL, DML, autentificări, operațiuni administrative). Politicile se creează cu &lt;code&gt;CREATE AUDIT POLICY&lt;/code&gt;, se activează cu &lt;code&gt;ALTER AUDIT POLICY ... ENABLE&lt;/code&gt; și pot fi aplicate utilizatorilor specifici sau global. Înregistrările de audit sunt scrise într-o coadă internă și apoi persistate în tabela de sistem.&lt;/p&gt;</description></item><item><title>Unix Socket</title><link>https://ivanluminaria.com/ro/glossary/unix-socket/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/unix-socket/</guid><description>&lt;p&gt;Un &lt;strong&gt;Unix Socket&lt;/strong&gt; (sau socket de domeniu Unix) este un endpoint de comunicare care permite la două procese de pe același sistem de operare să facă schimb de date fără a trece prin stiva de rețea TCP/IP. În MySQL, este metoda de conectare implicită când te conectezi la &lt;code&gt;localhost&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un client MySQL se conectează specificând &lt;code&gt;-h localhost&lt;/code&gt;, clientul nu folosește TCP. Folosește fișierul socket Unix (de obicei &lt;code&gt;/var/run/mysqld/mysqld.sock&lt;/code&gt;) pentru a comunica direct cu procesul serverului MySQL. Această comunicare se desfășoară integral în kernel, fără overhead de rețea, și e mai rapidă decât o conexiune TCP chiar și pe același host.&lt;/p&gt;</description></item><item><title>VACUUM</title><link>https://ivanluminaria.com/ro/glossary/vacuum/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/vacuum/</guid><description>&lt;p&gt;&lt;strong&gt;VACUUM&lt;/strong&gt; este comanda PostgreSQL care recuperează spațiul ocupat de dead tuples (rânduri moarte) și îl face disponibil pentru inserări noi. Nu returnează spațiu sistemului de operare, nu reorganizează tabela și nu compactează nimic — marchează paginile ca rescriptibile.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;&lt;code&gt;VACUUM tabela&lt;/code&gt; scanează tabela, identifică dead tuple-urile care nu mai sunt vizibile niciunei tranzacții și marchează spațiul lor ca reutilizabil. Este o operațiune ușoară care nu blochează scrierile și poate rula în paralel cu interogările normale. &lt;code&gt;VACUUM FULL&lt;/code&gt; în schimb rescrie fizic întreaga tabelă cu lock exclusiv — de folosit foarte rar și doar în urgențe.&lt;/p&gt;</description></item><item><title>Vendor Lock-in</title><link>https://ivanluminaria.com/ro/glossary/vendor-lock-in/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/vendor-lock-in/</guid><description>&lt;p&gt;&lt;strong&gt;Vendor Lock-in&lt;/strong&gt; este situația în care o companie devine dependentă de un furnizor extern până la punctul în care schimbarea devine extrem de costisitoare sau complex din punct de vedere tehnic. În contextul IT, apare când codul, arhitectura sau cunoașterea sistemului sunt în mâinile furnizorului, nu ale clientului.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Lock-in-ul se instaurează gradual: furnizorul scrie codul cu convențiile proprii, folosește tehnologii proprietare sau nedocumentate, iar echipa internă nu este implicată în dezvoltare. Când furnizorul pleacă — din proprie voință sau prin concediere — ia cu el know-how-ul. Clientul rămâne cu un software pe care nu-l înțelege, nu știe să-l întrețină și nu-l poate evolua fără a reangaja același furnizor sau a o lua de la zero.&lt;/p&gt;</description></item><item><title>Version Control</title><link>https://ivanluminaria.com/ro/glossary/version-control/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/version-control/</guid><description>&lt;p&gt;&lt;strong&gt;Version Control&lt;/strong&gt; (controlul versiunilor) este un sistem care înregistrează fiecare modificare a fișierelor unui proiect, menținând un istoric complet al cine a schimbat ce, când și de ce. Git este cel mai utilizat sistem de version control din lume.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Fiecare modificare se înregistrează ca &amp;ldquo;commit&amp;rdquo; cu un mesaj descriptiv, un autor și un timestamp. Sistemul menține întreaga istorie a proiectului: poți reveni la orice versiune anterioară, compara versiuni diferite și înțelege evoluția codului în timp. Cu Git, fiecare dezvoltator are o copie completă a istoriei pe propriul computer.&lt;/p&gt;</description></item><item><title>Wait Event</title><link>https://ivanluminaria.com/ro/glossary/wait-event/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/wait-event/</guid><description>&lt;p&gt;&lt;strong&gt;Wait Event&lt;/strong&gt; este un indicator de diagnostic al Oracle Database care identifica motivul pentru care o sesiune asteapta in loc sa lucreze activ. De fiecare data cand un proces nu poate continua — pentru ca asteapta un bloc de pe disc, un lock, un raspuns din retea sau un tur de CPU — Oracle inregistreaza un wait event specific.&lt;/p&gt;
&lt;h2 id="cele-mai-comune" class="relative group"&gt;Cele mai comune &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cele-mai-comune" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Wait Event&lt;/th&gt;
 &lt;th&gt;Semnificatie&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;db file sequential read&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Citire un singur bloc — tipica accesului prin index&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;db file scattered read&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Citire multi-bloc — tipica full table scan-urilor&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;log file sync&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Asteptarea commit-ului in redo log&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;enq: TX - row lock contention&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Conflict de lock pe rand&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;direct path read&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Citire directa (ocolind buffer cache-ul)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="la-ce-servesc" class="relative group"&gt;La ce servesc &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#la-ce-servesc" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Wait event-urile sunt baza metodologiei de diagnostic Oracle. Analizand ce evenimente domina DB time-ul (prin AWR sau ASH) se identifica imediat natura problemei: I/O, contention, CPU sau retea.&lt;/p&gt;</description></item><item><title>WSREP</title><link>https://ivanluminaria.com/ro/glossary/wsrep/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/wsrep/</guid><description>&lt;p&gt;&lt;strong&gt;WSREP&lt;/strong&gt; (Write Set Replication) este API-ul și protocolul pe care Galera Cluster îl folosește pentru replicarea sincronă multi-master. Fiecare tranzacție este capturată ca &amp;ldquo;write set&amp;rdquo; (set de modificări la nivel de rând) și replicată pe toate nodurile clusterului înainte de commit.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când un nod execută o tranzacție, WSREP o interceptează la momentul commit-ului, o împachetează ca write set și o trimite tuturor nodurilor clusterului prin protocolul de comunicare de grup. Fiecare nod execută un proces de &lt;strong&gt;certification&lt;/strong&gt;: verifică dacă tranzacția nu intră în conflict cu alte tranzacții concurente. Dacă certification-ul are succes, toate nodurile aplică tranzacția. Dacă eșuează, tranzacția este anulată pe nodul care a inițiat-o.&lt;/p&gt;</description></item><item><title>Yes-And</title><link>https://ivanluminaria.com/ro/glossary/yes-and/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/yes-and/</guid><description>&lt;p&gt;&lt;strong&gt;Yes-And&lt;/strong&gt; (Da-Și) este o tehnică de comunicare originară din teatrul de improvizație, aplicată în project management pentru a transforma discuțiile conflictuale în conversații constructive. Principiul este simplu: în loc să negi propunerea interlocutorului cu &amp;ldquo;Nu, dar&amp;hellip;&amp;rdquo;, o accepți cu &amp;ldquo;Da, și&amp;hellip;&amp;rdquo; adăugând propria contribuție.&lt;/p&gt;
&lt;h2 id="cum-funcționează" class="relative group"&gt;Cum funcționează &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-func%c8%9bioneaz%c4%83" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;Când cineva propune o idee, răspunsul &amp;ldquo;Nu&amp;rdquo; declanșează o reacție defensivă și blochează conversația. Răspunsul &amp;ldquo;Da, și&amp;hellip;&amp;rdquo; recunoaște validitatea propunerii și o extinde, menținând dialogul deschis. Nu înseamnă să fii de acord cu totul — înseamnă să construiești pe propunerea celuilalt înainte de a o redirecționa.&lt;/p&gt;</description></item><item><title>ZDM</title><link>https://ivanluminaria.com/ro/glossary/zdm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://ivanluminaria.com/ro/glossary/zdm/</guid><description>&lt;p&gt;&lt;strong&gt;ZDM&lt;/strong&gt; (Zero Downtime Migration) este instrumentul pe care Oracle il pune la dispozitie pentru automatizarea migrarilor bazelor de date Oracle catre OCI (Oracle Cloud Infrastructure) sau catre baze de date on-premises de versiune superioara. Numele este putin optimist — downtime-ul nu este zero, dar este redus la minim.&lt;/p&gt;
&lt;h2 id="cum-functioneaza" class="relative group"&gt;Cum functioneaza &lt;span class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100"&gt;&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#cum-functioneaza" aria-label="Link"&gt;#&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p&gt;ZDM este in esenta un orchestrator care combina tehnologii Oracle existente intr-un flux automatizat unic. Suporta doua moduri:&lt;/p&gt;</description></item></channel></rss>