DB2-2. Paralēlās datu bāzes sistēmas (bakalauri 3. kurss 2. semestris).

Mācību programmas kursam “Paralēlās datu bāzes sistēmas” saīsināts variants
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.
Paralēlo datoru klases: daudzkodolu procesors (superskalārs procesors jeb daudzpavedienu veidošana), simetrisks daudzprocesors, sadalīts jeb izkliedēts dators, klasteru skaitļošana, maīvi paralēlā skaitļošana, režģa skaitļošana, vektoru procesori). Paralēlās programmēšanas valodas. Procesi un pavedieni (threads). Paralēlās programmēšanas galvenie veidi: vienkāršākais paralelisms, koplietojamās atmiņas paralēlisms (dakša/apvienojums modelis, izkliedētās atmiņas paralēlisms (multiprocessing), akseleratora jeb grafiskais paralēlisms.
Paralēlas darbības datu bāzes sistēmas (PDBS): daudzprocesoru arhitektūras sistēmas, hibrīda arhitektūras sistēmas (nevienmērīga atmiņas arhitektūra, klateru arhitektūra). Paralelisma veidi paralēlās datu bāzes sistēmās:  vaicājumu iekšējais (intraquery) paralēlisms, neatkarīgais paralēlisms, konveijera paralēlisms, intraoperāciju paralēlisms). Paralēlas darbībs ieviešana datu bāzes sistēmās. PDBS Oracle Parallel Server.
Datu bāzes sistēmas funkcijas, kurām izmanto paralēlo apstrādi:vaicājuma paralēlā izpilde, paralēlā 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ā atkopšana (recovery), paralēlā replikācija.
Datu bāzes un datu bāzes instances izvērsta arhitektūra (atkārtojums). Datu bāzes elementi un datu bāzes definēšana (CREATE DATABASE). Tabultelpas, segmenti, ekstenti, bloki un datu bāzes vārdnīcas skati to parametru apskatei un analīzei. Datu bāzes tabulas loģisko un fizisko parametru norāde.
Datu tabulu un indeksu fiziska sadalīšana. Datu pārtīcijas jeb nodalījumi. Sadalīšanas pamatidejas. Sadalīšanas stratēģijas: diapazona, heš,  saraksta un saliktā stratēģijas. Partīcijas atslēga. Atsauces sadalīšana. Indeksēšana sadalītajās tabulās. Lokālie un globālie indeksi.
Kā darbojas paralēlā izpilde. Paralēlisma pakāpe un tās definēšana SQL priekšraksta, objekta definīcijas vai instances līmenī. SQL priekšrakstu paralēla izpilde. Vaicājuma paralēlā izpildes serveri, vaicājuma koordinators. Ražotāja/patērētāja (produser/consumer) modelis. Paralēlais SQL. Paralēlie datu bāzes serveri. Paralēlā datu izgūšana un apstrāde. Paralēlisma pakāpe un tās definēšanas līmeņi (priekšraksta, objekta definēšanas, instances līmenis). Ražotāja/patērētāja modelis. Paralēlās izpildes PX serveri (slave proceses) un vaicājuma koordinators. PX serveru kopas. PX serveru pūls (pool). SQL priekšrakstu paralēlas izpildes plāns un tā parametri. PX serveru informācijas apmaiņas principi.
Paralēlisma granulas: bloku diapazona granulas un nodalījumu granulas. Datu izplatīšanas metodes starp ražotājiem un patērētājiem: heš vai jaucējfunkcijas izplatīšanas metode, apraides izplatīšanas metode, atslēgas sadalījums, hibrīda heš sadalījums. Datu pārdalīšana.
Daudzlietotāju režīma problēmas. Daudzlietotāju režīma nodrošināšana. Tranzakcijas jēdziens. Tranzakcijas īpašības.  Tranzakciju operatori. Tranzakcijas realizācija. Tranzakciju veidi (plakanās, iekļautās, slēgti iekļautās, atvērti iekļautās). Divu fāžu tranzakcijas izpildes mehānisms: koordinators un izpildes serveri. Tranzakciju un sistēmas kļūmju varianti.  Datu izmaiņu pazaudēšana. Nefiksēto tranzakciju atkarība. Tranzakciju izolācijas līmeņi. Trīs novēršamie fantomi: netīrā lasīšana, lasīšanas neatkārtojamība, fantomu lasīšana. Bloķējamo datu vienības. Konkurences kontroles mehānismi. Tabulas bloķēšanas veidi.
Aktīvās datu bāzes un trigeri. Trigeru paralēlās darbības problēmas. Tranzakciju vadība aktīvajās datu bāzēs.
NoSQL datu bāzes sistēmu (DBS) attīstība un pamatidejas. NoSQL DBS tehnoloģijas un pamatprincipi (mērogojamība, elastība, pieejamība, datu izvietošana uz vairākiem serveriem, datu pretrunības novēršana, izkliedētu DBS pamatnoteikumukombināciju izvēle, BASE tipa tranzakciju izmantošana, nepretrunīguma modeļi, programmēšanas modeļa MapReduce izmantošana). NoSQL datu bāzes datu krātuves (Key-Value store) galvenās sastāvdaļas (sadaļas (shards) ar vairākām partīcijām, krātuves mezgli, replikācijas mezgli). NoSQL DBS datu modeļi: dokumenta modelis, atslēgas – vērtības modelis, saistītu kolonu modelis, grafu modelis. Datu ierakstīšana un nolasīšana. Vaicājumu valodas. NOSQL sistēmu izvērtējums, to priekšrocības un trūkumi.
NewSQL datu bāzes sistēmu attīstība un pamatidejas. Pamatprasības NewSQL sistēmām: relācijas modeļa izmantošana, ACID principu ievērošana, NoSQL veiktspējas nodrošināšana, nekā kopēja datoru arhitektūra, laikasakritības vadība konkurences problēmu atrisināšanai. New SQL datu un procesu tipiskākās arhitektūras.  Datu ievade un vaicājumu izpilde. Datu bāzes adminstrēšanas problēmas. NewSQL arhitektūras priekšrocības. ACID un BASE principu izmantošana. CAP teorēma. Datu nodalīšana.  NewSQL priekšrocības un trūkumi. Attīstības perspektīvas.