LEKCIJU MATERIĀLI

Ievads paralēlo datu bāzes problēmās
Datu bāzes sistēmu attīstība.  Loģiskie modeļi, paralēlisms un izkliedētība. Apraksts
Komandas un paralēlais darbs. Paralelizācijas motivācija. Paralēlisma pirmsākumi. Uzdevumu un datu paralēlisms. Paralēlās skaitļošanas formas: bitu līmenis, instrukciju līmenis, datu un uzdevumu paralēlisms. Paralēlā skaitļošana un konkurences skaitļošana.  Amdāla likums. Flinna taksonomija: viena programma viena datu kopa, viena programma vairākas datu kopas, vairākas programmas viena datu kopa, vairākas programmas un vairākas datu kopas.  Apraksts
Paralēlisma realizēšanas risinājumi. Datu bāzes sistēmas funkcijas, kam var tikt pielietota paralēlā izpilde: vaicājumu paralēla izpilde, paralēla datu manipulācijas valodas (DML) priekšrakstu izpilde, paralēlā datu definēšanas valodas (DDL) priekšrakstu izpilde, paralēlā datu ielāde, paralēlā datu bāzes atkopšana (recovery), paralēlā replikācija. 
 
SQL priekšrakstu izpildes ātrdarbības palielināšana. Pirmā iespēja – vaicājuma izpildes plāna optimizācija.
SQL priekšrakstu izpildes shēma un tās sastāvdaļas.  Apraksts
Datu bāzes shēma un shēmu objekti.  Apraksts
Tabulu un indeksu datu glabāšanas loģiskās shēmas.   Apraksts
SQL optimizatora vaicājumu izpildes plāna tabula PLAN_TABLE.   Apraksts
Datu bāzes kešatmiņa un tās darbība.  Apraksts
SQL vaicājumu datu izgūšanas komandas jeb pieejas ceļi (access paths).   Apraksts
SQL vaicājumu analīzes piemēri.   Apraksts
Datu bāzes sistēmas pamatuzbūve
Datu bāzes sistēmas pamatarhitektūra. Apraksts
Datu bāzes sistēmas  Oracle18 tehniskā arhitektūra (firmas attēli un skaidrojumi). Apraksts
Datu bāzes izveidošana ar CREATE DATABASE komandu.  _Apraksts  Datu bāzes vārdnīcas skats DBA_DATA_FILES.  Apraksts
Tabultelpu izveidošana ar CREATE TABLSPACE komandu.  Apraksts  Datu bāzes vārdnīcas skats USER_TABLSPACES.  Apraksts
Tabulas loģiskās un fiziskās struktūras definēšana ar komandu CREATE TABLE.  Apraksts  Datu bāzes vārdnīcas skats ALL_TABLES.  Apraksts
Datu bāzes vārdnīcas skats USER_SEGMENTS.  Apraksts
Datu bāzes vārdnīcas skats ALL_PART_TABLES.  Apraksts
Datu bāzes vārdnīcas skats ALL_TAB_PARTITIONS.  Apraksts
SQL priekšrakstu izpildes plāna tabula PLAN_TABLE.  Apraksts
 
SQL priekšrakstu izpildes ātrdarbības palielināšana. Otrā iespēja – fizisko datu sakārtošana un sadalīšana. Datu tabulu fiziska sadalīšana, partīcijas jeb nodalījumi (partitions). To priekšrocības. Sadalīšanas stratēģijas. Tabulu sadalīšanas veidi. Sadalīšanas pamatjēdzieni un pamatprincipi. Datu tabulu partīciju veidi. Sadalīšanas priekšrocības: veiktspēja, tabulu savienošanas iespēju uzlabošana, pieejamības uzlabošana, pārvaldības uzlabošana. Viena līmeņa un daudzlīmeņu sadalījums. Partīcijas atslēga.   Apraksts
Datu bāzes vārdnīcas metadatu informācija par sadalītajām tabulām.   _fails
Tabulas nodalījumi jeb partīcijas ar diapazona sadalījumuApraksts
Tabulas nodalījumi jeb partīcijas ar intervāla sadalījumu.   Apraksts
Tabulas nodalījumi jeb partīcijas ar heš funkcijas izmantošanu sadalījuma veidošanai Apraksts
Tabulas nodalījumi jeb partīcijas ar saraksta sadalījumu.   Apraksts
Tabulas nodalījumi jeb partīcijas ar atsauces sadalījumu.  Apraksts
Tabulas nodalījumi operatīvās atmiņas kolonu glabātuvē (in memory column store).  Apraksts
Sadalītas ārējās (external) tabulasApraksts
Sadalījumu norādīšana atslēgu kolonāmApraksts
Saliktas sadalītas partīcijas. Saliktas heš + sadalītas tabulas izveide. Saliktas diapazonu + sadalītas tabulas izveide.  Apraksts
Intervāla – atsauces sadalīšanas partīcijas.  Apraksts
Indeksēšana sadalītajās tabulās. Sadalīti un nesadalīti indeksi. Lokāli jeb vietējie sadalītie indeksi (ekviparticionēšana). Nesadalītie indeksi sadalītām tabulām. Globālie diapazona sadalītie indeksi. Globālie nesadalītie indeksi. Nesadalītu un sadalītu indeksu kombinācija sadalītai tabulai. Vietējie jeb lokālie indeksi ar un bez prefiksiem. Globālā diapazona sadalītie indeksi. Globālie heš sadalītie indeksi. Lokālo un globālo sadalīto indeksu izveidošana. Daļēji sadalīto tabulu indeksi.  Apraksts
 
Informācijas sistēmu darbības optimizācija (ātrdarbības uzlabošana). Programma vai datu bāze?   Apraksts
SQL priekšrakstu izpildes ātrdarbības palielināšana. Trešā iespēja – vaicājumu paralēlā izpilde (parallel execution). Paralēlā izpilde  un tās priekšrocības. Paralēlās izpildes problēmas.  Apraksts
Vaicājumu izpildes paralēlisma formas. Starpvaicājumu paralēlisms, vaicājuma iekšējais paralēlisms, starpoperāciju paralēlisms, operāciju izpildes iekšējais paralēlisms. Jaukts paralēlisms. Paralēlās izpildes galvenie elementi (sinhronizācija, bloķēšana, ziņu apmaiņa, mērogošana. Apraksts
Ražotāja/patērētāja modelis.  Paralēlie srvera procesi (vergu procesi) un vaicājuma koordinators. Paralēlo serveru pūls. Paralēlo serveru komunikācija.  Procesoru kodolu skaits un tā noteikšana. Paralēlisma pakāpe. Paralēlisma pakāpes definēšana. Vaicājuma paralēlisma pakāpes efektivitāte. Paralļo serveru kopu darbība. Paralēlās izpildes konfigurējošie parametri. Paralēlās izpildes rindas organizēšana. Apraksts
Kopsavilkums.  Apraksts
Vaicājuma paralēlās izpildes plāns, tā sastāvdaļas un attēlojums.  Apraksts
Paralēlās izpildes procesa metadatu apskate. Paralēlās izpildes dināmiskie skati. Datu bāzes vārdnīcas skati par paralēlās izpildes serveriem un processiem.   Apraksts
Paralēlās izpildes granulas un partīcijas. Bloku diapazona granulas (block range granules) un partīciju granulas. Apraksts
Paralēlās izpildes datu izplatīšanas metodes (didtribution methods) starp ražotājiem un patērētājiem: heš jeb jaucējfunkcijas izplatīšana, apraides (broadcast) izplatīšana, sadalīšanas – apraides, diapazonu (range) sadalījuma izplatīšana, atslēgas (key) sadalījums, hibrīda heš (hybrid hash) izplatīšana. Paralēli savienojumi. Heš savienojums,  paralēlo sadaļu gudrs apvienojums (parallel partition – wise joins).  Apraksts
SQL vaicājumu ieteikumi (hints) vaicājumā izmantojamo datu izplatīšanas metožu norādīšanai (USE_HASH(), PQ_DISTRIBUTE()).  Apraksts
 
Paralēlisma attīstība datu bāzes sistēmās.  _fails
Viena datu bāzes vadības instance.  Datu bāzes fiziska sadalīšana partīcijās. Paralēlo serveru PX processu izpildes izmantošana. Vairāku instaču ar savām datu bāzēm koplietošana no lietojumprogrammas. Programmā tiek veikti savienojumi ar vairākām datu bāzēm. Vairāku instanču vadība datu bāzes sistēmā. Instanču ievietošana būros (instance caging).Paralēlais serveris un paralēlas instances.  Izplatītā jeb izkliedētā (distributed) datu bāzes sistēma.  _fails
Datu bāzes replicēšana. _fails
Vairāku nomnieku (multitenant) konteineru datu bāzes sistēma. Pievienojamā un pārvietojamā (pluggable) datu bāze. Lietojumprogrammu konteiners (application container).  _fails
Datu bāzes klasterizācija (Oracle Real Application Clusters). Vairākas datu bāzes vadības instances un viena datu bāze. _fails
Datu fragmentu (sharding) datu bāzes arhitektūra. Horizontālā datu sadale. _fails
Režģveida jeb tīkla datu apstrādes arhitektūra (grid computing). Plaša apmaiņa starp datu bāzes sistēmām.  _fails
“Datu sarga” (data guard) sistēma. Dublējoša datu bāzes sistēma.  _fails
Oracle NoSQL tehnoloģija. Izkliedēti dati un apstrāde.  _fails
Procesoru arhitektūras paralēlai datu apstrādei.   _fails
. . .
Datu bāzes tranzakciju vadība. Datu apstrāde daudzlietotāju režīmā. “Netīrā” lasīšana. Zaudētā atjaunojuma problēma. Neatkārtojamības problēma. Fantoma lasīšana. Datu konkurence un konsekvence. Daudzversiju lasīšanas konsekvence. Priekšraksta līmeņa lasīšanas konsekvence. Tranzakcijas līmeņa lasīšanas konsekvence. Daudzlietotāju režīma nodrošināšana (tranzakcijas, bloķēšanas mehānismi, Undo un Redo mehānismi). Tranzakcijas jēdziens. Tranzakcijas darbību izpildes vadība. Tranzakcijas darbības shēma.
Tranzakcijas stāvokļi (aktīvs, daļēji apstiprināts, neveiksmīgs, pārtraukts, apstiprināts, noslēguma stāvoklis).
Tranzakcijas pamatīpašības (atomaritāte, nepretrunīgums, neatkarība, ilgmūžīgums (ACID)).
Tranzakcijas vadības operatori BEGIN TRANSACTION, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION. Apraksts
Piemēri.  Apraksts
Tranzakcijas izolācijas līmeņi (lasīšana nav pabeigta, lasīšana ir pabeigta, atkārtojama lasīšana, serializējums.  Apraksts
Tranzakciju realizācija (pārvaldnieks, plānotājs, bufera pārvaldnieks, failu pārvaldnieks). Tranzakciju pamattipi (tiešsaites, paketes, vispārējās, lasīšana pirms rakstīšanas, ierobežotās, ierobežotās divu soļu, darbības tranzakcijas). Tranzakciju klasifikācija pēc to struktūras (plakanās, iekļautās, slēgti iekļautās, atvērti iekļautās, darba plūsmas tranzakcijas). Izkliedētās jeb sadalītās tranzakcijas. Divu fāžu tranzakcijas izpildes mehānisms.   Apraksts
Bloķēšanas mehānismi.   Apraksts
Aktīvās datu bāzes sistēmas.  Apraksts
Aktīvie likumi. Datu bāzes trigeri.  Apraksts
. . .
SQL priekšrakstu izpildes algotitmu pārdefinēšana paralēlai izpildei. SELECT vaicājumu pieraksta pamatproblēmas. Klona tabulas un analītiskās funkcijas. Slīdošā loga (windowing) princips. OVER() konstrukcija. Vairāku dažādu grupējumu agregātu iegūšana viena līmeņa SELECT vaicājumā. Apraksts
.  .  .
Daudzbāzu sistēmu paralelizācijas tehnoloģiju attīstība.  Apraksts
Datu bāzes sistēmas paralēlās instances.   Apraksts
Replikācijas jēdziens. Replikācijas tehnoloģijas. Repliku sinhronizēšanas process. Apraksts
Izkliedētas datu bāzes sistēmas. Datu bāzes savienojuma izveidošana. K. Deita 12 noteikumi izkliedētajām datu bāzes sistēmām. Izkliedētu datu bāzes sistēmu divu fāžu transakcijas izpildes mehānisms.
Izkliedētas, centralizētas un decentralizētas sistēmas. To priekšrocības un trūkumi.  Apraksts
Datu bāzes sistēmu klasteris (dati sadalīti pa vairākiem mezgliem). Klasterizētas sistēmas. Horizontālā un vertikālā mērogošana. Datu bāzes klasteru arhitektūras: Shared-nothing arhitektūra, koplietotādiska arhitektūra. Oracle Real Application Clusters (RAC).   Apraksts
“Lielie dati” (Big Data). Definīcija: apjoms, ātrums, dažādība, vērtība. Google “lielo datu” jaunā tehnoloģija (Google Stack): Google izkliedētā failu sistēma, Map_Reduce datu apstrādes algoritms, BigTable nerelāciju datu bāzes sistēma. Google sistēmas arhitektūra. Hadoop sistēma (Google sistēmas analogs plašākai lietošanai).
Programmas modulis Map_Reduce. Priekšrocības un trūkumi.   Apraksts
Datu fragmentēšana (decentralizēta vadība). Fragmentēšana ietver vienas loģiskās datu kopas: sadalīšanu un apstrādi vairākās datu bāzēs ar nekā kopēju arhitektūru un ar izvietošanu vairākos serveros. Fragmentu katalogs. Fragmentu direktors. Fragmentētas datu bāzes sistēmas arhitektūra.    Apraksts
Centralizētas datu bāzes sistēmas ACID (atomaritāte, nepretrunība, izolēšana, patstāvība) noteikumi.   Apraksts
Funkcionālās nodalīšanas pieeja BASE (pamatā pieejams, nestigrs stāvoklis, iznākumā nepretrunīgs). Multiversiju laiksakritības kontrole.  Apraksts
CAP jeb Brēvera teorēma (nepretrunīgums. pieejamība, nodalījumu tolerance). Sadalītas datu bāzes nodalījumu tolerance. Nevar garantēt gan pieejamību, gan konsekvenci.  Apraksts
. . .
NoSQL (Not only SQL, NoRel) datu bāzes sistēmas (1998. g.  Carlo Strozzi).
Datu bāzes sistēmu klasteris: datu bāzes serveru vai instanču kopa (atkārtojums).
Datu bāzes klasteru arhitektūras: bez resursu koplietošanas (shared nothing architecture), diska jeb visa koplietošanas arhitektūra (shared everything architecture). Klastera īpašības un priekšrocības. Oracle Real Application Clusters. (Atkārtojums).   Apraksts
NoSQL datu bāzes sistēmu sākuma periods: Google BigTable, Amazon SimpleDB, DynamoDB. NoSQL datu bāzes sistēmu definējumi. NoSQL datu bāzes sistēmu īpašības un izmantoto tehnoloģiju pamatprincipi (mērogojamība, elastība, pieejamība, datu replicēšana, izkliedētība). Datu sadalīšana pa dalītās sistēmas mezgliem. Map-Reduce algoritms. BASE un CAP teorēmas ( nepretrunīgums iznākumā, pieejamība, izturība pret nodalījumiem (kāds serveris atslēdzas).  Apraksts
NoSQL arhitektūras pamatprincipi. Kopējā pamatshēma (galvenie un sekundārie mezgli, un fragmenti (shards)). Sistēmas Hadoop arhitektūra.  Resursu pārvaldnieks un mezglu pārvaldnieks (Node Manager). Galveno un replikācijas mezglu balansēšana. Jauna fragmenta veidošana. Vedējservera (master slave) tipa replikācija. Fragmentēšana. Vienāda ranga (peer to peer) arhitektūra ļauj neizmantot galveno koordinatoru (NoSQL Cassandra). K. Deita 12 noteikumi izkliedētām datu bāzes sistēmām.   Apraksts
NoSQL datu bāzes datu modeļi: atslēga – vērtība, dokumenta tipa, saistīto kolonu un grafa tipa.  Apraksts
ACID (atomaritāte, nepretrunīgums, izolācija, izturīgums) transakcijas. Datu nepretrunīguma modeļi. Nepretrunīgums iznākumā (eventual consistency). NoSQL pavājinātais transakciju vadības princips BASE (būtībā pieejams, nepilnīgs stāvoklis, galu galā nepretrunība). Ērika Brūvera pieņēmums un CAP teorēma. Papildinājums CAP teorēmai PACELC.  Apraksts
NoSQL datu bāzes labās un sliktās īpašības. D. J. DeWitt un M. Stonebraker izvērtējums. NoSQL datu bāzes sistēmu problēmas.   Apraksts
NoSQL datu bāzes sistēmas Cassandra arhitektūra. Klastera mezgli. Datu replikācija. Nepretrunīguma līmeņi.
NoSQL datu bāzes istēmas Cassandra mezgla datu glabāšanas iekšējās struktūras.
Datu ierakstīšana un nolasīšana. Datu ierakstīšana klastera ietvaros. Datu ierakstīšana 1 partīcijas ietvaros.
Datu nolasīšana. Datu nolasīšana mezgla ietvaros.
Datu modelis. Datu tipi. Atslēgu telpas un tabulu noskaņošanas parametri. Datu tipu definēšana. JSON formāta izmantošana.
Kolekciju ierakstīšana (CREATE, INSERT, UPDATE). Kolekcijas datu tipa izmantošanas piemērs.
Datu vaicājumu piemēri: vienkārša INSERT ierakstīšanas priekšraksta piemērs, datu dzēšanas priekšraksta piemēri. Materializētā skata izmantošanas piemērs. Vaicājumu piemēri. Lietotāja definētas funkcijas.
Datu bāzes datu modelēšana. Čebotko diagramma. Fiziskais modelis.   Apraksts
. . .
NewSQL datu bāzes sistēmas – relāciju un NoSQL datu bāzes sistēmu labāko īpašību apvienolums. 
Datu bāzes sistēmas ar izkliedētu vadību un paralēlu apstrādi pamatshēma.
NewSQL datu bāzes sistēmu definējumi.
NewSQL datu bāzes sistēmas pamatprasības un īpašības.
Datu bāzes sistēmas ātrdarbības galvenās problēmas (buferu pūls jeb kopa, rakstīšana žurnālā, bloķēšana, fiksēšana).
Datu glabāšana NewSQL sistēmās.
Laika sakritības vadība NewSQL datu bāzes sistēmās.
Datu replikācija NewSQL datu bāzes sistēmās.
Vaicājumu izpilde NewSQL sistēmās. Sekundārie indeksi.
NewSQL datu bāzes sistēmu klasifikācija: jaunas arhitektūras, caurskatāmu fragmentu (shards) starpprogrammatūra,
datu bāze kā serveris).
Datu bāzes sistēma Google Cloud Spanner. Spanner arhitektūra.   Apraksts
Datu bāzes sistēmu NewSQL saraksts (praktiskā darba izpildes izvēlei).    Apraksts
Datu bāzes sistēmu attīstības perspektīvas. Kompromisi. Konverģēta datu bāzes sistēma. Apraksts