Upload
dangquynh
View
229
Download
5
Embed Size (px)
Citation preview
Multibāze Izstrādāja: Rita Burbo
Jānis Raubiško
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
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
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
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
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
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
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
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
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
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
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
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
<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&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
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
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
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
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
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