Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • U kontaktu sa
  • Razvoj aplikacija za baze podataka. broj propuštenih sati iz fizike

Razvoj aplikacija za baze podataka. broj propuštenih sati iz fizike

Federalna agencija za obrazovanje

Državna obrazovna ustanova visokog stručnog obrazovanja

"ČELJABINSKI DRŽAVNI UNIVERZITET"

Rad na kursu

Razvoj aplikacija za baze podataka

Analiza domena

Opis predmetne oblasti i funkcije zadataka koje se rješavaju

U predmetnom radu, u skladu sa zadatkom, automatizirane su aktivnosti odjela prodaje ruskog prehrambenog preduzeća.

Predmet oblasti automatizacije su neke radne funkcije odjela prodaje. Sektor prodaje ima plan puštanja u promet gotovih proizvoda sastavljen za tri mjeseca. U skladu sa ovim planom radnje proizvode proizvode, ali stvarna proizvodnja zavisi od mnogo faktora i može se razlikovati od planirane. Odjel prodaje također prima fakture trgovine, koje odražavaju stvarnu proizvodnju proizvoda i njihovu isporuku u određena skladišta.

Zadatak odjela prodaje je da analizira realizaciju plana isporuke proizvoda u skladišta. Da biste to učinili, morate odabrati planirane i stvarne podatke za određenom periodu za određeno skladište i analizirati odstupanje činjenice od plana.

Preduzeće ima 3 radionice u kojima se proizvode proizvodi. Asortiman proizvedenih proizvoda dat je u tabeli.

Tabela 1.

Broj radioniceNaziv radionice Naziv proizvoda Minimalna jedinica proizvodnjeCijena po jedinici mlijeka 3,5% kutija 50 komada 650,00 rub. krem kutija 50 komada1 200,00 rub. kuhana kobasica pakovanje 50 komada2 500,00 rub.2 kobasica dimljena kobasicapakovanje 50 komada3 400,00 rub. kobasicepakovanje od 50 komada1 200,00 rub. konzervirana kutija zandera 50 konzervi 670,00 rub 3 riblje kavijar crna kutija 50 konzervi 5 400,00 rub. kutija crvenog kavijara 50 konzervi 5 370,00 rub. Proizvodi koje proizvode radionice dostavljaju se u skladišta

Tabela 2.

Skladište Br. Naziv skladišta1 Skladište br. 12 Skladište br. 23 Skladište br.

Spisak ulaznih (primarnih) dokumenata.

Kao primarni dokumenti za rješavanje ovog problema koriste se:

tlocrt radnje

lista faktura prodavnice

Broj radionice Broj fakture prodavnice Datum isporuke

specifikacija faktura prodavnice

Broj prodavnice Broj fakture prodavnice Šifra proizvoda Količina

Ograničenje područja predmeta.

Prilikom izrade kursnog projekta dozvoljena su sljedeća ograničenja:

gotov proizvod je raspoređen na jedno skladište gotovih proizvoda i može se proizvoditi u više radionica.

gotov proizvod ima samo jednu jedinicu mjere.

jedna radnja može proizvoditi više vrsta proizvoda.

Jedno skladište može skladištiti nekoliko vrsta gotovih proizvoda.

proizvodnja gotovih proizvoda u radnji planirana je mjesečno.

isti proizvod može biti zakazan za puštanje u prodaju u različitim mjesecima.

Račun radionice za isporuku gotovih proizvoda u skladište može sadržavati više artikala, njen broj je jedinstven samo za jednu radionicu.

Formulacija problema

Organizaciona i ekonomska suština kompleksa zadataka.

Jedan od glavnih problema u preduzeću je nesklad između planirane količine proizvodnje, koja se formira u skladu sa zahtjevima kupaca, i stvarne količine proizvoda koje radionice otpremaju u skladišta.

Za rješavanje ovog problema potrebno je blagovremeno (blagovremeno) dobiti informacije o prisutnosti, manjku ili višku proizvoda u skladištima u odnosu na plan. Višak se skladišti u magacinu, može doći do prekoračenja roka trajanja i stvaranja nelikvidne imovine.

Opis izlaznih informacija

Izlazne informacije će biti predstavljene u formi izvještajnog obrasca.

Analiza realizacije plana isporuke proizvoda u skladište _________________

Mjesec Naziv proizvoda Jedinica mjere Količina VišakPlanFact

Za dobijanje ovog obrasca koriste se podaci primarnih dokumenata:

lista proizvoda;

spisak skladišta;

spisak radionica;

plan proizvodnje proizvoda po radionicama;

spisak faktura prodavnice;

Opis ulaznih informacija.

Ulazne informacije se dijele na uslovno konstantne (direktorije), koje zadržavaju svoje vrijednosti duži vremenski period, i stalno mijenjajuće, odnosno operativne računovodstvene informacije.

Uvjetno trajne informacije uključuju:

lista proizvedenih proizvoda;

spisak proizvodnih radnji;

spisak skladišta;

priručnik mjernih jedinica.

Operativne računovodstvene informacije uključuju:

plan proizvodnje proizvoda po radionicama;

spisak faktura prodavnice;

specifikacija faktura prodavnice.

Predstavimo primarne dokumente sa detaljima u tabeli 3:

Broj artikla Naziv dokumenta Detalji 1 Spisak proizvedenih proizvoda 1. Šifra proizvoda 2. Naziv proizvoda. 3.Šifra jedinice mjere. 4.Price. 5. Broj skladišta 3 Spisak skladišta 1. Šifra skladišta. 2.Naziv skladišta.2Lista radionica1.Šifra radionice. 2.Naziv radionice.4Imenik mjernih jedinica1.Šifra jedinice mjere. 2. Naziv jedinice mjere 5 Plan proizvodnje proizvoda po radionicama 1. Broj radionice. 2. Mjesec izdavanja. 3. Šifra proizvoda. 4.Količina6Lista faktura prodavnice1.Broj prodavnice. 2. Broj fakture prodavnice. 3. Datum isporuke. 7 Specifikacija fakture prodavnice 1. Broj prodavnice. 2. Broj fakture prodavnice. 3. Šifra proizvoda. 4. Količina.

Dizajn baze podataka

Izbor informacionih objekata

Jedna od najtežih faza u procesu projektovanja baze podataka je izrada tabela, jer rezultati koje baza podataka treba da proizvede (izvještaji, izlazni obrasci, itd.) ne daju uvijek potpunu sliku strukture tabele.

Informacije u tabeli ne smiju se duplirati. Ne bi trebalo biti ponavljanja između tabela.

Kada su određene informacije pohranjene u samo jednoj tabeli, onda će se morati mijenjati samo na jednom mjestu. Ovo čini rad efikasnijim, a takođe eliminiše mogućnost neusklađenosti informacija različiti stolovi Oh.

Svaka tabela treba da sadrži informacije samo o jednoj temi.

Informacije o svakoj temi se mnogo lakše obrađuju ako su sadržane u tabelama koje su nezavisne jedna od druge.

Svaka tabela sadrži informacije o posebnoj temi, a svako polje u tabeli sadrži zasebne informacije o temi tabele

Za implementaciju podatkovne veze iz različitih tabela, svaka tabela mora sadržavati polje ili skup polja koji će postaviti pojedinačnu vrijednost svakog zapisa u tabeli. Takvo polje ili skup polja naziva se primarni ključ. Nakon distribucije podataka po tabelama i definiranja ključnih polja, trebate definirati odnose između tabela.

Tabela 4

Informacijski objekti

Infoobjekat Odgovarajući dokumentDetaljiKljučProizvodiPopis proizvedenih proizvoda Šifra proizvodaDa Naziv proizvoda Naziv proizvoda Šifra jedinice Cijena Broj skladištaProdavnicaBr.ShopListaShopBrojDaNaziv prodavniceSkladištaSkladišteListaSkladištaBrojDaSkladišteNazivMerna jedinica brojYeShop Specifična jedinica Mjerna jedinicaYhSop Specifična jedinica Mječnik broj YopShop. objekat "Plan izdanja" Broj mjesecaDa Naziv mjeseca

Informaciono-logičko modeliranje i određivanje veza između informacionih objekata

Informaciono-logički model je model podataka koji prikazuje predmetno područje u obliku skupa informacijskih objekata i strukturnih odnosa između njih.

Naš informacijsko-logički model će izgledati ovako:

Fig.1. infološki model

Kao rezultat razvoja baze podataka dobijeno je 8 informacionih objekata. Definirajmo tip veze u svakom paru ovih inf. objekata.

Jedinica mjere - Proizvod

Tip odnosa je 1-prema-više, budući da se nekoliko proizvoda može mjeriti jednom jedinicom mjere, ali se svaki proizvod trenutno mjeri jednom jedinicom mjere. Veza između ovih objekata zasniva se na atributu Šifra jedinice mjere.

Skladišta - Proizvod

Tip odnosa je 1-prema-više, jer se u jednom skladištu može uskladištiti više artikala gotovih proizvoda. Komunikacija - preko potrebnog broja skladišta.

Proizvodi - Plan izdanja

Tip odnosa je 1-prema-više jer se jedna stavka može zakazati za izdavanje u različitim mjesecima, ali svaka planirana količina se odnosi samo na jednu stavku u tom mjesecu. Komunikacija po atributu Šifra proizvoda.

Mjesec - Plan izdanja

Tip odnosa 1-prema-mnogo, svaki mjesec se izrađuje plan puštanja proizvoda. Kontakt po atributu Broj mjeseca.

Radionice - Plan izdanja

Komunikacijski tip 1- prema mnogima, jedna radnja se planira objaviti u različitim mjesecima. Komunikacija po atributu Broj radionice.

Radionice - Radioničke fakture

Radionice - Specifikacije

Tip odnosa 1-prema-mnogo, jedna radnja izdaje mnogo faktura. Komunikacija po atributu Broj radionice.

Računi prodavnice - Specifikacije

Tip odnosa 1-prema-više, jedna faktura prodavnice može sadržavati nekoliko BOM-ova za proizvod. Komunikacija po detaljima - Broj fakture prodavnice i broj prodavnice.

Proizvod - Specifikacije

Tip odnosa 1-prema-mnogo, isti artikal se proizvodi više puta, ali određena količina koja se oslobađa odnosi se samo na jednu stavku. Komunikacija po atributu Šifra proizvoda.

Logička struktura baze podataka

Logička struktura relacione baze podataka je adekvatan odraz dobijenog informaciono-logičkog modela predmetne oblasti. Kanonski model ne zahtijeva dodatne transformacije. Svaki informacijski objekt modela podataka mapiran je u odgovarajuću relaciju. Struktura relacijske tablice određena je sastavom atributa odgovarajućeg informacijskog objekta, gdje svaka kolona (polje) odgovara jednom od atributa. Ključni atributi formiraju jedinstveni ključ relacijske tablice. Za svaki stupac tablice specificirani su tip, veličina podataka i druga svojstva. Topologija projekta sheme podataka se praktično poklapa sa topologijom informacijsko-logičkog modela.

U okviru ovoga seminarski rad logička struktura baze podataka će izgledati ovako (slika 2.):

Fig.2. Logička struktura baze podataka

Implementacija baze podataka u Microsoft Accessu

Za implementaciju dizajnirane baze podataka koristićemo jedan od najpopularnijih sistema za upravljanje bazom podataka za operativni sistem Microsoft Windows pristup. Ovaj DBMS je uključen u široko rasprostranjeni integrisani paket kompanije Microsoft office i potpuno je kompatibilan sa programima ovog paketa. Velika prednost MS Access-a je dostupnost alata za razvoj informacionih sistema za korisnike različitih kvalifikacija: od početnika do profesionalaca.

MS Access DBMS je fokusiran na rad sa sljedećim objektima:

Tabele su glavni element svake relacijske baze podataka, dizajnirane da definiraju i pohranjuju podatke;

Upiti služe kao izvori za izgradnju drugih upita, obrazaca i izvještaja. Upiti vam omogućavaju da modifikujete i analizirate podatke. Najčešći tip upita, upit za odabir, je skup pravila koja biraju podatke iz jedne ili više povezanih tabela. Rezultati upita za izbor prikazani su u obliku virtuelne tabele.

Obrasci - objekt dizajniran uglavnom za unos podataka, njihovo prikazivanje na ekranu ili kontrolu rada aplikacije. Moguće je koristiti formulare kako bi se implementirali zahtjevi korisnika za prezentaciju podataka iz upita ili tabela, obrasci se mogu i štampati.

Izveštaji su alat za organizovanje izlaza podataka za štampanje. Uz pomoć izvještaja moguće je prikazati potrebne informacije u željenom obliku. Možete pregledati izvještaj prije štampanja. Izvori podataka za izvještaje su tabele i upiti;

Makroi – objekt koji je strukturirani opis jedne ili više radnji koje MS Access mora izvršiti kao odgovor na određeni događaj.

Moduli su objekti koji sadrže programe napisane na jeziku Visual basic za aplikacije (VBA).

Kao dio zadatka, nema potrebe za kreiranjem makroa i modula u dizajniranoj bazi podataka.

Svi MS Access objekti su smešteni u jednu datoteku na disku. MS Access ima interfejs sa više prozora, ali može da obrađuje samo jednu bazu podataka u isto vreme.

Da biste kreirali novu bazu podataka, morate pokrenuti MS Access, odabrati " Nova baza podaci", unesite naziv baze podataka i odaberite njenu lokaciju na disku.

Tabele dizajnirane baze podataka su informacioni objekti, polja tabela su detalji informacionih objekata.

Za popunjavanje ulaznih informacija biće potrebno dizajnirati korisnički interfejs - obrasce:

obrazac "Proizvodi" - za uređivanje tabele "Proizvodi";

obrazac "Plan proizvodnje" - korigovati plan za broj proizvedenih proizvoda;

obrazac "Računi prodavnice" koji povezuje tabelu "Računi prodavnice" i tabelu "Specifikacije faktura prodavnice" u zavisnosti od "Računi prodavnice".

Za implementaciju izvještaja "Analiza realizacije plana isporuke proizvoda u skladište" dovoljno je izvršiti jedan upit za odabir mjeseca (tabela "Mjesec"), naziva proizvoda (tabela "Proizvodi"), jedinica mjere (tabela "Jedinica mjere"), količina prema planu (tabela "Plan proizvodnje"), količine nakon činjenice (tabela "Specifikacije"), sa dodatkom kolone "višak" sa formulom za oduzimanje .

Kreiranje tabele i šema podataka

prodaja baze podataka aplikacija

Postoji nekoliko načina za kreiranje tabela (režim tabele, dizajner, čarobnjak tabela, uvoz tabela, povezivanje sa tabelama iz drugih baza podataka). Najsvestraniji način kreiranja tablice je korištenje moda dizajna. Da biste kreirali tabelu u ovom režimu, morate definisati polja tabele. Svako polje karakterizira ime, tip podataka i svojstva. Ime polja ne smije sadržavati posebne znakove.

Microsoft Access podržava sljedeće tipove podataka:

Tekst - koristi se za pohranjivanje alfanumeričkih informacija. Dužina polja ne smije biti veća od 255 znakova;

MEMO polje - dizajnirano za skladištenje alfanumeričkih informacija dužine do 65535 karaktera;

Numerički - koristi se za numeričke podatke uključene u proračune;

Datum / vrijeme - datum i (ili) vrijeme u rasponu od 100 do 9999;

Monetarni - koristi se za novčane vrijednosti i numeričke podatke koji se koriste u matematičkim proračunima, koji se izvode s tačnošću do 15 cifara u cjelini i do 4 znamenke u razlomku;

Brojač - služi za generisanje jedinstvenih sekvencijalno rastućih ili nasumičnih brojeva koji se automatski unose u polje prilikom dodavanja svakog novog zapisa u tabelu. Vrijednosti polja tipa Counter se ne mogu mijenjati;

Boolean - dizajniran za logičke vrijednosti (Da/Ne, Tačno/Netačno). Dužina logičkog polja - 1 bit;

Polje OLE objekta je bilo koji objekat u binarnom formatu (Word dokument, Excel tabela, slika, zvučni zapis) povezan ili ugrađen u MS Access tabelu. Veličina takvog polja ne bi trebala prelaziti 1 GB;

Čarobnjak za pretraživanje - kreira polje koje nudi izbor vrijednosti sa liste ili iz kombinovanog okvira koji sadrži skup konstantnih vrednosti ili vrednosti iz druge tabele. Odabirom ove opcije sa liste u ćeliji pokreće se čarobnjak za traženje koji određuje tip polja.

Svojstva polja postavljaju se na dnu prozora dizajnera tablice na kartici Općenito. Lista svojstava je različita za svaki tip podataka. Razmotrimo neke od njih:

Veličina polja - ograničava dužinu polja na određeni broj znakova;

Format - specificira format za datume i brojeve;

Broj decimalnih mesta - za monetarna i numerička polja postavlja broj decimalnih mesta;

Maska unosa - za tekstualna i datumska polja definiše šablon prema kojem će se podaci unositi u polje;

Indeksirano polje - omogućava vam da kreirate indeks koji će poslužiti za ubrzanje pretraživanja i sortiranja tabele ovom polju. Indeks je interna tabela usluge koja se sastoji od dvije kolone: ​​vrijednosti indeksiranog polja i broja tablice. Možete postaviti sljedeća svojstva za indekse: a) "Da (podudaranja su dozvoljena)" - kreira se indeks koji uključuje odgovarajuće vrijednosti polja, b) "Da (nije dozvoljena podudaranja)" - indeks se kreira na osnovu jedinstvenog vrijednost polja, c) "Ne ' - indeks nije kreiran

Tabela u MS Access-u obično sadrži primarni ključ. Da biste kreirali ključ, morate odabrati polje u konstruktoru i dodijeliti ga kao ključ kroz kontekstni izbornik.

Polje Tip podataka Veličina polja Primarni ključ Kôd jedinice Numerički Dugi cijeli broj Da Naziv jedinice Tekst50

Tabela "Proizvodi"

Polje Tip podataka Veličina polja Primarni ključ Šifra stavkeNumerički dugi cijeli brojDa Naziv stavkeText100 Šifra jediniceNumerički dugi cijeli broj Cijena Monetarni-SkladišteBrojNumerički bajt

Tabela "Skladišta"

Polje Tip podataka Veličina polja Primarni ključ Broj skladištaNumerički bajt Da Naziv skladištaTekst20

Mjesečna tabela

Polje Tip podataka Veličina polja Primarni ključ Broj mjesecaNumerički cijeli broj Da (podudaranja nisu dozvoljena) Naziv mjeseca Tekst20

Sto "Radionica"

Polje Vrsta podataka Veličina polja Primarni ključ Broj prodavniceNumerički bajt Da Naziv prodavnice Tekst30

Tabela plana izdavanja

Polje Vrsta podataka Veličina polja Primarni ključ Broj prodavniceNumerički bajt da mjesec broj numerički cijeli brojDa kod dijelaNumerički dugi cijeli brojDa KoličinaNumerički Real(16) Tabela "Fakture prodavnice"

Polje Tip podataka Veličina polja Primarni ključ Broj prodavniceNumerički bajtDa Broj fakture prodavniceNumerički dugi cijeli brojDa Datum isporuke Datum\vrijeme-

Tabela "Specifikacije"

Polje Vrsta podatka Veličina polja Primarni ključ Broj prodavniceNumerički bajtDa Broj fakture prodavniceNumerički dugi ceo brojDa kod delaNumerički dugi ceo brojDa KoličinaNumerički Real(16)

Kreirajte šemu podataka u Microsoft Accessu:

Fig.3. Šema podataka

Kreacija korisnički interfejs

Obrasci su primarno sredstvo za kreiranje korisničkog interfejsa koji pruža najpogodniji način za predstavljanje, pregled, uređivanje podataka i kontrolu napretka aplikacije. Glavne funkcije obrazaca su unos podataka, izlaz i uređivanje informacija, kontrola napretka aplikacije, izlaz poruke i štampanje informacija.

Postoje sljedeće vrste obrazaca:

Normalno - prikazuje jedan zapis izvora podataka;

Više stranica - dizajnirano za rad sa izvorom podataka koji ima veliki broj polja;

Traka - prikazuje nekoliko zapisa izvora podataka, pogodno za ne veliki broj polja;

Iskačući prozor - prikazuje se uključeno prednji plan ekran i omogućava vam rad sa drugim oblicima;

Ekskluzivno - ne dozvoljava prelazak na druge forme dok se ne zatvori;

rob - dobar lek za predstavljanje podataka koji su na strani „mnogo“ u odnosu jedan-prema-više, ugrađen je u glavni oblik i uvijek zavisi od njega.

Strukturno, obrazac se sastoji od tri sekcije - zaglavlja, bilješke i područja podataka. Odjeljci obrasca sadrže kontrole. Bilo koja kontrola se može postaviti na obrazac pomoću alatne kutije, koja je prikazana u dizajneru obrasca.

Najčešće korišteni elementi:

(natpis) - služi za stvaranje trajnih natpisa u formi;

(polje) - element koji prikazuje vrijednost iz izvora podataka;

(kombinovani okvir) - dizajniran za kreiranje u obliku padajućih lista;

(dugme) - dizajnirano za kreiranje komandnih dugmadi u obliku koji izvode određene radnje;

(potvrdni okvir) - element koji vam omogućava da omogućite ili onemogućite vrijednost parametra;

(podobrazac) - služi za ugrađivanje podobrazca u glavni obrazac.

Pogodnije je kreirati obrazac pomoću čarobnjaka. Prvi korak je odabir izvora podataka i polja za obrazac. U drugom koraku morate navesti izgled dizajniranom obliku. Treći korak je odabir stila obrasca ( pozadinska slika za oblik, format fonta i šemu boja). Posljednji korak je unos naziva obrasca pod kojim će biti pohranjen u bazi podataka. Obrazac kreiran pomoću čarobnjaka treba biti finaliziran u načinu dizajna. Dodajte potrebne natpise, dugmad, podobrasce.

U sklopu nastavnog rada kreirani su sljedeći obrasci:

Rice. 4. Proizvodi.

Fig.5. Plan izdanja.

Obrazac "Računi radionice" sadrži podobrazac "Specifikacije"

Fig.6. Shop fakture.

Izvještaj o implementaciji

Prije kreiranja izvještaja potrebno je kreirati upit.

Upiti su suštinski alat u svakom sistemu upravljanja bazom podataka. Svrha zahtjeva - u opisu vrsta zahtjeva.

Upiti se mogu kreirati u modu Čarobnjaka za upite (tada morate odabrati tip upita) ili u Query Builderu.

Postoje četiri tipa upita u Microsoft Accessu:

jednostavni upiti za odabir prikazuju podatke iz jedne ili više tabela u obliku tabele; dodavanje parametra (uslov odabira) je dozvoljeno;

unakrsni upiti prikupljaju podatke iz jedne ili više tabela u formatu sličnom proračunskoj tablici i koriste se za analizu podataka; dodavanje parametra (uslov odabira) je dozvoljeno;

zahtjevi za izmjenom se koriste za kreiranje novih tabela iz rezultata upita i za izmjene (dodavanje, brisanje) podataka postojeće tabele; dodavanje parametra (uslov odabira) je dozvoljeno;

upit za traženje zapisa koji se ne podudaraju ni sa jednim zapisom u podređenoj tabeli.

Korištenjem upita u modu Čarobnjaka za upite (odabirom izvještaja sažetka upita), moguće je izvršiti proračun (zbir, prosjek, min, max) koristeći odabrane podatke.

Za implementaciju izvještaja „Analiza realizacije plana isporuke proizvoda u skladište br. ___“ dovoljno je izvršiti jedan upit za odabir mjeseca (tabela „Mjesec“), naziva proizvoda (tabela „Proizvodi“). ), jedinica mjere (tabela "Jedinica mjere"), količina po planu (tabela "Plan puštanja"), količina nakon činjenice (tabela "Specifikacije"), uz dodatak kolone "višak" sa formulom za oduzimanje, kao i sa izborom broja skladišta (tabela "skladišta") sa uslovom odabira bez prikazivanja ovog skladišta u rezultujućoj tabeli.

Za ovaj izvještaj, upit je kreiran pomoću konstruktora:

Fig.8. Zatražite rezultat.

By različit iznos robe iz specifikacije jasno je da je smuđ u konzervi isporučen u skladište i u julu i u septembru dva puta.

Izvještavanje

Izvještaji su najbolji lek predstavljati informacije iz baze podataka u obliku štampani dokument. Oni pružaju široku priliku za grupisanje i izračunavanje međuzbirova i ukupnih zbrojeva za velike skupove podataka. Izvještaji se mogu koristiti za izradu lijepo dizajniranih faktura, narudžbenica, poštanskih naljepnica, materijala za prezentaciju i drugih dokumenata koji su vam potrebni za uspješno vođenje vašeg poslovanja.

Izvještaj sadrži sljedeća područja:

naslov - prikazuje se samo jednom na početku izvještaja;

zaglavlje i podnožje - ponavljaju se na svakom listu izvještaja, koriste se za prikaz stalnih ili periodičnih informacija (datum izvještaja, brojevi stranica, itd.);

naslovi i napomene za grupe - prikazuju se pri grupisanju u izveštaju na početku i na kraju svake grupe, respektivno. Možete kreirati do deset nivoa grupisanja u izveštaju;

područje podataka - koristi se za unos informativnih redova izvještaja;

bilješka o izvještaju - dizajnirana za prikaz sažetih informacija o izvještaju u cjelini, štampana jednom na kraju izvještaja.

Kreiranje izvještaja, kao i obrazaca, pogodnije je izvesti pomoću čarobnjaka.

Nakon kreiranja izvještaja, možete promijeniti njegovu strukturu u prikazu dizajna (ispraviti i formatirati zaglavlja stupaca izvještaja, dodati ili ukloniti polja, itd.).

Kao rezultat izrade izvještaja dobijena je njegova štampana forma.

Analiza realizacije plana isporuke proizvoda u skladište br. 1, 2, 3 - sl. 10-12.

Dodato je polje "broj fakture prodavnice" kako bi bilo jasno da se proizvod može isporučiti u skladište dva puta mesečno na dve različite fakture.

Fig.9. Dizajner izvještaja

Fig.10. Analiza realizacije plana isporuke proizvoda u skladište br.1

Fig.11. Analiza realizacije plana isporuke proizvoda u skladište br.2

Fig.12. Analiza realizacije plana isporuke proizvoda u skladište br.3

Bibliografija

Tarasov V.L. Rad sa bazama podataka u Access okruženju, Tutorial / Nizhny State University, Nižnji Novgorod, 2005.

Shekhtman V.E. Baze podataka, SQL Obrazovno-metodički priručnik za discipline "Baze podataka", "Baze podataka i ekspertni sistemi", " Moderna tehnologija programiranje SQL". / - NFI KemGU, Novokuznjeck, 2006.

Andreev V.A., Tupikina E.N., Sistemi za upravljanje bazama podataka (Microsoft Access), smjernice/ DVGAEU, Vladivostok, 2003.

Veiskas D., Efikasan rad sa ACCESS-om, udžbenik / Sankt Peterburg, 1996.

Homonenko A.F., Tsygankov V.M., Maltsev M.G. Baze podataka, udžbenik za srednje škole / Ed. prof. A.D. Homonenko.- Sankt Peterburg: CROWN print, 2002.

  • Android razvoj
    • tutorial
    • način oporavka

    Zdravo svima! Moje ime je Oleg i amaterski sam Android programer. Amater jer trenutno zarađujem programirajući u potpuno drugom pravcu. A ovo je hobi kojem se posvećujem slobodno vrijeme. Nažalost, ne poznajem Android programere i sve svoje osnovno znanje Crtam ili iz knjiga ili sa interneta. U svim onim knjigama i člancima na internetu koje sam pročitao, vrlo malo prostora je izdvojeno za kreiranje baze podataka za aplikaciju, a zapravo se cijeli opis svodi na kreiranje klase koja je nasljednica SQLiteOpenHelper i naknadno ugrađivanje SQL koda u Java kod. Ako ne uzmemo u obzir da dobijemo slabo čitljiv kod (i ako se u našoj aplikaciji pojavi više od 10 tabela, pamtiti sve ove relacije između tabela je i dalje pakao), onda u principu možete živjeti, naravno, ali nekako ne možete ne želim uopšte.
    Zaboravio sam da kažem ono najvažnije, možemo reći da je ovo moj test pera. I tako smo otišli.

    O vječnom pitanju: zašto?

    Zašto knjige i članci o Android programiranju ne opisuju alate za dizajniranje arhitekture baze podataka i bilo kakve obrasce za rad s bazama podataka u fazi njihovog stvaranja, iskreno ne znam. Čini se da je dodavanje samo nekoliko stranica knjizi ili pisanje posebnog članka (kao što ja sada činim) jednostavno kao i ljuštenje krušaka - ali ne. U ovom članku ću ukratko proći kroz alate koje koristim u svom radu i detaljnije o kodu koji je odgovoran za početno stvaranje DB koji sa moje tačke gledišta izgleda čitljiviji i praktičniji.


    Ako naša aplikacija ima više od 5 tabela, onda ne bi bilo loše koristiti neki alat za vizualno dizajniranje arhitekture baze podataka. Pošto mi je ovo hobi, apsolutno koristim besplatni alat pod nazivom Oracle SQL Developer Data Modeler (možete ga preuzeti).

    Ovaj program omogućava vam da vizuelno crtate tabele i gradite odnose sa njima. Mnoge greške u dizajnu baze podataka mogu se izbjeći ovim pristupom dizajnu (ja vam to već govorim kao profesionalni programer baze podataka). To izgleda otprilike ovako:

    Nakon što smo dizajnirali samu arhitekturu, prelazimo na dosadniji dio koji se sastoji u sql kreacije kod za kreiranje tabela. Da bih pomogao u rješavanju ovog problema, već koristim alat pod nazivom SQLiteStudio (koji se može preuzeti ovdje).

    Ovaj alat je analog tako dobro poznatih proizvoda kao što su SQL Naviagator, Toad itd. Ali kao što naziv implicira, dizajniran je za rad sa SQLite-om. Omogućava vam da vizualno kreirate bazu podataka i dobijete DDL kod kreirane tabele. Inače, omogućava vam i kreiranje pogleda (View), koje možete koristiti i u svojoj aplikaciji ako želite. Ne znam koliko je ispravan pristup korišćenja pogleda u Android programima, ali sam ih koristio u jednoj od mojih aplikacija.

    U stvari, više nisam alati treće strane Ne koristim ga, a onda počinje magija sa Android Studijom. Kao što sam gore napisao, ako počnemo da ugrađujemo SQL kod u Java kod, onda ćemo na izlazu dobiti slabo čitljiv, a samim tim i slabo proširiv kod. Stoga vadim sve SQL naredbe eksterne datoteke koji se nalaze u mom imeniku imovine. U Android studiju to izgleda otprilike ovako:


    O direktorijumima db i podataka

    Unutar direktorija imovine napravio sam dva direktorija db_01 I data_01. Brojevi u imenima direktorija odgovaraju broju verzije moje baze podataka s kojom radim. U imeniku db kod mene su pohranjene SQL skripte kreiranja tablica. I u imeniku podaci pohranjuju se podaci potrebni za početno popunjavanje tabela.


    Sada pogledajmo kod u mom DBHelper koje koristim u svojim projektima. Prvo, varijable klase i konstruktor (ovdje nema iznenađenja):

    Privatni statički konačni string TAG = "RoadMap4.DBHelper"; String mDb = "db_"; String mData = "data_"; Kontekst mContext; int mVersion; public DBHelper(kontekst kontekst, ime niza, int verzija) ( super(kontekst, ime, null, verzija); mContext = kontekst; mVersion = verzija; )
    Sada metoda onCreate i tu stvari postaju zanimljive:

    @Override public void onCreate(SQLiteDatabase db) ( ArrayList tabele = getSQLTables(); for (String table: tables)( db.execSQL(table); ) ArrayList > dataSQL = getSQLData(); for(HashMap hm: dataSQL)( for (String table: hm.keySet())( Log.d(TAG, "umetnuti u " + table + " " + hm.get(table)); long rowId = db.insert(table, null, hm.get(table)); ) ) )
    Logično, podijeljen je u dva ciklusa, u prvom ciklusu dobijam listu SQL instrukcija za kreiranje baze podataka i zatim ih izvršavam, u drugom ciklusu već popunjavam prethodno kreirane tabele početnim podacima. Dakle, prvi korak:

    Private ArrayList getSQLTables() (Lista polja tabele = novi ArrayList<>(); ArrayList fajlovi = nova lista polja<>(); AssetManager assetManager = mContext.getAssets(); String dir = mDb + mVersion; pokušajte ( String listFiles = assetManager.list(dir); for (Datoteka niza: listFiles)( files.add(file); ) Collections.sort(files, novi QueryFilesComparator()); BufferedReader bufferedReader; String upit; String linija; za (Datoteka niza: datoteke)( Log.d(TAG, "datoteka db je " + datoteka); bufferedReader = novi BufferedReader(novi InputStreamReader(assetManager.open(dir + "/" + datoteka))); upit = ""; while ((line = bufferedReader.readLine()) != null)( query = query + line; ) bufferedReader.close(); tables.add(query); ) ) catch (IOException e) (e.printStackTrace(); ) povratne tablice; )
    Ovdje je sve prilično jednostavno, samo čitamo sadržaj datoteka i spajamo sadržaj svake datoteke u element niza. Imajte na umu da sortiram listu fajlova, pošto tabele mogu imati strane ključeve, što znači da tabele moraju biti kreirane određenim redosledom. Koristim numeraciju u nazivu datoteke i pomoću nje sortiram.

    Privatna klasa QueryFilesComparator implementira Comparator ( @Override public int compare(String file1, String file2) (Integer f2 = Integer.parseInt(file1.substring(0, 2)); Integer f1 = Integer.parseInt(file2.substring(0, 2)); return f2 .compareTo(f1); ) )
    Uz popunjavanje tabela sve je zabavnije. Moje tabele su ispunjene ne samo tvrdo kodiranim vrijednostima, već i vrijednostima iz resursa i UUID ključevima (nadam se da ću jednog dana doći do mrežne verzije mog programa kako bi moji korisnici mogli raditi sa zajedničkim podacima). Sama struktura fajlova sa početnim podacima izgleda ovako:


    Unatoč činjenici da moji fajlovi imaju sql ekstenziju, unutra nema sql koda, već ova stvar:

    Prioriteti
    pri_id:UUID:UUID

    pri_name:string:normalno
    pri_color:color:colorGreen
    pri_default:int:1
    prioriteti
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:drži
    pri_color:color:colorBlue
    pri_default:int:0
    prioriteti
    pri_id:UUID:UUID
    pri_object:string:object_task
    pri_name:string:važno
    pri_color:color:colorRed
    pri_default:int:0
    prioriteti
    pri_id:UUID:UUID

    pri_name:string:normalno
    pri_color:color:colorGreen
    pri_default:int:1
    prioriteti
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:drži
    pri_color:color:colorBlue
    pri_default:int:0
    prioriteti
    pri_id:UUID:UUID
    pri_object:string:object_project
    pri_name:string:važno
    pri_color:color:colorRed
    pri_default:int:0

    Struktura fajla je sledeća: ja izvršim poziv funkcije podijeliti(":") u odnosu na liniju i ako dobijem da je njena veličina 1, onda je ovo naziv tabele u koju treba upisati podatke. Inače, to su sami podaci. Prvo polje je naziv polja u tabeli. Drugo polje je tip po kome ja određujem šta treba da upišem upravo u ovo polje. Ako je UUID, to znači da moram generirati jedinstvena vrijednost UUID. Ako mi string znači, potrebno je izvući vrijednost niza iz resursa. Ako boja, onda opet, morate izdvojiti kod boje iz resursa. Ako je int ili tekst, onda jednostavno konvertujem datu vrijednost u int ili String bez ikakvih pokreta. Sam kod izgleda ovako:

    Private ArrayList > getSQLData() (Lista polja > podaci = novi ArrayList<>(); ArrayList fajlovi = nova lista polja<>(); AssetManager assetManager = mContext.getAssets(); String dir = mData + mVersion; pokušajte ( String listFiles = assetManager.list(dir); for (Datoteka niza: listFiles)( files.add(file); ) Collections.sort(files, novi QueryFilesComparator()); BufferedReader bufferedReader; String linija; int separator = 0 ; ContentValues ​​cv = null; String polja; String nameTable = null; String packageName = mContext.getPackageName(); boolean flag = false; HashMap hm; for (Datoteka niza: datoteke)( Log.d(TAG, "datoteka db je " + datoteka); bufferedReader = novi BufferedReader(novi InputStreamReader(assetManager.open(dir + "/" + datoteka))); dok ((red = bufferedReader.readLine()) != null)( polja = line.trim().split(":"); if (fields.length == 1)( if (flag == true)( hm = new HashMap<>(); hm put(imeTabela, cv); data.add(hm); ) // ime tablice nameTable = line.trim(); cv = new ContentValues(); nastaviti; ) else ( if (fields.equals("UUID"))( cv.put(fields, UUID.randomUUID().toString()); ) else if (fields.equals("color") || fields.equals( "string"))( int resId = mContext.getResources().getIdentifier(polja, polja, ime paketa); Log.d(TAG, polja + " " + resId); switch (polja)( case "color": cv. put(polja, resId); break; case "string": cv.put(fields, mContext.getString(resId)); break; default: break; ) ) else if (fields.equals("text"))( cv .put(polja, polja); ) else if (fields.equals("int"))( cv.put(fields, Integer.parseInt(fields)); ) ) flag = true; ) bufferedReader.close(); ) ) catch (IOException e) ( e.printStackTrace(); ) vratiti podatke; )

    30.04.2009 Alexey Kovyazin

    Relacijske baze podataka su se infiltrirali u gotovo sve. informacioni sistemi, i, čini se, postali su najutvrđenije područje IT-a, gdje se malo toga može izmisliti, ali stvarno stanje stvari je daleko od idealnog.

    Relacijske baze podataka se danas koriste u gotovo svim aplikacijama, od ugrađenih u mobilne i specijalne uređaje, web-baziranih aplikacija do sistema upravljanja preduzećima. Prodor baza podataka u sve vrste aplikacija se ubrzava, a programeri dobijaju sve više i više korisnih alata i pristupa. Možda ćete steći utisak da su programeri aplikacija baze podataka „najbogatiji“ sloj programera koji imaju alate za sve, ali to je daleko od slučaja. Embarcadero Technologies je 2008. godine kupio Borlandov posao s CodeGear razvojnim alatima, kombinovao je profesionalne alate za razvoj i dizajn aplikacija, razvojne alate i alate za upravljanje bazom podataka kako bi se eliminisali problemi aplikacija i baze podataka.

    Haotičan dizajn baze podataka

    U savremenoj industriji razvoja softvera uvriježeno je uvjerenje da je nemoguće odrediti zahtjeve za proizvod prije početka projekta, te se stoga razvoj mora prilagođavati njihovoj stalnoj promjeni. Kao rezultat toga, pojavili su se procesi bazirani na iteracijama, uzimajući u obzir promjenjive zahtjeve, a refaktoriranje izvornog koda postalo je sastavni dio razvoja softvera. A šta se dešava u procesu iterativnog razvoja sa bazama podataka? Promjena zahtjeva prisiljava vas da prilagodite šemu baze podataka, a najčešće se to dešava na neproziran način, bez analize velike slike i zavisnosti. Tabele, polja, strani ključevi i ograničenja se kreiraju i mijenjaju nasumično, niko ne prati referentni integritet, i niko ne može sa sigurnošću reći kako se baza podataka u iteraciji N razlikuje od svog stanja u iteraciji N-1.

    Zapravo, razvoj baza podataka danas se odvija metodom „zakrpe“, kao u danima dominacije „vodopada“ procesa - na početku projekta se „crta“ određeni model baze podataka, na osnovu djelomičnih zahtjeva poznatih u ovom trenutku, zatim se generiše fizička baza podataka, a zatim se model zaboravlja unošenjem izmjena direktno u bazu podataka. Nedostaci ovog pristupa su očigledni: razmjena znanja i razumijevanje velike slike je teško, a promjene su neprozirne, mogu generirati kontradikcije u logici i shemi baze podataka, koje će ostati neotkrivene do trenutka uvođenja. softverski sistem u pogon, što dovodi do veoma velikih gubitaka. Moderni programeri aplikacija baze podataka trebaju alate prilagođene iterativnom razvoju baze podataka.

    Prvi i najvažniji uslov za takvu kondiciju je prisustvo pune mogućnosti obrnuti inženjering(obrnuti inženjering, kreiranje modela baze podataka na osnovu analize njene fizičke šeme) i direktni inženjering(forward engineering; kreiranje i promjena fizičke šeme baze podataka na osnovu modela). U praksi to znači da uz pomoć dizajnerskog alata možete analizirati shemu postojeće baze podataka, kreirati model baze podataka iz nje, promijeniti model i odmah primijeniti promjene koje bi zaista trebale ispravno i dosljedno mijenjati shemu baze podataka, a ne pokvariti ili zbuniti ga.

    Iterativni pristup nas također tjera da kreiramo pod-modele povezane s određenom iteracijom. Odvajanje entiteta i njihovih atributa u podmodel pomaže da se razdvoje područja odgovornosti različiti programeri, i između različitih iteracija, dok jamči cjelokupni integritet modela. Naravno, potrebna vam je i mogućnost poređenja dva modela, i to ne u formi SQL skripti, već na nivou entiteta i atributa, kako biste vidjeli i u potpunosti razumjeli promjene napravljene tokom iteracije i njihov utjecaj na cijeli model.

    Programeri aplikacija rijetko rade sami, pa su im potrebni alati za suradnju, ali ako je to u redu sa strane razvoja aplikacija, tada suradnja na bazi podataka obično uopće nije podržana na nivou alata. Saradnja nužno podrazumijeva sistem kontrole verzija: sve verzije modela i fizička šema baze podataka moraju biti pohranjene u jednom spremištu, pružajući mogućnost vraćanja i poređenja shema od samog početka procesa razvoja.

    Razvoj baze podataka je jednako važan kao i razvoj aplikacija, tako da je strateški pravac da se procesu razvoja baze podataka obezbijedi kontrola verzija i alati za upravljanje zahtjevima, kao i eksplicitno povezivanje faza modeliranja i modifikacije baza podataka sa iteracijama i promjenjivim zahtjevima. softverski projekat. Da bi riješio ove probleme i podržao moderni iterativni proces razvoja baze podataka, Embarcadero nudi ER / Studio - alat za dizajn, analizu, inžinjering unazad i naprijed koji vam omogućava da kontrolirate verzije modela zasnovane na vašem vlastitom spremištu. Alat Menadžer promena može se koristiti kao sredstvo za kontrolu promena metapodataka u fizičkim bazama podataka.

    Fragmentacija koda

    Najpoznatiji problem koji uvelike usporava razvoj aplikacija baze podataka je potreba za korištenjem različitih alata za otklanjanje grešaka koda aplikacije i SQL koda u bazi podataka.

    Razmotrimo jednostavan primjer. Pretpostavimo da se u Delphi razvija aplikacija koja poziva pohranjenu proceduru u DBMS Oracle. Koristeći Delphi alate, programer aplikacije može ići kroz debug mod dok se ne pozove SQL upit, vidjeti parametre proslijeđene pohranjenoj proceduri i rezultat koji će procedura vratiti. Ali šta se dešava unutar procedure kada se izvrši na serveru baze podataka? To se ne može utvrditi iz razvojnog okruženja naše aplikacije - za to morate preuzeti aplikaciju za SQL razvoj, koja ima mogućnost otklanjanja grešaka u pohranjenim procedurama, a također prikazuje planove SQL upita, statistiku o njihovom izvršavanju, omogućava pregled i promijenite šemu baze podataka. Međutim, ne možete proslijediti parametre iz okruženja za razvoj aplikacije u SQL razvojno okruženje i morate ih ručno kopirati prebacivanjem s jednog prozora na drugi. Također je nemoguće vidjeti detaljne rezultate izvršavanja SQL koda, kao što su plan upita, statistika izvršenja i tako dalje, u alatu za izradu aplikacije. Pojava tehnologije za uklanjanje grešaka na više jezika omogućila je rješavanje ovih problema.

    Prvi Embarcadero proizvod koji podržava ispravljanje grešaka na više jezika je RapidSQL Developer (ranije PowerSQL), čiji je vizualni dio baziran na Eclipse tehnologiji i stoga vam omogućava integraciju u bilo koje razvojno okruženje zasnovano na njoj (uključujući, naravno, JBuilder) i izvršiti dinamičko unakrsno ispravljanje grešaka - jezično otklanjanje grešaka. Sada, u trenutku izvršavanja uskladištene procedure na serveru, programer se automatski prebacuje na punopravno okruženje za otklanjanje grešaka u SQL-u unutar istog alata, sposobno da otklanja greške i u regularnim SQL upitima i u pohranjenim procedurama. Programer vidi stvarne ulazne parametre upita i pohranjenih procedura, dobijajući priliku da korak po korak otklanja greške u SQL kodu. Integracija RapidSQL Developer-a u razvojne alate kompatibilne s Eclipseom je prvi korak u integraciji razvoja aplikacija i baza podataka, a sljedeći je u nizu za pružanje sličnih mogućnosti za Delphi, C++ Builder i druge alate za razvoj aplikacija iz Embarcadera.

    Multiplatformske aplikacije baze podataka

    Poseban izazov za programere je razvoj aplikacija baze podataka koje moraju raditi sa više DBMS-a. Na primjer, banke i osiguravajuća društva obično imaju nekoliko velike kancelarije i mnogo malih grana. Većina poslovnih procesa koji se odnose na unos operativnih informacija i dnevni tok rada isti su u sjedištu i u filijalama, ali su razmjeri različiti. Prirodna želja da se uštedi na troškovima licenci za industrijski DBMS za upotrebu u poslovnicama navodi na ideju da bi bilo dobro izabrati drugi DBMS bez promjene aplikacije.

    Iskusni programeri baza podataka dobro su svjesni suštine problema koji se ovdje javljaju: razlika u tipovima podataka i SQL dijalektima, nedostatak mehanizama za migraciju i replikaciju između različitih DBMS-a, složenost provjere migracije čine pisanje i rad aplikacija za različite DBMS-e. noćna mora. Što se tiče alata za razvoj aplikacija, ovaj problem pokušavaju riješiti kreiranjem biblioteka za pristup podacima (dbExpress u Delphi-u i C++ Builder, ADO i ADO.Net iz Microsofta), izgrađenih na zajedničkim arhitektonskim principima i metodama pristupa, kao i kao korištenjem brojnih objektno-relacijskih "omotača" (Object Relation Mapping, ORM) preko relacijske logike i strukture baze podataka, generiranjem izvornog koda za rad s podacima na osnovu analize sheme baze podataka i korištenjem mehanizma "adaptera" za implementaciju protokol određenog DBMS-a. Među najpopularnijim ORM-ovima su Hibernate za Javu i ActiveRecord u RubyOnRails-u, koji pružaju objektno orijentisan interfejs za podatke pohranjene u DBMS-u. Za Delphi postoji sličan projekat tiOPF, za C# - NHibernate.

    Naravno, upotreba takvih univerzalne biblioteke i skupovi komponenti mogu značajno smanjiti broj rutinskih operacija u procesu razvoja multiplatformskih baza podataka. Međutim, to nije dovoljno kada mi pričamo o aplikacijama koje koriste složenije baze podataka koje aktivno koriste logiku ugrađenu u pohranjene procedure i okidače - za njihovu implementaciju, otklanjanje grešaka i testiranje potrebni su zasebni alati, ponekad potpuno različiti za različite DBMS. Za razvoj aplikacija baza podataka na više platformi, Embarcadero nudi RapidSQL alat.

    Svi Embarcadero proizvodi baze podataka su bazirani na više platformi i bazirani su na Thunderbolt šemi baze podataka i motoru za analizu statistike. Svaki podržani DBMS i svaka specifična verzija DBMS-a ima odgovarajuće grane koda u Thunderbolt jezgri, što vam omogućava da mapirate shemu baze podataka na internu reprezentaciju u ovom kernelu što je preciznije moguće i, što je najvažnije, izvršite ispravne konverzije između reprezentacije i stvarne baze podataka. Zahvaljujući Thunderbolt jezgri, RapidSQL vam omogućava da razvijete visokokvalitetan SQL kod za sve podržane platforme (Oracle, MS SQL, Sybase i razne opcije IBM DB2) i ER/Studio mogu izvesti precizan inžinjering unatrag i naprijed shema baze podataka.

    Bilo da razvijate aplikaciju za dvije ili više platformi, ili migrirate postojeću aplikaciju s jedne platforme na drugu, RapidSQL će vam pružiti sve neophodni alati za migraciju šeme, korisnika i dozvola između različitih DBMS-a. Naravno, RapidSQL ne pretvara automatski PL/SQL procedure u T-SQL – za to je i dalje potreban programer, ali alat pruža jedan prozor za razvoj na više platformi, objedinjene uređivače za objekte sheme, korisnike i njihova prava i SQL otklanjanje grešaka na svim podržanim platformama. Prema korisnicima RapidSQL-a, kao rezultat toga, štedi se do 70% vremena provedenog na migraciji između različitih DBMS-a.

    Promjene podataka i sheme

    Migracija sa jednog DBMS-a na drugi je nemoguća bez njegove verifikacije. Ko i kako može garantovati da su podaci koji se prenose iz jednog DBMS-a u drugi zaista identični? Različite klijentske biblioteke, različiti tipovi podataka i različita kodiranja čine proces poređenja podataka netrivijalnim zadatkom.

    U stvarnom svijetu posao se ne završava implementacijom aplikacije i baze podataka – u toku je održavanje, pojavljuju se nove verzije izvršnih datoteka aplikacije i zakrpe za bazu podataka. Kako možete biti sigurni da su sva potrebna ažuriranja primijenjena na bazu podataka i da će cijeli softverski paket raditi ispravno?

    Embarcadero je razvio alat Change Manager za poređenje podataka, šema i konfiguracija baze podataka. Poređenje se odvija unutar jednog ili više DBMS-a, sa automatska provera korespondencija između tipova podataka i formiranje SQL skripti razlika koje se mogu odmah primijeniti da se baze podataka dovedu u identično stanje. Modul za poređenje metapodataka pruža poređenje shema baze podataka između "živih" baza podataka i između baze podataka i SQL skripte i generira skriptu razlika u metapodacima. Ova funkcionalnost se može koristiti ne samo za provjeru baze podataka u odnosu na benčmark, već i za organiziranje redovnog procesa ažuriranja baze podataka, kao i za provjeru neovlaštenih promjena, recimo, u udaljenim ograncima velike organizacije. Slična je situacija i sa konfiguracionim datotekama - Change Manager upoređuje konfiguracione datoteke i omogućava vam da osigurate da konfiguracija implementiranih aplikacija ispunjava zahteve za ovaj softver.

    Performanse aplikacije baze podataka

    Koliko često vidimo aplikacije koje odlično rade na malim količinama testnih podataka, ali postaju neprihvatljivo spore na stvarnim količinama. Pogrešne procene u zahtevima, nedovoljno testiranje u ranim fazama, žurba sa isporukom projekta su poznati uzroci lošeg razvoja aplikacije. Teoretičari razvoja softvera u ovom slučaju predlažu bavljenje samopoboljšanjem i fundamentalnim poboljšanjem kvaliteta programa, ali svi praktičari znaju da je ponekad nemoguće prepisati projekat bilo ekonomski ili, u nekim slučajevima, politički, a zadatak optimizacija performansi mora biti riješena na bilo koji način.

    Glavni uzrok problema s performansama u aplikacijama baze podataka leži u neoptimiziranim SQL upitima i pohranjenim procedurama. Optimizatori modernih baza podataka su prilično moćni, međutim, imaju i određena ograničenja svojih mogućnosti, a da biste postigli dobre performanse, potrebno je pravilno sastaviti SQL upite, kreirati (ili izbrisati) dodatne indekse, denormalizirati bazu podataka u određenim slučajevima, prebaciti dio logike na okidače i pohranjene procedure.

    Tokom faze razvoja, optimizacija upita se može izvesti pomoću RapidSQL-a, koji uključuje modul SQL Profiler koji može analizirati planove i generirati nagovještaje za poboljšanje performansi SQL upita. Ali što ako se problem pojavi već tijekom rada i nije lokaliziran u određenom SQL upitu? Ako performanse padnu u određeno doba dana, ili, još gore, problem nastane na udaljenoj kopiji sistema, dok je na glavnom serveru sve u redu? Za takve slučajeve, DBOptimizer je alat za profilisanje baze podataka za Oracle, Microsoft SQL Server, Sybase i IBM DB2.

    Kada pokrenete način profiliranja, DBOptimizer prikuplja informacije o bazi podataka i okruženju izvođenja, uključujući informacije o korištenju CPU-a i drugim parametrima operativnog sistema, te ih upisuje u sesiju profiliranja. Rezultat je lista zahtjeva koji se izvršavaju u bilo kojem vremenskom intervalu, sortirani prema utrošenim resursima. Za svaki problematičan upit možete vidjeti njegov plan, statistiku izvršenja i druge detalje. Štaviše, DBOptimizer također pokazuje savjete-preporuke za poboljšanje upita u odnosu na određeni DBMS.

    Kutija sa alatima

    Svi navedeni alati, iako vam mogu pomoći u rješavanju problema, koriste se u različitim fazama životnog ciklusa razvoja baze podataka. Prilično je nezgodno i skupo držati desetak aplikacija za sve prilike koje mogu biti potrebne (ili možda neće biti potrebne) u procesu dizajniranja, razvoja, migracije, optimizacije i održavanja baza podataka.

    Objavljen u februaru 2009. godine, Emdacadero All-Access je svestrani komplet alata koji uključuje osnovne alate za sve faze razvoja aplikacija baze podataka, od ER/Studio do DBOptimizer, od Delphija i C++Buildera do DBArtisana. Najbolji način da opišete All-Access je da ga uporedite sa kutijom za alate koju svaki marljivi vlasnik ima kod kuće. Možda se svi alati ne koriste svaki dan, ali podesivi ključ bi uvijek trebao biti pri ruci u slučaju curenja.

    All-Access ne prisiljava programere baze podataka ili arhitekte baze podataka na uloge, već pruža univerzalni skup alata pogodnih za sve uloge u procesu razvoja aplikacije baze podataka, od arhitekte do testera; nudi svim članovima razvojnog tima alate za sve faze razvoja baze podataka, kao i skup visoko specijaliziranih alata za optimizaciju baza podataka (DBOptimizer) i aplikacija (JOptimizer), koji vam omogućavaju "proširivanje" uska mjesta. Paket podržava višestruke DBMS, što omogućava uštedu.

    Tehničke razlike između objektno orijentiranih i relacione baze podataka podaci su doveli do kulturne podjele koja još uvijek odvaja zajednicu za upravljanje podacima od razvojne zajednice. Šta dalje s ovim?



    Delphi je razvojno okruženje koje koristi jezik Delphi programiranje(počevši od verzije 7, jezik u okruženju se zove Delphi, ranije Object Pascal), razvijen od strane Borlanda i prvobitno implementiran u svom Borland Delphi paketu, od kojeg je dobio svoje sadašnje ime 2003. godine. Object Pascal je u suštini naslednik Pascal jezika sa objektno orijentisanim ekstenzijama.

    Delphi je najbolji alat za kreiranje aplikacija za baze podataka. Optimalno, jer podržava tehnologiju vizualnog razvoja, koja može značajno smanjiti vrijeme razvoja uz održavanje dobrog kvaliteta i pouzdanosti softverski proizvod. Delphi u strukturi jezika omogućava vam da izbjegnete skrivene greške.

    Karakteristike Delphi 7 porodice:

    *Okruženje za brzi razvoj aplikacija koje integriše alate za simulaciju za razvoj i implementaciju aplikacija za e-trgovinu i Web usluga.

    * Podrška za programske jezike za Win32 (Delphi i C/C++) i za .NET (Delphi i C#) u jednom razvojnom okruženju, što olakšava održavanje i kreiranje novih Win32 aplikacija i lakše savladavanje .NET tehnologija;

    *Mogućnost i za programere tradicionalnih Windows aplikacija i za Java programere da razviju .NET aplikacije bez napuštanja korištenog kompleta alata, uz zadržavanje vještina i sa sličnim konceptima programiranja;

    * Novi sistem kodnih šablona i druge inovacije u razvojnom okruženju kvalitativno unapređuju rad sa izvornim kodom i povećavaju produktivnost razvoja;

    Microsoft SQL Server 2000 je kompletna ponuda za analizu baze podataka i podataka brzo kreiranje skalabilna rješenja za e-trgovinu, poslovne aplikacije i skladišta podataka.

    To značajno smanjuje vrijeme izlaska na tržište za ova rješenja, a istovremeno pruža skalabilnost za ispunjavanje najviših zahtjeva.

    Delphi paket je nastavak Borlandove linije Pascal kompajlera. Pascal kao jezik je vrlo jednostavan, a snažno kucanje podataka pomaže rano otkrivanju grešaka i omogućava vam da brzo kreirate pouzdane i efikasne programe.

    Razvoj aplikacija baze podataka je jedna od najtraženijih karakteristika Delphi programskog okruženja. Snaga i fleksibilnost Delphi-ja pri radu sa bazama podataka zasnovana je na kernelu niskog nivoa - Borland Database Engine (BDE). Njegov interfejs za programiranje aplikacija naziva se Integrated Database Application Programming Interface (IDAPI). BDE vam omogućava da pristupite podacima koristeći i tradicionalni pristup orijentisan na zapise (navigacioni) i pristup orijentisan na skup koji se koristi u SQL serverima baza podataka.

    Biblioteka objekata sadrži skup vizuelnih komponenti koje u velikoj meri pojednostavljuju razvoj aplikacija za DBMS sa klijent-server arhitekturom. Objekti se inkapsuliraju u sebe Niži nivo- Borland Database Engine.

    Postoje posebni skupovi komponenti odgovornih za pristup podacima i komponenti koje prikazuju podatke. Komponente za pristup podacima omogućavaju vam da se povežete sa bazom podataka, napravite izbor, kopirate podatke itd.

    Komponente vizualizacije podataka vam omogućavaju da prikažete podatke u obliku tabela, polja, lista. Prikazani podaci mogu biti tekstualni, grafički ili slobodni.

    Tabele su pohranjene u bazi podataka. Neki DBMS-ovi pohranjuju bazu podataka u nekoliko zasebnih datoteka koje su tabele (uglavnom svi lokalni DBMS-ovi), dok se drugi sastoje od jedne datoteke koja sadrži sve tablice i indekse (InterBase).

    Objekti baze podataka u Delphiju bazirani su na SQL-u i uključuju punu snagu Borland Database Engine-a. Delphi takođe uključuje Borland SQL Link, tako da je pristup Oracle, Sybase, Informix i InterBase DBMS veoma efikasan. Osim toga, Delphi uključuje lokalni Interbase server tako da možete razviti vanmrežne aplikacije koje se mogu proširiti na bilo koji vanjski SQL server.

    Skalabilnost u praksi - ista aplikacija se može koristiti i za lokalne i za ozbiljnije klijent-server opcije.

    Iako Delphi nema sopstveni format tabele baze podataka, on ipak pruža moćnu podršku za veliki broj različitih DBMS-ova - kako lokalnih (npr. dBase ili Paradox) tako i industrijskih (npr. Sybase ili InterBase).

    Top Related Articles