rĪgas tehniskĀ universitĀte - web viewpilna rekursīvo novērtējumu ar iegaumēšanas ......

28
RĪGAS TEHNISKĀ UNIVERSITĀTE Datorzinātnes un informācijas tehnoloģijas fakultāte Lietišķo datorsistēmu institūts Deduktīvās DBS Bernards Gulbis Rīga, 2010 1

Upload: vokhuong

Post on 07-Mar-2018

226 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

RĪGAS TEHNISKĀ UNIVERSITĀTE

Datorzinātnes un informācijas tehnoloģijas fakultāte

Lietišķo datorsistēmu institūts

Deduktīvās DBS

Bernards Gulbis

Rīga, 2010

1

Page 2: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Uzdevuma nostādne

Jāveic čaulas priekšrocību un trūkumu izvērtējums. Jāizdara secinājumi.

2

Page 3: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Saturs

1. Čaula Datalog Educational System (DES).....................................................................4

1.1. Deduktīvā datubāze.................................................................................................4

1.2. Čaulas DES struktūra..............................................................................................4

1.3. Vaicājumu valodas..................................................................................................5

1.3.1. Datalog...........................................................................................................6

1.3.2. SQL.................................................................................................................7

1.3.3. Prolog.............................................................................................................8

1.4. Pieejamās komandas...............................................................................................8

2. Izmantošanas piemērs...................................................................................................10

2.1. Instalācijas apraksts..............................................................................................10

2.2. Lietošana...............................................................................................................11

2.3. Vienkārši piemēri..................................................................................................12

3. Čaulas DES izvērtējums...............................................................................................16

3.1. Priekšrocības.........................................................................................................16

3.2. Trūkumi.................................................................................................................18

Secinājumi............................................................................................................................20

Literatūra..............................................................................................................................21

3

Page 4: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

1. Čaula Datalog Educational System (DES)

1.1. Deduktīvā datubāze

Deduktīva datubāze (Deductive Database) paplašina relāciju datubāzi, izmantojot loģisko

programmēšanu, un atbalsta plašākas datu apstrādes tehnoloģijas. Deduktīva datubāze ir

kombinācija no datubāzes, kura satur faktus, zināšanu datubāzes, kura satur līkumus, un

izveduma mehānismu, kurš spēj iegūt jaunus datus no jau esošiem faktiem izmantojot

definētus līkumus.

Deduktīvajā datu bāzē glabājas trīs veidu informācija, dati, fakti un likumi. Dati un fakti

skaidri raksturo reālās pasaules objektus. Tie ir tiešie fakti, kurus lietotājs glabā datubāzē.

Savukārt, fakti kalpo deduktīvas datu bāzes vadībai, izpildot vaicājumus, un izpildot jauno

faktu izvadi, no jau esošiem faktiem.

1.2. Čaulas DES struktūra

Datalog Educational System (DES) tika izstrādāts Madrides universitātē (Complutense

University of Madrid). Tā ir deduktīvās datubāzes čaula, kas pēc būtības paredzēta apmācības

nolūkiem studentiem.

DES ir bezmaksas, atvērtā koda, daudz platformu, pārnesama, vienkārša Prolog bāzēta

deduktīvās datubāzes sistēmas realizācija. DES 2.1 ir pašreizējā versija, kurai ir:

Datalog un SQL vaicājumu valodas;

pilna rekursīvo novērtējumu ar iegaumēšanas tehnikām;

bagāta aritmētika;

noslāņoti (stratified) noliegumi;

ODBC savienojumi ar ārējām relāciju datubāzes vadības sistēmām (RDBMS);

Datalog un SQL marķieri;

jaunas pieejas deklaratīvajai atkļūdošanai;

testa gadījumu ģenerēšana priekš SQL skatiem;

null vērtību atbalsts;

ārējo savienojumu (outer join) un agregātu predikāti.

Sistēma ir ieviesta pa virsu Prolog un to var izmantot no Prolog interpretētāja, kas

darbojas uz jebkuras OS, ko atbalsta Prolog interpretētājs. Turklāt, ir pieejamas Windows un

Linux izpildprogrammas [3].

4

Page 5: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Galvenais jaunums šajā čaulā ir spēja piekļūt Datalog attiecībām no SQL ziņojumiem. Lai

to panāktu, iespējams deklarēt tipus un pēc izvēles kolonnu nosaukumus priekš Datalog

attiecībām. Tipiem ir viena veida integritātes ierobežojumi, ko var ievietot datubāzē. Šī čaula

arī piedāvā citus Datalog (spēcīgus) integritātes ierobežojumus: primārā atslēga, ārējā atslēga,

funkcionālās atkarības un lietotāja definētus integritātes ierobežojumus. Atšķirībā no relāciju

datubāzu sistēmām, šādi ierobežojumi var būt ievietoti ne tikai faktu meklēšanai datubāzē, bet

arī piemeklēt atbilstošos atribūtus (skatus). Ja ierobežojumu pārbaude ir iespējota (to var

iespējot vai atspējot, izmantojot komandu), sistēma pārrauga šādus ierobežojumus, vai jauns

fakts vai jauns likums tika paziņots. Kā arī, strādājot datubāzei, integritātes ierobežojumu

paziņošana ir veiksmīga vienīgi gadījumos, ja datubāze ir konsekventa attiecībā uz atbilstošu

ierobežojumu. Abos gadījumos tiek sniegta sīka kļūdu ziņošana [3]. Citi uzlabojumi, izmaiņas

un izlabotās kļūdas ir uzskaitītas lietotāja rokasgrāmatā.

DES tika izstrādāts ar mērķi iegūt vienkāršu, interaktīvu, daudz platformu, un pieejamu

sistēmu (nav obligāti efektīvi) studentiem, lai viņi varētu iegūt fundamentālās pamatzināšanas

un pamatus deduktīvajām datubāzēm ar vaicājumu valodām Datalog un SQL. Mācību

nolūkiem SQL ir atbalstīts ar saprātīgu standarta aptveršanu. Citas deduktīvās sistēmas nav

pilnībā piemērotas šādām vajadzībām, jo nav dažu īpašību, ko DES piedāvā izglītības

nolūkos. Šī sistēma nav domāta, kā pilnvērtīga deduktīvā datubāze, tādējādi, tā nesniedz

noturīgumu, transakcijas, drošību, un citas funkcijas, kas atrodas pašreizējās datu bāzes

sistēmās [3].

Jaunākais ieguldījums šai sistēmai tika īstenots deklaratīvs atkļūdotājs Datalog

vaicājumiem, kas balstās uz programmas semantiku, nevis uz aprēķina mehānismu.

Atkļūdošanas process parasti tiek uzsākts tad, kad lietotājs konstatē neparedzētu atbildi uz

vaicājumu. Uzdodot jautājumus par paredzēto semantiku, atkļūdotājs meklē nepareizas

programmas attiecības [3]. Sīkāka informācija ir pieejama lietošanas pamācībā.

Ņemot vērā vajadzību programmas kļūdas ķeršanai, strādājot ar lielu datu apjomu, tika

iekļauts arī testa gadījumu ģenerators priekš SQL korelētajiem skatiem. Šo rīku var izmantot,

lai radītu pozitīvus, negatīvs un gan pozitīvus, gan negatīvus testa gadījumus [3]. Sīkāka

informācija ir pieejama lietošanas pamācībā.

1.3. Vaicājumu valodas

DES ir attīstījies no samērā vienkārša Datalog interpretatora līdz tā pašreizējam stāvoklim,

kas balstās uz deduktīvās datubāzes dzinēja, kuram var izpildīt gan Datalog, gan SQL valodas

5

Page 6: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

vaicājumus. Turklāt, tiek piedāvāts arī Prolog interfeiss, lai izceltu atšķirības starp Datalog un

Prolog sistēmām. Tā kā, DES čaula ir paredzēta studentiem, tai nav pilnvērtīgu

raksturpazīmju saistībā ar Prolog, Datalog vai SQL balstītām sistēmām. Tomēr, tai ir daudzas

funkcijas, kas to padara pievilcīgu priekš apmācības līdzekļa, kopā ar jauno deklaratīvā

atkļūdotāja izstrādi un testa gadījumu ģenerētāju. Šajā sadaļā tiks aprastas trīs vaicājumu

valodas: Datalog, SQL un Prolog.

Datubāze tiek koplietota ar visām vaicājumu valodām tādā veidā, lai varētu ar vaicājumiem

un mērķiem atsaukties uz jebkuru objektu, kas definēts jebkurā valodā. Tomēr ir daži

jautājumi, kas jāņem vērā. Piemēram, ja Datalog fakts ir ielādēts datubāzē, tā definēto relāciju

var izgūt ar Datalog. Bet, ja ir vajadzība piekļūt šim relācijai no SQL, ir pieejamas divas

alternatīvas:

1) definēt to pašu relāciju SQL, izmantojot create table operatoru;

2) deklarēt tipus priekš tabulām.

Šis konkrētais jautājums rodas tāpēc, ka Datalog relācijām ir atribūti bez nosaukumiem un

pozicionālā atsauce tiek lietota piekļuvei pie šīm relācijām. Savukārt, SQL izmanto notāciju

sintaksi, norādot nosaukumus relāciju argumentiem.

1.3.1. Datalog

Viena no populārām loģiskās programmēšanas valodām, kura ir tuvu vaicājumu valodām

datu bāžu tehnoloģijās ir Datalog valoda. Nosaukumu Datalog var sadalīt uz divām daļām,

Data un Logic, darbs ar datiem izmantojot matemātisko loģiku. Datalog valodu, var uzskatīt

kā alternatīvo datubāzēs vaicājumu valodu. Datalog valodu pasniedz kā fundamentālo

vaicājumu valodu, kurš piemērots apmācībai par vaicājumu optimālo izpildīšanu, tāpēc tā

iekļauta DES. Datalog valoda ir ļoti tuva attieksmju loģikai, ar dažām sīkām izmaiņām, lai

atbalstītu ērtāko darbu ar datiem.

Datalog valodā tiek iebūvēta plašuma meklēšanas stratēģija, vaicājumu izpildei. Un

vaicājumu rezultāts ir kortežu kopa, un Datalog valoda, kā ari SQL valoda, spēj to nodrošināt,

jo Datalog valoda atgriež kortežus, kā kortežu kopu.

Datalog valodā nav jūtīguma priekš likumu kārtības. Un, kā zināms, datu bāžu valodās,

tādi kā SQL vai relāciju algebra, nav atkarīgi gan no meklēšanas predikātu kartības, gan datu

bāžu kortežu kārtības. Datalog valodā nav iebūvēti ne speciālie predikāti, ne funkcionālie

simboli, un Datalog valoda apstrādā daudz kortežu vienā laikā. Tajā pašā laikā, tādas īpašības

ierobežo Datalog valodas jaudu, kā universālas programmēšanas valodu. Tādēļ Datalog

6

Page 7: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

valoda izskatās, kā laba abstrakcija, kura ilustrē loģiskās programmēšanas valodas

izmantošanu, kā datu bāžu valodu.

Datalog ir viena no parastajām loģiskās programmēšanas valodām. Un tā, kā Datalog

valoda atrodas ļoti tuvu relāciju modelim, no Datalog valodas izmantošanas, datu bāžu

valodas lomā ir daži labumi, kuri saistīti ar Datalog valodas īpašībām, īpaši ar rekursijas

iespējām.

Loģiska programmēšana nosaka daudz neuzskatāmu vaicājumu veidošanu, un

ierobežojumu ieviešanu, salīdzinot ar SQL. Datalog nesatur sevī tehnoloģijas, kuras ļauj

apstrādāt lielus datu apjomus, neļauj glabāt lielas datubāzes, nevar vadīt daudzu lietotāju

kopējo darbību ar datiem. Lai daļēji apietu šīs nepilnības, DES balstās uz vairākām vaicājumu

valodām.

Tā kā, Datalog izriet no Prolog, izstrādātāji ir pieņēmuši gandrīz visas Prolog sintakses

konvencijas Datalog programmu rakstīšanai. Izstrādātāji pieauj rakstīt Datalog programmas

ar noslāņošanās noliegumu (stratified negation), tas ir, normālas loģikas programmas bez

funkciju simboliem. Noslāņošanās ir uzlikta, lai nodrošinātu skaidru semantiku, kad tiek

iesaistīti noliegumi, un funkcijas simboli nav atļauti, lai garantētu vaicājumu izbeigšanos,

dabas prasība attiecībā uz (relāciju) datu bāzes lietotājs, kurš nespēj tikt galā ar saliktajiem

datiem. Vispiemērotākā prasība, lai ievērotu relāciju datubāzes lietotāju, kas nav spējīgs tikt

galā ar saliktajiem datiem.

1.3.2. SQL

Sintakse, ko atpazīst interpretators it aizgūta no SQL standarta. SQL valoda ir universāla

relāciju datu bāžu vaicājumu valoda. Vaicājumu valoda SQL atrodas ļoti tuvu relācijas

algebrai ar papildus operandiem. SQL valodas vaicājumi izpildes gaitā pārveidojas uz relāciju

algebras darbībām. Relāciju algebras darbības izpildās relāciju datubāzē.

Ar valodu SQL var gan pievienot jaunus datus, gan izmainīt jau esošos datus, gan dzēst

tos. Arī ir iespēja mainīt datu bāzes shēmu. Eksistē daži standarti, kuri apraksta valodu SQL,

un to funkcijas un iespējas. Vaicājumus vaicājumu valodā SQL var sadalīt uz trim lielām

grupām, pēc izpildāmajām funkcijām:

1) datu definēšanas vaicājumi;

2) datu pārvaldības vaicājumi;

3) datu iegūšanas vaicājumi.

7

Page 8: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Katru vaicājumu SQL valodā apraksta ar atslēgvārdiem. Datu definēšanas vaicājumiem ir

nozīme, lai radītu datu bāzi un izveidotu tajā tabulas. Datu pārvaldības vaicājumiem ir nozīme

pievienojot jaunus datus, izmainot jau esošos un dzēšot vecos datus. Savukārt, datu iegūšanai

ir lielāka nozīme SQL valodā. Visi vaicājumi, kuri saistīti ar datu iegūšanu sākas ar aclēgvārtu

select. Šie vaicājumi lieliski attēlo SQL valodas ļoti plašās iespējas.

1.3.3. Prolog

Prolog programmu un mērķu (goal) sintakse ir tāda pati, kā Datalog, ieskaitot visus

iebūvētos operatorus, bet agregējas. Ievērojiet, ka negācija tiek pierakstīta sekojoši not(Goal),

nevis parastajā formā \+Goal.

Pēc būtības, Prolog ir programmēšanas valoda, kas balstās uz Horna teikumiem. Prolog

valoda ir čaula, kas nodrošina sadarbību starp lietotāju un zināšanu bāzi, kas glabā aprakstītās

zināšanas. Parasti zināšanas tiek strukturētas faktu veidā. Katrs likums apraksta nelielu,

relatīvi neatkarīgu zināšanu fragmentu. Jaunu likumu pievienošana notiek relatīvi neatkarīgi

no citiem likumiem. Zināšanu bāze ir viegli modificējama.

Valodā Prolog tiek atsevišķi izšķirta deklaratīvā un procedurālā jēga. Deklaratīva jēga

nosaka to, kas būs par programmas rezultātu. Procedurāla jēga nosaka to, kā šis rezultāts bija

iegūts. Prolog programmas ir faktu deklarācija un likumi, lai veiktu deduktīvus secinājumus.

Programmas izpilde iekļauj atbildi uz jautājumiem, kas atsaucās uz faktiem vai bija izvadīti

no tiem. Lietotājs dod aksiomas un Prolog mēģina pierādīt izvirzītās teorēmas.

Prolog veic datubāzes pārmeklēšanu izmantojot dziļuma meklēšanas algoritmu, cenšoties

pierādīt šo vaicājumu un izvada atbildi uz vaicājumu. Vaicājumi sistēmā sastāv no viena vai

vairākiem mērķiem. Vārds mērķis tiek izmantots tāpēc, ka Prolog sistēma uztver vaicājumus

kā mērķus kurus nepieciešams sasniegt. Atbilde uz vaicājumu var būt vai nu pozitīva vai

negatīva, atkarībā no tā vai izvirzītais mērķis var tikt sasniegts vai nē. Pozitīvas atbildes

gadījumā uzskata ka attiecīgais mērķis var tikt sasniegts un ka tas ir sasniedzams. Pretējā

gadījumā mērķis nav sasniedzams.

1.4. Pieejamās komandas

Sistēmas konsole pieņem vairākas komandas, kas ir izolētas no datubāzes, lai izvairītos no

atslēgvārdu sadursmēm arī gadījumos, kad relācijas vārds sakrīt ar kādu no komandām. Tas ir

iespējams tāpēc, ka iesniedzot komandu nepieciešams, lai pirms tā būtu slīpsvītras "/"

simbols. Komandas var klasificēt sešās grupās:

8

Page 9: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

1) noteikumu datubāzes komandas priekš ievietošanas, dzēšanas un programmu un

noteikumu uzskaitīšanas;

2) operētājsistēmas komandas, kas nodarbojas ar operētājsistēmas failu sistēma un

ārējām komandām;

3) papildus tabulu komandas, informācija par saglabātajiem rezultātiem;

4) log komandas, lai reģistrētu sistēmas izejas failos;

5) informatīvās komandas, lai parādītu predikātu atkarības grafu, stratifikācija,

sistēmas stāvoklis, palīdzība un citi;

6) dažādas komandas sesijas beigšanai un Prolog aktivēšanai.

Sīkāk, katras grupas komandas ir uzskaitītas un aprakstītas DES lietotāja ceļvedī.

9

Page 10: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

2. Izmantošanas piemērs

Šajā nodaļā tiks apskatīta čaulas instalācija un lietošana, apskatot nelielu piemēru. Tāpat

tiks īsi aprakstītas vairākas čaulas iespējas.

2.1. Instalācijas apraksts

DES čaula ir brīvi pieejama augšupielādei internetā arhīva formātā

(http://www.fdi.ucm.es/profesor/fernan/des/html/download.html), kas ieļauj vairāku avotu

kodu izlaidumus priekš dažiem Prolog interpretētājiem un operētājsistēmām. Tāpat, satur

izpildes failu izlaidumus priekš MS Windows, Linux un Mac OS operētājsistēmām.

Apskatīsim MS Windows operētājsistēmai piedāvātās iespējas. Lejupielādējot piedāvātos

failus, to instalācijai nepieciešams tos atpakot no arhīva. Lai darbotos ar DES nepieciešams

izlemt ar kuru no četriem piedāvātajiem Prolog interpretētājiem tiks strādāts. Attiecībā pret

izvēlēto interpretētāju tiek norādīti uzstādījumi:

a) Ciao Prolog: -l ciaorc

b) GNU Prolog: --entry-goal ['des.pl']

c) SICStus Prolog: -l des.pl

d) SWI Prolog: -g "ensure_loaded(des)" (noņemt --win_app ja ir)

Šos uzstāījumus iespējams norādīt īsceļa ikonai, vai izveidot attiecīgu bat failu. Čaulu

iespējams palaist konsoles režīmā, loga režīmā vai grafiskajā režīmā.

Tika lejupielādēts un atarhivēts izlaidums, tad palaidu čaulu konsoles režīmā (sk.1.a.att.)

un loga režīmā (sk.1.b.att.). Loga režīmā tiek piedāvātas noderīgas funkcijas izvēlņu joslā, kas

atvieglo darbu ar konsoli, kas atkarībā no izmantojamā Prolog interpretatora var mainīties.

a) b)

1.att. DES čaulas lietojums: a – konsoles režīmā; b – loga režīmā.

DES piedāvā arī izlaidumu ar bagātu grafisko interfeisu, kas izstrādāts izmantot Java

ASIDE 0.7 grafisko vidi, kas ir konfigurēts priekš Datalog sintakses izcelšanas. Vadības

pogas un interaktīva konsole, tādējādi atvieglojot tās izmantošanu, samazinot taustiņsitienu

10

Page 11: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

skaitu. Grafiskā čaula tiek piedāvāta jar formātā, tā palaišanai nepieciešama Java izpildes

vide jeb JRE (Java Runtime Environment). Palaišanai iespējams izveidot bat failu. Grafiskās

vides čaula attēlota 2.attēlā.

cd C:\Program Files\Java\jdk1.6.0_22\binjava -jar C:\des\des_acide.jar

2.att. DES grafiskais čaulas lietojums.

Sekojoši grafiskā čaula ir ērtākā no apskatītajiem čaulas izmantošanas veidiem, jo tas ir

uzskatāmāks un iekļauj vairākas izvēlnes, kas aizvieto komandu rakstīšanu. Tāpat, parādās

vairākas papildus iespējas.

2.2. Lietošana

Pēdējā rindā (DES-DATALOG>) ir DES sistēmas uzvedne, kas ļauj jums rakstīt komandas,

Datalog vaicājumus, laicīgos skatus un savienotos vaicājumus. Ja kļūdas rezultātā iziet no

DES čaulas, bet programma ir palaista caur Prolog interpretētāju, tad var ierakstīt „des.” (bez

pēdiņām, bet ar punktu) Prolog uzvednē, lai turpinātu darbu. Pašlaik ir pieejami trīs režīmi

11

Page 12: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

dažādu vaicājumu interpretatoriem: Datalog, SQL un Prolog. Pirmais ir pēc noklusējuma, šos

režīmus var nomainīt, izmantojot komandas:

/datalog – priekš Datalog;

/sql – priekš SQL;

/prolog – priekš Prolog.

Visas komandas vienmēr sākas ar slīpsvītru (/). Katrā gadījumā, ja ir aktivizēts, kāds no

režīmiem, var izpildīt vaicājumus vai mērķus (goal), vienkārši iedrukājot vaicājumu vai

mērķus pēc attiecīgās komandas. Gadījumā, ja aktivizēts Datalog režīms, iespējams uzreiz

iesniegt SQL vaicājumus.

Dati tiek glabāti Datalog datubāzē, ieskaitot faktus un likumus. Visiem vaicājumiem un

mērķiem, neatkarīgi no valodas, atsaucas uz šo datubāzi. Kad ārējā relāciju datubāze tiek

pieslēgta, tās tabulas un skati ir pieejami un var būt pieprasīti vaicājumos no Datalog, Prolog

un SQL.

2.3. Vienkārši piemēri

Darbam ar DES ir svarīgi zināt būtiskākās komandas darbam ar čaulu. Grafiskā vide

pieļauj attiecīgo izvēlņu nospiešanu tā vietā, lai drukātu komandas. Galvenokārt, izmantošu

sekojošas komandas:

/listing – izvada uz ekrāna pašreiz definēto Datalog;

/status – izvada uz ekrāna patreizējos uzstādījumus;

/consult [faila_nosaukums] – ielādē Datalog programmu DES čaulā;

/help – izvada uz ekrāna visas pieejamās DES čaulas komandas.

Deduktīvās datubāzes izveidei ir nepieciešamas komandas likumu pievienošanai un

izņemšanai no datubāzes:

/assert [likuma_nosaukums] – lai pievienotu jaunu Datalog likumu datubāzē;

/retract [likuma_nosaukums] – lai izņemtu esošu Datalog likumu no datubāzes.

Komanda /assert dod iespēju definēt jaunus faktu un likumus konkrētajā deduktīvajā

datubāzē.

a. piemērs:

Pirmajam piemēram tiks izveidota programma, kas definē ģimenes koka struktūru (sk.

3.att.). Nepieciešams noskaidrot visus personas janis pēctečus. Tiek definēts pāru saraksts

<vecaks, berns>, tādā veidā, ka vecāks ir bērna vecāks (relācija vecaks). Tāpat definēju pārus

12

Page 13: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

janis

peteris

aigars lana

zane

inga reinis gunta

dace

<sencis, pectecis>, tādā veidā, ka sencis ir pēcteča sencis (relācija sencis). Definēju pārus

<tevs, berns>, tādā veidā, ka tēvs ir bērna tēvs (relācija tevs). Definēju pārus <mate, berns>,

tādā veidā, ka māte ir bērna māte (relācija mate).

3.att. Ģimenes koks.

Sekojoši, izveidoju Datalog programmu, definējot faktus un likumus.

tevs( janis, inga).tevs( peteris, aigars).tevs( reinis, lana).tevs( aigars, dace).mate( zane, inga).mate( inga, aigars).mate( gunta, lana).mate( lana, dace).vecaks(X,Y) :- tevs(X,Y).vecaks(X,Y) :- mate(X,Y).sencis(X,Y) :- vecaks(X,Y).sencis(X,Y) :- vecaks(X,Z), sencis(Z,Y).

Tālāk, definēju vaicājumu sencis( janis, X), lai noskaidrotu visus pēctečus, kas ir janis

personai. Vaicājuma rezultāts ilustrēts 4.attēlā. Kā redzams, vaicājums korekti izvadīja visus

trīs dotos pēctečus.

13

Page 14: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

4.att. Programmas ielāde un vaicājuma izpilde.

b. piemērs:

Šo programmu varēja izveidot arī ar SQL vaicājumu valodas palīdzību, kas arī atrisina šo

uzdevumu.

/sqlcreate table tevs(tevs string,berns string);insert into tevs values('janis','inga');insert into tevs values('peteris','aigars');insert into tevs values('reinis','lana');insert into tevs values('aigars','dace');create table mate(mate string,berns string);insert into mate values('zane','inga');insert into mate values('inga','aigars');insert into mate values('gunta','lana');insert into mate values('lana','dace');create view vecaks(vecaks,berns) as select * from tevs union select * from mate;create or replace view sencis(sencis,pectecis) as with recursive rec_sencis(sencis,pectecis) as select * from vecaks union select vecaks,pectecis from vecaks,rec_sencis where vecaks.berns=rec_sencis.sencis select * from rec_sencis;-- janis pectecis:select * from sencis where sencis='janis';

14

Page 15: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Tālāk definēju un ielādēju faktus ar SQL izteiksmēm. Uz izpildu vaicājumu, lai

noskaidrotu visus pēctečus, kas ir janis personai. Vaicājums ilustrēts 5.attēlā.

5.att. Programmas ielāde un vaicājuma izpilde.

Kā redzams, vaicājums korekti izvadīja visus trīs dotos pēctečus, kuri sakrīt ar iepriekšēji

iegūtajiem rezultātiem. Kā redzams, Datalog programma ir daudz īsāka un saprotamāka tāda

veida uzdevumiem, nekā SQL. Programmas uzrakstīšana arī bija vienkāršāka ar loģiskās

valodas palīdzību. Čaula DES sniedz salīdzinoši plašas iespējas, veidojot dažādas

programmas.

15

Page 16: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

3. Čaulas DES izvērtējums

Šajā nodaļā tiks īsi izvērtētas čaulas DES priekšrocības un trūkumi, kas būtu jāņem vērā,

apskatot šo čaulu.

Sekojoši, apskatot priekšrocības un trūkumus, var secināt ka vairāk ir priekšrocību, lai gan

ir pāris nozīmīgi trūkumi. Jāatzīmē, ka iepriekšējam versijām liela daļa trūkumu tika izlaboti,

kas tagad ir pieskaitāmi pie priekšrocībām. Tātad, nākotnē DES var ievērojami attīstīties un

izlabot trūkumus nākamajās versijās.

Kopīgi, DES ir ļoti jaudīga un iespējām bagāta deduktīvās datubāzes čaula, ņemot vērā, ka

šī ir apmācības sistēma, kuru galvenokārt uztur viens cilvēks.

3.1. Priekšrocības

Sekojoši, čaulas sniedz ļoti daudz priekšrocību, lielākā daļa priekšrocību ir uzskaitīta

zemāk. Šīs priekšrocības padara DES čaulu populāru un bieži izmantojamu, galvenokārt

mācību nolūkiem.

Bezmaksas, daudz platformu, pārnesama un atvērta koda.

o To var izmantot jebkurā operētājsistēmā (Windows, Mac, Linux, u.c.), kas

darbojas uz viena no atbalstītajiem Prolog interpretatoriem.

o Turklāt, portatīvie izpildāmie faili ir nodrošināti priekš Windows un Linux

operētājsistēmām.

Interaktīva.

o Balstoties uz komandrindas interpretatoru, ir iespēja darboties ar DES,

iesniedzot vaicājumus, modificēt datubāzi un piemērojot komandas.

Grafiskais lietotāja interfeiss (GUI).

o Iespēja izmantot Java ASIDE 0.7 grafisko vidi (ekrāna attēli), kas ir

konfigurēts priekš Datalog sintakses izcelšanas (iekrāsošanas). Vadības

pogas un interaktīva konsole, tādējādi atvieglojot tās izmantošanu,

samazinot taustiņsitienu skaitu (tas attiecas uz izpildāmo failu).

Savietojamība ar teksta redaktoriem GNU Emacs.

o Ja patīk strādāt Emacs teksta redaktora vidē, iespējams uzstādīt integrāciju

(Emacs environment).

Datalog un SQL vaicājumu valodas.

16

Page 17: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

o Dod iespēju izmantot deduktīvo datubāzu spēku, izmantojot gan Datalog,

gan (rekursīva) SQL vaicājumu valodas. Tās koplieto kopīgu relāciju

datubāzi, kas var tikt definēta ar jebkuru no šīm valodām, un tāpat arī veidot

vaicājumus.

Aktīvs jeb dzīvs projekts.

o Katrus 2 līdz 3 mēnešus tiek solīts atjaunināt izlaidumus.

Stabila sistēma.

o Izstrādātāji apgalvo, ka tiek ziņots par nelielu kļūdu skaitu.

Populāra sistēma.

o Projekta lejupielādēšanas statistika uzrāda strauju ielāžu palielināšanos

pēdējā laikā, kas ir samērā augsta.

o Meklējot informāciju internetā (Google) par Datalog, tiek piedāvāta

informācija arī par DES.

o Vairāk nekā 32 tūkstoši ierakstu, meklējot „Datalog Educational System”

pārlūkprogrammā Google.

Datubāzes modificēšana.

o Datubāzi iespējams modificēt gan ar SQL DML (Data Manipulation

Language), gan ar komandu palīdzību.

Vērtības null atbalsts.

o Tiek piedāvāta atbildīga iespēja izmantot nenoteiktību ar SQL.

Ārējie savienojumi (outer join).

o Tā kā, null vērtības ir pieļaujamas, tiek piedāvāta iespējā arī izmantot ārējos

savienojumus: labos, kreisos un pilnos ārējos savienojumus gan priekš SQL,

gan Datalog.

Agregāti.

o Iespēja apkopot datus ar count, sum, min, max, avg un times gan priekš

SQL, gan Datalog.

o Iespēja atrast gan predikātu, gan funkciju versijas priekš Datalog

agregātiem.

o Grupēt datu kopumus un filtrēt ar agregātu palīdzību.

o Ātri un uz vietas izveidot grupas ar Datalog auto grupēšanas palīdzību.

Vairāki datu kopumi (multisets).

o Iespējo vai atspējo dublikātu apstrādi gan Datalog, gan SQL.17

Page 18: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Relāciju datubāzes piekļuve, izmantojot ODBC.

o ODBC datu avotiem iespējams ēri piekļūt. Savieno DES ar jebkuru DBVS,

kas atbalsta šādu savienojumu (MySQL, MS Access, Oracle, u.c.).

Negācija.

o Nevajag sagaidīt daudz vairāk, kā stratificēto negāciju un null vērtības

trūkumus.

Integritātes ierobežojumi.

o Domēns, tipi, primārās atslēgas, atsauces integritāte, funkcionālās atkarības,

lietotāja definētās stiprās saites, saišu pārbaudes iespējošana vai

atspējošana.

Deklaratīvā atkļūdošana priekš Datalog programmām.

o Atkļūdo ieplānoto semantiku, nevis procedurālo semantiku.

Testa gadījumu ģenerators priekš SQL skatiem.

o Strādā ar skatiem, kas paredzēti lielām tabulām, un pārbauda to ar testu

gadījumiem, nevis ar faktiskām tabulām.

Bagāta aritmētika.

o Rakstiet aritmētiskās izteiksmes ar plašu kopumu aritmētisko funkciju,

operatoriem un konstantēm.

Tipu sistēma priekš SQL tabulām un skatiem.

o Priekšrocības tipizētu relāciju un tipu interfeisu pielietošana.

3.2. Trūkumi

Ne visi ir labi. Ņemot vērā, ka šī ir apmācības sistēma, kuru galvenokārt uztur viens

cilvēks. Sekojoši, čaulai ir trūkumi, kas ir uzskaitītas zemāk. Kā redzams, trūkumu ir

ievērojami mazāk nekā priekšrocību. Būtiskākie trūkumi ir uzskaitīti zemāk.

Netiek gaidīts, ka DES spēs pārspēt kādu veiktspējas atzīmi vai konkurēt ar citām

lielākām deduktīvo datubāzu sistēmām.

Netiek gaidīts, ka DES spētu darboties ar lieliem datu apjomiem.

Valodas Datalog trūkumi čaulā.

o Netiek pieļauta datubāzes modifikācija ar Datalog likumu palīdzību.

o Lietotāja relācijās nav pieļaujama salikto noteikumu pielietošanā par

argumentiem.

Valodas SQL trūkumi čaulā.

18

Page 19: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

o Tabulu un kolonnu identifikatori ir reģistrjutīgi (case sensitive).

o Daži nepareizi SQL priekšraksti netiek noraidīti (tie, kas satur GROUP BY

klauzula un kolonnu projekcijas sarakstā, kas nav sastopami grupu

sarakstā).

o Aprēķināms SQL priekšraksts seko gramatikai, kas aprakstīta lietošanas

pamācībā. Taču, pašreizējā gramatika parsē papildus noteikumus, kas vēl

nevar tikt aprēķināti (piemēram, ORDER BY, ALL, ANY, u.c.).

Ir uzskaitīti arī vairākas atklātās kļūdas, kuras pagaidām nav izlabotas, bet tiek solīts tās

izlabot nākamajās versijās.

19

Page 20: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Secinājumi

Darba ietvaros tika izpētīta un aprakstīta čaulas struktūra, lietotās vaicājumu valodas un

pieejamajās komandas. Tika apskatīta čaulas instalācija un pielietošana, kā arī apskatīts

piemērs. Veicu čaulas priekšrocību un trūkumu izvērtējums.

DES čaula ir paredzēta apmācības nolūkiem, piedāvājot salīdzinoši vienkāršu deduktīvās

datubāzes sistēmu ar vairākām vaicājumu valodām. Čaula ir pilnveidojusies un patreizējā

versija satur lielu daudzumu funkcionalitāšu un jauninājumu. DES čaulai ir vairākas

nepilnības, bet arī ļoti daudz priekšrocību un ņemot vērā, ka šī ir apmācības sistēma, kuru

galvenokārt uztur viens cilvēks, tā ir samērā jaudīga un pilnvērtīga. Iespējams koplietot

Datalog un SQL vienas datubāzes ietvaros. Tādā veidā, tiek atrisinātas vairākas nepilnības,

piemēram, darbs ar lielākiem datu apjomiem.

Manuprāt, šī čaula ir ļoti laba izvēle, lai iepazītos un iegūtu pamatzināšanas deduktīvajās

datubāzēs un loģiskajās valodas. Tā ir bezmaksas un atvērtā koda, kas dod iespēju to pilnīgāk

apgūt. DES ir viegli lietot un instalēt, tā ir interaktīva sistēma, konfigurējama, stabila un

platformas neatkarīga. Tāpat, tiek piedāvāts ērts grafiskais lietojums.

20

Page 21: RĪGAS TEHNISKĀ UNIVERSITĀTE - Web viewpilna rekursīvo novērtējumu ar iegaumēšanas ... Oracle, u.c.). ... Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense

Literatūra

1. Lekciju konspekts priekšmetā „Progresīvās datu bāzes (DB3)”, prof. J.Eiduks2. RTU: Datu bāzes tehnoloģiju laboratorija / Internets - http://datubaze.wordpress.com/macibu-kursi/db3/3. Datalog Educational System / Internets - http://www.fdi.ucm.es/profesor/fernan/DES/, pēdējā

modifikācija 2010.gada 10. decembrī.4. Perez F.S. Datalog Educational System V2.1 User’s Manual / Complutense University of Madrid,

Faculty of Computer Science, Spain, 30.11.2010 - 149 pages.

21