Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • OS
  • Mbështetja e bazës së të dhënave (Teknologjitë e aksesit të të dhënave. Krijimi i një aplikacioni me një bazë të dhënash)

Mbështetja e bazës së të dhënave (Teknologjitë e aksesit të të dhënave. Krijimi i një aplikacioni me një bazë të dhënash)

Dërgoni punën tuaj të mirë në bazën e njohurive është e thjeshtë. Përdorni formularin e mëposhtëm

Studentët, studentët e diplomuar, shkencëtarët e rinj që përdorin bazën e njohurive në studimet dhe punën e tyre do t'ju jenë shumë mirënjohës.

Postuar ne http://www.allbest.ru/

Prezantimi

3. Modelet e organizimit të të dhënave

4. Bazat e të dhënave relacionale

6. Modeli infologjik

7. Modeli logjik

8. Struktura e tabelave

12. Krijimi i tabelave

16. Gjenerimi i raporteve

17. Listimi i programeve

konkluzioni

Bibliografi

Prezantimi

Për të marrë vendime të informuara dhe efektive në aktivitetet prodhuese, në menaxhimin ekonomik dhe në politikë specialist modern duhet të jetë në gjendje të marrë, grumbullojë, ruajë dhe përpunojë të dhëna me ndihmën e kompjuterëve dhe mjeteve të komunikimit, duke e paraqitur rezultatin në formën e dokumenteve vizuale. Prandaj, është kaq e rëndësishme të jesh në gjendje të punosh me bazat e të dhënave.

Baza e të dhënave është një strukturë e organizuar për ruajtjen e informacionit. Bazat e të dhënave moderne ruajnë jo vetëm të dhëna, por edhe informacione.

Delphi flitet si një kornizë e shpejtë e zhvillimit të aplikacioneve. Kjo është një teknologji programimi vizual, d.m.th. përdoruesi harton programin e tij të ardhshëm dhe sheh rezultatet e punës së tij edhe para fillimit të vetë programit. Në thelb, vetë procesi i shkrimit të një aplikacioni është i ndarë në dy pjesë. E para - programuesi vendos në dritaret e programit të tij elementet e nevojshme, pozicionon, vendos dimensionet e kërkuara, ndryshon vetitë. E dyta është në fakt shkrimi kodi i programit, një përshkrim i vetive të elementeve që disponohen vetëm gjatë funksionimit të aplikacionit, një përshkrim i reagimeve ndaj ngjarjes së shfaqjes së një dritareje, shtypjes së një butoni etj. Për të vendosur ndonjë veçori, një element të aplikacionit të zhvilluar nuk ka pse të shkruajë masiv vargjet e tekstit, mjafton të ndryshohet kjo veti në inspektorin e objektit (i ashtuquajturi monitor i vetive të elementit të zgjedhur). Ky ndryshim do të plotësojë ose modifikojë automatikisht kodin e programit.

Ky është një plus i madh në teknologjinë e programimit vizual. Duke krijuar ose modifikuar tuajin software, përdoruesi, duke mos ditur ose duke mos i kushtuar vëmendje disa veçorive të elementit të programit, por duke përdorur vetëm ato të nevojshme, shkruan një produkt pune plotësisht të përfunduar, ndonjëherë duke vepruar në baza të barabarta në kompleksitet, me ato të shkruara në një redaktues jo vizual. .

Detyra jonë është të krijojmë një bazë të dhënash që do të përmbajë të dhëna për kurrikulën e procesit arsimor. Pasi të keni mbushur bazën e të dhënave, duhet të bëni një analizë selektive duke përdorur pyetje Sql.

programi i tabelës infologjike të bazës së të dhënave

1. Kërkesat e përgjithshme për zhvillimin e aplikacioneve të bazës së të dhënave

Baza e të dhënave duhet të përmbajë

a. Tabelat për ruajtjen e të dhënave, të paktën 3 tabela. Çdo tabelë duhet të përmbajë të paktën 10 regjistrime.

b. Formularët për shikim i rehatshëm, futja, redaktimi dhe kërkimi i të dhënave, formimi dhe shfaqja e pyetjeve. Formulari duhet të përmbajë shpjegime, sugjerime. Kur plotësoni fushat e formularit, për grupe të njohura vlerash, përdorni aftësinë për të zgjedhur vlerat nga një listë. Formularët duhet të lidhen kur është e mundur për të optimizuar navigimin e postimeve. Formulari duhet të përmbajë sa më shumë informacion për përdoruesit. Siguroni përpunimin e gabimeve semantike që lindin.

c. Raportet që përmbajnë të gjitha tabelat, formularët, pyetjet

d. Menuja për të hyrë në objekte të ndryshme të bazës së të dhënave

e. Ndihma që përmban Përshkrimi i plotë detyrat

2. Për të programuar bazën e të dhënave, duhet të përdorni literaturë shtesë në gjuhën SQL, sistemi programues DELPHI.

3. Lista dhe metodat e problemeve të zgjidhura në mënyrë të pavarur

1. Analiza e deklaratës së problemit dhe e fushës lëndore.

2. Projektimi infologjik, vërtetimi i objekteve të informacionit, domeneve, atributeve, lidhjeve, hartimi i një modeli infologjik.

3. Projektimi logjik, ndërtimi dhe vërtetimi i marrëdhënieve bazë, normalizimi.

4. Dizajnimi i pyetjeve Sql.

5. Programimi i strukturës dhe funksioneve të përgjithshme në bazën e të dhënave.

6. Projektimi i një baze të dhënash në një mjedis softuerësh.

7. Zhvillimi i ndërfaqes së programit.

8. Ekzekutimi i një shënimi shpjegues.

4. Kriteret për vlerësimin e kompetencave të fituara për punën e kursit

Kriteret plotësohen nga mësuesi gjatë mbrojtjes së veprës të dhëna në tabelën 1. Në bazë të notës mesatare jepet nota për punën e lëndës.

Tabela 1. Vlerësimi i kompetencave

Emri i kompetencës

Objekti i vlerësimit

Kuptoni dhe ndiqni kërkesat

Rezultatet e marra (DB) (vëllimi, struktura, pajtueshmëria me detyrën)

Komunikimi me shkrim

Cilësia e paraqitjes në shënimin shpjegues, qartësia, vëllimi, struktura, pajtueshmëria me detyrën.

Njihni dhe zbatoni elementet e sistemit të programimit DELPHI

Komponentët e aplikacionit të bazës së të dhënave, përgjigjet e pyetjeve në lidhje me zbatimin e bazës së të dhënave

Të njohë dhe të zbatojë elementet e teknologjisë së bazës së të dhënave

Përgjigjet e pyetjeve që lidhen me dizajnin, mundësisht në formatin e testit

Të kuptojnë nevojat për aplikimin e teknologjisë së bazës së të dhënave

Hyrja e shënimit shpjegues

Planifikimi i punës, organizimi i punës

Koha e kthesës

Zgjidhini problemet vetë

Lista dhe metodat e problemeve të zgjidhura në mënyrë të pavarur

Komunikim me goje

Mbrojtja publike e bazës së të dhënave

Aftësia për të analizuar, sintetizuar

Modeli infologjik, logjik i bazës së të dhënave

Angazhimi për rezultate cilësore

Cilësia e punës së kryer, treguesit ergonomikë, cilësia e funksionimit.

Aftësia për të gjeneruar ide të reja

Cilësia e ndërfaqes, funksione shtesë DB-të nuk përfshihen në detyrë.

Aftësia për të menaxhuar (kërkuar) informacionin

sasi burimet e informacionit gjetur dhe përdorur në lëndët, numri i konsulentëve.

2. Konceptet bazë dhe klasifikimi i sistemeve të menaxhimit të bazës së të dhënave

Baza e të dhënave (DB) është një koleksion i të dhënave të strukturuara të ruajtura në kujtesën e një sistemi kompjuterik dhe që shfaq gjendjen e objekteve dhe marrëdhëniet e tyre në fusha lëndore.

Struktura logjike e të dhënave të ruajtura në bazën e të dhënave quhet modeli i paraqitjes së të dhënave. Modelet kryesore të paraqitjes së të dhënave (modelet e të dhënave) përfshijnë hierarkike, rrjetore, relacionale.

Një sistem i menaxhimit të bazës së të dhënave (DBMS) është një kompleks i gjuhës dhe mjete softuerike projektuar për të krijuar, mirëmbajtur dhe ndarjen DB nga shumë përdorues. Në mënyrë tipike, një DBMS dallohet nga modeli i të dhënave të përdorura. Pra, DBMS bazuar në përdorimin e një modeli të të dhënave relacionale quhen DBMS relacionale.

Për të punuar me një bazë të dhënash, mjetet DBMS shpesh janë të mjaftueshme. Sidoqoftë, nëse kërkohet të sigurohet komoditeti i punës me bazën e të dhënave për përdoruesit e pakualifikuar ose ndërfaqja DBMS nuk u përshtatet përdoruesve, atëherë aplikacionet mund të zhvillohen. Krijimi i tyre kërkon programim. Një aplikacion është një program ose një grup programesh që automatizojnë zgjidhjen e çdo problemi të aplikuar. Aplikacionet mund të krijohen në mjedis ose jashtë mjedisit DBMS - duke përdorur një sistem programimi që përdor mjetet e hyrjes në bazën e të dhënave, për shembull, Delphi ose C ++ Build. Aplikacionet e zhvilluara në një mjedis DBMS shpesh referohen si aplikacione DBMS, dhe aplikacionet e zhvilluara jashtë DBMS shpesh referohen si aplikacione të jashtme.

Një fjalor i të dhënave është një nënsistem i bazës së të dhënave i krijuar për ruajtjen e centralizuar të informacionit në lidhje me strukturat e të dhënave, marrëdhëniet e skedarëve të bazës së të dhënave me njëri-tjetrin, llojet e të dhënave dhe formatet e paraqitjes së tyre, të dhënat që u përkasin përdoruesve, kodet e sigurisë dhe kontrollit të aksesit, etj.

Sistemet e informacionit të bazuara në përdorimin e bazave të të dhënave zakonisht funksionojnë në një arkitekturë klient-server. Në këtë rast, baza e të dhënave ndodhet në kompjuterin e serverit dhe ndahet.

Serveri i një burimi të caktuar në një rrjet kompjuterik është një kompjuter (program) që menaxhon këtë burim, një klient është një kompjuter (program) që përdor këtë burim. Si burim i një rrjeti kompjuterik, për shembull, mund të veprojnë bazat e të dhënave, skedarët, shërbimet e printimit dhe shërbimet postare.

Avantazhi i organizimit të një sistemi informacioni në një arkitekturë klient-server është një kombinim i suksesshëm i ruajtjes së centralizuar, mirëmbajtjes dhe aksesit të përbashkët në një informacione të korporatës me punë individuale përdoruesit.

Sipas parimit bazë të arkitekturës klient-server, të dhënat përpunohen vetëm në server. Një përdorues ose një aplikacion formon pyetje që vijnë në serverin e bazës së të dhënave në formën e udhëzimeve të gjuhës SQL. Serveri i bazës së të dhënave siguron kërkimin dhe marrjen e të dhënave të kërkuara, të cilat më pas transferohen në kompjuterin e përdoruesit. Avantazhi i kësaj qasjeje në krahasim me ato të mëparshme është një sasi dukshëm më e vogël e të dhënave të transmetuara.

Dallohen llojet e mëposhtme të DBMS:

* DBMS me funksione të plota;

* serverët e bazës së të dhënave;

* mjete për zhvillimin e programeve për të punuar me një bazë të dhënash.

DBMS me funksione të plota janë DBMS tradicionale. Këto përfshijnë dBase IV, Microsoft Access, Microsoft FoxPro dhe më shumë.

Serverët e bazës së të dhënave janë të destinuara për organizimin e qendrave të përpunimit të të dhënave në rrjetet kompjuterike. Serverët e bazës së të dhënave ofrojnë përpunimin e kërkesave programet e klientit zakonisht duke përdorur deklarata SQL. Shembuj të serverëve të bazës së të dhënave janë: Microsoft SQL Server, Inter Bazë etj.

Në rastin e përgjithshëm, një DBMS mund të përdoret në rolin e programeve të klientit, spreadsheets, përpunuesit e tekstit, programet e postës elektronike, etj.

Mjetet për zhvillimin e programeve për të punuar me një bazë të dhënash mund të përdoren për të krijuar programet e mëposhtme:

* programet e klientit;

* serverët e bazës së të dhënave dhe komponentët e tyre individualë;

* aplikacione me porosi.

Për nga natyra e përdorimit të tyre, DBMS-të ndahen në shumëpërdorues (industrial) dhe lokal (personal).

Industriale, DBMS përfaqëson një bazë softuerike për zhvillimin e sistemeve të automatizuara të kontrollit për objektet e mëdha ekonomike. DBMS industriale duhet të plotësojë kërkesat e mëposhtme:

* aftësia për të organizuar punën e përbashkët paralele të shumë përdoruesve;

* shkallëzueshmëria;

* transportueshmëri në pajisje të ndryshme dhe platformat softuerike;

* stabilitet në lidhje me dështimet e llojeve të ndryshme, duke përfshirë praninë e një sistemi rezervë me shumë nivele të informacionit të ruajtur;

* garantimi i sigurisë së të dhënave të ruajtura dhe të avancuara sistem i strukturuar qasje në to.

DBMS personale është softuer i fokusuar në zgjidhjen e problemeve përdorues lokal ose një grup i vogël përdoruesish dhe të destinuara për përdorim në Kompjuter personal... Kjo shpjegon emrin e tyre të dytë - desktop. Karakteristikat përcaktuese të sistemeve desktop janë:

* Lehtësia relative e përdorimit, duke lejuar krijimin mbi bazën e tyre të realizueshme aplikacione me porosi;

* Kërkesa relativisht të kufizuara për burime harduerike.

Sipas modelit të të dhënave të përdorura, DBMS-të ndahen në hierarkike, rrjetore, relacionale, të orientuara nga objekti, etj. Disa DBMS mund të mbështesin njëkohësisht disa modele të dhënash.

Për të punuar me të dhënat e ruajtura në bazën e të dhënave, përdoren llojet e mëposhtme të gjuhëve:

* Gjuha e përshkrimit të të dhënave - një gjuhë joprocedurale e nivelit të lartë
tip deklarativ, i krijuar për të përshkruar një logjik
strukturat e të dhënave

* Gjuha e manipulimit të të dhënave - një grup ndërtimesh që ofrojnë operacione bazë për të punuar me të dhëna: futje, modifikim dhe rikthim të të dhënave sipas kërkesës.

Gjuhët e emëruara mund të ndryshojnë në DBMS të ndryshme. Më të përhapurat janë dy gjuhë të standardizuara: QBE - një gjuhë pyetëse e bazuar në model dhe SQL - një gjuhë e strukturuar e pyetjeve. QBE kryesisht ka vetitë e një gjuhe të manipulimit të të dhënave, SQL kombinon vetitë e të dy llojeve të gjuhëve.

DBMS zbaton funksionet e mëposhtme bazë të nivelit të ulët:

* Menaxhimi i të dhënave në memorie të jashtme;

* menaxhimi i buferëve RAM;

* menaxhimi i transaksioneve;

* mbajtja e një regjistri të ndryshimeve në bazën e të dhënave;

* garantimi i integritetit dhe sigurisë së bazës së të dhënave.

Zbatimi i funksionit të menaxhimit të të dhënave në memorien e jashtme siguron organizimin e menaxhimit të burimeve në sistemi i skedarëve OS.

Nevoja për të buferuar të dhënat është për faktin se sasia e RAM-it është më e vogël se sasia e memories së jashtme. Buferët janë zona të memories kryesore të krijuara për të përshpejtuar shkëmbimin ndërmjet memories së jashtme dhe asaj kryesore. Buferët ruajnë përkohësisht fragmente të bazës së të dhënave, të dhënat nga të cilat supozohet të përdoren kur hyni në DBMS ose planifikohen të shkruhen në bazën e të dhënave pas përpunimit.

Mekanizmi i transaksionit përdoret në DBMS për të ruajtur integritetin e të dhënave në bazën e të dhënave. Një transaksion është një sekuencë e caktuar e pandashme e operacioneve në të dhënat e bazës së të dhënave, e cila gjurmohet nga DBMS nga fillimi në fund. Nëse për ndonjë arsye (dështime dhe dështime të harduerit, gabime në softuer, përfshirë aplikacionin) transaksioni mbetet i paplotë, atëherë ai anulohet.

Ekzistojnë tre prona kryesore të natyrshme në transaksione:

* atomiciteti (të gjitha operacionet e përfshira në transaksion janë ekzekutuar ose asnjë);

* serializimi (nuk ka ndikim të ndërsjellë të transaksioneve të ekzekutuara në të njëjtën kohë);

* qëndrueshmëri (edhe një përplasje e sistemit nuk çon në humbjen e rezultateve të transaksionit të kryer).

Një shembull i një transaksioni është operacioni i transferimit të parave nga një llogari në tjetrën në sistemin bankar. Së pari, paratë tërhiqen nga një llogari, më pas ato kreditohen në një llogari tjetër. Nëse të paktën një nga veprimet nuk është i suksesshëm, rezultati i operacionit do të jetë i pasaktë dhe ekuilibri i operacionit do të prishet.

Regjistrimi i ndryshimeve kryhet nga DBMS për të siguruar besueshmërinë e ruajtjes së të dhënave në bazën e të dhënave në prani të dështimeve të harduerit dhe softuerit.

Sigurimi i integritetit të bazës së të dhënave është kusht i nevojshëm funksionimi i suksesshëm i bazës së të dhënave, veçanërisht kur përdoret në rrjet. Integriteti i bazës së të dhënave është një pronë e bazës së të dhënave, që do të thotë se ajo përmban informacione të plota, të qëndrueshme dhe që pasqyrojnë në mënyrë adekuate të fushës së temës. Gjendja integrale e bazës së të dhënave përshkruhet duke përdorur kufizime të integritetit në formën e kushteve që duhet të plotësohen nga të dhënat e ruajtura në bazën e të dhënave.

Siguria arrihet në DBMS me kriptim të të dhënave, mbrojtje me fjalëkalim, mbështetje për nivelet e aksesit në bazën e të dhënave dhe elementet e saj individuale (tabelat, formularët, raportet, etj.).

3. Modelet e organizimit të të dhënave

Në një model hierarkik, objektet e entitetit dhe marrëdhëniet e domenit përfaqësohen nga grupe të dhënash që kanë një strukturë të ngjashme me pemën (hierarkike). Modeli i të dhënave hierarkike ishte historikisht i pari. Mbi bazën e tij, në fund të viteve '60 - fillim të viteve '70, u zhvilluan DBMS-të e para profesionale.

Fokusi i kufizimeve të integritetit në modelin hierarkik është në integritetin e referencave midis paraardhësve dhe pasardhësve, duke iu nënshtruar rregullit bazë: asnjë pasardhës nuk mund të ekzistojë pa një prind.

Modeli i të dhënave të rrjetit ju lejon të shfaqni marrëdhënie të ndryshme të artikujve të të dhënave në formën e një grafiku arbitrar. Baza e të dhënave e rrjetit përbëhet nga një grup regjistrimesh dhe një grup lidhjesh të lidhura. Asnjë kufizim i veçantë nuk vendoset për formimin e një lidhjeje. Nëse në strukturat hierarkike një rekord fëmijë mund të ketë vetëm një rekord paraardhës, atëherë në modelin e të dhënave të rrjetit një regjistrim fëmijë mund të ketë një numër arbitrar të regjistrimeve të paraardhësve.

Avantazhi i seksionit të mesëm të të dhënave të rrjetit është mundësia e zbatimit efektiv të tij. Në krahasim me modelin hierarkik, modeli i rrjetit ofron mundësi më të mëdha në kuptimin e pranueshmërisë së formimit të lidhjeve arbitrare.

Disavantazhi i modelit të të dhënave të rrjetit është kompleksiteti i lartë dhe ngurtësia e skemës së DB e ndërtuar mbi bazën e saj, si dhe kompleksiteti i të kuptuarit të saj përdorues i rregullt... Për më tepër, në modelin e të dhënave të rrjetit, kontrolli i integritetit të lidhjeve dobësohet për shkak të pranueshmërisë së vendosjes së lidhjeve arbitrare midis të dhënave.

Sistemet e bazuara në modelin e rrjetit nuk përdoren gjerësisht në praktikë.

Modeli i të dhënave relacionale u propozua nga punonjësi i IBM Edgar Codd dhe bazohet në konceptin e relacionit.

Një marrëdhënie është një grup elementësh të quajtur tuples. Një tabelë dydimensionale është një formë vizuale e paraqitjes së një marrëdhënieje.

Duke përdorur një tabelë, është e përshtatshme për të përshkruar llojin më të thjeshtë të marrëdhënieve midis të dhënave, përkatësisht: ndarja e një objekti, informacioni për të cilin ruhet në tabelë, në shumë nënobjekte, secila prej të cilave korrespondon me një rresht ose regjistrim tabele.

Disavantazhet kryesore të modelit relacional janë si më poshtë: mjete standarde identifikimi i të dhënave individuale dhe kompleksiteti i përshkrimit të marrëdhënieve hierarkike dhe të rrjetit.

4. Bazat e të dhënave relacionale

Modeli i të dhënave relacionale (RDM) i një zone të caktuar lëndore është një grup marrëdhëniesh që ndryshojnë me kalimin e kohës. Kur krijoni një sistem informacioni, një grup marrëdhëniesh ju lejon të ruani të dhëna për objektet në zonën e subjektit dhe të modeloni lidhjet midis tyre. Termat RMD janë paraqitur në tabelë. 4.1

Tabela 4.1. Kushtet e modelit relacional

Veshur me terma-relacion

Ekuivalente

Qëndrimi

Diagrami i marrëdhënieve

Rreshti i titujve të kolonave të tabelës (Titulli i tabelës)

Rreshti i tabelës, regjistrimi

Thelbi

Përshkrimi i vetive të objektit

Kolona, ​​fushë

Shumë vlera të vlefshme

atribut

Çelesi primar

Identifikues unik

Kardinaliteti

Numri i rreshtave

Numri i kolonave

Një bazë të dhënash relacionale është një depo e të dhënave që përmban një grup tabelash dydimensionale. Të dhënat në tabela duhet të jenë në përputhje me parimet e mëposhtme:

1. Vlerat e atributeve duhet të jenë atomike (me fjalë të tjera,
çdo vlerë që gjendet në kryqëzimin e një rreshti dhe një kolone,
nuk duhet të ndahet në disa vlera).

2. Vlerat e çdo atributi duhet të jenë të të njëjtit lloj.

3. Çdo rekord në tabelë është unik.

4. Çdo fushë ka një emër unik.

5. Sekuenca e fushave dhe regjistrimeve në tabelë nuk është thelbësore.

Një marrëdhënie është koncepti më i rëndësishëm dhe është një tabelë dydimensionale që përmban disa të dhëna.

Një entitet është një objekt i çdo natyre, të dhënat për të cilat ruhen në një bazë të dhënash. Të dhënat e entitetit ruhen në një lidhje.

Atributet janë veti që karakterizojnë një entitet. Në strukturën e tabelës, çdo atribut emërtohet dhe korrespondon me titullin e një kolone të caktuar në tabelë.

Çelësi i një marrëdhënieje është një grup atributesh të saj që identifikojnë në mënyrë unike secilin nga tuplet e marrëdhënies. Me fjalë të tjera, grupi i atributeve K, i cili është çelësi i marrëdhënies, ka vetinë e unike. Vetia tjetër e një çelësi nuk është teprica. Kjo do të thotë, asnjë nga nëngrupet e duhura të bashkësisë K nuk posedon vetinë e unike.

Çdo marrëdhënie ka gjithmonë një kombinim të atributeve që mund të shërbejnë si një çelës.

Mund të ketë raste kur një relacion ka kombinime të shumta të atributeve, secila prej të cilave identifikon në mënyrë unike të gjitha tuplet e relacionit. Të gjitha këto kombinime të atributeve janë çelësa të mundshëm marrëdhëniesh. Çdo çelës i mundshëm mund të zgjidhet si primar.

Çelësat përdoren zakonisht për qëllimet e mëposhtme:

Eliminimi i vlerave të kopjuara në atributet kryesore (atributet e tjera nuk merren parasysh);

Porositë e tupave. Shtë e mundur të renditni vlerat e të gjitha atributeve kryesore në rend rritës ose zbritës, si dhe renditje të përzier (nga një - në rritje, dhe nga të tjerët - në rënie);

Organizimet e tabelave lidhëse.

Koncepti i një çelësi të huaj është i rëndësishëm. Një çelës i huaj mund të përkufizohet si një grup atributesh të një relacioni R2, vlerat e të cilave duhet të përputhen me vlerat çelësi i mundshëm një lidhje tjetër R1.

Atributet e marrëdhënies K2 që përbëjnë çelësin e jashtëm nuk janë kyçe për këtë marrëdhënie.

Lidhjet ndërmjet marrëdhënieve krijohen duke përdorur çelësa të huaj.

Hartimi i bazave të të dhënave të sistemeve të informacionit është një detyrë mjaft e mundimshme. Ajo kryhet në bazë të formalizimit të strukturës dhe proceseve të fushës lëndore, informacioni për të cilin supozohet të ruhet në bazën e të dhënave. Të dallojë projektimin konceptual dhe skematiko-strukturor.

Dizajni konceptual i një IS DB është kryesisht një proces heuristik. Përshtatshmëria e modelit infologjik të fushës lëndore të ndërtuar në kuadër të tij verifikohet në mënyrë empirike, në procesin e funksionimit të SI.

Fazat e projektimit konceptual:

* studimi i fushës lëndore për formimin pamje e përgjithshme rreth saj;

* përzgjedhja dhe analiza e funksioneve dhe detyrave të IS të zhvilluar;

* përcaktimi i objekteve-entiteteve kryesore të fushës lëndore
dhe marrëdhëniet ndërmjet tyre;

* prezantimi zyrtar i fushës lëndore.

Kur hartoni një skemë të bazës së të dhënave relacionale, mund të dalloni procedurat e mëposhtme:

* përcaktimi i listës së tabelave dhe lidhjeve ndërmjet tyre;

* përcaktimi i listës së fushave, llojeve të fushave, fushave kyçe të secilës tabelë (skema e tabelës), vendosja e lidhjeve ndërmjet tabelave përmes çelësave të huaj;

* vendosja e indeksimit për fushat në tabela;

* zhvillimi i listave (fjaloreve) për fushat e numëruara
të dhëna;

* vendosja e kufizimeve të integritetit për tabelat dhe lidhjet;

* Normalizimi i tabelave, korrigjimi i listës së tabelave dhe lidhjeve. Dizajni i bazës së të dhënave kryhet në nivel fizik dhe logjik. Projektimi në niveli fizik zbatohet me anë të një DBMS dhe shpesh është i automatizuar.

Dizajni logjik konsiston në përcaktimin e numrit dhe strukturës së tabelave, zhvillimin e pyetjeve në bazën e të dhënave, raportimin e dokumenteve, krijimin e formularëve për futjen dhe redaktimin e të dhënave në bazën e të dhënave, etj.

Një nga detyrat më të rëndësishme të dizajnit logjik të bazës së të dhënave është strukturimi i të dhënave. Dallohen qasjet e mëposhtme për hartimin e strukturave të të dhënave:

* kombinimi i informacionit për objektet e entitetit brenda një tabele (një marrëdhënie) me zbërthimin pasues në disa tabela të ndërlidhura bazuar në normalizimin e marrëdhënieve;

* formulimi i njohurive rreth sistemit (përcaktimi i llojeve të të dhënave fillestare dhe marrëdhënieve) dhe kërkesave për përpunimin e të dhënave, marrja e një skeme të gatshme të bazës së të dhënave apo edhe një sistem informacioni aplikimi të gatshëm duke përdorur sistemin CA5E;

* Zbatimi i analizës së sistemit dhe zhvillimi i modeleve strukturore.

5. Qëllimi dhe parimi i funksionimit të SQL

SQL (shpesh shqiptohet "vazhdim", shkurt për Structured Query Language) qëndron për Structured Query Language.

SQL është një mjet i krijuar për të përpunuar dhe lexuar të dhënat e përfshira në një bazë të dhënash kompjuterike. Është një gjuhë që bën të mundur krijimin dhe punën me efikasitet të bazave të të dhënave relacionale.

Bota e bazave të të dhënave po bëhet gjithnjë e më e unifikuar, gjë që ka çuar në nevojën për një gjuhë standarde që mund të funksionojë në një numër të madh të llojeve të ndryshme të mjediseve kompjuterike. Gjuha standarde do t'i lejojë përdoruesit që dinë një grup komandash t'i përdorin ato për të krijuar, kërkuar, modifikuar dhe transmetuar informacione nëse ato janë duke u ekzekutuar në një kompjuter personal, stacion pune në rrjet ose mainframe. Në një botë kompjuterike gjithnjë e më të ndërlidhur, një përdorues i pajisur me një gjuhë të tillë ka një avantazh të madh në përdorimin dhe përmbledhjen e informacionit nga një shumëllojshmëri burimesh duke përdorur një numër i madh mënyrat.

Siç sugjeron emri, SQL është një gjuhë programimi që përdoret për të organizuar ndërveprimin e përdoruesit me një bazë të dhënash. Në fakt, SQL punon vetëm me bazat e të dhënave relacionale.

6. Modeli infologjik

Gjatë krijimit të një modeli infologjik, u analizua fusha lëndore e bazës së të dhënave të dhënë "Kurrikula e disiplinave të studiuara të drejtimit të PMI". Janë ndarë 4 objekte: Kurrikula, Disiplina, Nxënësi, Mësuesi, si dhe dy tabela shtesë që lidhin nxënësit dhe disiplinat, si dhe mes mësuesve dhe disiplinave. Objekti i Kurrikulës ka atributet: Viti i krijimit, Numri i kurrikulës. Objekti i Disiplinës ka këto atribute: Emri i disiplinës, Kodi i disiplinës, Numri i kurrikulës, Numri i orëve të ligjëratave, Numri i orëve praktike, Numri i orëve për punë laboratorike, Orët totale, Numri i orëve në javë, Formulari i raportimit të disiplinës, Semestri i studimit. . Objekti Sudent ka këto atribute: Numri i librit të notave, emri i plotë. Dhe objekti Teacher ka atributet: emri, numri i personelit, departamenti, pozicioni, numri i telefonit. Objektet Kurrikula dhe Disiplina lidhen në një marrëdhënie 1: n, objektet Disiplina dhe Nxënësi janë të lidhura në një marrëdhënie 1: n dhe objektet Disiplina dhe Mësuesi janë të lidhura në një marrëdhënie 1: n.

Diagramet ER janë përdorur për të përshkruar modelin infologjik:

Foto 1

7. Modeli logjik

Modeli logjik përshkruan konceptet e fushës lëndore, marrëdhëniet e tyre, si dhe kufizimet e të dhënave të vendosura nga fusha lëndore.

Modeli i të dhënave logjike është prototipi fillestar për bazën e të dhënave të ardhshme. Është ndërtuar për sa i përket njësive të informacionit, por pa iu referuar një DBMS specifike. Për më tepër, modeli i të dhënave logjike nuk duhet të shprehet në termat e vetë modelit të të dhënave relacionale.

Për të krijuar një model logjik, çdo objekti iu caktua një tabelë me një grup të caktuar fushash. Meqenëse Disiplina e Objekteve dhe Mësuesi janë të lidhura në një marrëdhënie 1: n, duket tabelë shtesë për të përfaqësuar lidhjen ndërmjet objekteve Disiplina dhe Mësuesi: Mëson.

Në total kemi 4 objekte dhe për rrjedhojë do të ketë 4 tabela për prezantimin e tyre, objekti Kurrikulës është vetëm informativ, pasi puna e bazës së të dhënave kryhet vetëm me një kurrikul:

Por ekziston një marrëdhënie 1: n midis dy objekteve, kështu që ne duhet të prezantojmë një tabelë tjetër për të përfaqësuar marrëdhëniet midis këtyre tabelave. Kjo është tabela Disiplina-Prepodavatel dhe tabela Disiplina-Studenti.

Baza e të dhënave të paraqitur mund t'i atribuohet formës së 5-të normale, sepse është 3 forma normale dhe çelësi primar është i thjeshtë. Diagrami logjik është implementuar në Microsoft Access.

Foto 2

8. Struktura e tabelave

Baza origjinale e të dhënave përbëhet nga 5 tabela (tabela e Kurrikulës nuk numërohet, pasi përdoret një kurrikul).

Dekodimi i fushave:

v Disiplina.db

Ш Nazv- emri i disiplinës, lloji i fushës: String;

W Kod - kod unik disiplinat: LongInt;

Ш Semestri - semestri në të cilin mësohet: String;

Ш KolLeKCh - numri i ligjëratave në këtë disiplinë: LongInt;

Ш KolPraktCh - numri i praktikave në këtë disiplinë: LongInt;

Ш KoLabRabCh - numri i ligjëratave në këtë disiplinë: LongInt;

Ш VsegoCh - numri i përgjithshëm i orëve: LongInt;

Ш NomerYP - numri i kurrikulës, i cili përmban disiplinën: LongInt.

v Studenti.db

Ш NomerStudBileta - numri i ID-së së studentit: LongInt;

Ш FIO - mbiemri i studentit: ShortInt;

v Prepodaet.db (Disciplina-Prepodavatel)

Ш TabNomerPrepod - numri i personelit të mësuesit që ligjëron disiplinën përkatëse: LongInt;

Ш FIO- emri i mësuesit që jep disiplinën përkatëse: String.

v Prepod.db

Ш FIO - emri i plotë i mësuesit: String;

Ш TabelNomerPrepodavatelya - numri unik i personelit të mësuesit: LongInt;

Ш Kafedra - departamenti në të cilin punon: String;

Ш Dolshnost - Pozicioni i mësuesit: String;

SH Telefon- Numri i kontaktit mësuesi: String.

v Izuchaet.db (Disiplina- Student)

Ш KodDiscip- kodi i disiplinës: LongInt;

Ш NomerStudBileta - numri i ID-së studentore të studentit që studion disiplinën: LongInt;

W FIO - emri i plotë i studentit që studion disiplinën përkatëse: String;

Ш Ocenka - vlerësimi i studentit në disiplinën e studiuar: LongInt ;.

9. Projektimi i pyetjeve SQL

1. Krijoni një listë kreditesh dhe provimesh për çdo semestër.

zgjidhni Nazv, FormaOtchet

ku Semestr =: s dhe

(Disciplina.FormaOtchet = "Kalo" ose Disciplina.FormaOtchet = "Provim");

2. Formoni fletët e provimit dhe testimit / kryesore dhe shtesë / për çdo lëndë.

Fleta kryesore:

zgjidhni Prepodaet.FIO,

Disciplina.ObsheeKolChVNed, Disciplina.Semestr, Izuchaet.FIO, Izuchaet.

Ocenka, Disiplina.Nazv

nga Disciplina, Prepodaet, Izuchaet

ku Disciplina.KodDiscip = Prepodaet.KodDiscip

dhe (Disciplina.FormaOtchet = "Exam" ose Disciplina.FormaOtchet = "Kalo")

Deklaratë shtesë (për studentët me 2):

zgjidhni Disciplina.Nazv, Prepodaet.FIO,

Disciplina.ObsheeKolChVNed, Izuchaet.FIO, Disciplina.Semestr, Izuchaet.Ocenka

nga Izuchaet, Disciplina, Prepodaet

ku Izuchaet.Ocenka = "2"

dhe Disciplina.KodDiscip = Izuchaet.KodDiscip

dhe Disciplina.KodDiscip = Prepodaet.KodDiscip

dhe (Disciplina.FormaOtchet = "Provim" ose Disciplina.FormaOtchet = "Kalo");

Përditëso Disiplinë

vendos ObsheeKolChVNed = VsegoCh / 17;

4. Përgatitni një insert për diplomën e secilit student:

zgjidhni Disciplina.Nazv, Izuchaet.Ocenka, Izuchaet.FIO

nga Izuchaet, Disiplina

ku Disciplina.KodDiscip = Izuchaet.KodDiscip

and Disciplina.FormaOtchet = "Provim"

Zgjidhni AVG (Ocenka) si SrBall

Rendit sipas SrBall desc;

5. Rendisni grupin në rend zbritës të rezultatit mesatar:

Zgjidhni FIO, AVG (Ocenka) si SrBall

Rendit sipas SrBall desc;

10. Struktura dhe funksionet e sistemit

Puna e kursit përbëhet nga një projekt "Project1" dhe 13 module.

1. Njësia1 - formulari ruhet këtu, që është Titulli i faqes... Komponentët e përdorur: Memo, Buton.

2. Unit2 - këtu ruhet formulari, i cili është faqja fillestare e bazës së të dhënave. Komponentët përdoren këtu: Butoni, Memo.

3. Unit3 - këtu ruhet formulari, i cili përmban të gjitha tabelat e bazës së të dhënave në formë skedash. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

4. Unit4 - formulari në të cilin shfaqet detyra ruhet këtu. Komponentët përdoren këtu: Memo, Button.

5. Njësia 5 - këtu ruhet një formular, i cili shfaq një fletë ekzaminimi shtesë. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

6. Njësia 6 - një formular që shfaq një listë të provimeve dhe testeve ruhet këtu. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

7. Njësia 7 - formulari që shfaq fletën kryesore të ekzaminimit ruhet këtu. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

8. Njësia8 - këtu ruhet formulari, i cili shfaq listën e grupit në rend zbritës. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

9. Njësia 9 - këtu ruhet formulari, i cili shfaq insertin në diplomë. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

10. Njësia10 - këtu ruhet një formular, i cili shfaq një formular për plotësimin e një deklarate elektronike. Komponentët përdoren këtu: Memo, Button, TabSheet, Tabela, DBGrid, DBNavigator, Label, Query.

11. Unit11 - këtu ruhet forma në të cilën shfaqet menyja. Këtu përdoren komponentët: Memo, Button, Label.

12. Njësia12 - këtu ruhet një formular, i cili shfaq një raport për krijimin e një fletë ekzaminimi elektronik. Komponentët e përdorur këtu janë Memo dhe Button, RVProject, RVQueryConnnection dhe Query.

13. Njësia13 - këtu ruhet një formular, i cili shfaq një raport për krijimin e një inserti në një diplomë. Komponentët e përdorur këtu janë Memo dhe Button, RVProject, RVQueryConnnection dhe Query.

11. Manuali i përdorimit

1. Nisni projektin. Para nesh shfaqet faqja e titullit të punës së kursit

Figura 3

Këtu mund të futemi menjëherë në bazën e të dhënave, ose mund të shikojmë detyrën dhe të kthehemi në këtë formë. Ne zgjedhim "Trego detyrën"

2. Para nesh shfaqet një dritare me informacione për caktimin e punimit terminor

Figura 4

3. Kthehuni duke klikuar në butonin përkatës dhe filloni punën duke klikuar në butonin e dritares së mëparshme "Vazhdo"

Figura 5

4. Pasi të keni shqyrtuar informacionin në këtë faqe, klikoni në butonin "Login".

Figura 6

Para nesh shfaqet një dritare, e cila përmban në skeda të gjitha informacionet që gjenden në bazën e të dhënave. Këtu mund të shikojmë listën e disiplinave, grupin e studimit, mësuesit, çfarë studiojnë studentë të caktuar dhe çfarë lënde mësojnë mësuesit.

5. Gjithashtu nga kjo dritare mund të shkojmë te pyetjet. Klikoni në butonin përkatës.

Figura 7

Këtu mund të zgjedhim çdo kërkesë me interes thjesht duke klikuar në butonin përkatës. Gjithashtu këtu mund të kthehemi te tabelat dhe të shkojmë te formacioni version elektronik fletën e ekzaminimit.

6. Klikoni në butonin "Shiko listën e krediteve dhe provimeve për çdo semestër"

Figura 8

Këtu duhet të futni numrin e semestrit dhe të klikoni në butonin më poshtë, më pas në dritaren e tabelës do të shfaqet një listë e provimeve dhe testeve për semestrin që keni futur. Nga kjo fletë, ne mund të kthehemi te pyetjet.

7. Klikoni në butonin "Shko në fletën kryesore të provimit"

Këtu duhet të zgjidhni emrin e disiplinës nga lista rënëse, më pas vendosni këtë emër në kutinë nën listën rënëse dhe klikoni në butonin "Ekzekutoni". Kërkesa do të tregojë numrin total të orëve në javë për të studiuar disiplinën që keni futur, si dhe do të shfaqë një listë të studentëve që studiojnë këtë disiplinë dhe notën e tyre për këtë disiplinë. Kujdes! Fusha e notave plotësohet në formularin me tabela brenda skedës Student-Disiplina. Gjithashtu në këtë fletë mund të formoni një fletë ekzaminimi shtesë. Për nxënësit me notën 2. Nga kjo fletë, ne mund të kthehemi te pyetjet.

Figura 9

8. Klikoni në butonin "Shko në fletën shtesë të ekzaminimit"

Figura 10

Këtu mund të shohim studentë që kanë notën 2 në një disiplinë të caktuar. Nga kjo fletë, ne mund të kthehemi te pyetjet.

9. Klikoni në butonin "Krijo një insert për diplomën"

Figura 11

Këtu ju duhet të shkruani emrin e plotë të maturantit duke zgjedhur studentin e duhur nga lista rënëse. Më pas shtypni tastin. Dhe më pas, sipas kërkesës, kolona "Disiplina" do të plotësohet me një listë të disiplinave të studiuara për 5 vite studime dhe do të shfaqen notat përkatëse. Në të njëjtën fletë, mund të shikoni versionin elektronik të insertit duke klikuar në butonin "Print version". Pas shikimit të këtij versioni, thjesht duhet të mbyllni dritaren që hapet me një kryq të kuq në të djathtë këndi i sipërm ekran.

Figura 12

10. Klikoni në butonin "Shiko listën e grupit në rend zbritës të rezultatit mesatar"

Figura 13

Këtu shohim listën e grupit dhe notën mesatare që i korrespondon secilit student, të renditur në rend zbritës. Nga kjo fletë, ne mund të kthehemi te pyetjet.

Figura 14

Zgjidhni disiplinën që na intereson nga lista rënëse, për shembull, ekonomia dhe shkruani emrin e saj në kutinë nën listën rënëse. Më pas, klikoni butonin ekzekutoni dhe shihni emrin e mësuesit të kësaj disipline.

Figura 16

Këtu shohim emrin e disiplinës që kemi zgjedhur, emrin e plotë të mësuesit të kësaj disipline. Dhe gjithashtu një listë e studentëve që studiojnë këtë disiplinë. Për të dalë nga raporti, thjesht klikoni në kryqin në këndin e sipërm të djathtë të ekranit. Kthehemi në fletën e mëparshme. Nga kjo fletë, ne mund të kthehemi te pyetjet.

12. Krijimi i tabelave

Për krijimin e tabelave u përdorën shërbimet e bazës së të dhënave Desktop. Mund ta ekzekutoni - Start / Programs / Borland Delphi 7 / Desktop i bazës së të dhënave. Drejtoria e punës e programit duhet të konfigurohet. Zgjidhni komandën File / Working Directory dhe vendosni direktorinë tuaj të punës. Për të krijuar një tabelë, zgjidhni komandën File / New / Table. Pastaj ju duhet të zgjidhni llojin e tabelës. Lloji PARADOX 7 mund të konsiderohet më i miri për tabelat e serverëve të skedarëve.

1. Krijo tabelën YchebPlan (Kurrikula):

Figura 17

5. Krijimi i tabelës së disiplinës:

Figura 18

6. Krijimi i tabelës Studenti:

Figura 19

7. Krijimi i tabelës Prepodaet (Disiplina-Mësues):

Figura 20

5. Krijo një tabelë Prepod (Mësuesi):

Figura 21

8. Krijimi i tabelës Izuchaet (Disiplina-Studenti):

Figura 22

13. Krijimi i një aplikacioni në Delphi

Për të krijuar një aplikacion të ri, zgjidhni artikullin New / Application në menynë File. Shfaqet një formë dhe një modul (në përgjithësi, ky quhet projekt), tani mund të vendosni përbërësit e nevojshëm në formular. Nëse është e nevojshme, mund të krijoni një formë tjetër (dhe më shumë se një), për këtë ju duhet të zgjidhni artikullin New / Form në menunë File.

1. Tabela. Plotësimi me të dhëna. Shfaqja e të dhënave.

Për të shfaqur tabelën në formular, duhet të vendosni përbërësit në të:

· Tabela (në skedën BDE) - Në inspektorin e objektit, në skedën "Parametrat", në vetinë "Emri i tabelës", zgjidhni tabelën e kërkuar.

Figura 23

· DBGrid (në skedën DataControls) - kërkohet për të shfaqur tabelën në formular, në Object Inspector, në vetinë DataSource, specifikoni burimin e kërkuar të të dhënave.

Figura 24

· DBNavigator (në skedën DataControls) - kërkohet për të lundruar nëpër të dhënat e tabelës. Në inspektorin Object, vetia DataSource specifikon të njëjtin burim të dhënash si në DBGrid. Funksionet e navigatorit janë të disponueshme duke klikuar mbi butonat e tij gjatë ekzekutimit të aplikacionit. Komponenti përmban 10 butona.

Figura 25

· Burimi i të Dhënave (Skeda e Aksesit të të Dhënave) - një komponent i nivelit të ndërmjetëm për aksesin e të dhënave. Shërben si ndërmjetës midis tabelave DBMS dhe kontrolleve në ekran (DBGrid, DBNavigator).

Figura 26

14. Krijimi i një fushe me informacion (Memo) dhe butona

Komponenti Memo vendoset në formular, i cili ndodhet në skedën Standard.

Figura 27

Në inspektorin e objektit në skedën "Parametrat", në vetinë Lines, shkruani tekstin e kërkuar për shfaqje

Figura 28

Krijimi i butonave.

Për mbylljen e saktë të formularit, mbi të vendoset një komponent Button, i cili ndodhet në skedën Standard.

Figura 29

Në mënyrë që butoni të funksionojë, duhet të specifikoni në mbajtësin e ngjarjeve OnClick:

procedura TForm1.N5Klikoni (Dërguesi: TObject);

fillojnë

Forma2.Tregoni;

Forma1.Mbyll;

fundi;

15. Krijimi i nënshkrimeve për tabela

Për të nënshkruar tabelën në punën e kursit, është përdorur komponenti Lable, i vendosur në skedën Standard. Në Object Inspector, në pronësinë Caption, ju vetëm duhet të shkruani tekstin.

Figura 30

16. Krijo një listë rënëse

Për të zgjedhur një komandë nga lista e disponueshme, përdorni komponentin ComboBox (lista rënëse). Mund të plotësohet në këtë mënyrë

Në Inspektorin e Objekteve, në pronën Items, duhet të shkruani:

Figura 31

16. Gjenerimi i raporteve

Raporti krijohet duke përdorur mjetin QReports, i cili duhet të lidhet që në fillim: Komponenti-> instaloni paketat-> shtoni hapni dosjen e koshit zgjidhni skedarin dclqrt70.bpl kliko OK dhe më pas do të shfaqet një skedë me komponentët QReport. Komponentët që përdor:

tabela 2

17. Listimi i programeve

Përshkrimi i projektit

programi Projekti1;

përdor

Format,

Njësia 1 në "Unit1.pas" (Forma1),

Unit2 në "Unit2.pas" (Form2),

Unit3 në "Unit3.pas" (Form3),

Njësia 4 në "Unit4.pas" (Form4),

Unit5 në "Unit5.pas" (Form5),

Njësia 6 në "Unit6.pas" (Formulari 6),

Unit7 në "Unit7.pas" (Form7),

Njësia 8 në "Unit8.pas" (Forma 8),

Njësia 9 në "Unit9.pas" (Formulari 9),

Unit10 në "Unit10.pas" (Form10),

Unit11 në "Unit11.pas" (Form11),

Unit12 në "Unit12.pas" (Form12),

Njësia 13 në "Unit13.pas" (Formulari 13),

Njësia14 në "Unit14.pas" (Formulari14);

($ R * .res)

fillojnë

Aplikimi.Inicializoj;

Application.CreateForm (TForm1, Form1);

Application.CreateForm (TForm2, Form2);

Application.CreateForm (TForm3, Form3);

Application.CreateForm (TForm4, Form4);

Application.CreateForm (TForm5, Form5);

Application.CreateForm (TForm6, Form6);

Application.CreateForm (TForm7, Form7);

Application.CreateForm (TForm8, Form8);

Application.CreateForm (TForm9, Form9);

Application.CreateForm (TForm10, Form10);

Application.CreateForm (TForm11, Form11);

Application.CreateForm (TForm12, Form12);

Application.CreateForm (TForm13, Form13);

Application.CreateForm (TForm14, Form14);

Aplikimi.Run;

fund.

Përshkrimi i modulit të njësisë 1

njësia Njësia 1;

ndërfaqe

përdor

Dialogët, StdCtrls;

lloji

TForm1 = klasë (TForm)

Memo1: TMemo;

Butoni 1: TButton;

Butoni 2: TButton;

Butoni 3: TButton;

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma1: TForm1;

zbatimi

përdor Unit2, Unit4, Unit6, Unit7, Unit5, Unit8, Unit9, Unit10;

($ R * .dfm)

procedura TForm1.Button3Click (Dërguesi: TObject);

fillojnë

Forma2.shfaq;

fundi;

procedura TForm1.Button2Click (Dërguesi: TObject);

fillojnë

Forma1.Mbyll;

fundi;

procedura TForm1.Button1Click (Dërguesi: TObject);

fillojnë

Forma4.shfaq;

fundi;

fund.

Përshkrimi i modulit të njësisë 2

njësia Njësia 2;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, StdCtrls;

lloji

TForm2 = klasë (TForm)

Memo1: TMemo;

GroupBox1: TGroupBox;

Butoni 1: TButton;

Butoni 2: TButton;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma2: TForm2;

zbatimi

përdor Njësinë 3;

($ R * .dfm)

procedura TForm2.Button1Click (Dërguesi: TObject);

fillojnë

Forma3.shfaq;

Forma2.Mbyll;

fundi;

procedura TForm2.Button2Click (Dërguesi: TObject);

fillojnë

Forma2.Mbyll;

fundi;

Përshkrimi i modulit të njësisë 3

njësia Njësia 3;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, ComCtrls, ExtCtrls, DBCtrls, Rrjetet, DBGrids, DB, DBTables,

StdCtrls, QuickRpt, QRCtrls;

lloji

TForm3 = klasë (TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

Burimi i të Dhënave1: TDataSource;

Burimi i të Dhënave2: TDataSource;

Burimi i të Dhënave3: TDataSource;

Burimi i të Dhënave 4: TDataSource;

Tabela 1: TTtabela;

Tabela 2: TTtabela;

Tabela 3: TTtabela;

Tabela 4: TTtabela;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DBGrid2: TDBGrid;

DBNavigator2: TDBNavigator;

DBGrid3: TDBGrid;

DBNavigator3: TDBNavigator;

DBGrid4: TDBGrid;

DBNavigator4: TDBNavigator;

DBGrid5: TDBGrid;

DBNavigator5: TDBNavigator;

DBGrid6: TDBGrid;

DBNavigator6: TDBNavigator;

Butoni 1: TButton;

Burimi i të Dhënave 5: TDataSource;

Burimi i të Dhënave6: TDataSource;

Tabela 5: TTtabela;

Tabela 6: TTtabela;

Pyetja 1: TQuery;

Butoni 2: TButton;

Label1: TLabel;

Memo1: TMemo;

Label3: TLabel;

Butoni 3: TButton;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

procedura Button3Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma3: TForm3;

zbatimi

përdor Unit5, Unit11;

($ R * .dfm)

procedura TForm3.Button1Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Forma3.mbyll;

fundi;

procedura TForm3.Button2Click (Dërguesi: TObject);

fillojnë

Query1.ExecSQL;

Forma3.Rifresko;

fundi;

procedura TForm3.Button3Click (Dërguesi: TObject);

fillojnë

Forma3.mbyll;

fundi;

Përshkrimi i modulit të njësisë 4

njësia Njësia 4;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, StdCtrls;

lloji

TForm4 = klasa (TForm)

Memo1: TMemo;

Butoni 1: TButton;

procedura Button1Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma4: TForm4;

zbatimi

përdor Njësinë 1;

($ R * .dfm)

procedura TForm4.Button1Click (Dërguesi: TObject);

fillojnë

Forma1.shfaq;

fundi;

Përshkrimi i modulit të njësisë 5

njësia Njësia 5;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, DB, Tabelat DB, Rrjetet, DBGrids, StdCtrls, Maska, DBCtrls, ExtCtrls;

lloji

TForm5 = klasë (TForm)

Burimi i të Dhënave1: TDataSource;

DBGrid1: TDBGrid;

Pyetja 1: TQuery;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DBNavigator1: TDBNavigator;

Butoni 1: TButton;

procedura ComboBox1Change (Dërguesi: TObject);

procedura Edit1Change (Dërguesi: TObject);

procedura Button1Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma5: TForm5;

zbatimi

përdor Njësinë 11;

($ R * .dfm)

procedura TForm5.ComboBox1Change (Dërguesi: TObject);

fillojnë

Pyetja1.Aktiv: = e vërtetë;

fundi;

procedura TForm5.Edit1Change (Dërguesi: TObject);

fillojnë

Pyetja1.Open;

fundi;

procedura TForm5.Button1Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Forma5.Mbyll;

fundi;

Përshkrimi i njësisë 6

njësia Njësia 6;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, DB, Tabelat DB, Rrjetet, DBGrids, StdCtrls, ExtCtrls, DBCtrls;

lloji

TForm6 = klasa (TForm)

Butoni 1: TButton;

Edit1: TEdit;

Burimi i të Dhënave1: TDataSource;

DBGrid1: TDBGrid;

Pyetja 1: TQuery;

Label1: TLabel;

DBNavigator1: TDBNavigator;

Label2: TLabel;

Memo1: TMemo;

Butoni 2: TButton;

Label3: TLabel;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma6: TForm6;

zbatimi

përdor Njësinë 11;

($ R * .dfm)

procedura TForm6.Button1Click (Dërguesi: TObject);

fillojnë

Pyetja1.Mbyll;

nëse jo Query1.Përgatitur atëherë

Pyetja1.Përgatitja;

nëse gjatësia (redakto1.tekst)<>0 atëherë

tjetër

fillojnë

Pyetja1.Params.Vlera: = 0;

fundi;

Pyetja1.Open;

fundi;

procedura TForm6.Button2Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Formulari6.Mbyll;

fundi;

Përshkrimi i modulit të njësisë 7

njësia Njësia 7;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, StdCtrls, Rrjetet, DBGrids, Tabelat DB, DB, Maska, DBCtrls, ExtCtrls,

QRCtrls, QuickRpt;

lloji

TForm7 = klasë (TForm)

Label1: TLabel;

Label2: TLabel;

Burimi i të Dhënave1: TDataSource;

Pyetja 1: TQuery;

Edit2: TEdit;

Butoni 1: TButton;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Label3: TLabel;

DBGrid1: TDBGrid;

Label4: TLabel;

Label5: TLabel;

DBNavigator1: TDBNavigator;

Butoni 2: TButton;

Label6: TLabel;

Label7: TLabel;

Memo1: TMemo;

ComboBox1: TComboBox;

Label8: TLabel;

Butoni 3: TButton;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

procedura Button3Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma7: TForm7;

zbatimi

përdor Unit5, Unit11;

($ R * .dfm)

procedura TForm7.Button1Click (Dërguesi: TObject);

fillojnë

Pyetja1.Mbyll;

nëse jo Query1.Përgatitur atëherë

Pyetja1.Përgatitja;

nëse gjatësia (redakto2.tekst)<>0 atëherë

Query1.Params.Vlera: = redakto2.Text

tjetër

fillojnë

Pyetja1.Params.Vlera: = 0;

edit2.Text: = "Ju lutemi shkruani një titull!";

fundi;

Pyetja1.Open;

fundi;

procedura TForm7.Button2Click (Dërguesi: TObject);

fillojnë

Forma5.shfaq;

Formulari7.mbyll;

fundi;

procedura TForm7.Button3Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Formulari7.mbyll;

fundi;

Përshkrimi i modulit të njësisë 8

njësia Njësia 8;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

lloji

TForm8 = klasë (TForm)

Label4: TLabel;

Burimi i të Dhënave1: TDataSource;

Pyetja 1: TQuery;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

Butoni 1: TButton;

Memo1: TMemo;

procedura Button1Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma8: TForm8;

zbatimi

përdor Njësinë 11;

($ R * .dfm)

procedura TForm8.Button1Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Formulari8.mbyll;

fundi;

Përshkrimi i modulit të njësisë 9

njësia Njësia 9;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, Rrjetet, DBGrids, DB, DBTables, StdCtrls, Maska, DBCtrls, ExtCtrls;

lloji

TForm9 = klasë (TForm)

Edit1: TEdit;

Pyetja 1: TQuery;

Burimi i të Dhënave1: TDataSource;

DBGrid1: TDBGrid;

Butoni 1: TButton;

Pyetja 2: TQuery;

Burimi i të Dhënave2: TDataSource;

Butoni 2: TButton;

DBEdit1: TDBEdit;

DBNavigator1: TDBNavigator;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Emri: TComboBox;

Butoni 3: TButton;

Memo1: TMemo;

Label4: TLabel;

Butoni 4: TButton;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

procedura Button3Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Forma9: TForm9;

zbatimi

përdor Unit11, Unit13;

($ R * .dfm)

procedura TForm9.Button1Click (Dërguesi: TObject);

fillojnë

Pyetja1.Mbyll;

nëse jo Query1.Përgatitur atëherë

Pyetja1.Përgatitja;

nëse gjatësia (redakto1.tekst)<>0 atëherë

Query1.Params.Vlera: = redakto1.Tekst

tjetër

fillojnë

Pyetja1.Params.Vlera: = 0;

edit1.Text: = "Ju lutemi shkruani emrin e studentit!";

fundi;

Pyetja1.Open;

fundi;

procedura TForm9.Button2Click (Dërguesi: TObject);

fillojnë

Pyetja2.Mbyll;

nëse jo Query2.Përgatitur atëherë

Pyetja2.Përgatitja;

nëse gjatësia (redakto1.tekst)<>0 atëherë

Query2.Params.Vlera: = redakto1.Tekst

tjetër

fillojnë

Query2.Params.Vlera: = 0;

edit1.Text: = "Ju lutemi shkruani numrin e semestrit!";

fundi;

Pyetja2.Open;

fundi;

procedura TForm9.Button3Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

Formulari9.mbyll;

fundi;

procedura TForm9.Button4Click (Dërguesi: TObject);

fillojnë

Form13.QuickRep1.Preview;

fundi;

Përshkrimi i njësisë 10

njësia Njësia 10;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, ExtCtrls, QuickRpt, StdCtrls, DB, Tabelat DB, Maska, DBCtrls,

Rrjete, DBGrids;

lloji

TForm10 = klasë (TForm)

Butoni 1: TButton;

Pyetja 1: TQuery;

Burimi i të Dhënave1: TDataSource;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Butoni 2: TButton;

Label3: TLabel;

ComboBox1: TComboBox;

Label4: TLabel;

Label5: TLabel;

Memo1: TMemo;

Label6: TLabel;

Label7: TLabel;

Butoni 3: TButton;

procedura Button1Click (Dërguesi: TObject);

procedura Button2Click (Dërguesi: TObject);

procedura Button3Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Form10: TForm10;

zbatimi

përdor Unit3, Unit7, Unit12, Unit11;

($ R * .dfm)

procedura TForm10.Button1Click (Dërguesi: TObject);

fillojnë

Form12.QuickRep1.Preview;

fundi;

procedura TForm10.Button2Click (Dërguesi: TObject);

fillojnë

Pyetja1.Mbyll;

nëse jo Query1.Përgatitur atëherë

Pyetja1.Përgatitja;

nëse gjatësia (redakto1.tekst)<>0 atëherë

Query1.Params.Vlera: = redakto1.Tekst

tjetër

fillojnë

Pyetja1.Params.Vlera: = 0;

edit1.Text: = "Ju lutemi shkruani një titull!";

fundi;

Pyetja1.Open;

fundi;

procedura TForm10.Button3Click (Dërguesi: TObject);

fillojnë

Forma11.shfaq;

fundi;

Përshkrimi i njësisë 11

njësia Njësia 11;

ndërfaqe

përdor

Windows, Mesazhe, SysUtils, Variante, Klasa, Grafika, Kontrolle, Forma,

Dialogët, StdCtrls;

lloji

TForm11 = klasë (TForm)

Butoni 1: TButton;

Butoni 2: TButton;

Butoni 3: TButton;

Butoni 4: TButton;

Butoni 5: TButton;

Butoni 6: TButton;

Memo1: TMemo;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Butoni 7: TButton;

Label4: TLabel;

Label5: TLabel;

procedura Button2Click (Dërguesi: TObject);

procedura Button1Click (Dërguesi: TObject);

procedura Button4Click (Dërguesi: TObject);

procedura Button3Click (Dërguesi: TObject);

procedura Button5Click (Dërguesi: TObject);

procedura Button6Click (Dërguesi: TObject);

procedura Button7Click (Dërguesi: TObject);

private

(Deklarata private)

publike

(Deklarata publike)

fundi;

var

Form11: TForm11;

zbatimi

Dokumente të ngjashme

    Krijimi i tabelave dhe dizajnimi i sistemeve të menaxhimit të bazës së të dhënave. Dizajn infologjik. Skema relacionale Baza e të dhënave. Vlera e aplikuar e sistemeve: një raport mbi furnitorët dhe mallrat që ata furnizojnë. Deklaratë për disponueshmërinë e mallrave në dyqan.

    punim afatshkurtër, shtuar 12/01/2008

    Zhvillimi i një baze të dhënash me informacione për punonjësit, mallrat, me një libër referimi të llojeve të mallrave me anë të sistemit të menaxhimit të bazës së të dhënave MySQL duke përdorur pyetje SQL. Zhvillimi i një modeli infologjik të fushës lëndore. Struktura e tabelave, fushat e bazës së të dhënave.

    test, shtuar 13.04.2012

    Procesi i hartimit të bazës së të dhënave, zhvillimi i strukturës logjike të saj në përputhje me modelin infologjik të fushës lëndore. Puna me programin Hyni në DBMS, vetitë e tabelave dhe fushat e tyre, krijimi i lidhjeve ndërtabelore; dizajn infologjik.

    punim afatshkurtër, shtuar 17.12.2009

    Konceptet bazë të sistemeve të menaxhimit të bazës së të dhënave dhe bazës së të dhënave. Llojet e të dhënave me të cilat ata punojnë Bazat e Microsoft Qasja. Klasifikimi i DBMS dhe karakteristikat kryesore të tyre. Bazat e të dhënave post-relacionale. Tendencat në botën e sistemeve moderne të informacionit.

    punim afatshkurtër, shtuar 28.01.2014

    Karakteristikat e zhvillimit të një modeli infologjik dhe krijimit të një strukture të bazës së të dhënave relacionale. Bazat e dizajnit të bazës së të dhënave. Zhvillimi i tabelave, formularëve, pyetjeve për shfaqjen e informacionit rreth modelit përkatës. Puna me bazat e të dhënave dhe objektet e tyre.

    punim afatshkurtër, shtuar 11/05/2011

    Studimi i karakteristikave dhe funksionalitetin sistemet e menaxhimit të bazës Të dhënat e Microsoft Qasja në zyrë... Përkufizimi i klasave kryesore të objekteve. Zhvillimi i bazës së të dhënave "Punët në zyrë". Krijoni tabela, formularë, pyetje, raporte dhe skema të dhënash.

    abstrakt i shtuar më 12.05.2014

    Trendi i zhvillimit të sistemeve të menaxhimit të bazës së të dhënave. Modelet hierarkike dhe të rrjetit DBMS. Kërkesat themelore për bazë e shpërndarë të dhëna. Përpunimi i pyetjeve të shpërndara, ndërveprueshmëria. Teknologjia e riprodhimit të të dhënave dhe arkitektura me nivele.

    abstrakt, shtuar më 29.11.2010

    Informacioni teorik dhe konceptet bazë të bazave të të dhënave. Sistemet e menaxhimit të bazës së të dhënave: përbërja, struktura, siguria, mënyrat e funksionimit, objektet. Puna me bazat e të dhënave në OpenOffice.Org BASE: krijimi i tabelave, lidhjeve, pyetjeve duke përdorur "Query Wizard".

    punim afatshkurtër, shtuar 28.04.2011

    Hartimi i bazës së të dhënave të një sistemi për pranimin, përpunimin dhe regjistrimin e aplikacioneve në departamentin e teknologjisë së informacionit; zhvillimi i modeleve infologjike dhe datalogjike, zbatimi i një modeli fizik. Krijimi i aplikacioneve për vizualizimin e punës me bazën e të dhënave.

    tezë, shtuar 25.01.2013

    Duke theksuar objektet e informacionit dhe modelin e tyre infologjik. Struktura logjike e një baze të dhënash relacionale. Zhvillimi i tabelave në sistemin e menaxhimit të bazës së të dhënave Access. Krijimi i pyetjeve, formularëve dhe raporteve në Access DBMS. Zhvillimi i aplikacionit të përdoruesit.

Le të krijojmë një aplikacion të thjeshtë të bazës së të dhënave që del në forma e ekranit informacion nga tabela "Turistët" dhe regjistrimi i tabelës "Informacion turistik" i shoqëruar me rekordin aktual të tabelës "Turistët" nga baza e të dhënave Microsoft Access.

Për ta bërë këtë, le të krijojmë një aplikacion Windows bosh. Pamja e mjedisit

zhvillimi është paraqitur në figurën 39.

Oriz. 39. Aplikim bosh

Në figurën 39, është theksuar grupi i komponentëve "Data", i cili përmban komponentë për aksesin dhe manipulimin e të dhënave.

Lidhja e të dhënave të bazës së të dhënave me formularin kryhet nga komponenti "Burimi i lidhjes". Le ta transferojmë në formular. Pas vendosjes së tij në formular, mjedisi i zhvillimit merr formën e mëposhtme (Fig. 40).

Oriz. 40. Burimi i lidhjes së komponentëve në formular

Komponenti nuk është vizual, kështu që shfaqet në një panel shtesë. Vetia kryesore e komponentit është vetia DataSource, e cila tregon burimin e të dhënave. Si parazgjedhje, prona është bosh, kështu që ju duhet të formoni vlerën e saj. Kur zgjidhni të kësaj pasurie në dritaren e pronave shfaqet dritarja e mëposhtme (Fig. 41).

Oriz. 41. Lista e burimeve të të dhënave

Lista është aktualisht bosh, kështu që ju duhet të krijoni burim i ri të dhënat duke zgjedhur komandën "Shto burimin e të dhënave të projektit" për të krijuar një burim të ri të dhënash dhe për t'u lidhur me të. Shfaqet dialog box-i i mëposhtëm (fig. 42).

Oriz. 42. Lista e burimeve të të dhënave

Ky dialog ofron zgjedhjen e mëposhtme të burimeve të të dhënave:

Baza e të dhënave - Baza e të dhënave;

Shërbimi - Një shërbim është një lloj shërbimi që ofron të dhëna. Më shpesh është një shërbim Web;

Objekti - Një objekt për zgjedhjen e një objekti që do të gjenerojë të dhëna dhe objekte për të punuar.

Në rastin tonë, ju duhet të zgjidhni artikullin "Baza e të dhënave". Shfaqet një dritare për zgjedhjen e lidhjes së të dhënave (Fig. 43).

Oriz. 43. Zgjedhja e një lidhje të dhënash

Qëllimi i këtij dialogu është të krijojë një varg lidhjeje që do të përshkruajë parametrat e lidhjes për motorin ADO, si llojin e bazës së të dhënave, vendndodhjen e saj, emrat e përdoruesve, veçoritë e sigurisë, etj.

Lista rënëse e dialogut përmban të gjitha lidhjet e krijuara më parë. Nëse lidhja e kërkuar nuk është në listë, atëherë duhet të përdorni butonin "Lidhja e re". Shtypja e butonit çon në shfaqjen e dialogut të mëposhtëm (Fig. 44).

Në këtë dialog, ju zgjidhni llojin e burimit të të dhënave (në këtë rast Microsoft Access), emrin e bazës së të dhënave (në këtë rast, emrin dhe vendndodhjen e skedarit të bazës së të dhënave), emrin e përdoruesit dhe fjalëkalimin e përdorur për t'u lidhur me bazën e të dhënave. Butoni "Advanced" ju lejon të vendosni një numër të madh parametrash që lidhen me detaje të ndryshme të mekanizmit ADO. Përdorimi i butonit "Test Connection" do të sigurohet që parametrat e futur janë të sakta dhe se lidhja funksionon.

Oriz. 44. Krijimi i një lidhjeje të re

Hapi i fundit i dialogut është të zgjidhni ato tabela ose objekte të tjera të bazës së të dhënave që kërkohen në këtë burim të dhënash. Dritarja e përzgjedhjes është paraqitur në Figurën 45.

Oriz. 45. Zgjedhja e tabelave të kërkuara

Në këtë dritare zgjidhen tabelat "Turistët" dhe "Informacionet turistike". Meqenëse në bazën e të dhënave nuk u krijuan objekte të tjera përveç tabelave, në Figurën 45 shfaqen vetëm tabelat. Kjo përfundon krijimin e burimit të të dhënave. Kur klikoni Finish, një grup i të dhënave shfaqet pranë BindingSource në formular.

Tani të dhënat e lidhura më sipër duhet të shfaqen në formular. Mënyra më e thjeshtë për të shfaqur të dhënat është përdorimi i komponentit DataGridView nga grupi i komponentëve Data. Komponenti është vizual dhe duket kështu në formë (Fig. 46).

Oriz. 46. ​​Komponenti i të dhënave GridView

Menjëherë shfaqet dritarja e cilësimeve të komponentit, e cila përcakton opsionet e saj për redaktimin e të dhënave: "Aktivizo shtimin", "Aktivizo modifikimin", "Aktivizo fshirjen"; aftësia për të ndryshuar sekuencën e kolonave: "Aktivizo rirenditjen e kolonave"; dhe gjithashtu aftësia për t'u ankoruar në kontejnerin prind.

Në mënyrë që komponenti të shfaqë të dhëna, duhet të zgjidhni një burim të dhënash në listën rënëse. Zgjedhja e listës rënëse çon në shfaqjen e dialogut të mëposhtëm (Fig. 47).

Oriz. 47. Zgjedhja e një burimi të dhënash për DataGridView

Në këtë rast, ne kemi zgjedhur tabelën "Turistët" si burim të dhënash. Kjo përzgjedhje ndryshon ekranin si më poshtë (Fig. 48).

Oriz. 48. Component DataGridView shfaq strukturën e tabelës

Në figurë, mund të shihni se ekziston një komponent tjetër BindingSource dhe një komponent TableAdapter që funksionon me tabelën Turistët. Ju lutemi vini re se në kohën e projektimit ose gjatë zhvillimit, të dhënat nga tabela nuk shfaqen.

Tani ju duhet të shfaqni të dhënat nga tabela e lidhur e Informacionit Turistik. Për ta bërë këtë, vendosni një komponent tjetër DataGridView në formular dhe zgjidhni si burim të dhënash sa vijon (Fig. 49).

Oriz. 49. Përzgjedhja e një burimi të dhënash për DataGridView-in e dytë

Këtu, burimi i të dhënave nuk është vetë tabela "Informacioni Turistik", por Burimi Detyrues midis tabelave "Turistët" dhe "Informacioni Turistik". Kjo përzgjedhje siguron që vetëm ato rreshta që lidhen me linjë aktuale në tabelën “Turistët”. Kjo zgjedhje gjithashtu siguron që të dhënat e lidhura të përditësohen dhe fshihen në mënyrë korrekte. Funksionimi i aplikacionit që rezulton është paraqitur në Figurën 50.

Oriz. 50. Aplikimi i bazës së të dhënave në punë

Lundrimi nëpër të dhëna duke përdorur tastet e shigjetave është i papërshtatshëm. Ekziston një komponent BindingNavigator për të thjeshtuar navigimin përmes të dhënave. Vendoseni në formular (fig. 51).

Oriz. 51. Komponenti BindingNavigator në formular

Ky komponent ju lejon të lundroni midis regjistrimeve të tabelës, të shtoni dhe fshini rreshtat e tabelës. Mundësitë dhe pamjen komponenti është i personalizueshëm sepse është një shirit menuje ToolStripContainer.

Vetia që përcakton tabelën që do të navigohet është vetia BindingSource. Cakto vlerën e kësaj prone në TouristBindingSource. Në funksionim, komponenti duket kështu (Fig. 52).

Oriz. 52. Komponenti BindingNavigator në punë

Redaktimi i të dhënave në qelizat e komponentit DataGridView me cilësimet e duhura është i mundur, por i papërshtatshëm dhe jo racional. Në veçanti, është e vështirë të kontrollohen vlerat e futura për gabime. Prandaj, për tabelën "Turistët", do të bëjmë një formë ekrani që lejon shfaqjen e të dhënave në komponentët TextBox dhe modifikimin e tyre. Për ta bërë këtë, vendosni një enë të tipit Panel në formular dhe mbi të tre komponentë TextBox si më poshtë (Fig. 53).

Oriz. 53. Paneli i ekranit për redaktimin e shënimeve të tabelës "Turistët"

Tani është e nevojshme të lidhni komponentët TextBox me fushat përkatëse të tabelës "Turistët". Për ta bërë këtë, përdorni veçorinë nga grupi DataBindings - Advanced, e paraqitur në Figurën 54.

Oriz. 54. Vetia "DataBindings - Advanced"

Zgjedhja e kësaj vetie çon në shfaqjen e dialogut të paraqitur në figurën 55. Ky dialog ju lejon të kryeni jo vetëm lidhjen e të dhënave, por gjithashtu të vendosni një ngjarje brenda së cilës të dhënat do të përditësohen, si dhe të formatoni të dhënat kur ato shfaqen .

Për komponentin e sipërm TextBox në listën rënëse Binding, zgjidhni burimin e të dhënave "touristsBmdmgSource" dhe fushën e burimit - "Mbiemri". Për komponentët e mesëm dhe të poshtëm të TextBox, zgjidhni të njëjtin burim të dhënash dhe fushat "Emri" dhe "patronimik", përkatësisht.

Aplikacioni i zhvilluar në funksionim duket si më poshtë (Fig. 56).

Oriz. 55. Kutia e dialogut për veçorinë "DataBindings - Advanced".

Oriz. 56. Lidhja e të dhënave me komponentët vizualë

Megjithatë, kur bëhen ndryshime, të gjitha të dhënat e reja mbeten vetëm në formular. Ato nuk ruhen në bazën e të dhënave dhe sigurisht që nuk do të jenë të pranishme kur aplikacioni të thirret sërish. Kjo është për shkak se të dhënat janë ngarkuar në një DataSet, i cili është një kopje në memorie e tabelës. Të gjitha veprimet kryhen me këtë kopje. Në mënyrë që ndryshimet të pasqyrohen në bazën e të dhënave, duhet të ekzekutoni metodën Update të klasës TableAdapter. Kështu, në aplikacionin e zhvilluar është e nevojshme të vendosni butonin Update dhe të shkruani kodin e programit të mëposhtëm në mbajtësin e ngjarjeve Click:

turistëtTableAdapteгUpdate (bDTur_firmDataSet); info_about_turistsTableAdapter.Update (bDTur_firmDataSet);

Ky kod përditëson informacionin në tabelat "Turistët" dhe "Informacionet turistike" të ofruara nga burimi i të dhënave. Vini re se kjo metodë është e mbingarkuar dhe variantet e saj ju lejojnë të përditësoni si një rresht të vetëm të tabelës ashtu edhe një grup rreshtash.

Një nga skenarët më të zakonshëm në zhvillimin e aplikacioneve është shfaqja e të dhënave nga DB në formular Format e Windows... Prandaj, duke marrë parasysh proceset që përdoren gjatë punës me grupet e të dhënave të ofruara nga Microsoft ( oriz. 5.6.1-2 ), dhe duke marrë parasysh faktin se detyrat e paraqitura janë edukative, në shembujt do të shqyrtojmë proceset e mëposhtme:

    Zhvillimi i bazës së të dhënave.

    Zhvillimi i aplikacionet Windows:

      krijimi i projektit;

      krijimi i ndërfaqes së përdoruesit;

      krijimi i një lidhjeje me të dhënat e bazës së të dhënave dhe shfaqja e tyre në formular

      redaktimi, kontrollimi dhe ruajtja e të dhënave në aplikacion;

      zhvillimi i kodit të programit të aplikacionit.

    Ekzekutimi i aplikacionit.

    Analiza e rezultateve të aplikimit.

5.6.3.1. Një shembull i krijimit të një projekti "Passes" për të punuar me bazën e të dhënave "DataBase1"

Ushtrimi:

Në bazën e të dhënavecEmri "Baza e të Dhënave 1 "në ditë të caktuara merret informacion për numrin e orëve të munguara që kanë nxënësit në secilën nga tre lëndët, ndërkohë që disponohet informacioni i mëposhtëm:

    data e inspektimit;

    grup studimi;

    mbiemri i studentit;

    viti i lindjes;

    numri i orëve të humbura në shkenca kompjuterike;

    numri i orëve të humbura në matematikë

    numri i orëve të humbura në fizikë.

Është e nevojshme të krijohet një projekt me emrin "Passes", i cili, duke përdorur informacionin nga kjo bazë të dhënash, llogarit se në cilën ditë dhe në cilën lëndë ka pasur numrin më të madh të kalimeve (edhe shënoni emrin e studentit me këtë numër mungesash). Nëse ka disa ditë të tilla, atëherë renditini të gjitha.

    Krijimi i bazës së të dhënave "DataBase1"

Për të krijuar një tabelë me emrin PropClockStudentështë e nevojshme të krijohet struktura e saj, e cila do të ketë formën e treguar në Fig. 5.6.3-1.

Mbushja e një tabele me të dhëna mund të bëhet në modalitetin e tabelës. Pas mbushjes së tabelës PropClockStudent merr formën e treguar në figurën 5.6.3-2.

    Zhvillimi i një aplikacioni Windows për të punuar me bazën e të dhënave Access "DataBase1"

      Krijimi i një projekti të ri.

Krijo një projekt me emrin Kalon1.

      Krijimi i ndërfaqes së përdoruesit.

Krijoni një ndërfaqe përdoruesi nga një formë, e cila tregohet në Fig. 5.6.3-3.

Vini re se shablloni i tabelës PropClockStudent shfaqet në formular vetëm pas lidhni grupin e të dhënave të aplikacionit me bazën e të dhënave DataBase1.

      Lidhja e grupit të të dhënave të aplikacionit me bazën e të dhënave DataBase1 të Access DBMS dhe shfaqja e tyre në formular.

Procedura e lidhjes së aplikacionit VS te të dhënat në bazën e të dhënave Hyni në DBMS mund të thjeshtohet duke përdorur Magjistarët e konfigurimit të burimit të të dhënave... Pas përfundimit të punës Mjeshtrit të dhënat në dritare Burimet e të dhënave bëhen të disponueshme për zvarritje dhe lëshim në forma.

Për të krijuar një grup të dhënash duke përdorur Magjistarët e konfigurimit të burimit të të dhënave

e nevojshme:

    Në element Të dhënat zgjidhni komandën nga menyja kryesore Shto një burim të ri të dhënash ose Trego burimet e të dhënave.

Si rezultat, një dritare do të shfaqet në mjedisin e zhvillimit Magjistari i konfigurimit të burimittë dhëna(Rështë. 5.6.3-4) .

Është një veçori e re Visual Studio IDE e cila automatikisht përgatit programin për Bazë vizuale për të marrë informacion nga baza e të dhënave. Mjeshtër kërkon llojin e bazës së të dhënave për t'u lidhur me ( lokal ose databaza në distancë ,Shërbimi në internet ose objekti i të dhënave, krijuar nga ju), krijon një lidhje të dhënash dhe më pas krijon një grup të dhënash në program që ruan tabelat e zgjedhura dhe fushat e bazës së të dhënave. Rezultati përfundimtar është se magjistari hap një dritare Burim i të dhënave dhe e plotëson atë me një paraqitje vizuale të çdo objekti të bazës së të dhënave të përdorur në program.

    Pas përzgjedhjes Burimi i të dhënave për aplikacioninBaza e të dhënave dhe duke shtypur tastin Me tutjeMjeshtër kërkesat Zgjedhja e një lidhjeje DB(fig. 5.6.3-5).

    Në dritare Zgjedhja e një burimi të dhënash(Fig. 5.6.3-6) zgjidhni DB cili është burimi i të dhënave - Qasja në skedarin e bazës së të dhënave, dhe pastaj klikoni në butonin Me tutje.

Magjistari do të shfaqë formularin - Shtimi i një lidhjeje e cila ndihmon për të krijuar një lidhje me bazën e të dhënave duke krijuar një varg të quajtur vargun e lidhjes (fig. 5.6.3-7).

    Vargu lidhës përmban informacionin që kërkohet VS për të hapur dhe marrë informacion nga një skedar i bazës së të dhënave. Ai përfshin shtegun dhe emrin e skedarit, si dhe informacione shtesë si emrin e përdoruesit dhe fjalëkalimin. Për këtë arsye, duke punuar me një vijë lidhëse në një dritare Magjistari i konfigurimit të burimit të të dhënaveështë shumë i rregullt dhe duhet të kujdeseni për ta mbrojtur atë nga aksesi i paautorizuar kur kopjoni skedarët origjinal nga një vend në tjetrin.

Pra në dritare Shtimi i një lidhjeje zgjidhni bazën e të dhënave QasjaBaza e të dhënaveSkedari.

    Futni shtegun për në skedarin e bazës së të dhënave Baza e të Dhënave1.mdb ose klikoni butonin Vështrim i përgjithshëm për të gjetur këtë skedar , dhe më pas shtypni butonin Ne rregull.

    Kutia e dialogut shfaqet përsëri Shtimi i një lidhjeje(Shto lidhje) që përmban shtegun për në bazën e të dhënave.

    Klikoni në butonin Kontrollo lidhjen. Studio pamore do të përpiqet të hapë skedarin e specifikuar të bazës së të dhënave duke përdorur vargun bind të krijuar nga magjistari.

    Klikoni në butonin Ne rregull për të mbyllur kutinë e mesazheve dhe më pas klikoni butonin Ne rregull për të mbyllur dialogun Shto lidhje.Studio pamore do të shfaqet sërish dritarja Magjistari i konfigurimit të burimit të të dhënave ( oriz. 5.6.3-8)

    Në kutinë e dialogut, klikoni shenjën plus (+) pranë Vargu i lidhjes. Faqja e magjistarit duhet të duket diçka si ajo në fig. 5.6.3-9.

Vargu lidhës identifikon ofruesin.

Mjeshtër do të shfaqë një paralajmërim që tregon se është zgjedhur një bazë e re e të dhënave lokale (Fig. 5.6.3-10)

Oriz. 5.6.3-10

Për të shmangur krijimin e një kopjeje shtesë të bazës së të dhënave, klikoni butonin Jo, dhe më pas në butonin Me tutje.

ku Magjistari i konfigurimit të burimit të të dhënave do të bëjë një pyetje të tillë në lidhje me vargjet e ruajtjes dhe lidhjes.

Si parazgjedhje, zgjidhet opsioni për të ruajtur vargun lidhës dhe, si emër i vargut në këtë shembull, " DataBase1ConnectionString". Zakonisht, duhet ta ruani këtë rresht në skedarin e konfigurimit të aplikacionit të paracaktuar, i cili është i disponueshëm në dritare Eksploruesi i zgjidhjeve pasi në këtë rast, kur ndërrohet vendndodhja e bazës së të dhënave, kjo linjë mund të redaktohet lehtësisht pa kërkuar atë në kodin e programit dhe pastaj rikompilimin e aplikacionit (Fig. 5.6.3-11).

Më pas do t'ju kërkohet të zgjidhni një nëngrup të objekteve të bazës së të dhënave që do të përdoren në këtë projekt, siç tregohet në dritare Magjistari i konfigurimit të burimit të të dhënave treguar në Fig. 5.6.3-12.

Oriz. 5.6.3-12

Studio pamore ju lejon të përdorni jo vetëm të gjithë bazën e të dhënave, por edhe një pjesë të saj ose kombinimin e disa bazave të të dhënave të ndryshme - kjo është e dobishme kur krijoni aplikacione të bazuara në të dhëna.

Për detyrën tonë, ju duhet të zgjidhni të gjitha tabelat (kontrolloni kutitë e duhura në kuti).

    Për të shtuar funksionalitet në aplikacion, domethënë për të shfaqur tabelat e bazës së të dhënave në formular, duhet t'i tërhiqni nga dritarja Burim i të dhënave në formular.

Zvarritja e artikujve nga dritarja Burimet e të dhënave shtohet automatikisht në formë kodi i kërkuar për të mbushur grupin e të dhënave në mbajtësin e ngjarjeve Form1_Load () (Fig. 5.6.3-13).

Oriz. 5.6.3-13

      Redaktimi, kontrollimi dhe ruajtja e të dhënave në aplikacion

Pasi të plotësohet grupi i të dhënave, është e zakonshme të shtoni, modifikoni ose fshini të dhënat përpara se t'i dërgoni ato përsëri në burimin e të dhënave, një proces tjetër ose aplikacion. Meqenëse çdo rekord në grupin e të dhënave përfaqësohet nga një objekt DataRow, ndryshimet në grupin e të dhënave bëhen duke manipuluar rreshtat individualë.

V Format e Windows arkitektura e lidhjes së të dhënave ka të bëjë me shtyrjen e ndryshimeve nga kontrollet e lidhura me të dhënat në grupin e të dhënave, kështu që nuk keni nevojë të përditësoni në mënyrë eksplicite grupin e të dhënave me kodin tuaj. Grupet e të dhënave mbështesin versione të shumta të rreshtave të të dhënave për të gjetur regjistrimet origjinale në burimin e të dhënave. Mund t'ju duhet të vërtetoni rreshtat individualë përpara se të kryeni një përditësim të burimit të të dhënave.

Modifikimi i të dhënave në një grup të dhënash është procesi i manipulimit të të dhënave aktuale në objektet individuale që përbëjnë grupin e të dhënave. Ndryshimi i të dhënave në tabelat e të dhënave është si ndryshimi i të dhënave në një tabelë në çdo bazë të dhënash – procesi mund të përfshijë futjen, përditësimin dhe fshirjen e të dhënave nga tabela.

Përveç ndryshimit të të dhënave aktuale, mund të kërkoni gjithashtu në DataTable për të kthyer rreshta të veçantë të dhënash, si rreshta të vetëm, versione të rreshtave të veçantë (origjinalë dhe të sugjeruar), vetëm rreshta të ndryshuar dhe rreshta që përmbajnë gabime.

      Zhvillimi i kodit të programimit të aplikacionit

Forma e parë do të shoqërohet me kodin e paraqitur në Fig. 5.6.3-14.

Departamenti i Informatikës së Aplikuar

Shënim shpjegues për punimin terminor

sipas disiplinës:

"Baza e të dhënave"

"Zhvillimi i bazës së të dhënave dhe aplikacionit të klientit"

Kaluga 2009


Prezantimi

1. Deklarata e problemit

2. Dizajnimi, krijimi dhe menaxhimi i bazës së të dhënave

3. Manuali i përdorimit teknologjik

konkluzioni

Bibliografi


Prezantimi

Qëllimi i kursit tim është të ndërtoj një bazë të dhënash dhe të mësoj elementet bazë të gjuhës SQL, si dhe të fitoj aftësi praktike në krijimin e një databaze të thjeshtë.

Rëndësia e punës së kursit përkufizohet si nevoja për të krijuar dhe dizajnuar baza të të dhënave.

Në botën moderne, ekzistojnë shumë baza të të dhënave të ndryshme. Pa të cilën epoka e teknologjisë së informacionit nuk mund të ekzistonte dhe të zhvillohej në mënyrë progresive. Bota moderne nuk mund të bëjë pa informacion të strukturuar dhe të renditur; bazat e të dhënave ju lejojnë ta bëni këtë. Bazat e të dhënave janë thelbësore për shumë fusha të veprimtarisë njerëzore, qofshin ato bankare, dyqanet ushqimore ose kontabiliteti për shpenzimet e familjes.

Bazat e të dhënave gjenden në çdo hap. Pothuajse çdo sistem është një bazë të dhënash e ndërtuar mirë, për shembull, "Konsulenti +" i njohur ose regjistrimi i një takse të vetme në Ministrinë e Tatimeve dhe Tatimeve.

Baza ime e të dhënave është krijuar për të automatizuar operacionet, për të marrë informacion të besueshëm dhe në kohë.

Objektivat e punës së kursit janë si më poshtë:

Zbatoni një bazë të dhënash;

Për të zbatuar ndërfaqja e përdoruesit;

Hartoni raporte;

Në ditët e sotme, shumë gjuhët moderne programimi, mbështetja e programimit të bazës së të dhënave, me ndihmën e gjuhëve të tilla, mund të krijoni bazën e nevojshme të të dhënave, qoftë e thjeshtë apo super komplekse.


1. Deklarata e problemit

Baza e zhvilluar e pjeprit përbëhet nga disa "nivele". "Shtesa" më abstrakte është skema e të dhënave. Në këtë nivel, marrëdhëniet ndërmjet tabelave shfaqen drejtpërdrejt.

Në këtë punë kursi përcaktohen detyrat:

Ndërtimi i një modeli fizik në kompjuter (duke përdorur Erwin);

Përkufizimi i lidhjeve, llojet e të dhënave;

Zhvillimi i një ndërfaqeje miqësore për përdoruesit;

Krijimi i kërkesave, formularëve;

Krijimi i raporteve (në detyrë);

Ndërtimi i formularit të butonit kryesor;

Në punimin tim të afatit, u krijua një fragment i sistemit të kontabilitetit të punonjësve, në këtë drejtim, kontabiliteti përbëhet nga operacionet e mëposhtme:

Në punën time të kursit, u krijua një fragment i një sistemi të kontabilitetit të produktit, në këtë drejtim, kontabiliteti përbëhet nga operacionet e mëposhtme:

Kontabiliteti i mallrave;

Kontabiliteti i mallrave sipas grupeve;

Kontabiliteti i mallrave me fatura;

Ky sistem është krijuar për të automatizuar këto operacione, për të marrë informacion të besueshëm dhe në kohë dhe për të gjeneruar dokumente dalëse.

2. Dizajnimi, krijimi dhe menaxhimi i bazës së të dhënave

Baza e të dhënave përmban 4 tabela.

1) Tabela Grupi i produkteve, përmban 2 kolona Numri i grupit të produktit dhe Emri i grupit të produktit.


2) Tabela Produkt, përmban 4 kolona Produkt_Numri, Emri i produktit, Çmimi, Numri i grupit të produkteve.


3) Tabela e kontrollit, përmban 2 kolona: Check_number, Data.

4) Tabela Item by check, përmban 3 kolona: Numri i artikullit, Numri i çekut. Sasi.

Për lehtësinë e punës me bazën e të dhënave, janë krijuar disa forma.

Qëllimi i formularëve është shumë i larmishëm, format mund të përdoren për të shfaqur pyetje, tabela, lehtësinë e shkrimit në tabela, etj.

Formularët për pyetje.

1) Formulari i kërkesës1 (shih Fig. 1)

Është e nevojshme të tërhiqni mallrat sipas një numri specifik kontrolli. Ky formular ofron një ndërfaqe të përshtatshme për futjen e informacionit, si dhe shikimin e përshtatshëm të raportit.


Oriz. 1 Formulari i kërkesës1

Për shembull. Fusni numrin e kontrollit në textBox - 7 dhe klikoni në butonin - Shiko raportin (Shih Fig. 2)


Oriz. 2 Raportoni operacionin1

2) Formulari i kërkesës2

Është e nevojshme të shfaqet artikulli sipas datës. Ky formular ofron një ndërfaqe të përshtatshme për futjen e informacionit, si dhe shikimin e përshtatshëm të raportit.


Oriz. 3 Formulari i kërkesës2

Për shembull. Shkruani datën në textBox - 11/12/08 dhe klikoni në butonin - Shiko raportin. (shih Fig 4)


Oriz. 4 Operacioni i pyetjes2


Organizimi i futjes së të dhënave në tabela bëhet përmes formularëve përkatës. Për lehtësi, u krijua një formular i butonit kryesor. (shih Fig. 5)

Kjo formë duket si kjo:


Oriz. 5 Forma e butonit

Menuja kryesore ndodhet këtu. Secili nga butonat ofron qasje në raporte, kur klikoni, mund t'i shikoni shumë lehtë raportet.

Në nënmenynë Tabelat, tabelat për futjen e informacionit paraqiten në një formë të përshtatshme.

Skema e të dhënave (Shih Fig. 6


Oriz. 6 Skema e të dhënave

Skema e të dhënave është krijuar duke përdorur programin Erwin.

3. Udhëzimi teknologjik i përdoruesit

Për shembull:

- Po prezantojmë një produkt të ri.

Për të futur një produkt të ri, duhet të kryeni hapat e mëposhtëm (shih Fig. 7):

Shkoni te formulari i butonit kryesor -> klikoni butonin e tabelës -> kliko butonin e produktit -> shkruani emrin e produktit, çmimin e tij dhe zgjidhni se cilit grup produktesh i përket.


Oriz. 7 Hyrja e një punonjësi të ri

Nëse lista e grupeve të produkteve grupi i duhur përndryshe e futim manualisht

Shtypni butonin Grupi i produkteve -> dhe futni një grup të ri produktesh. (shih Figurën 8)



Fig 8. Krijimi i një grupi të ri produktesh.


-> zgjedh edhe numrin e kontrollit për këtë produkt -> shkruani sasinë e këtij produkti. (shih Figurën 10)



konkluzioni

Objektivat e punës së kursit plotësohen plotësisht. Është zhvilluar një bazë të dhënash për të llogaritur mallrat. Puna e kursit u krijua në MS Access. Skema e të dhënave ( modeli fizik) është ndërtuar në programin Erwin. Një ndërfaqe e përshtatshme përdoruesi është zbatuar gjithashtu për futjen e sigurt dhe të lehtë të informacionit. Në këtë punim plotësohen edhe detyrat që janë parashtruar në fillim të punës së kursit, zgjidhen të gjitha problemet dhe zgjidhja e tyre mund të shihet drejtpërdrejt në punën e kursit.

Duke zhvilluar këtë punë të kursit, kuptova se Microsoft Access DBMS është një mjet i fuqishëm dhe i përshtatshëm për krijimin e bazave të të dhënave. Një ndërfaqe grafike me shumë dritare që më lejon të krijoj në mënyrë interaktive tabela, forma, pyetje, raporte. Pajisjet speciale që automatizojnë punën gjatë krijimit dhe mirëmbajtjes së bazës së të dhënave (Magjistarët dhe Konstruktorët, Asistentët, etj.) thjeshtojnë ndjeshëm të gjithë procesin dhe e bëjnë programin të aksesueshëm për të gjithë në mësim.

Besoj se në profesionin tim, aftësi të tilla, qoftë edhe ato elementare, do të më jenë shumë të dobishme me kalimin e kohës.

Ishte gjithashtu shumë interesante dhe e përshtatshme për të punuar në MS Access, për të krijuar formularë, për të punuar me ndihmë, për të parë dhe studiuar libra në bazat e të dhënave dhe, në veçanti, MS Access. Pa dyshim, arrita të njihem me një program kaq të mrekullueshëm si Erwin, i cili ndihmon për të kuptuar shpejt dhe më mirë krijimin e bazave të të dhënave. Natyrisht, bazat moderne të të dhënave po bëhen çdo ditë e më shumë, duke plotësuar nevojat e përdoruesve, prandaj lind detyra se si të krijohen baza të tilla të dhënash, si të menaxhohen ato... Pasi të keni lexuar dhe analizuar këtë punë të kursit, padyshim që mund të merrni aftësi bazë në ndërtimin e të dhënave të bazave të të dhënave.

Bibliografi

1. Microsoft Access 2000. Hap pas hapi: Praktikoni. manual. / Per. nga anglishtja

Moskë: Shtëpia Botuese EKOM, 2002 .-- 352 f.: ill.

2. Udhëzues vetë-studimi: Office Access 2003. - St. Petersburg: Peter, 2004. - 464 f.: ill.

3. Bazat e të dhënave. Projektimi, zbatimi dhe mirëmbajtja. Teoria dhe

praktikë. edicioni i 3-të. : Per. nga anglishtja - M.: Shtepi botuese"William"

2003 .-- 1440 f. : i sëmurë. - Paralelisht. cicë. anglisht

30.04.2009 Alexey Kovyazin

Bazat e të dhënave relacionale kanë depërtuar pothuajse në të gjitha sistemet e informacionit dhe, me sa duket, janë bërë zona më e vendosur e IT, ku mund të shpikë pak, por realiteti është larg nga ideali.

Bazat e të dhënave relacionale përdoren sot në pothuajse të gjitha aplikacionet, duke filluar nga ato të ngulitura në pajisje të lëvizshme dhe speciale, aplikacione të bazuara në ueb dhe duke përfunduar me sistemet e menaxhimit të ndërmarrjeve. Depërtimi i bazave të të dhënave në të gjitha llojet e aplikacioneve po rritet dhe zhvilluesit po marrin gjithnjë e më shumë mjete dhe qasje miqësore për përdoruesit. Mund të krijohet përshtypja se zhvilluesit e aplikacioneve të bazës së të dhënave janë shtresa më "e pasur" e programuesve që kanë mjete për të gjitha rastet, por kjo është larg nga rasti. Embarcadero Technologies bleu divizionin e mjeteve të zhvillimit të CodeGear të Borland në 2008 dhe u bashkua mjete profesionale mjetet e zhvillimit dhe projektimit të aplikacioneve, mjetet e zhvillimit dhe menaxhimi i bazës së të dhënave, të cilat bënë të mundur eliminimin e problemeve ekzistuese si nga ana e aplikacioneve, ashtu edhe nga ana e bazave të të dhënave.

Dizajn kaotik i bazës së të dhënave

Në industrinë e sotme të zhvillimit software Besohet se është e pamundur të përcaktohen kërkesat për një produkt përpara fillimit të një projekti, dhe për këtë arsye zhvillimi duhet t'i përshtatet ndryshimit të vazhdueshëm të tyre. Si rezultat, proceset përsëritëse janë shfaqur për të përshtatur kërkesat në ndryshim dhe rifaktorimi i kodit burimor është bërë një pjesë integrale e zhvillimit të softuerit. Çfarë ndodh me bazat e të dhënave gjatë zhvillimit iterativ? Ndryshimi i kërkesave ju detyron të rregulloni skemën e bazës së të dhënave, dhe më shpesh kjo ndodh në mënyrë të errët, pa analiza pamjen e përgjithshme dhe varësitë. Tabelat, fushat, çelësat e huaj dhe kufizimet krijohen dhe ndryshohen në mënyrë kaotike, askush nuk monitoron integritetin e referencës dhe askush nuk mund të thotë me siguri se si ndryshon baza e të dhënave në përsëritjen N nga gjendja e saj në përsëritjen N-1.

Në fakt, zhvillimi i bazave të të dhënave sot kryhet me metodën "patch", si në ditët e dominimit të procesit "ujëvara" - në fillim të projektit, një model i caktuar i bazës së të dhënave "vizatohet" bazuar. në kërkesat e pjesshme të njohura për momentin, atëherë gjenerohet një bazë e të dhënave fizike dhe më pas harrohet modeli duke bërë ndryshime direkt në bazën e të dhënave. Disavantazhet e kësaj qasjeje janë të dukshme: shkëmbimi i njohurive dhe të kuptuarit e pamjes së madhe janë të vështira, dhe ndryshimet janë të errëta, ato mund të gjenerojnë kontradikta në logjikën dhe skemën e bazës së të dhënave, të cilat do të mbeten të pazbuluara deri në momentin e hyrjes. sistemi softuerik në funksionim, gjë që çon në humbje shumë të mëdha. Zhvilluesit modernë të aplikacioneve të bazës së të dhënave kanë nevojë për mjete që janë të orientuara drejt zhvillimit të përsëritur të bazës së të dhënave.

E para dhe më e shumta kusht i rëndësishëm palestër e tillë është prania aftësi të plota inxhinieri e kundërt(inxhinieri e kundërt, krijimi i një modeli të bazës së të dhënave bazuar në analizën e skemës fizike të saj) dhe inxhinieri direkte(inxhinieri përpara; krijimi dhe modifikimi i skemës së bazës së të dhënave fizike bazuar në model). Në praktikë, kjo do të thotë që një analizë skematike mund të kryhet duke përdorur mjetin e projektimit. bazë ekzistuese të dhënat, krijoni një model bazë të dhënash bazuar në të, ndryshoni modelin dhe aplikoni menjëherë ndryshimet, të cilat duhet të ndryshojnë vërtet saktë dhe vazhdimisht skemën e bazës së të dhënave dhe të mos e prishin apo ngatërrojnë atë.

Qasja përsëritëse gjithashtu na shtyn të krijojmë nënmodele të lidhura me një përsëritje të veçantë. Theksimi i çdo entiteti dhe atributi i tyre në një nënmodel ndihmon në ndarjen e fushave të përgjegjësisë si midis zhvilluesve të ndryshëm ashtu edhe ndërmjet përsëritjeve të ndryshme, duke siguruar integritetin e përgjithshëm të modelit. Natyrisht, ju duhet gjithashtu aftësia për të krahasuar dy modelet, dhe jo në formën e skripteve SQL, por në nivelin e entitetit dhe atributit, në mënyrë që të shihni dhe kuptoni plotësisht ndryshimet e bëra gjatë përsëritjes dhe ndikimin e tyre në të gjithë modelin.

Zhvilluesit e aplikacioneve rrallë punojnë vetëm, kështu që ata kanë nevojë për mjete bashkëpunimi, por nëse kjo është në rregull nga ana e zhvillimit të aplikacionit, bashkëpunimi i bazës së të dhënave zakonisht nuk mbështetet në asnjë mënyrë në nivelin e veglave. Bashkëpunimi nënkupton domosdoshmërisht një sistem kontrolli të versioneve: të gjitha versionet e modeleve dhe skema fizike e bazës së të dhënave duhet të ruhen në një depo të vetme, duke ofruar mundësinë e rikthimit dhe krahasimit të skemave që nga fillimi i procesit të zhvillimit.

Zhvillimi i bazës së të dhënave nuk është më pak i rëndësishëm se zhvillimi i aplikacioneve, prandaj, drejtimi strategjik i zhvillimit është t'i sigurojë procesit të zhvillimit të bazës së të dhënave me kontrollin e versionit dhe menaxhimin e kërkesave, si dhe lidhja e qartë e fazave të modelimit dhe modifikimit të bazave të të dhënave me përsëritjet dhe ndryshimin e kërkesave të një projekt softuerik. Për të zgjidhur problemet e mësipërme dhe për të mbështetur procesin modern përsëritës të zhvillimit të bazës së të dhënave, Embarcadero ofron ER / Studio - një vegël projektimi, analize, inxhinierike e kundërt dhe përpara që ju lejon të kontrolloni versionet e modelit bazuar në depon e vet. Mjeti Change Manager mund të përdoret për të kontrolluar ndryshimet e meta të dhënave në bazat e të dhënave fizike.

Kodi i zbërthyer

Problemi më i famshëm që ngadalëson shumë procesin e zhvillimit të aplikacioneve të bazës së të dhënave është nevoja për të përdorur mjete të ndryshme për të korrigjuar kodin e aplikacionit dhe kodin SQL në bazën e të dhënave.

Le të hedhim një vështrim në një shembull të thjeshtë. Supozoni se jeni duke zhvilluar një aplikacion në Delphi që thërret një procedurë të ruajtur në Oracle DBMS... Duke përdorur mjetet Delphi, zhvilluesi i aplikacionit mund të hap pas hapi në modalitetin e korrigjimit deri në momentin e thirrjes së pyetjes SQL, të shohë parametrat e kaluar në procedurën e ruajtur dhe rezultatin që procedura do të kthehet. Por çfarë ndodh brenda procedurës kur ajo ekzekutohet në serverin e bazës së të dhënave? Është e pamundur të përcaktohet kjo nga mjedisi i zhvillimit të aplikacionit tonë - për këtë ju duhet të shkarkoni një aplikacion për zhvillimin e SQL, i cili ka aftësinë të korrigjojë procedurat e ruajtura, dhe gjithashtu tregon planet për pyetjet SQL, statistikat e ekzekutimit të tyre, ju lejon për të parë dhe ndryshuar skemën e bazës së të dhënave. Sidoqoftë, nuk mund të kaloni parametra nga mjedisi i zhvillimit të aplikacionit në mjedisin e zhvillimit të SQL dhe duhet t'i kopjoni ato manualisht, duke kaluar nga një dritare në tjetrën. Gjithashtu nuk është e mundur të shihen rezultatet e detajuara të ekzekutimit të kodit SQL në Ndërtuesin e aplikacioneve, të tilla si plani i pyetjeve, statistikat e ekzekutimit etj. Ardhja e teknologjisë së korrigjimit ndër-gjuhësh i ka zgjidhur këto probleme.

Produkti i parë Embarcadero që mbështet korrigjimin ndër-gjuhësh është Zhvilluesi RapidSQL (dikur PowerSQL), pjesa vizuale e të cilit bazohet në teknologjinë Eclipse dhe për këtë arsye ju lejon të integroheni në çdo mjedis zhvillimi të bazuar në të (duke përfshirë, natyrisht, JBuilder) dhe korrigjimi dinamik ndër-gjuhësh. Tani, kur procedura e ruajtur ekzekutohet në server, zhvilluesi kalon automatikisht në një mjedis të plotë të korrigjimit të SQL brenda kornizës së të njëjtit mjet, i aftë për të korrigjuar si pyetjet e zakonshme SQL ashtu edhe procedurat e ruajtura. Zhvilluesi mund të shohë parametrat e hyrjes aktuale të pyetjeve dhe procedurat e ruajtura, duke marrë mundësinë për korrigjimin hap pas hapi të kodit SQL. Integrimi i Zhvilluesit RapidSQL në mjetet e zhvillimit të pajtueshëm me Eclipse është hapi i parë në integrimin e zhvillimit të aplikacioneve dhe bazës së të dhënave, dhe hapi tjetër është ofrimi i aftësive të ngjashme për Delphi, C ++ Builder dhe mjete të tjera të zhvillimit të aplikacioneve nga Embarcadero.

Aplikacionet e bazës së të dhënave me shumë platforma

Një sfidë e veçantë për zhvilluesit është zhvillimi i aplikacioneve të bazës së të dhënave që duhet të punojnë me shumë DBMS. Për shembull bankat dhe Kompanitë e sigurimit zakonisht kanë disa zyra të mëdha dhe shumë degë të vogla. Shumica e proceseve të biznesit që lidhen me futjen e informacionit operacional dhe rrjedhën e përditshme të punës janë të njëjta në selinë qendrore dhe në degë, por shkallët janë të ndryshme. Dëshira e natyrshme për të kursyer në koston e licencave DBMS industriale për përdorim në degë të çon në idenë se do të ishte mirë të zgjidhni një DBMS tjetër pa ndryshuar aplikacionin.

Zhvilluesit me përvojë të bazës së të dhënave e kuptojnë mirë thelbin e problemeve që lindin këtu: ndryshimi në llojet e të dhënave dhe dialektet SQL, mungesa e mekanizmave të migrimit dhe riprodhimit midis DBMS-ve të ndryshme, kompleksiteti i verifikimit të migracionit e bëjnë shkrimin dhe funksionimin e aplikacioneve për DBMS të ndryshme një makth. Nga ana e mjeteve të zhvillimit të aplikacioneve, ata po përpiqen ta zgjidhin këtë problem duke krijuar biblioteka të aksesit të të dhënave (dbExpress në Delphi dhe C ++ Builder, ADO dhe ADO.Net nga Microsoft), të ndërtuara mbi parime të unifikuara arkitekturore dhe metoda aksesi, gjithashtu. si duke përdorur "Wrappers" të shumta relacionale objekti (Object Relation Mapping, ORM) mbi logjikën relacionale dhe strukturën e bazës së të dhënave, duke gjeneruar kodin burimor për të punuar me të dhënat bazuar në analizën e skemës së bazës së të dhënave dhe duke përdorur mekanizmin e "përshtatësve " për të zbatuar protokollin e një DBMS specifike. Ndër ORM-të më të njohura janë Hibernate për Java dhe ActiveRecord në RubyOnRails, të cilat ofrojnë një ndërfaqe të orientuar nga objekti për të dhënat e ruajtura në DBMS. Për Delphi ekziston një projekt i ngjashëm tiOPF, për C # - NHibernate.

Sigurisht, përdorimi i bibliotekave të tilla universale dhe grupeve të komponentëve mund të zvogëlojë ndjeshëm numrin e operacioneve rutinë në procesin e zhvillimit të bazës së të dhënave me shumë platforma. Megjithatë, kjo nuk mjafton kur vjen në lidhje me aplikacionet që përdorin baza të të dhënave më komplekse, në të cilat përdoret në mënyrë aktive logjika e natyrshme në procedurat dhe nxitësit e ruajtur - për zbatimin, korrigjimin dhe testimin e tij, kërkohen mjete të veçanta, ndonjëherë krejtësisht të ndryshme për DBMS të ndryshme. Për zhvillimin e aplikacioneve të bazës së të dhënave ndër-platformë, Embarcadero ofron mjetin RapidSQL.

Të gjitha produktet e bazës së të dhënave Embarcadero mbështesin platforma të shumta dhe bazohen në një analizë të skemës bazë dhe statistika të bazës së të dhënave Të dhënat e Thunderbolt... Secila DBMS e mbështetur dhe çdo version specifik i DBMS kanë degët përkatëse të kodit në bërthamën Thunderbolt, e cila ju lejon të hartoni skemën e bazës së të dhënave me përfaqësimin e brendshëm në këtë bërthamë sa më saktë që të jetë e mundur dhe, më e rëndësishmja, të kryeni konvertime të sakta midis përfaqësimin dhe bazat e të dhënave reale. Falë bërthamës Thunderbolt, RapidSQL ju lejon të zhvilloni kodin SQL me cilësi të lartë për të gjitha platformat e mbështetura (Oracle, MS SQL, Sybase dhe variante të ndryshme të IBM DB2), dhe ER / Studio mund të kryejë inxhinieri të saktë të kundërt dhe përpara të bazës së të dhënave skemat.

Nëse jeni duke zhvilluar një aplikacion për dy ose më shumë platforma ose jeni duke portuar aplikimi ekzistues nga një platformë në tjetrën, RapidSQL do të sigurojë të gjitha mjetet e nevojshme për të migruar skemat, përdoruesit dhe lejet ndërmjet DBMS-ve të ndryshme. Sigurisht, RapidSQL nuk i konverton automatikisht procedurat PL / SQL në T-SQL - kjo kërkon ende një programues - megjithatë, mjeti ofron një dritare të vetme për zhvillimin e shumë platformave, redaktues të unifikuar për objektet e skemës, përdoruesit dhe të drejtat e tyre, dhe SQL korrigjimi në të gjitha platformat e mbështetura. ... Sipas përdoruesve të RapidSQL, kjo kursen deri në 70% të kohës së shpenzuar duke migruar midis DBMS-ve të ndryshme.

Ndryshimet në të dhëna dhe diagrame

Migrimi nga një DBMS në tjetrin është i pamundur pa verifikimin e tij. Kush dhe si mund të garantojë që të dhënat e transferuara nga një DBMS në tjetrën janë vërtet identike? Bibliotekat e ndryshme të klientëve, lloje të ndryshme të dhënash dhe kodime të ndryshme e bëjnë procesin e krahasimit të të dhënave një detyrë jo të parëndësishme.

Në botën reale, puna nuk përfundon me vendosjen e aplikacionit dhe bazës së të dhënave - ka mirëmbajtje, shfaqen versione të reja të skedarëve të ekzekutueshëm të aplikacionit dhe arna në bazën e të dhënave. Si mund të merrni garanci që të gjitha përditësimet e nevojshme janë aplikuar në bazën e të dhënave dhe se e gjithë paketa e softuerit do të funksionojë siç duhet?

Embarcadero ka zhvilluar mjetin Change Manager për krahasimin e të dhënave, skemave dhe konfigurimeve të bazës së të dhënave. Krahasimi bëhet brenda një ose disa DBMS, me kontroll automatik korrespondenca midis llojeve të të dhënave dhe formimi i SQL-skripteve të dallimeve, të cilat mund të aplikohen menjëherë për të sjellë bazat e të dhënave në një gjendje identike. Moduli i krahasimit të meta të dhënave ofron krahasimin e skemave të bazës së të dhënave si midis bazave të të dhënave të drejtpërdrejta ashtu edhe ndërmjet bazës së të dhënave dhe skriptit SQL dhe gjeneron një skript për dallimet e meta të dhënave. Ky funksionalitet mund të përdoret jo vetëm për të kontrolluar bazat e të dhënave për pajtueshmërinë me standardin, por edhe për të organizuar një proces të rregullt të përditësimit të bazës së të dhënave, si dhe për të kontrolluar për ndryshime të paautorizuara, të themi, në degët e largëta të një organizate të madhe. Situata është e ngjashme me skedarët e konfigurimit - Change Manager krahason skedarët e konfigurimit dhe ju lejon të siguroheni që konfigurimi i aplikacioneve të vendosura plotëson kërkesat për këtë softuer.

Performanca e aplikacionit të bazës së të dhënave

Sa shpesh shohim aplikacione që funksionojnë mirë në vëllime të vogla testimi të të dhënave, por të ndezura vëllime reale duke u bërë në mënyrë të papranueshme i ngadalshëm. Llogaritjet e gabuara në kërkesat, testimi i pamjaftueshëm në fazat e hershme, nxitimi për të ofruar një projekt janë të gjitha arsye të njohura për zhvillimin e dobët të aplikacioneve. Në këtë rast, teoricienët e zhvillimit të softuerit propozojnë të angazhohen në vetë-përmirësim dhe të përmirësojnë rrënjësisht cilësinë e programeve, megjithatë, të gjithë praktikuesit e dinë se ndonjëherë është e pamundur të rishkruhet një projekt, qoftë ekonomikisht ose, në disa raste, politikisht dhe detyrën. e optimizimit të performancës duhet të zgjidhet në çfarëdo mënyre.

Shkaku kryesor i problemeve të performancës në aplikacionet e bazës së të dhënave qëndron në pyetjet e pa optimizuara të SQL dhe procedurat e ruajtura. Optimizuesit modernë të bazës së të dhënave janë mjaft të fuqishëm, megjithatë, ata gjithashtu kanë kufizime të caktuara të aftësive të tyre, dhe për të arritur performancë të mirë, duhet të hartoni saktë pyetjet SQL, të krijoni (ose të lëshoni) indekse shtesë, në raste të caktuaraçnormalizoni bazën e të dhënave, transferoni një pjesë të logjikës tek aktivizuesit dhe procedurat e ruajtura.

Gjatë zhvillimit, optimizimi i pyetjeve mund të kryhet duke përdorur RapidSQL, i cili përfshin një modul SQL Profiler që mund të analizojë planet dhe të gjenerojë sugjerime për të përmirësuar performancën e pyetjeve SQL. Por, çka nëse problemi ndodh gjatë prodhimit dhe nuk lokalizohet në një pyetje specifike SQL? Nëse performanca bie në një kohë të caktuar të ditës, ose, edhe më e bezdisshme, problemi ndodh në një kopje të largët të sistemit, ndërsa gjithçka është në rregull në serverin kryesor? Për raste të tilla, synohet DBOptimizer, një mjet për profilizimin e bazës së të dhënave për Oracle. Microsoft SQL Serveri, Sybase dhe IBM DB2.

Kur fillon modaliteti i profilizimit, DBOptimizer mbledh informacion në lidhje me bazën e të dhënave dhe kohën e funksionimit, duke përfshirë informacionin e ngarkimit Njësia Qendrore përpunimit dhe parametrat e tjerë të sistemit operativ duke e shkruar atë në seancën e profilizimit. Rezultati është një listë e pyetjeve të ekzekutuara në çdo interval kohor të caktuar, të renditura sipas burimeve të konsumuara. Për çdo kërkesë problematike, mund të shihni planin e saj, statistikat e ekzekutimit dhe detaje të tjera. Për më tepër, DBOptimizer gjithashtu tregon sugjerime dhe rekomandime për përmirësimin e pyetjes në lidhje me DBMS specifike.

Kutia e veglave

Të gjitha mjetet e përmendura, gjatë zgjidhjes së problemeve, përdoren në faza të ndryshme të ciklit jetësor të zhvillimit të bazës së të dhënave. Është mjaft e papërshtatshme dhe e kushtueshme të mbash një duzinë aplikacionesh për të gjitha rastet që mund të nevojiten ose jo gjatë projektimit, zhvillimit, migrimit, optimizimit dhe funksionimit të bazave të të dhënave.

I lëshuar në shkurt 2009, paketa e gjithanshme e veglave Emdacadero All-Access përfshin mjetet thelbësore për të gjitha fazat e zhvillimit të aplikacionit të bazës së të dhënave, nga ER / Studio te DBOptimizer, nga Delphi dhe C ++ Builder te DBArtisan. Mënyra më e mirë për të përshkruar All-Access është krahasimi me kutinë e veglave që çdo pronar i zellshëm ka në shtëpi. Ndoshta jo të gjitha mjetet përdoren çdo ditë, por një çelës i rregullueshëm duhet të jetë gjithmonë pranë në rast rrjedhjeje.

All-Access nuk u imponon role të tjera programuesve ose arkitektëve të bazës së të dhënave, por i imponon komplet universal mjete të përshtatshme për të gjitha rolet në zhvillimin e aplikacioneve të bazës së të dhënave, nga arkitekti tek testuesi; u ofron të gjithë anëtarëve të ekipit të zhvillimit mjete për të gjitha fazat e zhvillimit të bazës së të dhënave, si dhe një grup mjetesh shumë të specializuara për optimizimin e bazave të të dhënave (DBOptimizer) dhe aplikacioneve (JOptimizer) për të "zgjeruar" pengesat. Paketa mbështet DBMS të shumta, të cilat ofrojnë kursime në kosto.

Dallimet teknike midis teknologjive të orientuara nga objekti dhe bazat e të dhënave relacionale të dhënat çuan në dallime kulturore që ende e ndajnë komunitetin e menaxhimit të të dhënave nga komuniteti i zhvillimit. Çfarë duhet bërë më pas me këtë?



Artikujt kryesorë të lidhur