Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm...

25
Multibāze Izstrādāja: Rita Burbo Jānis Raubiško

Transcript of Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm...

Page 1: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Multibāze Izstrādāja: Rita Burbo

Jānis Raubiško

Page 2: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Saturs1. Izstrādes vide Eclipse...................................................................................3

2. PostgreSQl...................................................................................................4

3. MySQL........................................................................................................5

4. XML faili datu uzglabāšanai........................................................................7

5. Praktiskais darbs........................................................................................11

5.1 Globālā shēma....................................................................................11

5.2 Lietotāja saskarne...............................................................................11

6. Lietojumprogrammas testēšanas shēma.....................................................12

6.1 PostgreSQL datu avots.......................................................................12

6.2 CSV datu avots...................................................................................12

6.3 MySQL datu avots..............................................................................12

6.4 Globālās shēmas paraugs....................................................................13

7. Realizētā lietotāja saskarne........................................................................14

8. Lietojuma darbības princips.......................................................................16

8.1 Globālās shēmas nolasīšana...............................................................16

9. Secinājumi.................................................................................................18

Literatūra...........................................................................................................19

2

Page 3: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

1. Izstrādes vide EclipseEclipse ir daudzu valodu programmatūras izstrādes vide, kura sastāv no

integrētas izstrādes vides (IDE) un paplašināmas spraudņu sistēmas. Tā pārsvarā ir sarakstīta Java valodā un to var izmantot, lai izstrādātu programmatūru Java un, ar dažādu spraudņu palīdzību, arī citās programmēšanas valodās, ieskaitot Ada, C, C++, COBOL, Perl, PHP, Python, Ruby (ieskaitot RubyonRails ietvaru), Scala, Clojure un Scheme. IDE nosaukums visbiezāk ir formā Eclipse ADT Ada valodai, Eclipse CDT C/C++ valodām, Eclipse JDT Java valodai un Eclipse PDT PHP valodai.

5.att. eclipse

Sākotnējā koda bāze radās no VisualAge. Tā pamatformā bija paredzēta Java izstrādātajiem un sastāvēja no Java izstrādes rīkiem (JDT). Lietotāji var paplašināt platformas iespējas, uzstādot spraudņus, kuri paredzēti Eclipse programmatūras ietvaram, kā arī izstrādes rīku komplektus citām programmēšanas valodām, kā arī brīvi veidot un izplatīt savus spraudņu moduļus.

Eclipse pirmkārt un galvenokārt ir platforma priekšpaplašinājumu izstrādes, ar kuras palīdzību viņš ieguva popularitāti: Jebkurš izstrādātājs var paplašināt Eclipse izmantojot pluginus. Jau tagad ir pieejamas dažādu izstrādātāju Java DevelopmentTools (JDT), C / C + + (CDT), COBOL un FORTRAN, PHP utt.. Daudzi paplašinājumi papildina Eclipse vidi, lai būtu iespējams darboties ar datu bāzēm, pieteikumu serveriem utt.

Eclipse JDT (Java DevelopmentTools) - modulis, kura mērķis ir komandas attīstībā: integrēta vide ar šādam kontroles sistēmu versijām - CVS, gitpamata, priekš citām sistēmām (piemēram, Subversion, MS SourceSafe), tur pielieto plug-ins. Kā arī piedāvā saziņasatbalstu starp IDE un sistēmas pārvaldības uzdevumiem (kļūdām).

Eclipse ir rakstīta programmēšanas valodā Java, tāpēc tā ir platformas neatkarīgs produkts, izņemot bibliotēkas SWT, kas tiek izstrādāta visām kopējām platformām. SWT bibliotēka lieto kā Java standarta bibliotēkas Swing aizstājēju. Tā pilnībā atbalsta pamata platformu (operētājsistēmu), kas nodrošina ātru un dabisku lietotāja saskarnes izskatu.

3

Page 4: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

2. PostgreSQlPostgreSQL, bieži saukta arī vienkārši par Postgres, ir bezmaksas objektu

relāciju datu bāzes pārvaldības sistēma. PostgreSQL pamatā ir SQL valoda, un tā atbalsta daudzas funkcijas un iespējas no SQL2003 standarta (ISO / IEC 9075).

1.att. Postrgres

PostgreSQL stiprās puses ir:

Praktiski neierobežots datu bāzes izmērs;

Jaudīgs un uzticams transakciju un replikāciju mehānisms;

Paplašināts programmēšanas valodu atbalsts: standarta versija atbalsta

PL / pgSQL, PL / Perl, PL / Python un PL / Tcl, turklāt papildus var

izmantot PL / Java, PL / PHP, PL / Py, PL / R, PL / Ruby, PL/Scheme,

un PL / sh, kā arī ir C savietojamu moduļu atbalsts;

Viegla paplašināšana.

Funkcijas ir kodu bloki, kas darbojas uz servera, nevis klientu datu bāzē. Lai gan tās var būt rakstītas tīrā SQL valodā, papildu loģikas realizēšanai, piemēram, nosacītas pārejas un cilpas, ir nepieciešams iziet ārpus SQL valodas iespējām un tāpēc nepieciešams izmantot dažu valodu paplašinājumus. Funkcijas var rakstīt, izmantojot vienu no šādām valodām:

Iebūvēto procedūru valodu PL / pgSQL, vai PL / SQL;

Skriptu valodas - PL / Lua, PL / LOLCODE, PL / Perl, plPHP, PL /

Python, PL / Ruby, PL / sh, PL / Tcl un PL / Scheme;

Klasiskās valodas - C, C++, Java (caur PL / Java moduli);

Statistikas valodu R (izmantojot PL / R moduli).

PostgreSQL ļauj izmantot funkciju, kas atgriež ierakstu kopu, kas pēc tam var tikt izmantota tādā pašā veidā, kā parasta pieprasījuma rezultāti. Funkcijas var izpildīt gan ar tās izveidotāja privilēģijām, gan arī ar pašreizējā lietotāja tiesībām.

4

Page 5: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Trigeri tiek definēti kā funkcijas, kas tiek iniciētas ar DBL operācijām. Piemēram, INSERT darbība var palaist trigeri, kurš pārbauda pievienotā ieraksta atbilstību noteiktiem nosacījumiem. Rakstot funkcijas var tikt izmantotas dažādas programmēšanas valodas. Trigeri ir saistīti ar tabulām. Daudzi trigeri tiek izpildīti alfabētiskā secībā.

PostgreSQL darbojas ar šāda veida indeksiem: B-tree, hash, R-koks, GIST, GIN. Nepieciešamības gadījumā, ir iespējams izveidot jauna veida indeksus. PostgreSQL indeksiem ir šādas īpašības:

Iespēja apskatīt indeksu, ne tikai tiešā, bet arī apgrieztā secībā – nav

nepieciešams izveidot atsevišķu indeksu ORDER BY ... DESC konstrukcijas

darbībai;

Iespēja radīt indeksu par vairākām tabulas kolonnām, tostarp par dažādu datu

tipu kolonnām;

Indeksi var būt funkcionāli, kas ir balstīta nevis uz vērtību kopu no tabulām,

bet pamatojoties uz vērtību kopu no funkciju vērtību kopas;

Indeksi var būt daļēji, kas balstās tikai uz tabulas atsevišķu daļu, dažos

gadījumos tas palīdz radīt daudz kompaktākus indeksus vai panākt labāku

veiktspēju, izmantojot dažāda veida indeksus dažādām tabulas daļām;

Pieprasījumu plānotājs var izmantot vairākus indeksus vienlaicīgi, lai veiktu

sarežģītus vaicājumus.

PostgreSQL atbalsta vienlaicīgu vairāku lietotāju datubāzes modifikāciju,

izmantojot MultiversionConcurrencyControl mehānismu. Pateicoties tam, tas atbilst

ACID prasībām, un praktiski novērš nepieciešamību bloķēt datubāzes lasīšanas

iespējas.

3. MySQLMySQL ir relāciju datubāzu vadības sistēma (DBVS), kas ir uzstādīta uz

vairāk nekā vienpadsmit miljoniem datoru visā pasaulē. MySQL izstrādā Zviedrijas uzņēmums MySQL AB, kuru 2008. gadā pārņēma Sun Microsystems.

5

Page 6: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

2.att. MySQL

MySQL ir risinājums mazām un vidējām lietojumprogrammām. Tas ir iekļauts WAMP, AppServ, LAMP serveros un pārnēsājamos serveros - Denver, XAMPP. Parasti MySQL tiek izmantots kā serveris, pie kura vēršas vietējie (lokālie) vai attālinātie klienti, tas sevī ietver iekšējā servera bibliotēku, kas ļauj MySQL iekļaut autonomās programmās.

Elastība, ko nodrošina MySQL datubāze, tiek panākta ar daudzu tabulu veidu atbalstu: lietotāji var izvēlēties MyISAM tipa tabulas, kas atbalsta pilnu teksta meklēšanu, vai InnoDB tipa tabulas, kas atbalsta transakcijas atsevišķu ierakstu līmenī. Turklāt, MySQL datu bāzē ir integrētas īpaša veida EXAMPLE tabulas, kas ilustrē jaunu tabulu izveidošanas principus. Pateicoties tās atvērtajai arhitektūrai un GPL licencēm, MySQL regulāri parādās jauna veida tabulas.

2008. gada 26. februārī Sun Microsystems iegādājās MySQL AB par 1 miljardu dolāru.

2010. gada 27. janvārī Oracle Corporation iegādājas Sun Microsystems un iekļāva MySQL savā datu bāzu vadības sistēmu produkcijā.

MySQL programmētāju kopiena ir radījusi dažāda veida MySQL koda atzarus, piemēram, Drizzle, OurDelta, Percona Server, un MariaDB. Visi šie atzari jau pastāvēja brīdī, kad Sun un MySQL AB pārpirka kompānija Oracle.

MySQL ir šāds programmēšanas valodu atbalsts: Delphi, C, C + +, Eiffel, Java, Lisp, Perl, PHP, PureBasic, Python, Ruby, Smalltalk, Component Pascal, un Tcl bibliotēkas .NET platformas valodām, kā arī ODBC atbalsts, izmantojot MyODBC dziņus.

Mysql ir populāra datubāzes tīmekļa lietotnes izvēle. Mysql ir galvenā sastāvdaļa no plaši lietotās LAMP tīmekļa lietotņu gūzmas. LAMP ir akronīms - Linux,Apache,Mysql,PHP savienojumam. Mysql popularitāte ir cieši saistīta ar PHP.

6

Page 7: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

MySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia, Google un Facebook.

MySQL priekšrocības:

Spēj izpildīt vairākus pieprasījumus vienlaicīgi;

Fiksētā ieraksts un mainīgs garums;

ODBC draiveris iekļauts avotā;

Elastīga sistēma privilēģijām un parolēm;

Atbalsts garus skaitļus no 1 līdz 4 baitiem(Ints, float, double, fixed);

Saskarne ar C un Perl valodām;

Ātra sistēmas atmiņa;

Tabulu pārbaudes un apkopes rīki (isamchk).

Visi dati tiek glabāti ISO8859_1.

Pseidonīma pielietošana gan tabulām, gan arī atsevišķam tabulu kolonām;

Visiem laukiem ir noklusējuma vērtība;

Viegli darboties ar tabulām, tostarp pievienojot un dzēšot atslēgas un laukus.

4. XML faili datu uzglabāšanaiPaplašināmā iezīmēšanas valoda jeb XML (eXtensibleMarkupLanguage) ir

W3C rekomendācija speciālas nozīmes iezīmēšanas valodu veidošanai. Tā ir vienkāršota SGML apakškopa, spējīga aprakstīt visdažādākā veida datus. Tās galvenā nozīme ir strukturēta teksta un informācijas koplietošanas atvieglošana Internetā. Valodas, kas veidotas uz XML pamata, pašas tiek aprakstītas formālā veidā, kas ļauj programmām modificēt un pārbaudīt dokumentus nemaz nezinot pašu valodu, kurā tie rakstīti.

3.att.XML

Lai strādātu ar xml ir nepieciešams tikai pamat zināšanas HTML un saprast, ko mēs vēlamies izstrādāt.

7

Page 8: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Vēl viena no acīmredzamām XML priekšrocībām ir iespēja izmantot to kā universālu vaicājumu valodas informācijas krātuvi. Jau šobrīd xml var būt nopietns konkurents SQL. Turklāt XML dokumenti var kalpot kā savdabīgs veids datu uzglabāšanai, kas ietver gan līdzekļus, lai apstrādāt informāciju un iesniegt to klientam. Šajā jomā viena no daudzsološākajām iespējam ir Java un XML – tehnoloģijas integrācija, kas ļauj izmantot abu tehnoloģiju priekšrocības, mašīnas neatkarīgu lietojumu izveidei, kas informācijas apmaiņai izmanto universālus datu formātus.

XML ļauj kontrolēt glabājamo datu pareizību dokumentos, veicot hierarhisku attiecību pārbaudi dokumentu iekšienē un nosaka vienotu standartu dokumentu struktūrai un saturam, kur var būt dažādi dati. Tas nozīmē, ka to var izmantot veidojot sarežģītu informācijas sistēmu, kur ļoti svarīgs jautājums ir informācijas apmaiņa starp dažādiem pieteikumiem, kas darbojas vienā sistēmā.

XML īpašības, kas padara šo valodu piemērotu datu pārsūtīšanai:

vienlaicīgi cilvēkam un mašīnai saprotams formāts

Unicode atbalsts, kas ļauj izmantot visas mūsdienu un arī vēsturiskās

simbolu kopas

spēja attēlot visas nozīmīgākās datorzinātnes datu struktūras

(ierakstus, sarakstus un kokus)

formāts ir pašdokumentējošs spējā aprakstīt struktūru un lauku

nosaukumus, kā arī noteiktas vērtības

striktā sintakse padara nepieciešamos pārsēšanas algoritmus

vienkāršus, ātrus un efektīvus

XML tiek plaši lietots arī dokumentu glabāšanai un apstrādei, gan tiešsaistē, gan nesaistē, un piedāvā vairākus ieguvumus:

robusts, loģiski verificējams formāts, kas balstīts uz starptautiskajiem

standartiem

vairumam dokumentu tipu piemērota hierarhiska struktūra

atklāta teksta formāts, kuru neapgrūtina licenzēs vai citi ierobežojumi

no platformas neatkarīgs un relatīvi imūns pret tehnoloģiju maiņām

jau tiek lietots (kā SGML) vairāk nekā dekādi un ir diezgan izplatīts,

līdz ar to pieejama liela pieredze un plaša programmatūras izvēle

Noteiktās lietojumprogrammās formātam ir arī atsevišķi trūkumi:

Formāts satur daudz liekvārdības un pārmērīgas informācijas. Tas var

traucēt cilvēka lasāmībai un lietojumprogrammu efektivitātei un

8

Page 9: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

noved pie augstākām glabāšanas izmaksām. Tas var arī radīt

problēmas XML izmantošanā gadījumos, kad ir ierobežots joslas

platums, lai gan šo problēmu daudzos gadījumos var atrisināt datu

saspiešana.

XML sintakse satur vairākas nevajadzīgas iespējas SGML

savietojamības dēļ.

XML bieži ir nepieciešama papildus pārsēšana, atsevišķu vērtību

izgūšanai.

Nav iespēju jaukti vērsties pie vai atjaunot noteiktas dokumenta

daļas.

Pārklājošu (ne-hierarhisku) datu struktūru modelēšana prasa papildus

pūles.

XML attēlošana relacionālās vai objektorientētās paradigmās bieži

vien ir apgrūtinoša

Vēl viena no XML priekšrocības ir XML dokumenti, kuri ir vienkārši, un kuriem ir brīvi pieejami visi programmatūras produkti, kas paredzēti darbam ar XML dokumentiem. XML tiek atbalstīta sākot ar Microsoft Internet Explorer 4/0 un beta versijām IE5. XML jau tagad ir vien no pamatvalodām informācijas apmaiņai, aizstājot tādējādi HTML. Jau šobrīd uz XML bāzēs ir izveidoti daudzi pazīstami specializētas iezīmēšanas valodas, piemēram, SMIL un CDF un MathML, XSL utt.

4.att. XML uzbūve

Kopumā, XML dokumentos ir jāatbilst šādām prasībām:

9

Page 10: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Dokumenta sākumā tiek norādīts, kura XML versija tiek izmantota un

papildus informācija (rakstzīmju kopa utml.)

Katrai atvēršanas birkai, kas nosaka reģionu datu dokumentā, jābūt

atbilstošai noslēguma birkai, t.i., atšķirībā no HTML, nedrīkst izlaist

beigu tagus

XML ir reģistra jutīga

Visu atribūtu vērtības, izmantojot birkas, jāpievieno pēdiņās;

XML tagu iegulšana tiek stingri kontrolēta, tāpēc ir nepieciešams

sekot atvēršanas un aizvēršanas birku secībai

Visa informācija, kas atrodas starp sākuma un beigu tagu ir XML dati, tāpēc ietver visas formatēšanas rakstzīmes.

10

Page 11: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

5. Praktiskais darbsPraktiskā darba laikā tika izstrādāts lietojums, kas demonstrē datu attēlošanu

no vairākiem datu avotiem. Tika izmantoti 3 datu avoti- MySQL, PostgreSQL datubāzes un XML fails.

5.1 Globālā shēmaRealizējot darba uzdevumu, pielietot vairākus datu avotus, kuri katrs var

izmantot citu datubāzu vadības sistēmu, vai neizmantot to vispār, ir lietderīgi ieviest

globālo shēmu, kurā tiktu aprakstīti pieejamie datu avoti un kurai būtu, teorētiski,

iespējams pievienot papildus datu avotus.

Šajā darbā globālās shēmas uzglabāšanai tiks izmantos XML fails, kas satur

datu avotus, tabulas, kādas pieejamas šajos datu avotos, kā arī tabulu laukus

(kolonnas) un informāciju, kas nepieciešama datu avotu izmantošanai lietojumā.

DBVS gadījumā tas ir JDBC data source name- datubāzes pieslēguma parametri, kas

sastāv no datubāzes servera piekļuves informācijas, datubāzes nosaukuma u.c.

Globālajā shēmā tiek glabāta arī informācija par attieksmēm starp relāciju

datiem. Tā kā attieksmes var definēt starp datu avotiem, kas neatrodas vienā datubāzē

vai starp datiem, kas tiek glabāti savstarpēji nesavietojamās DBVS, šo attieksmju datu

nolasīšana jāveic neizmantojot datubāzu vadības sistēmu piedāvātos līdzekļus

(piemēram, SQL JOIN iespējas), tātad šo attieksmju funkcionalitāte jānodrošina

lietojuma līmenī.

5.2 Lietotāja saskarneLietotāja saskarne nodrošina piekļuvi datu avotiem, kas ir definēti globālajā

shēmā. Lietotāja interfeisā ir redzams datu avotu saraksts. Uzklikšķinot uz datu avota

nosaukuma, tiek izvērsts konkrētajā datu avotā pieejamo tabulu saraksts. Savukārt,

uzklikšķinot uz kādas no tabulām tiek parādīt tabulas rindu saraksts, tajās esošie dati,

kā arī dati no saistītajām tabulām, ja tabulai ir definētas kādas attieksmes.

Ja tiek veiktas izmaiņas globālajā shēmā, pievienotie datu avoti vai izmaiņas

datu shēmās tiek automātiski atjauninātas pēc lietojuma aizvēršanas un atkārtotas

atvēršanas.

11

Page 12: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

6. Lietojumprogrammas testēšanas shēmaLietojumprogrammas darbība imitē darbiniekiem izsniegto pamatlīdzekļu

uzskaites sistēmu. Informācija par darbiniekiem un tiem izsniegtajiem pamatlīdzekļiem tiek glabāta PostgreSQL datubāzē. Tabulā, kurā tiek glabāta izniegto pamatlīdzekļu informācija ir lauks, desc_id, kas ir pamatlīdzekļa identifikators. Detalizēta informācija par pamatlīdzekļiem (apraksts) tiek ņemta no MySQL datubāzes. Lietojumprogramma attēlo arī informāciju darbiniekiem piešķirtajiem atvaļinājumiem. Atvaļinājumu saraksts tiek glabāts XML failā.

6.1 PostgreSQL datu avotsPostgreSQL datu avots sastāv no vienas datubāzes, kurā ir divas tabulas. Šajās

tabulās tiek glabāta informācija par darbiniekiem un izsniegtajiem pamatlīdzekļiem.

6.2 CSV datu avotsXML datu avots pārbaudes nolūkiem sākotnēji tika izveidots programmā MS

Excel, bet, tā kā eksportēšana uz XML formātu neizdevās, izmantošanai XML fails tika uzrakstīts ar roku.

<vacations><vacation>  <lastName>Krēsliņš</lastName>   <firstName>Jānis</firstName>   <beginning>21.03.2012</beginning>   <till>28.03.2012</till>   <desc>Ikgadējais atvaļinājums</desc>   </vacation><vacation>  <lastName>Raubiško</lastName>   <firstName>Jānis</firstName>   <beginning>12.05.2012</beginning>   <till>15.05.2010</till>   <desc>Bezalgas atvaļnājums personisku apstākļu dēļ</desc>   </vacation>

  </vacations>

12

Page 13: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

6.3 MySQL datu avotsMS Access datubāzē tika izveidota viena tabula, kas glabā informāciju par

pamatlīdzekļiem.

6.4 Globālās shēmas paraugs

Globālās shēmas iepriekš minētajiem datu avotiem ir šāda:

<?xmlversion = "1.0"encoding = "UTF-8"?><schema>

< sourcename = "pgsql_uznemums"type = "Postgresql" dsn = "jdbc:postgresql://localhost:5432/uznemums?user=postgresql&password=mbs">

<tables><tablename="darbinieki">

<fieldtype="int"name="darbinieka_id"autoincrement="true"/><fieldtype="string"name="vards"length="50"/><fieldtype="string"name="uzvards"length="50"/><fieldtype="string"name="adrese"length="50"/><fieldtype="string"name="pilseta"length="50"/><fieldtype="string"name="valsts"length="50"/><fieldtype="string"name="p_indekss"length="50"/><fieldtype="string"name="talrunis"length="50"/>

</table><tablename="pamatlidzekli">

<fieldtype="int"name="pamatlidzekla_id"autoincrement="true"/><fieldtype="string"name="nosaukums"length="50"/><fieldtype="int"name="vertiba"/><fieldtype="int"name="p_darbinieka_id"/><fieldtype="int"name="desc_id"/>

</table></tables>

<relationships>

<relationshiptype="one_to_many"originTable="darbinieki"originField="id"destSource="pgsql_uznemums"destTable="pamatlidzekli"destField="p_darbinieka_id"/>

13

Page 14: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

<relationshiptype="many_to_one"originTable="pamatlidzekli"originField="desc_id"destSource="mysql_pamatlidzekli"destTable="pamatlidzekli"destField="id"/>

</relationships></source>

<sourcename="mysql_pamatlidzekli"type="Mysql"dsn="jdbc:mysql://localhost:3306/multibazes?user=root&amp;password=mbs">

<tables><tablename="pamatlidzekli">

<fieldtype="int"name="id"autoincrement="true"/><fieldtype="text"name="description"length="255"/>

</table></table>

</tables><relationships>

<relationshiptype="one_to_many"originTable="students"originField="id"destTable="score"destField="student_id"/>

</relationships></source>

<sourcename="vacations" type="xml" filename="vacations.xml"><tables>

<tablename="vacations"><fieldtype="string"name="first_name"/><fieldtype="string"name="last_name"/><fieldtype="string"name="since"/><fieldtype="string"name="until"/><fieldtype="string"name="description"/>

</table></tables><relationships>

<compositionRelationshiptype="many_to_one"originTable="vacations"destSource="pgsql_uznemums"destTable="darbinieki">

<relationshiporiginField="first_name"destField="vards"/>

<relationshiporiginField="last_name"destField="uzvards"/></compositionRelationship>

</relationships></source>

</schema>

14

Page 15: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

7. Realizētā lietotāja saskarneLietotāja saskarnē datu avoti tiek attēloti kā koka struktūra- izvēršot katru datu

avotu, ir redzamas tabulas, ko satur datu avots, un noklikšķinot uz tabulas, tās dati tiek attēloti lietotājam.

15

Page 16: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

8. Lietojuma darbības principsLietojums nolasa globālās shēmas XML failu un izveido dokumenta modeli

(DOM). Objekti AccessDataSource, PostgresqlDataSource un CsvDataSource tiek veidoti dinamiski, izmantojot datu avota tipu. Šīs klases manto īpašības no abstraktas bāzes klases, DataSource, kas nodrošina vienotu interfeisu piekļuvei datu avota tabulām un laukiem. Katra no šīm datu avotu klasēm specializējas datu izgūšanā no konkrētas DBVS (vai faila, XML formāta gadījumā).

Šādā veidā ir iespējams pievienot jaunus datu avotus (piemēram, lai nodrošinātu piekļuvi datiem, kas tiek glabāti MS Access datubāzē), nemainot pārējo programmas kodu - tikai izveidojot jaunu klasi, kas atbildīga par datu avota tehnisko realizāciju, un pievienojot globālajā shēmā jaunu <source> elementu.

8.1 Globālās shēmas nolasīšanaVispirms tiek izveidots dokumenta modelis no faila nosaukuma:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();dom = db.parse(filename);dom.getDocumentElement().normalize();Element docEle = dom.getDocumentElement();

docEle satur globālās shēmas saknes elementu (<schema>).

Nākamajā solī, ciklā tiek apstrādāti visi elementi ar nosaukumu „source”, kas atbilst datu avotiem, un tiek uzstādīti DataSource klases atribūti:

NodeList nl = docEle.getElementsByTagName("source");if(nl != null&& nl.getLength() > 0) {for(int i = 0 ; i < nl.getLength();i++) {

Element el = (Element)nl.item(i);DataSource ds =

DataSourceFactory.getDataSource(el.getAttribute("type"));ds.setName(el.getAttribute("name"));ds.setDsn(el.getAttribute("dsn"));

DataSourceFactory ielādē nepieciešamo klasi (PostgresqlDataSource, MysqlDataSource vai XMLDataSource), un izveido jaunu attiecīgās klases objektu. Augstāk esošā koda fragmenta pēdējās rindiņas uzstāda datu avota atribūtus- DSN (data source name, datu avota nosaukums, ko izmanot izveidojot savienojumu ar JDBC palīdzību), kā arī cilvēkiem saprotamo (lietotāja saskarnē izmantojamo) nosaukumu.

Līdzīgā veidā tiek apstrādāti arī <table> un <field> tipa elementi:

NodeList table_list = el.getElementsByTagName("table");if (table_list!=null&& table_list.getLength()>0) {

16

Page 17: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

for (int j=0;j<table_list.getLength();j++) {Element table = (Element)table_list.item(j);Table t = new Table();t.setName(table.getAttribute("name"));NodeList field_list =

table.getElementsByTagName("field");if (field_list!=null&& field_list.getLength()>0) {

for (int k=0;k<field_list.getLength();k++) {Element field = (Element)field_list.item(k);Column c = new Column();c.setName(field.getAttribute("name"));c.setType(field.getAttribute("type"));if (field.hasAttribute("autoincrement")) {

if (field.getAttribute("autoincrement").toLowerCase() == "true") {

c.setAutoIncrement(true);} else {

c.setAutoIncrement(false);}

}if (field.hasAttribute("length")) {

c.setLength( Integer.parseInt( field.getAttribute("length")));}t.addColumn(c);

}}

ds.addTable(t);}

17

Page 18: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

9. SecinājumiGlobālā shēma šādā praktiskajā darbā noteikti ir nepieciešama. Tā ļauj

nemainot lietojumu pievienot papildus datu avotus (ja lietojums atbalsta šādu datu

avotu), kā arī pievienot/noņemt laukus lietojumā, ja lauki ir mainījušies datubāzē.

Globālās shēmas realizācijā grūtības varētu sagādāt relāciju realizēšana starp

dažādiem datu avotiem. Viena datu avota ietvaros to var panākt ar datubāzes rīkiem

(SQL JOIN), turpretī, lai nodrošinātu šādu funkcionalitāti, relāciju operācijas jāizpilda

lietojuma līmenī.

Šajā darbā izstrādātā globālā shēma definē relācijas starp tabulām, taču

lietojumā datu izgūšana no saistītajām tabulām netika realizēta, jo tas ir laikietilpīgs

process (it īpaši, ja ņem vērā to, ka primārās atslēgas var sastāvēt no vairākiem

laukiem, ir jāizšķir relāciju kardinalitāte un atbilstoši jāattēlo izgūtie dati lietotāja

interfeisā).

18

Page 19: Izstrādes vide Eclipse - Web viewMySQL lieto daži no visbiežāk apmeklētajām tīmekļa vietnēm internetā, tostarp Flickr, Nokia.com, YouTube un kā minēts iepriekš: Wikipedia,

Literatūra1. Eclipse/internets - http://ru.wikipedia.org/wiki/Eclipse_

%28%D1%81%D1%80%D0%B5%D0%B4%D0%B0_

%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE

%D1%82%D0%BA%D0%B8%29

2. Lekciju materiāli priekšmetā „Multibāzes” 3. MySql/internets - http://datubazes.wordpress.com/mysql/4. MySql/internets - http://lv.wikipedia.org/wiki/MySQL5. PostgreSQL/internets - http://www.postgresql.org/about/6. XML/internets - http://www.codenet.ru/webmast/xml/part1.php

19