SANTRAUKA Šių laikų informacinių sistemų užsakovai reikalauja pigaus ir greitai sukurto produkto – informacinės sistemos. Bet norint kokybiškai sukurti informacinę sistemą, ne visada gaunasi greitai ir pigiai. Šio darbo tikslas – automatizuoti informacinės sistemos kūrimo procesą, taip sumažinant laiko kaštus kuriant produktus. Daugelis analitikų – programuotojų kuriant informacinę sistemą naudojasi ta pačia kūrimo metodika: surenkami reikalavimai, projektuojama sistema, sistema realizuojama. Surenkant reikalavimus yra analizuojami įvairūs dalykinės srities aspektai, tarp jų ir dokumentinės formos. Šios formos, galima sakyti, yra pradinis būsimos ekraninės formos maketas. Keletas šiame darbe nagrinėtų duomenų bazių valdymo sistemų turi vedlius, kurie generuoja ekranines formas iš turimos duomenų bazės schemos. Taigi, galima daryti prielaidą, kad yra algoritmas, kuris veiktų priešinga kryptimi. Šiame darbe, eksperimento būdu, bus ištirta galimybė, turint ekraninės formos maketą, iš jo sugeneruoti duomenų bazės schemą. SUMMARY Automated Development of Database Schema Based on Forms Analysis Nowadays customers of information systems require cheap and quicly built product – information system. But in order to create information system, it will not be cheap and fast. The aim of this work is to automate creation process of the information system, thus reducing the time cust of product developining. Many analysts use the same development method to create the information system: collecting requirements, designing system, realising system. During requirements collection analyst analize various aspects of the subject area, including the forms of the documentary. These forms are in original form of the forthcoming screen froms. Some of database magament systems, which have been analized in this work, have wizards that generate screen forms from existing database schema. Therefore, it can be assumed that there is algorithm which works in the opposite direction. In this paper will be analyzed, in experimental way, the possibility to generate database schema form from the screen layout. Turinys Lentelių sąrašas 2.1 lentelė. Problemų lentelė. 18 2.2 lentelė. Lyginamoji lentelė. 26 4.1 lentelė. Sprendimų lentelė 36 6.1 lentelė. Eksperimento apibendrinimo lentelė 64 9.1 lentelė. PA „Projektuoti grafinę vartotojo sąsają“ specifikacija 68 9.2 lentelė. PA „Kurti grafinę vartotojo sąsają“ specifikacija 69 9.3 lentelė. PA „Nurodyti formos elemento tipą“ specifikacija 70 9.4 lentelė. PA „Projektuoti duomenų bazę“ specifikacija 71 9.5 lentelė. PA „Kurti duomenų bazę“ specifikacija 72 9.6 lentelė. PA „Redaguoti duomenų bazę“ specifikacija 74 9.7 lentelė. PA „Sutvarkyti duomenų bazės lentelę“ specifikacija 74 9.8 lentelė. PA „Sutvarkyti duomenų bazės ryšius“ specifikacija 75 9.9 lentelė. PA „Sutvarkyti duomenų bazės laukus“ specifikacija 76 9.10 lentelė. PA „Integruoti į vieną sistemą“ specifikacija 77 9.11 lentelė. Paprastos formos programinis kodas 91 9.12 lentelė. Formos „vairuotojų registracija“ programinis kodas 92 9.13 lentelė. Formos „vairuotojų registracija ir krovinio registracija“ programinis kodas 93 9.14 lentelė. Formos „Sveičias“ programinis kodas 95 9.15 lentelė. Formos „Kambarys“ programinis kodas 96 Paveikslų sąrašas 2.1 paveikslas. Forma ir modeliais paremtos sistemos architektūra [1] 13 2.2 paveikslas. Tipinė IS architektūra. 16 2.3 paveikslas. IS kūrimas. 16 2.4 paveikslas. Duomenų bazių kūrimo procesas. 17 2.5 paveikslas. Oracle designer pagrindinis langas 19 2.6 paveikslas. Duomenų bazės kūrimo procesas, projektuojant Oracle Designer įrankiu 20 2.7 paveikslas. Duomenų bazės kūrimo procesas, kuriant Microsoft SQL server DBVS 21 2.8 paveikslas. Microsoft Access 2007 langas 22 2.9 paveikslas. Duomenų bazės kūrimo procesas naudojant Microsoft Access DBVS 23 2.10 paveikslas. Microsoft Visual FoxPro SP2 langas. 24 2.11 paveikslas. Open Office.org 3.2 Base langas 25 2.12 Formos pavyzdys 27 2.13 paveikslas. Teksto langelis (angl.TextBox) 27 2.14 paveikslas. žymimasis langelis (angl. check box) 27 2.15 paveikslas. Išsiskleidžiantis sąrašas (angl. combo box) 28 2.16 paveikslas. sąrašo laukas (angl. list box) 28 2.17 paveikslas. pasirinkimo laukas 28 2.18 paveikslas. Mygtukas (angl. button) 29 2.19 paveikslas. Duomenų tinklelis (angl. Grid) 29 2.20 paveikslas. Kortelės (angl. Tabs) 29 2.21 paveikslas. „Microsoft Visual Studio 2010“ vartotojo sąsaja 30 2.22 paveikslas. Siekiamo sprendimo diagrama 31 3.1 paveikslas. Bendras kompiuterizuojami panaudojimo atvejai 34 3.2 paveikslas. Dalykinės srities klasių modelis 35 4.1 Paveikslas. Sugrupuotas išsiskleidžiantis sąrašas 39 4.2 paveikslas. Sistemos loginė architektūra 41 4.3 paveikslas. Sistemos navigavimo planas 42 4.4 paveikslas. Pagrindinio posistemio klasių diagrama 42 4.5 paveikslas. Vartotojo sąsajos kūrimo posistemis 43 4.6 paveikslas. Duomenų bazės generavimo posistemio klasių diagrama 43 4.7 paveikslas. PA „Kurti duomenų bazę“ sekų diagrama 44 4.8 paveikslas. PA „Generuoti duomenų bazės lentelę“ sekų diagrama 45 4.9 paveikslas. PA „Generuoti ryšį tarp lentelių“ sekų diagrama 46 4.10 paveikslas. PA „Redaguoti duomenų bazę“ sekų 47 4.11 paveikslas. PA „Sutvarkyti duomenų bazės lentelę“ sekų diagrama 48 4.12 paveikslas. PA „Sutvarkyti duomenų bazės stulpelį“ sekų diagrama 48 4.13 paveikslas. PA „Sutvarkyti duomenų bazės ryšį“ sekų diagrama 49 4.14 paveikslas. Metodo „get_form_elements“ veiklos diagrama 50 4.15 paveikslas. Metodo „generate_tables“ veiklos diagrama. 51 4.16 paveikslas. Metodo „generate_relationship“ veiklos diagrama 52 4.17 paveikslas. HTML formos pavyzdys “vairuotojų registracija“ 53 4.18 Paveikslas. Vairuotojas lentelė 54 4.19 paveikslas. Lentelė „vairuotojas“ ir lentelė „kategorija“ 54 4.20 paveikslas. Lentelės „vairuotojas“, „automobilio_tipas“, „automobilis“ 55 4.21 paveikslas. Lentelė „vairuotojas“ ir lentelė „nuomauto“ 55 4.22 paveikslas. Formos „vairuotojų registracija“ duomenų bazės schema 55 5.1 paveikslas. Programos valdymo menių 56 5.2 paveikslas. Nuskaitytos formos suvestinė 56 6.1 paveikslas. Paprasta forma 58 6.2 paveikslas. Iš paprastos formos sugeneruota duomenų bazės schema 58 6.3 paveikslas. Eksperto suprojektuota duomenų bazės schema. 59 6.4 paveikslas. Forma „vairuotojo registracija“ 59 6.5 paveikslas. Iš formos „vairuotojo registracija“ sugeneruota duomenų bazės schema. 60 6.6 paveikslas. Eksperto suprojektuota duomenų bazės schema. 60 6.7 paveikslas. „Vairuotojo ir krovinio registracija“ formos pavyzdys. 61 6.8 paveikslas. Eksperimentinės sistemos sugeneruota duomenų bazės schema. 61 6.9 paveikslas. Eksperto suprojektuota duomenų bazės schema. 62 6.10 paveikslas.„Svečias“ formos pavyzdys 62 6.11 paveiklas.„Kambarys“ formos pavyzdys 63 6.12 paveikslas. Eksperimentinės sistemos suprojektuota duomenu bazės schema 63 6.13 paveikslas. Eksperto suprojektuota duomenų bazės schema. 64 9.1 paveikslas. PA „Projektuoti grafinę vartotojo sąsają“ sekų diagrama 68 9.2 paveikslas. PA „Kurti grafinę vartotojo sąsaja“ sekų diagrama 69 9.3 paveikslas. PA „Nurodyti formos elemento tipą“ sekų diagrama 70 9.4 paveikslas. PA „Projektuoti duomenų bazę“ sekų diagrama 71 9.5 paveikslas. PA „Kurti duomenų bazę“ sekų diagrama 72 9.6 paveikslas. PA „Redaguoti duomenų bazę“ sekų diagrama 73 9.7 paveikslas. PA „Sutvarkyti duomenų bazės lentelę“ sekų diagrama 74 9.8 paveikslas. PA „Sutvarkyti duomenų bazės ryšius“ sekų diagrama 75 9.9 paveikslas. PA „Sutvarkyti duomenų bazės laukus“ sekų diagrama 76 9.10 paveikslas. PA „Integruoti į vieną sistemą“ sekų diagrama 76 9.11 paveikslas. Formos kūrimo posistemio panaudojimo atvejų realizacijos 77 9.12 paveikslas. Pagrindinio posistemio panaudojimo atvejų realizacijos 78 9.13 paveikslas. Duomenų bazės generavimo posistemio panaudojimo atvejų realizacijos 78 9.14 paveikslas. Panaudojimo atvejo „Projektuoti duomenų bazę“ realizacijos klasių diagrama 78 9.15 paveikslas. Panaudojimo atvejo „Projektuoti grafinę vartotojo sąsają“ realizacijos klasių diagrama 79 9.16 paveikslas. Panaudojimo atvejo „Integruoti į vieną sistemą“ realizacijos klasių diagrama 79 9.17 paveikslas. Panaudojimo atvejo „Kurti DDL kodą“ realizacijos klasių diagrama 80 9.18 paveikslas. Panaudojimo atvejo „Kurti HTML&PHP kodą“ realizacijos klasių diagrama 80 9.19 paveikslas. Panaudojimo atvejo „Kurti grafinę vartotojo sąsają“ realizacijos klasių diagrama 81 9.20 paveikslas. Panaudojimo atvejo „Nurodyti formos elemento tipą“ realizacijos klasių diagrama 81 9.21 paveikslas. Panaudojimo atvejo „Generuoti duomenų bazės lentelę“ realizacijos diagrama 82 9.22 paveikslas. Panaudojimo atvejo „Generuoti ryšį tarp lentelių“ realizacijos diagrama 83 9.23 paveikslas. Panaudojimo atvejo „Redaguoti duomenų bazę“ realizacijos klasių diagrama 84 9.24 paveikslas. Panaudojimo atvejo „Sutvarkyti duomenų bazės lentelę“ realizacijos klasių diagrama 84 9.25 paveikslas. Panaudojimo atvejo „Sutvarkyti duomenų bazės ryšius“ realizacijos klasių diagrama 85 9.26 paveikslas. Panaudojimo atvejo „Sutvarkyti duomenų bazės stulpelį“ realizacijos klasių diagrama 86 9.27 paveikslas. Panaudojimo atvejo „Kurti duomenų bazę“ realizacijos diagrama 87 9.28 paveikslas. PA „Projektuoti duomenų bazę“ sekų diagrama 87 9.29 paveikslas. PA „Projektuoti grafinę vartotojo sąsaja“ sekų diagrama 88 9.30 paveikslas. PA „Integruoti į vieną sistemą“ sekų diagrama 88 9.31 paveikslas. PA „Kurti DDL kodą“ sekų diagrama 89 9.32 paveikslas. PA „Kurti HTML&PHP kodą“ sekų diagrama 89 9.33 paveikslas. PA „Kurti grafinę vartotojo sąsają“ sekų diagrama 90 9.34 paveikslas. PA „Nustatyti formos elementų tipus“ sekų diagrama 90 Terminų ir santrumpų žodynas DB – Duomenų bazė. IS – Informacinė sistema. DBVS – Duomenų bazių valdymo sistema. PA – Panaudojimo atvėjis. Forma – ekraninė duomenų įvedimo forma. Iš anksto parengtas dokumento arba kitokių duomenų ruošinys su tuščiais laukais, kuriuos reikia užpildyti. Toliau darbe naudojama kaip froma. 1 Įvadas Šiuo metu rinkoje yra didelis komercinių ir nemokamų (taip pat ir atviro kodo) duomenų bazių valdymo sistemų (DBVS) pasirinkimas, pavyzdžiui: Oracle, Microsoft SQL Server, IBM DB2, Microsoft Access, Microsoft Visual Foxpro MySQL. Visos jos turi savų privalumų ir trūkumų. Kai kurios duomenų bazių valdymo sistemos neturi įrankių formoms kurti. Tokiais atvejais pasirenkama trečių šalių programinė įranga: Microsoft Visual Studio, HTML/PHP programavimo kalbos. Tačiau, nepriklausomai nuo to, kokią duomenų bazių valdymo sistemą pasirenka analitikas – projektuotojas, duomenų bazės projektavimo eiga yra panaši: išgaunami informacinės sistemos (IS) reikalavimai, suprojektuojama duomenų bazė (sukuriamos lentelės, nustatomi jų tarpusavio ryšiai), rašomos užklausos, kuriamos (arba generuojamos) duomenų įvedimo/redagavimo formos bei kuriamos duomenų išrinkimo ataskaitos. Bet analitikai, tirdami dalykinės srities reikalavimus, analizuoja ir dokumentų formas. Taigi, alternatyvus metodas - analizuoti ekraninius formų pavyzdžius ir struktūrinius organizacijos dokumentus, gautus iš dalykinės srities eksperto[1], ir taip gauti būtinus reikalavimus kuriamai informacinei sistemai. Tačiau šiuolaikiniame informacinių technologijų amžiuje yra siekiama greitai ir kokybiškai pateikti produktą vartotojui. Taigi, kad duomenų bazės projektavimo procesas taptų lengvesnis, analitikui reikia pakeisti IS projektavimo procesą taip, kad realizacijos metu iš pradžių būtų kuriamos formos, o tik po to iš sukurtų formų būtų generuojama duomenų bazė. Toks IS kūrimo procesas leistų iš dalies automatizuoti duomenų bazės projektavimą. Šiame darbe pateikiama būsimo sprendimo automatizuoti duomenų bazės kūrimą iš formų analizė. Darbo pradžioje iškeliama problema, ar galima automatizuoti duomenų bazės projektavimo procesą, kuriant jas iš ekraninių formų. Iš to išplaukia pagrindiniai darbo tikslai ir uždaviniai: • ištirti duomenų bazės kūrimo procesą; • suprojektuoti automatizavimo algoritmo programą. Tai pateikiama - skyriuje. Pagrindinis darbo objektas yra duomenų bazių projektavimo procesas. Analizuojant tiriamąjį objektą pastebėta, kad norint įgyvendinti siekiamą sprendimą reikia ištirti ir formose naudojamus elementus. Tai pateikiama 7 skyriuje. 9 skyriuje analizuojami esami sprendimai: Oracle, Microsoft SQL Server, Microsoft Access, Microsoft Visual Foxpro, MySQL, OpenOfice.org Base, tačiau nebuvo rasti siekiami rezultatai, t.y. duomenų bazės generavimas iš ekraninės formos. Taigi, priimtas sprendimas kurti duomenų bazių projektavimą automatizuojantį įrankį. 2 Duomenų bazių proceso ir įrankių analizė 2.1 Analizės tikslas ir uždaviniai Siekiant geriau suprasti problemas, kylančias kuriant duomenų bazes, ir įvertinti siūlomus šių problemų sprendimus, buvo suformuluoti šie analizės uždaviniai: • Išnagrinėti duomenų bazės kūrimo procesą; • Ištirti rinkoje esančias duomenų bazių valdymo sistemas; • Ištirti esamus sprendimus; • Išanalizuoti duomenų įvedimo formų struktūrą. 2.2 Esami sprendimai duomenų bazei kūrti dokumentų formų analizės pagrindu Esybių ryšių modelio, kurio pagrindu kuriama DB, generavimo iš užpildytų duomenimis dokumentų formų algoritmo prototipas jau buvo aprašomas literatūroje. Benkt Wangler ir Bjorn Talldal yra rašę apie prototipinį algoritmą [1], kurio pagalba galima gauti esybių – ryšių modelį iš turimų dokumentinių ir ekraninių formų. Algoritmas turėtų būti įgyvendinamas tiek formomis paremtose posistemėse, kaip formos analizavimo algoritmas, tiek konceptualių modelių posistemėse, kaip esybių ryšių modeliavimo algoritmas. Taigi, turint formos eskizą, aprašomo algoritmo pagalba, turėtume gauti esybių ryšių modelį. Esybių ryšių modelį nesunkiai galima paversti į duomenų bazės schemą. 1 2 2.1 paveikslas. Forma ir modeliais paremtos sistemos architektūra [1] Benkt Wangler ir Bjorn Talldal aprašė, kad pasitelkus formų analizės algoritmą, gaunama žinių bazė apie formą. Pritaikius modeliavimo taisykles, kaip ir koks formos elementas turi atsivaizduoti, galima gauti konceptualų duomenų bazės modelį (2.1 pav.). Svarbi šio metodo sąlyga forma turi būti užpildyta duomenimis t.y. žinių baze apie formos elementus turi būti pilna. Kiekvienas formos elementas gali būti identifikuojamas kaip vienos reikšmės (tekstiniai laukai) arba daugiareikšmis (pasirinkimo laukai, pažymimieji laukai), šių tipų pagalba yra nustatomi ryšiai tarp formų, vėliau, atitinkamai pagal tai identifikuojamas ir ryšys tarp duomenų bazės lentelių. Vienos reikšmės elementai - tai tokie, kurie yra unikalūs ir nesikartoja per kelias lenteles, nesudarantys jokių ryšių tarp lentelių. Daugiareikšmiai elementai – tai tokie elementai, kuriuos išsaugoti neužtenka vienos lentelės. Saugant formos elementų duomenis, įrašai atsiranda dvejuose ar daugiau lentelių. Tarp jų galima identifikuoti ryšį. Toks algoritmas yra paremtas formos elementų tipais ir duomenų, suvestų į formą, analize. Nežinant kas bus suvesta į formą, algoritmas veiktų netiksliai. Pagal turimas žinias apie formą, t.y. formos elementų tipai, laukelių ilgis ir kiti metaduomenys, galima būtų generuoti duomenų bazę. Bet kartais formose naudojami elementai turi aprašymą, nenusakantį kokie duomenys bus vedami. Pavyzdžiui: telefono laukas formoje gali būti saugomas tiek skaičių (integer) tipo duomenimis, tiek teksto tipo duomenimis (string). Kas tiksliau bus saugoma esybėje ar duomenų bazės stulpelyje, galima būtų pasakyti tik iš turimų duomenų pavyzdžio arba vartotojas turėtų nusakyti koks tipas, ilgis ar koks kitas apribojimas turėtų būti naudojamas duomenų bazėje. Rita Butkienė savo daktaro disertacijoje[2] papildė Benkt Wangler modelį papildomais elementais ir algoritmą suskirstė i du atskirus sluoksnius (posistemius). Vienas sluoksnis yra skirtas vartotojui. Kitas skirtas kompiuterizuojamos informacinės sistemos projektuotojui. Vartotojo sluoksnyje modelis yra tarsi dokumento kopija. Tačiau kiekvienas jos elementas yra tiesiogiai susijęs su tam skirtais kompiuterizuojamos informacinės sistemos projektuotojo sluoksnyje esančiais elementais. Vartotojo sluoksnis leidžia lengviau susišnekėti vartotojui ir projektuotojui, nes vartotojas mato tai, ka jis tikisi gauti iš kuriamos kompiuterizuotos informacines sistemos. IS projektuotojui belieka tik teisingai perteikti savo sudaryto modelio semantiką vartotojui. Kiekvieno sluoksnio elementas gali būti identifikuojamas kokiam sluoksnyje jis yra. Savo darbe R. Butkienė bandė įrodyti, kad nebūtina formą užpildyti duomenimis, norint gauti konceptų modelį ir kad yra tam tikri dėsningumai formose, kurie yra identifikuojami kaip esybių – ryšių modelio elementai. 2.3 Tyrimo objektas, sritis ir problema Kuriant tipines informacinės sistemas kūrimo procesas susideda iš tokių etapų: reikalavimų surinkimo, dalykinės srities analizės ir reikalavimų specifikavimo, sistemos projektavimo, kuris apima duomenų bazės ir ją naudojančių duomenų įvedimo formų (toliau, formų) ir ataskaitų modulių projektavimo, sistemos realizavimo, testavimo, bei diegimo. Vieni šių etapų yra labiau, kiti mažiau automatizuoti. Duomenų bazei suprojektuoti ir realizuoti yra sukurta nemažai įrankių. Projektiniai sprendimai priimami įvertinus įvairią analizės ir reikalavimų specifikavimo etape surinktą informaciją: sistemos užsakovų ir naudotojų žodiniai dokumentuoti ir ne paaiškinimai, dokumentai aprašantys dalykinę sritį, dokumentų formų pavyzdžiai, esamos ar prototipinės sistemos. Dalis šios informacijos yra nestruktūrizuota ir prie jos analitikams ir projektuotojams dar reikia gerokai padirbėti, kad suvoktų užsakovų poreikius ir norus. Kita dalis – struktūrizuota, t.y. dokumentų formos, analogiškų sistemų ekraninių formų, formuojamų ataskaitų pavyzdžiai, kuriamos sistemos duomenų įvedimo formų eskizai, prototipai. Projektuoti sistemą, tame tarpe ir duomenų bazę, remiantis struktūrizuota informacija kur kas paprasčiau. Praktika ir kitų tyrėjų darbai rodo, kad analizuojant dokumentų formų pavyzdžius galima rasti dėsningumų, lemiančių duomenų bazės struktūrą. Tačiau patikimų ir patogių įrankių, leidžiančių automatiškai ar automatizuotai sukurti duomenų bazę išanalizavus dokumento struktūrą, nėra. Informacinės sistemos kuriamos jau ne vieną dešimtmetį. Naudojimasis jomis daugumai žmonių tapo įprastu dalyku. Šiuolaikinis sistemų naudotojas yra pakankamai įgudęs reikšti savo reikalavimus struktūrizuotai, pavyzdžiui, pateikiant duomenų įvedimo formų eskizus. Iš kitos pusės sistemų kūrėjai, siekdami geresnio būsimų sistemos naudotojų poreikių patenkinimo, yra linkę pateikti naudotojams duomenų įvedimo formų prototipus. Tačiau įvedimo formų prototipams sukurti reikia skirti laiko, o esami įrankiai nepakankamai automatizuoja perėjimą nuo duomenų įvedimo formų eskizų ar prototipų iki duomenų bazės projekto. Įgudę projektuotojai kuria duomenų bazę remdamiesi savo ekspertinėmis žiniomis išnagrinėję dokumentų formų ar duomenų įvedimo formų pavyzdžius. Tačiau šios žinios nėra pakankamai formalizuotos, todėl nėra galimybės sukurti tinkamų, šias žinias taikančių įrankių. Šio darbo tyrimo objektu yra duomenų bazių ir formų kūrimo procesas. Šiame darbe nagrinėjama problema – nepakankamai automatizuotas duomenų bazės kūrimas duomenų įvedimo formų pagrindu. Autoriaus nuomone, formalizavus duomomenų bazių kūrėjų sukauptas žinias apie duomenų bazių projektavimą remiantis duomenų įvedimo formų prototipais ir įdiegus jas specialiose programose būtų galima efektyviau (greičiau) kurti duomenų bazes ir tuo pačiu informacines sistemas. Taigi šio darbo sritis - duomenų bazių projektavimo automatizavimas. 2.4 Analizės metodai Analizei pasirinkti šie metodai: ◦ Informacinės sistemos kūrimo procesui išanalizuoti atlikta šio proceso konceptuali analizė, apimanti duomenų įvedimo formos struktūros analizę, vartotojų analizė. Vartotojams išanalizuoti, renkuosi juos peržiūrėti keliais aspektais: • Kokie yra vartotojų tipai; • Kokia vartotojų kvalifikacija; • Kokia yra rinka. • Tyrimo sričiai išanalizuoti atlikta DBVS lyginamoji analizė. Analizės metu pagal įvairius kriterijus lygintos įvairios DBVS ir jų turimi duomenų bazių kūrimo įrankiai (vedliai), bei jų funkcijos. 2.5 Tyrimo objekto analizė Tipinis informacinės sistemos kūrimo proceso susideda iš tokių etapų: 1) reikalavimų sistemai surinkimas, analizė ir specifikavimas; 2) sistemos projektavimas; 3) sistemos konstravimas (programavimas); 4) sistemos testavimas; 5) sistemos diegimas. Prieš analizuojant šį procesą detaliau, reikėtų apžvelgti tipinės informacinės sistemos architektūrą, t.y. ją sudarančius komponentus. Tipinai komponentai yra šie: duomenų įvedimo formos, ataskaitos, grafikai ir duomenų bazė. Tipinė IS architektūra su ryšiais tarp komponentų pateikta 2.3 paveiksle. Duomenų bazė yra vienas iš esminių IS komponentų. Ją sudaro lentelės, stulpeliai, priminiai raktai, išoriniai raktai, kurie užtikrina ryšius tarp lentelių, indeksai, trigeriai (jei juos palaiko DBVS). Formos ir ataskaitos programuojamos pasirinktine programavimo kalba C++, Java, PHP, Perl, Visual FoxPro, Visual basic ir kt. Valdymo posistemyje aprašytas skaičiavimų programinis kodas ir užklausos. Užklausų aprašymui dažniausiai renkamasi SQL struktūrinė užklausų kalba. Duomenų bazė – informacinės sistemos sudedamoji dalis. Šie 2.2 paveiksle pavaizduoti komponentai gali išsidėstyti skirtingose sistemose arba integruoti į vieną, kaip Microsoft Access DBVS atveju. Ne išimtis ir nagrinėjamos DBVS. 2.2 paveikslas. Tipinė IS architektūra. Duomenų bazė projektuojama surinktų reikalavimų ir jų analizės pagrindu. Reikalavimams suformuluoti informacija iš sistemos užsakovo ir naudotojo pusės gali būti pateikta įvairiomis formomis: žodine sakytine pokalbio metu, dokumentų, laisva forma aprašant dalykinę sritį, dokumentų formų, ataskaitų pavyzdžiais bei eskizais, sistemos analogų demonstravimu, sistemos ar tik jos dalies, pavyzdžiui, tik duomenų įvedimo formų prototipais (2.3 pav.). Išanalizavus visą gautą informaciją suformuluojami ir specifikuojami reikalavimai, priimami projektiniai sprendimai. 2.3 paveikslas. IS kūrimas. Kiekvienas stulpelis turi savo tipą, kuris priklauso nuo įvedamų duomenų. Informacinės sistemos komponentų kūrimas iš dalies priklauso nuo pasirinktų kūrimo technologijų. Kaip 2.4 paveiksle matome, yra keli variantai jiems kurti: • Jei pasirenkama technologija, turinti fomų ir ataskaitų kūrimo vedlius, tai pirmiau sukuriama duomenų bazė , o formas ir ataskaitas galima kurti vedlio pagalba. • Jei pasirenkama technologija be vedlio, tai duomenų bazė gali būti kuriama lygiagrečiai su formomis, ataskaitomis ir kitais komponentais. Po to, šie komponentai suintegruojami: duomenų bazės lentelės ir jų atributai yra sukabinami su formose esančiais elementais. 2.4 paveikslas. Duomenų bazių kūrimo procesas. 2.6 Vartotojų analizė 2.6.1 Vartotojų aibė, tipai ir savybės Šio darbo vartotojų aibė yra programuotojai – analitikai arba vartotojai turintys minimalias žinias apie informacines sistemas. Žinoma, kai kurie DBVS turi vedlius, kurie iš sukurtos duomenų bazės generuoja formas. Taigi, net vartotojui, nedaug išmanančiam technologijas, yra gana lengva gauti duomenų bazės schemą. Vartotojui keliami reikalavimai: • turėti minimalias žinias IT technologijų srityje; • DBVS pagrindų išmanymas. 2.6.2 Vartotojų tikslai ir problemos Kaip ir buvo minėta šiame darbe, daugelis būsimo sprendimo vartotojų (analitikų) naudojasi tuo pačiu duomenų bazių kūrimo metodu. Vartotojų pagrindinis tikslas yra greitai sukurti produktą, kurį būtų galima iškart atiduoti kliento naudojimui. Problemos su kuriomis šiuo metu susiduria vartotojai pateikiamos lentelėje (2.1 lentelė). 1. 2. 2.1 lentelė. Problemų lentelė. Problema Kaip viskas vyksta dabar Automatizuotas formos kūrimas iš pateiktos duomenų bazės kai kuriose DBVS (MS Access, Open Office Database) yra įgyvendintas, bet kitus etapus tenka projektuoti neautomatizuotu būdu, pavyzdžiui DB kūrimu. Informacinė sistema projektuojama ir programuojama rankomis, ne visada pasirenkama automatiniai įrankiai kurie atliktų vienokius ar kitokius darbus. Duomenų bazės kūrimo etapas yra mažai automatizuotas. Šis etapas turi kūrimo įrankių, bet neturi plačiai naudojamų automatizuotų sprendimų, kurie keliais mygtuko paspaudimais sugeneruoja duomenų bazės schemą. Negalima pakeisti sistemos komponentų kūrimo eigos, jei norima išnaudoti esamų įrankių funkcionalumą, automatizuojantį komponentų kūrimą. Nors ir yra žinoma busimų formų struktūra ir būtų galima projektavimą pradėti nuo jų, esami įrankiai verčia pirmiausiai projektuoti duomenų bazę, o po to kurti duomenų įvedimo formas. 2.7 Duomenų bazių valdymo sistemų analizė Duomenų bazių valdymo sistemos pasirinkimas gali apspręsti informacinės sistemos komponentų kūrimo eigą. Kadangi dalis DBVS turi vedlius, kurie automatizuoja formų ir kitų IS komponentų sukūrimą, šiame skyriuje bus išanalizuotos šių DBVS savybės. Analizės metu bus siekiama nustatyti: • Kokiu lygiu DBVS automatizuoja DB ir kitų komponentų kūrimą; • Ar galima praplėsti DBVS funkcionalumą; • Kokia DB projektavimo eiga? Analizei pasirinkti šios DBVS: • Oracle designer. • Microsoft Office Access. • Microsoft FoxPro. • OpenBase SQL. • MySQL. • OpenOffice.org Base. Kai kurios DBVS, tokios kaip Microsoft Access, Oracle designer, OpenBase SQL, Microsoft FoxPro turi formų kūrimo vedlius (wizard). Tai vienas iš būdų greitai sukurti informacinę sistemą paprastai ir nesudėtingai. Toliau darbe aprašomos analizuotos duomenų bazių valdymo sistemos. 2.7.1 Oracle deginer Tai Oracle kompanijos CASE įrankis , skirtas kurti informacines sistemas. Oracle Designer gali būti naudojamas kiekviename informacinės sistemos kūrimo gyvavimo ciklo etape – nuo dalykinės srities procesų modeliavimo iki pilnai funkcionuojančios informacinės sistemos realizavimo [5]. Oracle DBVS – Orcale kompanijos reliacinė duomenų bazių valdymo sistema. Pasaulyje naudojama labai plačiai duomenims saugoti, apdoroti ir analizuoti bankinėse, finansinėse, mokslinėse ir kitose labai didėlėse informacinėse sistemose. Designer įrankiai yra sugrupuoti į sritis (2.5 pav.): • Modeling System Requirements Įrankiai naudojami šioje srityje aprašo: • biznio procesų modelius; • esybių ryšių diagramas; • funkcijų ir srautų diagramas; Tai įrankių rinkinys skirtas organizacijos dalykinės srities, tikslams, procesams ir funkcijoms modeliuoti. Aprašomi sistemos detalūs reikalavimai, bei organizacijos duomenų srautai. • Transforming Preliminary Designs Naudojama transformuoti į preminalią sistemą iš ankščiau sukurtų modelių. • Designing and Generating Design Editor esantis šioje srityje skirtas toliau projektuoti sistemą, kuri atitiktų keliamus organizacijos reikalavimus. Plėtoti sistemą inžinerinių ir dizaino aspektais. Kurti serverio pusės komponentus ir kliento pusės programas. • Respository tools Įrankiai naudojami šioje srityje yra skirti: kurti ir redaguoti informaciją apie sistemą, paržiūrėti ryšius tarp komponentų, generuoti ataskaitas iš turimos apie sistemą informacijos, administruoti sistemos informaciją [15]. 2.5 paveikslas. Oracle designer pagrindinis langas Sistemos kūrimo su Oracle Designer pagrindiniai etapai: • Modeliavimas ir dalykinės srities analizė; • Dalykinės srities konceptualių modelių kūrimas; • Sistemos projektavimas ir realizacija. 2.6 paveikslas. Duomenų bazės kūrimo procesas, projektuojant Oracle Designer įrankiu Paveiksle 2.6 pavaizduotas kūrimo procesas su Oracle designer įrankiu. Sistema pradžiai sumodeliuojama procesijų, funkcijų hierarchijos, duomenų srautų diagramomis. Turimi modeliai transformuojami į duomenų bazės schemą ir būsimos taikomosios programos modulius. Galutiniame etape yra baigiama projektuoti sistemą ir ji generuojama į kodą arba duomenų bazės DDL komandų rinkinį. Šis Oracle produktas neturi formų ar kitų komponentų kūrimo vedlio, bet prototipinę formą automatiškai sugeneruoja iš veiklos modelio. Be to, šis produktas yra uždaras ir nėra galimybės jo praplėsti naujų funkcionalumu. Todėl jis nėra tinkamas problemos sprendimui. 2.7.2 Microsoft SQL Server Microsoft SQL server reliacinė duomenų bazių valdymo sistema. Microsoft SQL server yra kliento – serverio duomenų bazė. Kliento – serverio architektūros duomenų bazių valdymo sistemos su dideliais duomenų kiekiais dirba daug geriau negu tokios DBVS kaip Microsoft Access [[14]]. Microsoft SQL server palaiko struktūrizuotų užklausų kalbą SQL (angl. Structured Query Language). Kaip ir daugelis kitų duomenų bazių valdymo sistemų, šį sistema palaiko SQL standartus ir prideda savo išplėtimus. „Microsoft“ kompanijai būdinga struktūrizuota užklausų kalba yra vadinama Transact-SQL (T-SQL). Kuri leidžia pridėti, modifikuoti ar pašalinti duomenis. Microsoft SQL server duomenų bazės variklyje palaiko .NET bendrinę kalbą (angl. .NET Common Language Runtime (CLR)). Tai leidžia duomenų bazėje sukurti objektus, funkcijas, procedūras, trigerius, apibrėžti vartotojų tipus ir vartotojų funkcijas, programavimo kalbas palaikančias CLR. Visual Studio paketas palaiko CLR integravimo galimybę su šia duomenų bazių valdymo sistema. Duomenų bazės formos kuriamos su kitais įrankiais tokiais kaip Visual Studio. Duomenų bazių valdymo sistema skirta tik duomenų bazės architektūrai ir duomenims laikyti. Microsoft SQL server palaiko XML (angl. extensible markup language). Tai Microsoft SQL Server suteikia galimybę pateikti užklausas ir duomenis XML kalba. Tai leidžia organizacijoms sumažinti investicijas ir sutaupyti optimizavimo ir duomenų saugojimo srityse [13]. 2.7 paveikslas. Duomenų bazės kūrimo procesas, kuriant Microsoft SQL server DBVS Duomenų bazės kūrimo procesas (2.7 pav.) šia DBVS yra paprastesnis lyginant su tokiais įrankiais kaip Microsoft Access, OpenOffice.org ir pan., nes kuriama tik duomenų bazė ir visa jos logika. Formos, ataskaitos ir užklausos duomenims gauti realizuojamos kitais įrankiais ir programavimo kalbomis. Ši duomenų bazių valdymo sistema yra netinkama, nes visai neturi vartotojo sąsajos formoms kurti. Informacinėse sistemose dažniausiai naudojama tik kaip duomenų bazė. 2.7.3 Microsoft Office Access. Microsoft korporacijos sukurta reliacinė DBVS, kuri turi intuityvią grafinę vartotojo sąsają (2.8 pav.). Microsoft Office Access yra sudedamoji Microsoft Office paketo dalis. Duomenų bazė formas, ataskaitas, makro komandų rinkinius laiko viename faile. Pagrindinai komponentai: • Lentelės (Tables) – duomenų bazių lentelės. • Formos (Forms) – duomenų atvaizdavimui, įvedimui, redagavimui, šalinimui skirtas komponentas. • Užklausos (Queries) – duomenų išrinkimui iš DB užklausų rašymui. • Ataskaitos (Reports) – duomenų atvaizdavimui. • Makro komandos (Macros) – makro komandų rašymui. • Moduliai (Modules) – funkcijų ir procedūrų rašymui. Formos kuriamos yra su Form design komponentu. Norint sukurti bet kokią formą su vedlio (Wizard) pagalba reikalinga turėti jau paruoštas duomenų bazės lenteles, esybes. 2.8 paveikslas. Microsoft Access 2007 langas Naudojant šį įrankį, duomenų bazės kūrimo procesas (2.9 pav.) yra toks, kaip ir ankščiau minėtas: pirmiausiai, kuriamos duomenų bazės lentelės ir ryšiai. Toliau, vartotojas gali rinktis ar kurti su vedlio (angl. wizards) pagalba, ar kurti formas ir jose esančius elementus, programinio kodo (SQL užklausų, makro komandų) pagalba ir sukabinti su duomenų bazės lentelėse esančiais stulpeliais. Taip gaunama duomenų bazė, kurią jau galima naudoti. 2.9 paveikslas. Duomenų bazės kūrimo procesas naudojant Microsoft Access DBVS Įrankis nėra tinkamas problemos sprendimui, nes tai nėra atviro kodo programinė įranga ir negalima saugomoje duomenų bazėje atskirti kur yra formos dalis, o kur yra duomenų bazės dalis. 2.7.4 Microsoft FoxPro Microsoft kompanijos sukurta objektiškai orientuota reliacinė DBVS (2.10 pav.), kuri leidžia sukurti stabilius įmonių duomenų bazių sprendimus. Šis DBVS gali laikyti duomenis ir kituose serveriuose - Microsoft SQL Server[12], Šis DBVS yra skirstomas į tokius komponentus: • Duomenų bazė. • Duomenų bazės (databases) – šiame komponente laikoma lokali duomenų bazė; • Duomenų išrinkimo užklausų (queries) - duomenų išrinkimui iš duomenų bazės skirtas komponentas. • Dokumentai. • Formos (forms) – duomenų įvedimui, redagavimui, šalinimui ir vaizdavimui skirtas komponentas; • Ataskaitos (reports) – duomenų atvaizdavimui ataskaitoje skirtas elementas; • Etiketės (labels) - duomenų atvaizdavimui ataskaitoje skirtas elementas; • Klasės. • Kiti. • Meniu (menus) – formų aktyvavimui skirtas komponentas. • Tekstiniai failai (text files) – duomenų ir pastoviųjų kintamųjų saugojimui skirti tekstiniai failai. • Kiti failai (other files) . Formos, ataskaitos, duomenų bazė saugoma atskiruose failuose. Todėl bendram projekte galima atskirti kur yra formos, kur duomenų bazė ar kiti elementai. Formos failą galima nuskaityti ir iš failo struktūros įmanoma suprasti, kokie elementai užprogramuoti vienoje ar kitoje formoje. Formas galima kurti tiek su vedlio (wizard) pagalba, tiek patiems, su form designer dėliojant reikalingus elementus ir susiejant juos su jau sukurtomis duomenų bazėmis. 2.10 paveikslas. Microsoft Visual FoxPro SP2 langas. Duomenų bazės kūrimo procesas yra panašus kaip ir Microsoft Access, Open Office.org Base (2.9 pav.). Sukuriamos duomenų bazės lentelės ir iš jų generuojamos arba kuriamos formos, bei ataskaitos. DBVS yra iš dalies tinkama kuriamam sprendimui. Nors Microsoft Visual FoxPro nėra laisvai platinama, bet formų failų struktūrą galima nuskaityti ir suprasti, kokie elementai užprogramuoti toje formoje. Viena sąlyga, formos failas turi būti sukurtas kaip atskira klasė. 2.7.5 MySQL Tai greita, lanksti, daugiavartotojiška programinė įranga, paremta struktūrine užklausų kalba. Šis DBVS serveris yra pamėgtas daugelio pasaulio vartotojų. MySQL yra atviro kodo programinė įranga ir yra laisvai platinama[10]. Daugelis vartotojų renkasi šią DBVS internetinėms svetainėms kurti, nes ji yra suderinta su daugelių platformų. Priėjimui prie MySQL duomenų gali būti panaudota daug kalbų ir bibliotekų, pavyzdžiui: PHP, C, C++, C#, Java, Perl, Python. Kiekvienai šių kalbų sukurtos specialios bibliotekos (API). Taip pat MySQL duomenų bazėms yra sukurta ODBC sąsaja MyODBC, leidžianti duomenis pasiekti betkuria kalba, neturinčia specialios bibliotekos, tačiau palaikančia ODBC komunikavimo mechanizmą. Kadangi duomenų bazės valdymo sistema savyje neturi įrankių kurti formoms, kūrimo procesas yra toks pat kaip ir Microsoft SQL server (2.7 pav.). MySQL DBVS yra tinkamas kuriamam sprendimui, kadangi jis yra prieinamas su daugeliu programavimo kalbų. O DBVS paremta SQL (struktūrine užklausų kalba). 2.7.6 OpenOffice.org Base Tai - atviro kodo paketo OpenOffice.org duomenų bazių modulis (2.11 pav.), pasirodęs pakete nuo 2.0 versijos. OpenOffice.org Base DBVS naudoja HSQLDB DBVS variklį, kuris yra parašytas Java kalba [9]. Taip pat, be integruotos HSQLDB DBVS yra galimybė jungtis prie išorinių DBVS, tokių kaip MySQL, PostgreSQL, Oracle ir kt., naudojant vidines, ODBC ar JDBC tvarkykles. Pagrindiniai OpenOffice.org Base (2.11 pav.) komponentai: • Lentelės (Tables) - DB lentelių kūrimas, duomenų įvedimas; • Užklausos (Queries) – duomenų išrinkimo užklausų rašymas; • Formos (Forms) – formų kūrimas, duomenų įvedimas; • Ataskaitos (Reports) – ataskaitų generavimas, spausdinimas . 2.11 paveikslas. Open Office.org 3.2 Base langas Kadangi OpenOffice.org yra atviro kodo įrankių rinkinys, analoginis komerciniam Microsoft Office produktui, tai duomenų bazės kūrimo procesas (žiūrėti 2.9 pav.) yra kaip ir jau nagrinėtame Microsoft Access DBVS. DBVS yra tinkama kuriamam sprendimui, nes tai atviro kodo programinė įranga. Dėl to yra lengva nuskaityti failus, kuriuose yra formos ir kiti elementai, aprašyti bendros paskirties duomenų struktūrų aprašomąja kalba XML (Extensible Markup Language). 2.7.7 DBVS analizės apibendrinimas Nagrinėtos DBVS buvo surašytos į lentelę (2.2 lentelė), kurioje jos lyginamos keturiomis savybėmis: gebėjimas skaityti SQL kodą, kaip duomenys saugomi, grafinė vartotojo sąsaja formoms kurti, naudojamas metodas, kuriuo projektuojama duomenų bazė. Šios savybės parodo, kad visose duomenų bazių valdymo sistemose projektavimo eiga yra panaši. Ir kiek patogu paprastam vartotojui susiprojektuoti duomenų bazę. 2.2 lentelė. Lyginamoji lentelė. Savybė DBVS Gali skaityti SQL kodą Turi formų kūrimovedlius Galima praplėsi funkcionalumą Grafinė vartotojo sąsaja formoms kurti Duomenų bazės projektavimo eiga Oracle Desginer 10g Taip Ne Ne Taip • Veiklos procesų diagramos; • Duomenų srautų diagramos; • ER diagrama; • Funkcijų hierarchijos diagrama; • Formos, ataskaitos ir duomenų bazės. Microsoft SQL server Taip Ne Ne Ne • Lentelės; • Ryšiai tarp lentelių; Toliau naudojami trečiųjų asmenų sukurti įrankiai arba rašoma programa. Microsoft Office Access 2007 Taip Taip Ne Taip • Lentelės; • Ryšiai tarp lentelių; • Užklausos; • Formos; • Ataskaitos. Microsoft FoxPro 9.0 SP2 Iš dalies Taip Iš dalies (trečiųjų šalių programine įranga) Taip • Lentelės; • Ryšiai tarp lentelių; • Užklausos; • Formos; • Ataskaitos. MySQL Taip Ne Ne Ne • Lentelės; • Ryšiai tarp lentelių; Toliau naudojami trečiųjų asmenų sukurti įrankiai arba rašoma programa. OpenOffice.org 3.2 Taip Taip Iš dalies (trečiųjų šalių programine įranga) Taip • Lentelės; • Ryšiai tarp lentelių; • Užklausos; • Formos; • Ataskaitos. Visų nagrinėtų sprendimų kūrimo procesas yra gana panašus. Esminis skirtumas, kad vienų DBVS formos kuriamos pačioje duomenų bazių valdymo sistemoje, o kitų formas kuria trečiųjų asmenų sukurti įrankiai ar programinė įranga. 2.8 Formos struktūros analizė Šiame skyriuje išnagrinėsime duomenų įvedimo formos struktūrą, ją sudarančius elementus. Tai leis suprasti, kokio tipo informacija vadovaujamasi projekatuojant duomenų bazę ir kaip tai gali būti panaudota projektavimui automatizuoti. Formos – tai tam tikras parengtas arba kitokių dokumentų ruošinys su tuščiais laukais[21]. Informacinėse sistemose formos naudojamos duomenims įvesti arba išvesti(2.12 pav.). 2.12 Formos pavyzdys Formą sudaro laukai. Kiekvienas laukas yra skirtingo tipo, priklausomai nuo to kokie duomenys bus vedami į ta lauką. 2.8.1 Pagrindiniai formų elementai Laukai šiame darbe bus vadinami formos elementais. Tarp programuotojų yra ilgainiui nusistovėję formose naudojami elementai: teksto langelis (angl. text box), žymimasis langelis (angl. check box), išskleidžiamas sąrašas (angl. combo box), sąrašo laukas (angl. list box), pasirinkimo laukas (angl. radio button), mygtukas (angl. button), duomenų tinklas (angl. grid). Šiuos elementus galima rasti visose programavimo įrankiuose, kurie turi formų tvarkymo priemones. Minėti elementai padeda valdyti, įvesti ir redaguoti duomenų bazių duomenis. Kiti formose naudojami elementai dažniausiai būna specifiniai, pasirinkto programavimo įrankio ar duomenų bazės valdymo sistemos, naudojami elementai. 2.8.2 Teksto langelis Stačiakampio ribojama vieta kompiuterio ekrane, skirta teksto laukui(2.13 pav.). 2.13 paveikslas. Teksto langelis (angl.TextBox) Į teksto langelį gali būti rašoma: komanda, parinktis, parametro reikšmė, nuostata, vardas, slaptažodis, adresas ir kitoks programai pateikiamas tekstas. Renkamą tekstą galima taisyti iki bus paspaustas mygtukas su nurodymu programai, kad ji priimtų surinktą tekstą [21]. Teksto laukelio tikslas yra leisti vartotojui įvesti tekstinę informaciją naudojamą programoje. Vartotojo sąsajos gairės rekomenduoja vienos eilutės teksto laukelį, kai tik naudojama viena eilutė, bet galima ir kelių eilučių teksto laukas, jeigu yra daugiau nei viena eilutė. Tipiškas teksto laukelis yra bet kokio dydžio stačiakampis. 2.8.3 Žymimasi langelis Žymimas langelis (2.14 pav.), tai formos valdikis - mažas kvadratinis langelis, turintis dvi būsenas: pažymėtas arba nepažymėtas. 2.14 paveikslas. žymimasis langelis (angl. check box) Pažymėto langelio viduje būna varnelė, kryžiukas arba kitoks ženklas. Žymimasis langelis valdo kurią nors parinktį: nustato ar ji pasirinkta, ar nepasirinkta. Jei greta (vienoje grupėje) yra keli žymimieji langeliai, tai kiekvieno jų būsena nepriklauso nuo gretimų langelių ir gali būti pažymėta kiek norima langelių. Tuo žymimieji langeliai skiriasi nuo akučių [21]. 2.8.4 Išskleidžiamas sąrašas Išskleidžiamasis sąrašas (2.15 pav.), tai išplečiamojo sąrašo arba sąrašo laukas ir vienos eilutės teksto laukelio derinys, leidžiantis vartotojui reikšmę įvesti tiesiogiai į valdiklį, arba pasirinkti iš esamų pasirinkimų sąrašo.[21] 2.15 paveikslas. Išsiskleidžiantis sąrašas (angl. combo box) Šis grafinis elementas formoje, dažniausia valdo dvi duomenų bazės lenteles, kurios sujungtos „vienas su daug“ ryšiu. 2.8.5 Sąrašo laukas Valdiklis, kuriame galima matyti sąrašą, jį peržiūrėti ir iš jo pasirinkti norimą reikšmę (2.16 pav.). Kol sąrašas neišskleistas, langelyje matomas tik vienas pasirinktas sąrašo elementas ir išskleidimo mygtukas (trikampėlis), kurį paspaudus sąrašas išskleidžiamas. Iš išskleisto sąrašo galima pasirinkti kitą elementą. Į langelį netelpančius elementus galima pamatyti pasinaudojus slinkjuostę, kuri tokiu atveju įdedama į sąrašo langelį [21]. 2.16 paveikslas. sąrašo laukas (angl. list box) 2.8.6 Pasirinkimo laukas Pasirinkimo laukas (2.17 pav.), tai mažas skritulėlis, turintis dvi būsenas: pažymėtas arba nepažymėtas, ir esantis tokių akučių grupėje, iš kurių tik viena gali būti pažymėta.[21] 2.17 paveikslas. pasirinkimo laukas 2.8.7 Mygtukas Ekrane pavaizduotas mygtuko paveikslėlis (2.18 pav.), kurį paspaudus pelės klavišu vykdomas tam tikras veiksmas – komanda [21]. 2.18 paveikslas. Mygtukas (angl. button) Formose, kurios turi sąryšį su duomenų bazėmis, mygtukuose užprogramuojama SQL komandos, kurios įveda, redaguoja, šalina ar atvaizduoja duomenis iš duomenų bazės. 2.8.8 Duomenų tinklelis 2.19 paveikslas. Duomenų tinklelis (angl. Grid) Tinklelis arba duomenų tinklelis yra grafinės vartotojo sąsajos elementas (valdiklis) (2.19 pav.), kuris rodo lenteles duomenims peržiūrėti. Tipišką tinklelį sudaro keletas arba visos toliau iš išvardintų charakteristikų: • Paspaudus stulpelio antraštę, jei norite pakeisti rūšiavimo tvarką tinklelyje; • Paleidžiant stulpelio antraštes keisti jų dydį ir jų seką; • Galimybė langelyje redaguoti jame esančius duomenis; • Eilučių ir stulpelių skyriklius, ir kintamoji fono spalva. Taigi, tinklelis plokštumos sritis, suskirstyta į langelius gulsčiomis ir stačiomis lygiagrečiomis linijomis, išdėstytomis vienodu atstumu (dažniausiai) viena nuo kitos [21]. 2.8.9 Kortelė Grafinės sąsajos elementas – ąseles turinti lango dalis (2.20 pav.) , kurioje rodomos tam tikros vienos rūšies nuostatos, informacija arba vienas dokumentas (dokumento dalis). Kortelės turinį atspindi pavadinimas, užrašytas jos ąselėje. Vienu metu matoma tik viena lango kortelė. Kitų kortelių matomos tik ąselės su užrašais. Spustelėjus ąselę, atveriamas ją atitinkančios kortelės turinys. 2.20 paveikslas. Kortelės (angl. Tabs) Į kai kurių programų vieną langą galima įkelti keletą dokumentų – kiekvieną savo kortelėje. Pavyzdžiui, naršyklės „Mozilla FireFox“ ir „Opera“ gali atverti keletą tinklalapių atskirose kortelėse, skaičiuoklės „Microsoft Excel“, „OpenOffice.org Calc“ kortelėse atveria skaičiuoklės lakštus. Naudojant korteles galima atvaizduoti ir redaguoti duomenis iš skirtingų duomenų bazės lentelių. 2.8.10 Formos elementų analizės apibendrinimas Formos elementų analizės metu buvo apžvelgti populiariausiai naudojami formos elementai. Kiekvienas elementas išsiskiria savo tipu ir saugomais duomenimis. Iš elemento tipo, galima nuspėti kokia duomenų bazės struktūra yra suprojektuota. Todėl šiame skyriuje išnagrinėsime keltą populiarių įrankių: • Vidual Sudio; • HTML/PHP. 2.9 Formų kūrimo įrankiai Išnagrinėjus įvairias duomenų bazių valdymo sistemas, pastebėta, kad keletas nagrinėtų duomenų bazių valdymo sistemų neturi specialių įrankių, pritaikytų formoms kurti. Tokioms duomenų bazėms valdyti formos sukuriamos kitais įrankiais, bei priemonėmis. 2.9.1 Microsoft Visual Studio „Microsoft Visual Studio“(2.21 pav.) yra komponentų pagrindu paremti kūrimo įrankiai ir technologijos. Šiomis priemonėmis kuriamos galingos, aukštos kokybės sistemos. Be to, „Visual Studio“ optimizuoja komandos, kuri projektuoja, kuria ir diegia įmonėse sprendimus [17]. „Visual Studio“ buvo "Microsoft" pagrindinis vystomas produktas nuo Visual Basic dienų. „Visual Studio 2010“ su giliomis tradicijomis, pataisyta vartotojo aplinka ir keletu naujų funkcijų, kad ir toliau produktas būtų laikomas kaip pagrindinė kodo kūrimo platforma [16]. Visual Studio įrankis gali būti naudojamas kurti konsolines ir grafines vartotojo sąsajas turinčias programas: Windows Forms programų, interneto svetainių, interneto programų ir interneto servisus, tiek rašyti kodą visose platformose: Microsoft Windows, Windows Mobile, Windows CE .NET Framework, .NET Framework ir Microsoft Silverlight [17]. 2.21 paveikslas. „Microsoft Visual Studio 2010“ vartotojo sąsaja Formų ar konsoliniai programavimo produktai, kuriami šiuo įrankiu, yra sujungiami su duomenų bazių valdymo sistema, Visual Studio yra suderinta su Microsoft SQL server, bet galima kuriamą produktą, parsisiuntus papildomas bibliotekas, susieti ir su kitomis populiariomis DBVS: MySQL, PostgreSQL ir pan. 2.9.2 HTML/PHP PHP (angl. Hypertext Preprocessor ) yra plačiai naudojama atviro kodo bendrosios paskirties skriptų kalba, kuri yra ypač tinkama interneto svetainių kūrimui ir gali būti integruota su HTML. PHP programavimo kalbos struktūra yra panaši į C, Java, Perl kalbų struktūrą. Teikdama įrankius, reikalingus manipuliuoti informacija, PHP padeda kurti dinaminį HTML turinį. PHP lengvai pritaikomas ir efektyvus įrankis, todėl tampa vienu svarbiausių gerinant paslaugų kokybę.[[19]] HTML (angl. Hyper text Markup Language ) – tai hiperteksto žymėjimo kalba, naudojama pateikti turinį internete. Kalbą standartizuoja W3 konsorciumas. HTML yra pagrindinis blokas tinklalapiams atvaizduoti internete [20]. Taigi, interneto tinklalapių programavimo kalba PHP yra populiari šiais laikais. Formos kuriamos HTML hiperteksto žymėjimo kalba, PHP programavimo kalbos sąveikos pagalba yra sukabinamos su tokiomis populiariomis duomenų bazėmis: MySQL, Microsoft SQL server, PostgreSQL ir kitomis DBVS. 2.9.3 Formų kūrimo įrankių analizės apibendrinimas Kadangi apžvelgti formų kūrimo įrankiais sukurtos formos gali valdyti įvairias duomenų bazių valdymo sistemas, tai papildomų įrankių, vedlių, šie įrankiai neturi. Dėl to, lygiagrečiai kuriamoms formoms reikia projektuoti ir duomenų bazę. Suprojektavus duomenų bazę, formos elementai programinio kodo pagalba yra susiejami su duomenų bazės lentelėmis, bei jų stulpeliais. 2.10 Tyrimo tikslas ir uždaviniai Išanalizavus duomenų bazių valdymo sistemas, formų kūrimo įrankius ir kitus sprendimus literatūros šaltiniuose, buvo nustatyta, kad nagrinėti įrankiai pakankamai neautomatizuoja duomenų bazių kūrimo iš formų. Dėl to buvo nuspręsta siekti tokio tikslo: sukurti prototipinę sistemą, kuri sudarytų galimybę automatiškai kurti duomenų bazę iš duomenų įvedimo formų ir tokiu būdu leistų sutrumpinti DB kūrimo laiką. Norint įgyvendinti ši tikslą buvo iškelti šie uždaviniai: • Specifikuoti algoritmą, duomenų bazėms iš formų kurti. • Suprojektuoti prototipinę programą. • Suprogramuoti prototipinę programą duomenų bazių generavimui iš formų. • Eksperimentiškai ištirti sukurtą programą. 2.11 Siekiamas sprendimas Siekiamas sprendimas – universalus algoritmas (2.22 pav.), kuris pateikus turimą duomenų įvedimo formą, iš jos būtų sugeneruota duomenų bazės schema. Algoritmas tūrėtų būti ištestuotas eksperimentine sistema. Šiuo sprendimu būtų pagreitintas duomenų bazės kūrimo procesas. Pagreitinti procesą galima: išanalizavus dalykinės srities dokumentų šablonus, iškart kurti jų analogą grafinėje sąsajoje – formose. Iš formoje sukurtų elementų (teksto langelis, išsiskleidžiantis sąrašas, pasirinkimo langelis, lentelių ir kitų elementų.),generuoti reliacines duomenų bazes, populiariose DBVS. 2.22 paveikslas. Siekiamo sprendimo diagrama Norint pasiekti siekiamą sprendimą, reikia ištirti formose esančius elementus ir jų atvaizdavimo taisykles įvairiuose DBVS. 2.12 Analizės išvados 1. Išanalizavus įvairias DBVS nustatyta, kad visi šie įrankiai automatizuoja duomenų bazės ir pačios IS kūrimo procesą, kuris yra paremtas vienu IS projektavimo metodu, kurį naudoja daugelis analitikų: pagal specifikuotus reikalavimus sukuriama duomenų bazė, o po to programos moduliai (duomenų įvedimo formos, ataskaitos ir pan.). 2. Dažniausiai analitikai kurdami kompiuterizuotas IS taiko dalykinės srities dokumentų, popierinių ir ekraninių formų analizę, taigi, galima daryti išvadą, kad ekraninė forma ar jos maketas sukuriami pirmiau, negu suprojektuojama duomenų bazė. Iš to išplaukia poreikis turėti sprendimą, kuris automatizuotų duomenų bazės kūrimą ekraninių formų analizės pagrindu. 3. Išanalizavus formų kūrimo įrankius, nustatyta, kad formose naudojami elementai yra pasikartojantys, ir galima daryti prielaidą, kad įmanoma sukurti formų analizės algoritmą, kurį būtų galima taikyti įvairiosiose DBVS. 4. Keturios iš analizuotų duomenų bazės valdymo sistemų turi automatizuotus formų generavimo vedlius (angl. wizards), bet nei vienoje nėra galimas atvirkštinis generavimas: iš formos kurti duomenų bazę, todėl yra poreikis sukurti programą. 3 Sistemos reikalavimai 3.1 Reikalavimų specifikacija Sprendimo taikymo sritis. Sprendimas bus taikomas kuriant duomenų bazes. Kaip minėta analizės dalyje (2 skyrius), šiuo metu pirmiau kuriama duomenų bazė ir vedlių pagalba kuriamas formų rinkinys informacinei sistemai. Naujoje programinėje įrangoje bus bandomas įgyvendinti atvirkštinis vedlio veikimas, turint grafinę vartotojo sąsają, pagal elementų taisykles, gauti duomenų bazę. Šis sprendimas bus pritaikomas programinės įrangos ir informacinių sistemų kūrimo procese, taip pat turėtų palengvinti programuotojo ir projektuotojo darbą, nes daugelis programuotojų ir projektuotojų, kuriant IS grafinę vartotojo sąsają remiasi dokumentų analizės pateiktomis popierinėmis formomis. 3.1.1 Funkciniai reikalavimai Kuriamas sprendimas turi veikti su HTML hiperteksto žymėjimo kalbos pateikiamomis formomis. Generuojant duomenų bazę, programa turėtų nuskaityti pateiktą formą ir pateikti duomenų bazės SQL scenarijų, bei kontaktuojančios su duomenų baze, PHP klasės kodą. Taip pat, kuriamo sprendimo programa turi turėti galimybę grafiškai sudėlioti formos elementus savo aplinkoje ir iš sukurtos formos generuoti duomenų bazę. Pakoregavus formą duomenų bazės scenarijus turi būti generuojamas kitas. 3.1.1.1 Sprendimo panaudojimo atvejai Kuriamas sprendimas turės keletą pagrindinių funkcijų: projektuoti grafinę vartotojo sąsają, kurti duomenų bazę, redaguoti sukurtą duomenų bazę ir visą tai suintegruoti į vientisą sistemą. Šios funkcijos išreikštos panaudojimo atvejais (3.1 pav.). Sistemos (programos) vartotojas vienas, bet ja naudosis daugelis vartotojų, kuriančių IS, vaidmenų: analitikai, programuotojai, projektuotojai. 3 3.1 paveikslas. Bendras kompiuterizuojami panaudojimo atvejai Pagrindiniai sistemos panaudojimo atvejai, kurie atskleidžia magistrinio darbo esmę: „kurti duomenų bazę“ PA, su jį papildančiais generuoti „duomenų bazės lentelę“ PA, „generuoti ryšį tarp lentelių“ PA. Kiekvienas kuriamos sistemos panaudojimo atvejis specifikuojamas lentelėmis ir sekų diagramomis (9.1 priedas), kurios apibrėžia sistemos elgseną ir vartotojo galimus veiksmus su šiuo sprendimu. 3.1.2 Nefunkciniai sistemos reikalavimai Reikalavimai sistemos išvaizdai: • Vartotojo sąsaja turi būti intuityvi, lengvai suprantama, neperkrauta grafiniais elementais, kurie sulėtintų sistemos vykdomas funkcijas. Reikalavimai vykdymo charakteristikoms: • Duomenų bazės formavimas turi trukti ne ilgiau kaip 30 sekundžių; • Greitos atidarymo, išsaugojimo operacijos dirbant su formomis ir ataskaitomis (ne ilgiau kaip 5 sekundės). Reikalavimai veikimo sąlygoms: • Kuriamas sprendimas turi veikti įvairioms Windows operacinės versijoms su galimybe veikti Linux operacinės sistemos aplinkoje. Reikalavimai sistemos patogumui: • Kuriamas sistemos algoritmas turi būti universalus ir pritaikomas kitiems tyrimams bei bandymams, ne tik su HTML formomis ir MySQL duomenų baze. Kultūriniai-politiniai reikalavimai: • Sistemoje naudojami kitų gamintojų komponentai turi būti atviro kodo, nemokami nekomerciniams tikslams. Teisiniai reikalavimai: • Apribojimų susijusių su įstatymais nėra. 3.2 Dalykinės srities modelis Pradinis dalykinės srities klasių modelis pateikiamas (3.2 pav.). Šiame modelyje yra aprašomos pagrindinės klasės: Project, Form, Form_element, Element_type, Database, Relationship, Table, Column, Column_type. Šios klasės sujungtos ryšiais. 3.2 paveikslas. Dalykinės srities klasių modelis 3.3 Reikalavimų analizės apibendrinimas Sistema turi būti paprasta, lengvai suprantama vartotojui. Sistema turi išpildyti pagrindinę funkciją: automatizuotai kurti duomenų bazę iš sukurtų ir sistemai pateiktų HTML formų. Kuriama sistema orientuota į patyrusį duomenų bazių specialistą, taigi, grafinė vartotojo sąsaja neturėtų būti perkrauta grafiniais elementais, kurie sulėtintų sistemos atliekamas funkcijas. 4 Sistemos projektas Sistemos tikslas, kaip ir pagrindinis darbo tikslas - eksperimentiškai ištirti ar galima generuoti duomenų bazę iš formos, naudojant tik formos elementų taisykles. 4.1 Duomenų bazės generavimo algoritmas Duomenų bazės algoritmas, generuojantis duomenų bazę veikia pagal 4.1 lentelėje nusakytas taisykles. 1. 2. 3. 4. 4.1 lentelė. Sprendimų lentelė Veiksmas Kurti formą atitinkančią lentelę Kurti formos lentelės stulpelį Kurti formos lentelės stulpelį PK Kurti formos lentelės stulpelį FK Kurti nauja lentelė Kurti naujos lentelės stulpelį Kurti naujos lentelės stulpelį PK Kurti naujos lentelės stulpelį FK Sukurti ryšys tarp formos lentelės ir naujos lentelės. Sukurti ryšį tarp „Select“ atitinkančios lentelės ir „Group“ atitinkančios lentelės. Sąlyga Rasta nauja forma (Form) X X Rastas naujas teksto laukas (Text field) X Rastas naujas slaptažodžio laukas (Password field) X Rastas naujas pasirinkimo laukas (Radio button) X Rastas naujas žymimasis laukas (Check box) X Rasti nauji daugiau negu 2 žymėjimo laukai (Check box) X X X X X X Rastas naujas teksto laukas (Textarea) X Rastas naujas išsiskleidžiantis sąrašas (Select) X X X X Rastas naujas išsiskleidžiančio sąrašo elementas (Option) X Rastas naujas išsiskleidžiančio sąrašo grupavimas Option group X X X X Rasta nauja duomenų lentelė (Grid)* X X X X Rastas naujas duomenų lentelės stulpelis (Grid column)* X X Algoritmas analizuoja jam pateiktą formą, joje esančius formos elementus ir jų tam tikrus parametrus - atributus. Formos duomenys saugomi į informacinės sistemos duomenų bazę kuri turi lenteles, bei stulpelius. Kiekvienas nagrinėjamos formos laukas turi atitinkamai pagal algoritmo taisyklę priskirtą duomenų bazės stulpelį. 4.1.1 Duomenų bazės generavimo algoritmo formalus aprašas Šiame skyriuje bus formaliai aprašytas duomenų bazių generavimo, iš pateiktų formų, algoritmas. Algoritmas suskirstomas į keturis žingsnius. Kiekvienas jų aprašytas matematiniais modeliais. 4.1.1.1 Duomenų bazės generavimo algoritmo pirmasis žingsnis Pirmojo žingsnio metu yra nuskaitomas failas su formomis. Gaunama išsami informacija apie formose esančius elementus, kokie jų tipai ir kokiai formai tas elementas priklauso. Pirmojo žingsnio formalųjį aprašą sudaro šis trejetas: formų aibė, elementų aibė, ir funkcinių priklausomybių aibė. M1 = (4.1) F – formų aibė; Formų aibė sudaryta iš formų: F = { f1, f2, f3, … ,fn }. (4.2) E – formos elementų aibė; Elementų aibė sudaryta iš elementų: E = { e1, e2, e3, … ,en }. (4.3) F : E → F (4.4) Formos elementų aibės elementas turi funkcinę priklausomybę su atitinkama formos aibę. Aibė, sąryšis, atvaizdis Predikatas F form_content 4.1.1.2 Duomenų bazių generavimo algoritmo antrasis žingsnis Antrojo žingsnio metu analizuojami paprastieji elementai: įvedimo laukai, žymimieji langeliai, pasirinkimo laikai. Šio tipo elementai, duomenų bazės struktūrai, nėra labai sudėtingi. Antrojo algoritmo žingsnio formalųjį aprašą sudaro 4.5 formulėje nurodytos aibės: M2 = (4.5) Duomenų bazių aibė sudaryta iš duomenų bazių: DB = { db1, db2, db3, … ,dbn }. (4.6) Lentelių aibė turi funkcinę priklausomybę nuo atitinkamos duomenų bazės: L → DB. (4.7) L – lentelių aibė; Lentelių aibė yra sudaryta iš lentelių: L = { l1, l2, l3, … ,ln }. (4.8) S – lentelės stulpelių aibė; Stulpelių aibė sudaryta iš stulpelių: S = { s1, s2, s3, … ,sn }. (4.9) Stulpeliai turi funkcinę priklausomybę nuo atitinkamos lentelės: S → L. (4.10) Kiekviena sukurta lentelė turi pirminį raktą pk kuris priklauso PK – pirminių raktų aibei. Pirminių raktų aibę sudaro pirminiai raktai: PK = { pk1, pk 2, pk 3, … , pk n }. (4.11) PK yra stulpelių aibės S poaibiai: PK S. Taigi pirminių raktų aibė niekada nebūna tuščia aibė PK ≠ ∅ (4.13) T : S → L (4.14) Stulpelių aibės elementas turi funkcinę priklausomybę su atitinkamu duomenų bazės lentelės elementu. FL : F → L (4.15) Formų aibės elementas, turi funkcinę priklausomybę su duomenų bazės lentelių aibės elementu. ES : E → S (4.16) Formos elementų aibės elementas, turi funkcinę priklausomybę su duomenų bazės lentelės stulpeliu. Aibė, sąryšis, atvaizdis Predikatas T table_content FL form_table_relation ES column_felement_relation Jei yra forma f kuri priklauso formų aibei F , ir yra elementas e, kuris priklauso formos elementu aibei E, formos ir elementai bendrai aprašo formų turinį. Šiai formai yra lentelė l kuri priklauso lentelių aibei L ir stulpelį s, kuri priklauso stulpelių S aibei, ir bendrai lentelės su atitinkami stulpeliais sudaro duomenų bazės lentelę. Tarp formos ir lentelių yra funkcinį ryšis. ∀ f ∈ F ∀ e ∈ E [form_content(e, f)] ∃ l ∈ L s ∈ S [table_content(l, s)] ^ [form_table_relation(f,l)] ^ [column_felement_relation(e,s) (4.17) 4.1.1.3 Duomenų bazių generavimo algoritmo trečiasis žingsnis Trečiais žingsnis analizuoja sudėtingesnius formų elementus išsiskleidžiantį sąrašą (angl. select). Tokių elementų duomenims saugoti reikia kurti papildomą duomenų bazės lentelę, kurioje saugomi duomenys apie išsiskleidžiančio sąrašo pasirinkimus. Šį žingsnio formalųjį aprašą sudaro toks aibių rinkinys: M3 =
Šį darbą sudaro 14331 žodžiai, tikrai rasi tai, ko ieškai!
★ Klientai rekomenduoja
Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?
Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!
Norint atsisiųsti šį darbą spausk ☞ Peržiūrėti darbą mygtuką!
Mūsų mokslo darbų bazėje yra daugybė įvairių mokslo darbų, todėl tikrai atrasi sau tinkamą!
Panašūs darbai
Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.
Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.
Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!