Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • vijesti
  • Razvoj aplikacija i baza podataka: kontaktne tačke. O db i imenicima podataka

Razvoj aplikacija i baza podataka: kontaktne tačke. O db i imenicima podataka

30.04.2009 Alexey Kovyazin

Relacijske baze podataka su prodrle u gotovo sve informacione sisteme i, čini se, postale su najuspostavljenija oblast IT-a, gde se malo šta može izmisliti, ali stvarnost je daleko od idealne.

Relacijske baze podataka se danas koriste u gotovo svim aplikacijama, od ugrađenih u mobilne i specijalne uređaje, web-baziranih aplikacija, pa sve do sistema upravljanja preduzećima. Prodor baza podataka u sve vrste aplikacija se povećava, a programeri dobijaju sve više i više korisnih alata i pristupa. Mogao bi se steći utisak da su programeri aplikacija baza podataka "najbolji" sloj programera koji imaju alate za sve prilike, ali to je daleko od slučaja. Embarcadero Technologies je 2008. godine kupio Borlandov odeljenje za razvojne alate CodeGear kako bi kombinovao profesionalne alate za razvoj aplikacija i dizajn, razvojne alate i alate za upravljanje bazom podataka kako bi se pozabavili problemima aplikacija i baza podataka.

Haotičan dizajn baze podataka

U savremenoj industriji razvoja softvera uvriježeno je uvjerenje da je nemoguće definirati zahtjeve proizvoda prije pokretanja projekta, te se stoga razvoj mora prilagođavati njihovoj stalnoj promjeni. Kao rezultat toga, pojavili su se iterativni procesi kako bi se prilagodili promjenjivim zahtjevima, a refaktoriranje izvornog koda postalo je sastavni dio razvoja softvera. Šta se dešava sa bazama podataka tokom iterativnog razvoja? Promjena zahtjeva prisiljava vas da prilagodite šemu baze podataka, a najčešće se to dešava na neproziran način, bez analize cjelokupne slike i zavisnosti. Tabele, polja, strani ključevi i ograničenja se kreiraju i mijenjaju haotič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 na iteraciji N-1.

Naime, danas se razvoj baza podataka odvija metodom "patch", kao u doba dominacije "vodopada" procesa - na početku projekta "crta se" određeni model baze podataka. na parcijalne zahtjeve koji su u ovom trenutku poznati, onda se generiše fizička baza podataka, a zatim se zaboravlja na model unošenjem izmjena direktno u bazu podataka. Nedostaci ovog pristupa su očigledni: razmjena znanja i razumijevanje velike slike su teški, a promjene su neprozirne, mogu generirati kontradikcije u logici i shemi baze podataka, koje će ostati neotkrivene do trenutka kada se softverski sistem postavi. u pogon, što dovodi do veoma velikih gubitaka. Moderni programeri aplikacija baze podataka trebaju alate koji su usmjereni ka iterativnom razvoju baze podataka.

Prvi i najvažniji uvjet za takvu prilagodljivost je postojanje punopravnih mogućnosti obrnuti inženjering(obrnuti inženjering, kreiranje modela baze podataka na osnovu analize njene fizičke šeme) i direktni inženjering(prednji inženjering; kreiranje i modifikacija šeme fizičke baze podataka na osnovu modela). U praksi, to znači da pomoću alata za dizajn možete analizirati shemu postojeće baze podataka, kreirati model baze podataka na osnovu nje, promijeniti model i odmah primijeniti promjene koje bi zaista trebale ispravno i dosljedno mijenjati shemu baze podataka, a ne pokvariti ili ga zbuniti.

Iterativni pristup nas također tjera da kreiramo podmodele povezane s određenom iteracijom. Isticanje bilo kojeg entiteta i njihovih atributa u podmodel pomaže da se odvoje područja odgovornosti između različitih programera i između različitih iteracija, istovremeno osiguravajući cjelokupni integritet modela. Naravno, potrebna vam je i mogućnost poređenja dva modela, i to ne u obliku 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, saradnja baze podataka obično nije podržana na razini alata ni na koji način. Saradnja nužno podrazumijeva sistem kontrole verzija: sve verzije modela i fizičke šeme 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 nije ništa manje važan od razvoja aplikacija, stoga je strateški pravac razvoja da se procesu razvoja baze podataka obezbijedi kontrola verzija i upravljanje zahtjevima, kao i eksplicitno povezivanje faza modeliranja i modifikacije baza podataka sa iteracijama i promjenom zahtjeva softverski projekat. Kako bi riješio gore navedene 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 na osnovu vlastitog spremišta. Alat Menadžer promjena može se koristiti za kontrolu promjena metapodataka u fizičkim bazama podataka.

Dezagregirani kod

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

Pogledajmo jednostavan primjer. Pretpostavimo da razvijate aplikaciju u Delphiju koja poziva pohranjenu proceduru u Oracle DBMS-u. Koristeći Delphi alate, programer aplikacije može korak po korak u debug modu do trenutka pozivanja SQL upita, 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? Nemoguće je to odrediti 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 za SQL upite, statistiku njihovog izvršavanja, omogućava vam za pregled i promjenu šeme 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, prelazeći iz jednog prozora u drugi. Također nije moguće vidjeti detaljne rezultate izvršavanja SQL koda u Application Builderu, kao što su plan upita, statistika izvršenja i tako dalje. Pojava tehnologije za uklanjanje grešaka na više jezika riješila je ove probleme.

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 dinamički višejezički otklanjanje grešaka. Sada, kada se uskladištena procedura izvrši na serveru, programer se automatski prebacuje na potpuno okruženje za otklanjanje grešaka u SQL-u u okviru istog alata, sposobnog za otklanjanje grešaka i običnih SQL upita i pohranjenih procedura. Programer može vidjeti stvarne ulazne parametre upita i pohranjenih procedura, dobivajući priliku korak po korak otklanjanja grešaka u SQL kodu. Integracija RapidSQL Developer-a u razvojne alate kompatibilne sa Eclipse prvi je korak u integraciji razvoja aplikacija i baza podataka, a sljedeći korak je pružanje sličnih mogućnosti za Delphi, C++ Builder i druge alate za razvoj aplikacija iz Embarcadera.

Višeplatformske aplikacije za baze podataka

Poseban izazov za programere je razvoj aplikacija baze podataka koje treba da rade sa više DBMS-ova. Na primjer, banke i osiguravajuća društva obično imaju nekoliko velikih ureda i mnogo malih filijala. Većina poslovnih procesa koji se odnose na unos operativnih informacija i svakodnevni radni tok isti su u sjedištu i u filijalama, ali su razmjere različite. Prirodna želja da se uštedi na cijeni industrijskih DBMS licenci za korištenje u granama navodi na ideju da bi bilo dobro izabrati drugi DBMS bez promjene aplikacije.

Iskusni programeri baza podataka dobro razumiju suštinu problema koji ovdje nastaju: razlika u tipovima podataka i SQL dijalektima, odsustvo mehanizama migracije i replikacije između različitih DBMS-ova, složenost verifikacije migracije čine pisanje i rad aplikacija za različite DBMS-ove noćnom morom. Sa strane alata za razvoj aplikacija, ovaj problem pokušavaju da reše kreiranjem biblioteka za pristup podacima (dbExpress u Delphi-u i C++ Builder, ADO i ADO.Net iz Microsofta), izgrađenih na jedinstvenim arhitektonskim principima i metodama pristupa, kao i kao korištenjem brojnih objektno-relacijskih "Omotača" (Object Relation Mapping, ORM) nad relacijskom logikom i strukturom baze podataka, generiranjem izvornog koda za rad s podacima na osnovu analize sheme baze podataka i korištenjem mehanizma "adaptera " za implementaciju protokola 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 ovakvih univerzalnih biblioteka i skupova komponenti može značajno smanjiti broj rutinskih operacija u procesu razvoja baze podataka na više platformi. Međutim, to nije dovoljno kada su u pitanju aplikacije koje koriste složenije baze podataka, u kojima se aktivno koristi logika svojstvena pohranjenim procedurama i okidačima - za njenu implementaciju, otklanjanje grešaka i testiranje potrebni su zasebni alati, ponekad potpuno različiti za različite DBMS-ove. Za razvoj aplikacija za baze podataka na više platformi, Embarcadero nudi RapidSQL alat.

Svi Embarcadero proizvodi za baze podataka podržavaju više platformi i zasnovani su na Thunderboltovoj analizi šeme i mašini za statistiku baze podataka. Svaki podržani DBMS i svaka specifična verzija DBMS-a imaju odgovarajuće grane koda u Thunderbolt jezgri, što vam omogućava da mapirate shemu baze podataka na internu reprezentaciju u ovoj jezgri što je preciznije moguće i, što je najvažnije, da izvršite ispravne konverzije između reprezentacija i realne 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 varijante IBM DB2), a ER / Studio može izvršiti precizan inžinjering baze podataka unazad i naprijed sheme.

Ako razvijate aplikaciju za dvije ili više platformi ili migrirate postojeću aplikaciju s jedne platforme na drugu, RapidSQL će vam pružiti sve potrebne alate 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 - međutim, alat pruža jedan prozor za razvoj na više platformi, objedinjene uređivače za objekte šeme, korisnike i njihova prava i SQL otklanjanje grešaka na svim podržanim platformama... Prema korisnicima RapidSQL-a, ovo štedi do 70% vremena provedenog na migraciji između različitih DBMS-ova.

Promjene podataka i dijagrama

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 - postoji održavanje, pojavljuju se nove verzije izvršnih datoteka aplikacije i zakrpe za bazu podataka. Kako možete dobiti garancije 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 u okviru jednog ili više DBMS-a, uz automatsku provjeru korespondencije između tipova podataka i formiranje SQL-skriptova razlika, koji se odmah mogu primijeniti za dovođenje baza podataka u identično stanje. Modul za upoređivanje metapodataka pruža poređenje shema baze podataka između živih baza podataka i između baze podataka i SQL skripte i generira skriptu za razlike u metapodacima. Ova funkcionalnost se može koristiti ne samo za provjeru usklađenosti baza podataka sa benčmarkom, već i za organiziranje redovnog procesa ažuriranja baze podataka, kao i za provjeru neovlaštenih promjena, recimo, u udaljenim ograncima velike organizacije. Situacija je slična i sa konfiguracionim fajlovima - 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 dobro rade na malim probnim količinama podataka, ali postaju neprihvatljivo spore na stvarnim količinama. Pogrešne procene u zahtevima, neadekvatno testiranje u ranim fazama, žurba sa realizacijom projekta su poznati razlozi za loš razvoj aplikacija. U ovom slučaju, teoretičari razvoja softvera predlažu da se uključe u samousavršavanje i temeljno poboljšaju kvalitetu programa, međutim, svi praktičari znaju da je prepisivanje projekta ponekad nemoguće, bilo ekonomski ili, u nekim slučajevima, politički, a zadatak optimizacije performanse moraju biti riješene na bilo koji način.

Glavni uzrok problema performansi u aplikacijama baze podataka leži u neoptimiziranim SQL upitima i pohranjenim procedurama. Moderni optimizatori baze podataka su dovoljno 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 ispustiti) dodatne indekse, u određenim slučajevima denormalizirati bazu podataka, prenijeti dio logike okidača i pohranjenih procedura.

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

Kada se pokrene režim profilisanja, DBOptimizer prikuplja informacije o bazi podataka i vremenu izvođenja, uključujući informacije o opterećenju CPU-a i drugim parametrima operativnog sistema, upisujući ih u sesiju profilisanja. Rezultat je lista upita izvršenih u bilo kojem vremenskom intervalu, sortiranih prema utrošenim resursima. Za svaki problematičan zahtjev možete vidjeti njegov plan, statistiku izvršenja i druge detalje. Štaviše, DBOptimizer također pokazuje savjete i preporuke za poboljšanje upita u odnosu na određeni DBMS.

Kutija sa alatima

Svi navedeni alati, dok rješavaju probleme, 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 ili ne moraju biti potrebne tokom dizajna, razvoja, migracije, optimizacije i rada baza podataka.

Objavljen u februaru 2009. godine, svestrani komplet alata Emdacadero All-Access uključuje osnovne alate za sve faze razvoja aplikacija baze podataka, od ER/Studija do DBOptimizer-a, od Delphija i C++ Buildera do DBArtisana. Najbolji način da se opiše All-Access je poređenje sa kutijom alata koju svaki revni 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 nameće druge uloge programerima ili arhitektima baza podataka, ali pruža univerzalni alat prikladan 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 specijalizovanih alata za optimizaciju baza podataka (DBOptimizer) i aplikacija (JOptimizer) za „proširivanje“ uskih grla. Paket podržava višestruke DBMS, što omogućava uštedu.

Tehničke razlike između objektno orijentisanih i tehnologija relacionih baza podataka dovele su do kulturnih razlika koje još uvek odvajaju zajednicu za upravljanje podacima od razvojne zajednice. Šta dalje s ovim?



Delphi je razvojno okruženje koje koristi programski jezik Delphi (počevši od verzije 7, jezik u okruženju se zove Delphi, ranije - Object Pascal), razvijen od strane Borlanda i originalno implementiran u svom Borland Delphi paketu, iz kojeg je dobio svoj trenutni ime 2003. godine... Object Pascal je, u stvari, naslednik Pascal jezika sa objektno orijentisanim ekstenzijama.

Delphi je vrhunski alat za izgradnju aplikacija baze podataka. Optimalno, jer podržava tehnologiju vizualnog razvoja, koja može značajno smanjiti vrijeme razvoja uz održavanje dobrog kvaliteta i pouzdanosti softverskog proizvoda. Delphi u strukturi jezika omogućava izbjegavanje skrivenih grešaka.

Karakteristike Delphi 7 porodice:

* Okruženje za brzi razvoj aplikacija koje integriše alate za modeliranje za razvoj i implementaciju aplikacija za e-trgovinu i web servisa.

* 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 tehnologije;

* Mogućnost kako za programere tradicionalnih Windows aplikacija tako i za programere koji koriste Javu da razviju .NET aplikacije bez napuštanja korištenih 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 kodovima i povećavaju produktivnost razvoja;

Microsoft SQL Server 2000 je kompletna baza podataka i ponuda za analizu podataka za brzu izgradnju skalabilnih rješenja za e-trgovinu, poslovnih aplikacija i skladišta podataka.

Može značajno smanjiti vrijeme izlaska na tržište za ova rješenja, a istovremeno pruža skalabilnost za ispunjavanje najzahtjevnijih zahtjeva.

Delphi paket je nastavak Borlandove linije Pascal kompajlera. Kao jezik, Pascal je veoma jednostavan, a jaka provera tipa podataka olakšava rano otkrivanje 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 Delphijeve baze podataka zasnovana je na jezgri niskog nivoa, Borland Database Engine (BDE). Njegov interfejs sa aplikacijama naziva se Integrated Database Application Programming Interface (IDAPI). BDE dozvoljava pristup podacima koristeći i tradicionalni pristup orijentisan na zapise (navigaciju) 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 inkapsuliraju donji sloj, Borland Database Engine.

Postoje posebni skupovi komponenti odgovornih za pristup podacima i komponenti koje prikazuju podatke. Komponente za pristup podacima omogućavaju povezivanje sa bazom podataka, odabir, kopiranje podataka itd.

Komponente vizualizacije podataka vam omogućavaju da prikažete podatke u obliku tabela, polja, lista. Prikazani podaci mogu biti u tekstualnom, grafičkom ili bilo kojem formatu.

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

Objekti baze podataka u Delphiju su bazirani 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 proširive aplikacije 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 svoj vlastiti format tabele baze podataka, on ipak pruža moćnu podršku za veliki broj različitih DBMS-ova - kako lokalnih (na primjer, dBase ili Paradox) tako i industrijskih (na primjer, Sybase ili InterBase).

PODRŠKA BAZAMA PODATAKA

11.1. Tehnologije pristupa podacima

Visual C++ pruža tehnologije pristupa podacima koje omogućavaju kreiranje aplikacija baze podataka. „Broj interfejsa za pristup podacima dostupnim Windows aplikacijama može se činiti ogromnim. Koju od tehnologija sa misterioznim imenima - DAO, ODBC, RDO, UDA, OLE DB ili ADO - odabrati za izgradnju određene aplikacije ”[l.10, str. 242]. Većina pristupnih tehnologija zasnovana je na dvije ključne tehnologije: ODBC (Open Database Connectivity) i DAO (Objekti pristupa podacima).

Uporedni parametri ODBC i DAO tehnologija mogu se predstaviti na sljedeći način:

Parametar

Arhitektura

Set DLL modula, drajvera

OLE skup objekata

Izvori podataka

Fajlovi baze podataka bilo kojeg formata

Kao i SQL Server i Oracle

Fajlovi baze podataka .mdb formata,

Pristup, FoxPro, Paradox

Veza sa bazom podataka

Objekt klase CDatabase

Objekt klase CDaoDatabase

Preuzimanje podataka

Objekt klase Crecordset

Objekt klase CDaoRecordset

Prikaži podatke

Objekt klase CrecordView

Objekt klase CDaoRecordView

Skup funkcija

Manji skup funkcija od

Širok spektar funkcija,

nema analoga u ODBC-u

ODBC i DAO imaju mnogo zajedničkog, kao što je korištenje MFC klasa sa sličnom funkcionalnošću za izvođenje istih operacija povezivanja baze podataka, dohvaćanje skupa zapisa baze podataka i njihovo pregledavanje. Ali DAO klase sadrže širi skup funkcija, kao i funkcije koje nemaju premca u ODBC-u.

Postoje i značajne razlike. Ovo se odnosi na arhitekturu tehnologija u implementaciji sistemskih biblioteka. ODBC klase su implementirane kao kolekcija DLL-ova koji se nazivaju drajveri (DLL-ovi, Dinamic-Link Library). A DAO klase su implementirane kao kolekcija OLE objekata, što je modernije.

Druga značajna razlika između tehnologija leži u njihovoj upotrebi za izvore podataka. Trenutno je razvijen prilično veliki broj ODBC drajvera za različite DBMS. Stoga se ODBC može koristiti za datoteke baze podataka različitih formata, dok se DAO može koristiti samo, uglavnom, za datoteke baze podataka u .mdb formatu. Istovremeno, aplikacija zasnovana na ODBC-u može istovremeno raditi sa različitim DBMS-om bez rekompilacije zbog dinamičkog učitavanja drajvera.

11.2. Kreiranje aplikacije baze podataka

Kreiranje aplikacije za rad sa bazom podataka zasnovanom na ODBC ili DAO tehnologijama zahtijeva sljedeće korake:

Uspostavljanje pristupa bazi podataka. Faza je registracija navedene baze podataka kao izvora podataka.

Kreiranje stubića aplikacije. Ovaj korak se izvodi automatski pomoću AppWizard-a tokom 6 koraka konfigurisanja aplikacije uz izbor ODBC ili DAO tehnologije pristupa izvoru podataka.

Implementacija operacija baze podataka. Faza se izvodi korištenjem MFC klasa odgovarajuće tehnologije pristupa podacima.

Svrha rada je kreiranje aplikacije koja obavlja operacije sa bazom podataka: pregledavanje, dodavanje, brisanje.

Koristimo datoteku db.mdb, koja je baza podataka kreirana u Access DBMS-u. Fajl sadrži informacije o studentima: Ime, Ocjenu (predmet). Datoteka se može preuzeti na ftp://ftp.sybex.com/2120/vcpp.exe [l.13, str. 415]. Možete kreirati vlastitu datoteku u bilo kojem programu baze podataka.

Neka ekranski obrazac koji prikazuje sadržaj baze podataka izgleda ovako:

Bez naslova - Lab11

File Edit Record View Help

[|<] [<] [>] [>|]

Uspostavljanje pristupa bazi podataka

Da biste uspostavili pristup bazi podataka kao izvoru podataka, izvršite sljedeće korake:

Kreirajte fasciklu Dbase i kopirajte datoteku db.mdb u nju. Ako ste kreirali vlastitu datoteku s podacima, kopirajte je.

Kliknite na Start, Settings, Control Panel redom. U prozoru Control Panel, dvaput kliknite na 32-bitni ODBC. Pojavljuje se prozor Administrator izvora podataka.

Kliknite na dugme Dodaj. Otvoriće se prozor Kreiraj novi izvor podataka sa listom drajvera. Odaberite Microsoft Access Driver (.mdb) i kliknite na dugme Završi. Pojavljuje se prozor za podešavanje ODBC Microsoft Access 7.0.

Unesite učenike u Ime izvora podataka i Naziv_Razred u polju Opis. Ako ste kreirali vlastitu datoteku podataka, unesite odgovarajuće vrijednosti.

Kliknite na dugme Odaberi. Otvara se prozor za odabir baze podataka. Odaberite datoteku db.mdb ili svoju vlastitu datoteku.

Kliknite na dugme OK. Pojavljuje se prozor za podešavanje ODBC Microsoft Access 7.0. Kliknite OK, a zatim OK u prozoru Administrator izvora podataka ODBC.

Dakle, pristup datoteci baze podataka db.mdb (ili njenoj vlastitoj datoteci) se uspostavlja pomoću Microsoft Access Driver ODBC drajvera (.mdb).

Kreiranje stubića aplikacije

Da kreirate aplikaciju, slijedite ove korake:

Odaberite naredbu File-> New i karticu Projekti. Pojavljuje se prozor Novi projekat sa listom tipova aplikacija.

Izaberite sa liste MFC Appwizard (exe). U polje Naziv projekta unesite naziv projekta Lab11. Polje Lokacija specificira fasciklu za skladištenje projekta (podrazumevano, isto kao i naziv projekta). Kliknite na OK.

Završite 6 faza prilagođavanja kreirane aplikacije. U 1. koraku odaberite SDI (Single Document Interface) - jedan otvoren prozor i kliknite na Next.

2. faza - rad sa bazama podataka. Polje za potvrdu Samo datoteke zaglavlja pretpostavlja samo pristup bazama podataka, prikaz baze podataka bez podrške za datoteke - pregled baze podataka bez podrške za operacije datoteka (zapisi se mogu ažurirati), prikaz baze podataka sa podrškom za datoteke - pregled baze podataka i podrška za datoteke (rad sa mnogim dokumentima). U našem primjeru postavite prikaz baze podataka sa radio dugmetom za podršku datotekama. Kliknite na dugme Izvor podataka da povežete aplikaciju sa izvorom podataka.

Kreiranje aplikacija za rad sa bazama podataka.

Baze podataka se koriste kada trebate raditi s velikim količinama podataka.

Relaciona baza podataka je skup tabela, procedura i drugih objekata koji podržavaju njen rad. Sto ima ime- identifikator pomoću kojeg se može pozivati ​​na njega. Uzorak tabele podataka o zaposlenima Pers:

Broj

Odjel

Prezime

Ime

Prezime

Godina rođenja

Kat

Karakteristično

Slika

Num

Dep

Fam

Nam

Par

Godina_b

Sex

Karakter

Fotografija

Računovodstva

Ivanov

Ivane

Ivanovich

1950

Radionica 1

Petrov

Peter

Petrovich

1960

Radionica 2

Sidorov

Sidor

Sidorovich

1955

Radionica 1

Ivanova

Irina

Ivanovna

1961

Kolone tabele odgovaraju karakteristikama objekata - polja. Svako polje karakterizira naziv i vrsta pohranjenih podataka. Naziv polja Je identifikator koji se koristi u raznim programima za manipulaciju podacima. Kao i svaki identifikator, ime polja može se sastojati samo od latiničnih slova, samo jedne riječi itd. (red 2 u tabeli).

Vrsta polja karakterizira tip podataka pohranjenih u polju. To mogu biti nizovi, brojevi, logičke vrijednosti, veliki tekstovi (na primjer, karakteristike zaposlenika), slike (fotografije zaposlenika) itd.

Svaki red tabele odgovara jednom od objekata. To se zove snimanje i sadrži vrijednosti svih polja koja karakteriziraju dati objekt.

Prilikom konstruiranja tablica baze podataka, važno je osigurati da su informacije konzistentne. To se obično radi uvođenjem ključna polja- osiguranje jedinstvenosti svakog zapisa. Jedno ili više polja mogu biti ključna. U datom primjeru bilo bi moguće napraviti ključ kao skup polja Fam, Nam, Par... Ali u ovom slučaju ne bi bilo moguće unijeti u tabelu podatke o punim imenjacima koji imaju isto prezime, ime i patronim. Dakle, prvo polje se unosi u tabelu Num- broj koji se može učiniti ključnim da bi se osigurala jedinstvenost svakog zapisa.

Kada radite sa tabelom, čini se da korisnik ili program klizi kursor preko zapisa. U svakom trenutku vremena ima ih struja zapisnik sa kojim se posao obavlja. Evidencije u tabelama podataka mogu se poredati bez ikakvog redosleda, samo po redosledu njihovog unosa (pojavljivanje novih zaposlenih). Ali kada se tabele prezentuju korisniku, moraju se naručiti. Korisnik će možda htjeti da ih vidi po abecednom redu, ili sortirano po odjelu, ili po godinama, itd.

Za uređivanje podataka koristi se koncept index... Indeks pokazuje kojim redoslijedom preporučljivo je pogledati tabelu. On je, takoreći, posrednik između korisnika i tabela:

Indeksi mogu biti primarni i sekundarno.
Na primjer, primarni indeks mogu biti polja označena kao ključ kada je baza podataka kreirana. A sekundarni indeksi se mogu kreirati iz drugih polja kako tokom kreiranja same baze podataka, tako i kasnije u procesu rada sa njom. Sekundarni indeksi su dodijeljeni nazivima - identifikatorima po kojima se mogu koristiti.
Baza podataka obično ne sadrži jednu, već mnogo tabela. Na primjer, baza podataka o određenoj organizaciji može sadržavati tabelu dostupnih odjela u njoj sa karakteristikama svakog od njih.
Dep tabela sa poljima Dep i Proisv

U povezanim tabelama, obično se jedna pojavljuje kao Dom, a drugi ili nekoliko drugih - kao pomoćni, kojima upravlja glavni. Glavna i podtabela su međusobno povezane ključ... Neka polja koja su prisutna u obje tabele mogu djelovati kao ključ.

U primjeru, stol za glavu može biti Dep, pomoćni Pers, i mogu komunicirati na terenu Dep prisutna u obe tabele.

Svaki zapis u glavnoj tabeli Dep ti zapisi pomoćne tabele odgovaraju Pers, u kojem je ključno polje Dep sa imenom odjeljenja je isto kao i naziv odjela u trenutnom zapisu glavne tablice. Drugim riječima, ako je u trenutnom zapisu glavne tabele u polju Dep piše "Računovodstvo", pa u pomoćnoj tabeli Pers sve evidencije zaposlenih u računovodstvu su istaknute.

Kreirajte baze podataka i obradite zahtjeve prema njima sistemi za upravljanje bazama podataka - DBMS: Paradox, Microsoft Access, FoxPro, Oracle, InterBase itd.

Različiti DBMS-ovi organiziraju i pohranjuju baze podataka na različite načine. Paradox koristi jednu datoteku za svaku tabelu. Microsoft Access i InterBase pohranjuju više tabela kao jednu datoteku. U ovom slučaju, baza podataka je ime datoteke sa putanjom za pristup. Klijent/server sistemi (Sybase, Microsoft SQl, Oracle) pohranjuju sve podatke na posebnom računaru i komuniciraju sa klijentom koristeći poseban jezik - SQL.

Alijasi baze podataka se koriste za pojednostavljenje poziva baze podataka. Alias ​​(alias) sadrži sve informacije potrebne za omogućavanje pristupa bazi podataka. Ove informacije se pružaju samo jednom kada se kreira pseudonim. A aplikacija koristi pseudonim za komunikaciju s bazom podataka. U ovom slučaju, aplikaciji nije stalo do toga gdje se baza podataka fizički nalazi, a često ne brine ni o DBMS-u koji je kreirao i održava ovu bazu podataka. Prilikom promjene sistema direktorija, servera itd. ne morate ništa mijenjati u aplikaciji. Dovoljno je da administrator baze podataka unese odgovarajuće informacije u alias.

Keširanje Sve promjene znače da se sve promjene podataka, ubacivanje novih zapisa, brisanje postojećih zapisa od strane korisnika prvo ne vrše u samoj bazi podataka, već se pohranjuju u memoriju u privremenoj virtuelnoj tabeli. I samo posebnom komandom, nakon svih provjera ispravnosti podataka unesenih u tabelu, korisniku se daje mogućnost da ili izvrši sve ove promjene u bazi, ili da ih odbije i vrati u stanje koje je bilo prije početak uređivanja.

Upisivanje promjena u bazu podataka se vrši pomoću transakcije... To je zbirka naredbi koje modificiraju bazu podataka. Korisniku se daje mogućnost da završi transakciju bilo unošenjem svih izmjena u stvarnu bazu podataka, ili vraćanjem iz ove i vraćanjem u stanje koje je bilo prije početka transakcije.

ObjektiDelphi, dizajniran za razvoj i rad aplikacija koje koriste baze podataka:

BDE (Borland Database Engine) - Borlandov mehanizam baze podataka. To je skup DLL biblioteka koje pružaju pristup niskog nivoa lokalnim i klijent-server bazama podataka. Mora biti instaliran na svakom računaru koji koristi aplikacije baze podataka napisane za Delphi.

SQL Linkovi - drajveri za rad sa udaljenim serverima podataka (MS SQL Server, Oracle)

BDE Administrator je uslužni program za postavljanje alijasa (imena), parametara baze podataka i drajvera baze podataka na određenom računaru. Kada radite sa bazom podataka iz aplikacije kreirane pomoću Delphija, bazi podataka se pristupa preko njenog aliasa. Parametri definirani pseudonimom baze podataka su važeći samo za ovu bazu podataka; parametri postavljeni za drajver baze podataka primjenjuju se na sve baze podataka koje koriste drajver. Osim toga, možete postaviti takve parametre zajedničke za sve baze podataka, kao što su format datuma i vremena, formati numeričkih vrijednosti, korišteni jezički drajver itd.

Radna površina baze podataka (DBD) - alat za kreiranje, promjenu i pregled baze podataka. Ovaj uslužni program je prvenstveno fokusiran na rad sa tabelama lokalnog DBMS-a, kao što je Paradox. Moguće je, uz određena ograničenja, kreirati i pregledavati tabele baza podataka koje rade pod kontrolom servera: InterBase, MS SQL Server, Oracle.

DBD omogućava programeru da formira upit bazi podataka koristeći QBE metodu (Query By Example).

SQL Explorer je svestrani uslužni program koji kombinuje mnoge karakteristike BDE Administratora i DBD-a. Uz njegovu pomoć možete kreirati i pregledavati pseudonime baze podataka, pregledavati strukture i sadržaj tabela baze podataka, generirati upite bazi podataka u SQL-u, kreirati rječnike podataka (šablone polja tablice).

SQL Monitor je alat za praćenje izvršavanja SQL upita.

Nevizualne komponente za rad sa bazom podataka - koriste se za povezivanje aplikacije sa tabelama baze podataka u lokalnim i distribuiranim sistemima. Oni se nalaze na stranici Pristup podacima na paleti komponenti. Koristeći ne-vizualne komponente, možete se povezati s bazama podataka, oblikovati upite prema njima i manipulirati tabelama.

Vizuelne komponente za rad sa bazom podataka - dizajnirane za vizualizaciju zapisa skupova podataka ili njihovih pojedinačnih polja. Ove komponente se nalaze na stranici Kontrole podataka na paleti komponenti. Oni služe kao primarni razvojni alat za korisnički interfejs za pristup podacima.

Karakteristike programa za rad sa bazama podataka.

Karakteristična karakteristika programa za rad sa bazama podataka kreiranim pomoću Delphija je neophodna upotreba BDE u njima. (procesor relacijske baze podataka Borland Database Engine uključeno u Delphi), koji služi kao povezujući most između programa i baze podataka.


BDE preuzima sav posao niskog nivoa kako bi klijentskom programu pružio podatke koji su mu potrebni, stoga, u općenitom slučaju, program komunicira s podacima na sljedeći način:

BDE nije dio programa. U zavisnosti od tipa DBMS-a, može se nalaziti na klijentovoj ili serverskoj mašini.

Obično između programa i BDE postoji sloj komponenti koje uvelike pojednostavljuju razvoj programa. Ne-vizualne komponente rade direktno sa BDE a tri od njih (TTable, TQuery, TStoredProc) služe kao skupovi podataka, dok vizuelne komponente prikazuju podatke koji su im dostavljeni i služe za kreiranje korisničkog interfejsa. Između skupova podataka i vizuelnih komponenti, uvek postoje TDataSource komponente koje igraju ulogu ventila koji otvaraju ili zatvaraju tokove podataka koji se razmenjuju između izvora i vizuelnih komponenti (vidi sliku).

Neki su podržali inDelphi DB tipovi.

Lokalne i serverske baze podataka.

U lokalnim bazama podataka, baze podataka se nalaze na klijentovoj mašini. U datoteci serverskih baza podataka, baze podataka se nalaze na mrežnom serveru datoteka.

Lokalna verzija može pružiti samo jednokorisnički način pristupa podacima.

U fajl-server bazama podataka, podaci se nalaze na mrežnom serveru datoteka, kojem može istovremeno pristupiti više korisnika. Podaci u bazi podataka se pohranjuju u jednoj kopiji, a svaki klijent u svakom trenutku radi sa nekom lokalnom kopijom podataka, a upravljanje podacima je u potpunosti dodijeljeno klijentskim programima. Oni su ti koji moraju voditi računa o sinhronizaciji lokalnih kopija podataka na svakom klijentskom mjestu sa sadržajem glavne (i jedine) baze podataka.

Kada se postavi upit bazi podataka koja se nalazi na serveru datoteka, upit se zapravo postavlja lokalnoj kopiji podataka na računaru korisnika. Stoga, prije izvršavanja upita, podaci u lokalnoj kopiji se u potpunosti ažuriraju iz stvarne baze podataka. Dakle, ako se tabela baze podataka sastoji od 10.000 zapisa, a za izvršenje upita potrebno je samo 10 zapisa, svih 10.000 zapisa se i dalje prenosi na klijenta. Dakle, mreža je ozbiljno opterećena.

Klijent-server baze podataka.

U arhitekturi klijent-server pojavljuje se važna posredna veza između BDE-a i baze podataka – server baze podataka (poseban program koji upravlja bazom podataka).

Klijent formira zahtjev serveru u SQL upitnom jeziku (Strukturirani jezik upita - strukturirani jezik upita), koji je industrijski standard za relacijske baze podataka. SQL server pruža interpretaciju upita, njegovo izvršenje, formiranje rezultata i izdavanje ovog rezultata klijentu. Istovremeno, resursi klijentskog računara nisu uključeni u fizičko izvršavanje zahteva: klijentski računar samo šalje zahtev serverskoj bazi podataka i prima rezultat, nakon čega ga tumači po potrebi i predstavlja korisnik. Mrežom se prenose samo podaci koji su potrebni klijentu.

Kada server izvršava upite, stepen sigurnosti podataka se značajno povećava, jer su pravila integriteta podataka definisana na serveru i jedinstvena za sve aplikacije koje koriste ovu bazu podataka. Snažan transakcijski aparat koji podržavaju SQL serveri blokira istovremenu modifikaciju istih podataka od strane različitih korisnika i pruža mogućnost vraćanja na originalne vrijednosti prilikom unošenja izmjena u bazu podataka koje su nenormalno završile.

Kreirajte i pregledajte pseudonime baze podataka.

  1. ViaDBD.

Obično zovi Database Desktop uključeno u glavni meni Delphija u odeljku Alati. Ako to nije učinjeno, možete ga tamo omogućiti pomoću naredbe Tools | Configure Tools... (datoteka DBD32.exe).

DBD vam omogućava da kreirate tabele baze podataka nekih DBMS, postavite i promenite njihovu strukturu.

Možete kreirati i pregledati pseudonime tako što ćete pokrenuti Alati | Alias ​​Manager. Pojavljuje se prozor Alias ​​Managera:


Kada odaberete pseudonim na listi imena baze podataka, tip drajvera se automatski mijenja na padajućoj listi


  1. ViaBDE Administrator.


  1. ViaIstraživač baze podataka (SQL Explorer).

Ovaj program se poziva iz glavnog Delphi menija koristeći Database | Istražiti.


Top srodni članci