You are on page 1of 122

Bazat e t dhnave 1. Skedart sistemor dhe bazat e t dhnave Skedart sistemor Bazat e t dhnave Modelet 2. Modeli relacional 3.

3.Modeli E R. 4. Normalizimi 5. SQL 6. Disajnimi i prparuar dhe implementimi 7. 8. Distribuimi Klient Servert 9. Bazat e orientuara n objekte

Leksioni 1 T marsh vendime t sakt krkohet informacion i mir, q merret nga fluksi i fakteve q njihen si t dhna. Bazat e t dhnave e kan origjinn n sistemet e skedarve, t cilat aktualisht jan komplet jasht mode, megjithat ti kuptosh ata sht e rndsishme, sepse karakteristikat baz t sistemeve t skedarve jan burimi i disa kufizimeve serioze t administrimit t t dhnave. Nga ana tjetr duke kuptuar sistemet e skedarve, ju jeni m t prirur pr ta kuptuar prse dhe si vetit specifike t bazave t t dhnave jan mjaft t dobishme dhe do ti shfrytzoni kto veti n mnyr t prshtatshme. Pr t kuptuar arsyen e konceptimit t bazave t t dhnave duhet vn n dukje diferencat ndrmjet informacioneve dhe t dhnave. T dhnat jan flukse faktesh. Supozojm se kompania KOMROB (KOMpania ROBotike) kur dy devizione dhe secili prej tyre ka gjeneruar 1.380.456 dhe 1.453.507 dergsa respektivisht nga tremujori i par 1999 deri n tremujorin e par 2003. Kompania prmban 2.834.363 dergsa dhe po kaq fatura shpenzimi. sht e kuptueshme se pr t nxjerr konkluzione t ndryshme n rang devizionesh dhe pr do tremujor krkohet nj pun mjaft sistematike n trajtimin e t dhnave. Koha jon quhet mosha e infirmacionit. Ky term nnkupton prodhimin e nj informacioni t mir, relevant dhe n kohn e duhur. Le t prmbledhim disa elemente baz: T dhnat formojn blloqet e ndrtimit t informacionit. Informacioni prodhohet nga prpunimi i t dhnave. Informacioni prdoret pr t zbuluar kuptimin e t dhnave. Informacioni i mir, relevent dhe n koh sht elsi i marrjes s vendimeve t mira. Marrja e vendimeve t mir sht elsi pr t organizuar mjedisin global. Baza e t dhnave sht bashksia e strukturuar e t dhnave e regjistruar n su informatiks pr t knaqur n mnyr t njkohshme shum prdorues n mnyr selektive dhe n koh t ndar. Duke ia referuar praktiks vem n dukje konceptet q lidhen me bazar e t dhnave. Administrimi i t dhnave (Data Management) sht disiplina q merret me gjenerimin, ruajtjen dhe marrjen e t dhnave. Administrimi i t dhnave krkon prdorimin e databazs t kompjuterit. Databaza prbhet nga: T dhnat e prdoruesit fundor, q jane fakte me interes pr t. Metadata ose t dhna mbi t dhnat, nprmjet t cilave t dhnet jan integruar. Metadata prodhojn prshkrimin e karakteristikave t t dhnave dhe bashksin q ekzistojn ndrmjet tyre.

N kt kuptim databaza i ngjan prmbajtejes s nj kabineti elektronik t organizuar mjaft mir, n t cilin nj program mjaft i fuqishm i njohur si sistemi i administrimit t t dhnave (DBMS) krijon administrimin e prmbajtejs s kabinetit.DBMS sht nj koleksion programesh q administron strukturn e t dhnave dhe kontrollon aksesin n t dhnat e ruajtura. DBMS jan mjaft t rndsishm n shoqrin ton t informacionit. N kt kuptim vem n dukje: DBMS ndihmon n menaxhimin e t dhnave n mnyr mjaft efektive, n raport me periudhn kur kjo mnyr nuk ekzistonte. DBMS prmban gjuhn e pyetjeve (query language) q bn t mundur t marrsh prgjigje pr pyetje t ndryshme. DBMS bni t mundur krijimin e mjedisit n t cilin prdoruesit fundor kan akses dhe administrim gjithnj e m t mir. Kjo sjell nj pamje t integruar t veprimeve t organizmit. DBMS redukton paqndrueshmrin e t dhnave. N menyr skematike lidhja e prdoruesit fundor me databasin jepet m posht. Aplikimi (info) Prdoruesi fundor T dhnat DBMS T dhnat Aplikimi (Info) Aplikimet e prdoruesve mund t shkruhen n gjuh programimi p.sh. COBOL ose n programet e prdorshm n DBMS (DML). Prse sht i rndsishm desinjimi i nj Db. Desinimi i nj databaze sht nj pun vendimtare gjat ndrtimit t Db, prandaj edhe i kushtohet nj rndsi e veant n zhvillimin e kushtit. Nj baz t dhnash e dezinjuar mir sjell paksimin e llafollogjis. Llafollogjia arrihet kur t njjtat t dhna ruhen n dy vende, dhe sjell gabime me trajtimin e t dhnave. Struktura e Db Metadata Klientt Produktet Shrbimet T dhnat e prdoruesit fundor

Prafrimi tradicional i bazave t t dhnave: Megjithse sistemi i skedarve sht mjaft i vjetruar n ditt tona, ka nj seri arsyesh pr ti studjuar ata: Sistemi i skedarve na jep prespektiv historike mbi mnyrn se si jan trajtuar t dhnat. Filozofi George Santagana ka theksuar ata q nuk kujtojn t shkuarn jan t dnuar ta prsrisin at. Nj kuptim i karakteristikave t thjeshta t sistemit t skedarve bn q kompleksiteti i konceptimit t bazave t t dhnave t kuptohet leht. N.q.s. krkoni t konvertoni nj sistem skedarsh t vjetruar n sistemin e bazave t t dhnave, jokonvente mbi sistemin e skedarve jan t dobishme. N t shkuarn manaxhert e organizmave t vogla ishin t afta t ruanin t dhna duke prdorur sistemin manual t skedarve. Ky sistem skedarsh prbhej nga koleksion dosjesh t cilat identifikoheshin sakt dhe ruheshin me radh n kabinetin prkats. Nj dosje n klinikn e mjekut prmban t dhnat e pacientit, duke patur nj dosje pr do klient. N mnyr t ngjashme manaxheri i personelit mund t organizoj t dhnat t dhnat e personelit me kategori t punve q kryhen (hierarhike, teknike, pages etj.). N dosjet klinike mbahen punonjsit detyrat e t cilve jan teknike. Gjat periudhs kur t dhnat jan t pakta sistemi manual e kryen funksionin e tij. Megjithate me rritjen e organizmit dhe me rritjen e kompleksitetit t raportimeve, ruajta e t dhnave me sistemin manual bhet gjithnj e m i vshtir. Kalimi nga sistemi manual i skedarve n sistemin kompjuterik t skedarve nga pikpamja teknike sht kompleks. Si rrjedhim faqet nj tip i ri profesioni i njohur si specialist i prpunimit t t dhnave (Data ProcessingSpecialist =DP specialist). Specialisti i DP krijon strukturn e nevojshme t skedarve, shpesh shkruan programe q administrojn t dhnat dhe prodhojn raportet prkatse. Fillimisht skedart e kompjuterve me sistemin e skedarve ishin t ngjashm me skedart manual. Le t marrim nj shembull t skedarit t t dhnave t klientve n nj kompani t vogl sigurimesh si tregohet n figurn n vazhdim.

K_Emri

K_Phone

K_Adrese K_Zip A_Emr

A_Phone

TP AMT REN

Alban Mali Besnik Skembi Agron Deti Skender Kodra Vera Fusha Petrit Degoi Luan Curi Alma Ferra Genti Ullari Monda Dardha

55 52 55 56 89 52 65 89 78 67

4 273394 2 456920 4 719412 7 920032 5 420012 2 125983 4 654322 5 652421 6 189124 7 254125

36123 25246 36123 36123 36155 25246 37118 37119 25432 37118

Arjan Tirana Elton Dursi Arjan Tirana Arjan Tirana Elton Dursi Xhim Kova Arjan Tirana Xhim Kova Elton Dursi Xhim Kova

52 2 321456 56 3 412123 65 7 721892 52 2 622321 52 3 451154 55 4 721182 65 5 921128 66 3 425126 55 4 645133 52 3 654331

T1 T1 T2 S1 T1 T2 S1 S1 T2 S2

$100 $250 $150 $300 $100 $850 $120 $250 $100 $100

Legjenda: K_EMR : Emri i klientit K_PHONE : Numri i telefonit agjentit t klientit K_ADRESE: Adresa e klientit K_ZIP : Kodi ZIP i klientit sigurimit

A_EMR : Emri i Agjentit A_PHONE: Numri i telefonit t TP : Tipi i sigurimit AMT : Mandati i sigurimit REN : Data e renovimit t

Skedari i treguar m sipr prmban 10 rekorde. do rekord sht i prbr nga 9 fusha. Regjistrimet jan ruajtur n skedarin me emrin KLIENT. Duke prdorur skedarin KLIENT specialist i DP shkroi programet q prodhojn raporte t dobishme pr departamentin e shitjes (sales). Prmbledhjet mujore q tregojn tipet dhe mandatet e sigurimit t realizuara nga do agjent (analizohet produktiviteti i do agjenti). Pagesat mujore pr t prcaktuar cilt klient duhen kontaktuar pr rinovimin e sigurimit. Raporti i cili prcakton raportet e typeve t sigurimeve pr do agjent. Me kalimin e kohs shkruhen programe shtes pr t krijuar raporte t reja. N vazhdim Departamenti i shitjes krijon skedarin SHITJE, i cili mban veprimet ditore t Departamentit. Pr t raportet mbi pagesn e personelit, specialisti i DP krkon krijimin e skedarit AGJENT. Duke u rritur numri i skedarve krijohet nj sistem i vogl skedarsh q tregohen n figurn e m posht.

Departamenti i shitjes

Departamenti i personelit 5

Programet e administrimit t skedarve

Raportet

Programet e administrimit t skedarve

Raportet

Skedari KLIENT Programet e administrimit t skedarve Raportet

Skedari Agjent

Skedari SHITJE Sistem Skedarsh i thjesht Administrimi i sistemit t skedarve do problem i zgjidhur n sistemin e skedarve t t dhnave krkon programim n brezin e tret t gjuhve t programimit (therd-generation language 3GL). 3GL krkojn nga programisti t specifikoj se far duhet br dhe si duhet br. Shembuj t 3GL jan COBOL, BASIC, FORTRAN etj. N kt model pr do skedar krijon Programet e administrimit t skedarit. N kt sistem elementet e siguris si jan mbrojtja me fjal kalimi, ruajtja nga vzhgimet e skedarv ose t sistemit t skedarve jan t vshtir pr tu programuar.

Disavantazhet e sistemit t prpunimit t skedarve 1. Teprimet e pa kontrolluara S pari: hapsira e kujtess shpenzohet shpejt S dyti: t njjtat t dhna regjistrohen disa her S treti: paqndrueshmria (njri ekorigjon tjetri jo) 2. Mungesa e elasticitetit Nuk i prgjigjet krkesave komplekse menjher.

3. Standardizimi i dobt Sinonima: dy emra t ndryshme pr t njejtn gj. Homonimia : kur nj emr prdoret pr dy gjra t ndryshme. 4. Produktiviteti i ult i programimit Duhet konceptuar do skedar dhe regjistrimi i prdorur nga nj aplikim i ri.

5. Kostoja e lart e mirmbajtjes: Aplikimet e ndryshme kan programe individuale. Kshtu q mirmbajtja nxjeri problemet e standardizimit.

Funksioni i DBMS DBMS kryen funksione mjaft t rndsishme q garantojn integritetin dhe qndrushmrin e t dhnave n Databaz. Shumica e ktyre funksioneve jan transparente pr prdoruesin fundor dhe mund t arrihen nprmjet DBMS. Kt prfshin funksionet e mposhtme: 1. Administrimi i fjalorit t t dhnave(Data Dictionary Management) DBMS krkon prcaktimin e elementeve t t dhnave dhe relacionet (metedata) q ruhen n fjalorin e t dhnave. T gjith programet q hapen t dhna n D.base punojn nprmjet DBMS. DBMS prdor fjalorin e t dhnave pr t gjetur komponentt e krkuar t t dhnave si nga struktura dhe nga t dhnat. Vm n dukje se do ndryshim q bhet n strukturn e t dhnave automatikisht duhet paraqitur n fjalorin e t dhnave, duke na liruar nga modifikimi i gjitha programeve q kan cilsi n bazn e t dhnave. 2. Administrimi i ruajtjes s t dhnave (Data storage management). DBMS Krijon struktura komplekse q krkohen por ruajtjen e t dhnave, q na liron ne nga puna e vshtir e prcaktimit dhe programimit t karakteristikave fizike t t dhnave. DBMS modern administron kujtes jo vetm pr t dhnat, por edhe pr format e ikonave q shrbejn pr regjistrimin e t dhnave, prcaktimin e raporteve, rregullat e vlefshmris etj. 3. Transormimi dhe prezentimi i t dhnave: (Data transformation and presentation) DBMS i transformon t dhnat e regjistruara n prputhje mestrukturn e t dhnave q sht krkuar. DBMS na liron nga puna pr t br diferencn ndrmjet formatit logjik t t dhnave dhe formatit fizik t tyre. Paqndrueshmria e t dhnave. Kur t njejtat t dhna jan ruajtur n vende t ndryshme, paqndrueshmria e t dhnave sht e paaritshme. P.sh. disa skedar prmbajn t dhnat e klientit. Supozojm se do t ndryshojn adresn e nj klienti. Q skedart t jen t qndrueshm duhet t bhet njhersh (dhe n mnyr korekte) n do skedar jan kontrolluar nga prdorues t ndryshm sht e mundshme q ndonj skedar t paraqes adresn e vjetr ndrsa t tjert kan adresn e re.

Paqndrueshmria e t dhnave sht burimi m i madh i gabimeve n aplikimet e kompjuterizuara Mungesa e elasticitetit: Sistemi i prpunimit t skedarve bashkon disa lehtsira t prodhimit. Ky sistem prodhon shum dokumente dhe raporte t puns s prditshme. Por sistemi nuk mund ti prgjigjet n mnyr t menjhershme krkess pr nj produkt t konceptuar rishtaz. Kjo krijon shpesh probleme tek prdoruesit, t cilt nuk kuptojn prse sistemi nuk plotson krkesn e tyre. Kufizuashmria e Ndarjes s t dhnave: Me prafrimin tradicional, do aplikim ka skedart e tij privat dhe sht nj shans i vogl pr prdoruesit pr t ndar t dhnat jasht aplikimeve t tyre. Pasoja e par e ndarjes s kufizuar sht se t njejtat t dhna t futen disa her me qllim q t bhen modifikimet e skedarve. Pasoja e dyt sht n zhvillimin e aplikimeve t reja, konceptuesi e ka t vshtir t prdor skedart ekzistues. Standardizimi i dobt: do organizm krkon procedura dhe metoda standarde q t operoj n mnyr efektive. N sistemet e informacionit standardet arrihen nprmjet emrit t t dhnave, formateve dhe kufizimeve t hapjes. Standardet sht vshtir t arrihen n sistemin tradicional t prpunimit t t dhnave, kryesisht se prgjegjsia e konceptimit t sistemit sht decentralizuar. Dy tipe paqndrueshmrie mund t rezultojn nga standardizimi i dobt. Rezultatet Sinonim kur dy emra t ndryshm jan prdorur pr t njejtn rubrik t dhnash p.sh. numri i studentit dhe numri i meshkujve. Homonimi sht nj emr i vetm q sht prdorur pr dy rubrika t ndryshme. Produktiviteti i ult i programuesit : N sistemin tradicional t prpunimit t skedarve programuesi duhet t konceptoj do regjistrim dhe skedar t prdorur nga nj aplikim i ri dhe pastaj kodin e prcaktimit t t dhnave n program. Programuesi duhet ve t tjerash t seleksionij metodn e hajes s skedarit q do t prdoret dhe pastaj t shkruaj shprehjet e lexim/shkrimit n nj program procedural. Kjo ngarkes n konceptimin e skedarve dhe regjistrimeve, prshkrimi i t dhnave dhe shkrimi procedurave t lexim/shkrimit sht prsritur pr do aplikim dhe prbn nj pjes t madhe t zhvillimit t sistemit. Kostoja e lart e mirmbajtjes: N sistemin e prpunimit t skedarve, prshkrimi i skedarve, regjistrimeve dhe rubrikave t t dhnave jan t ndrthurura me programet individuale t aplikimit. Megjithat ndryshimi n skedart e t dhnave (p.sh. ndryshimi i emrit t t dhns, formati ose metods t hapjes) krkon q programi ose programet t modifikohen. Disantazhet e diskutuara ktu i ptkasin brezit t par dhe t dyt t gjenerimit t aplikimeve. Megjithat veprimi i disa disavantazheve mund t ult duke e br 9

kshtu m t ult koston e ndrhyrjes s njeriut n aplikimet. Zgjidhja m e mir sht pr t ndrtuar standarde n prpunimin e t dhnave duke krijuar filozofon dhe mjedisin automatik n t cilin kto disavantazhe mund t kontrollohen ose t eliminohen q n fillim. Kjo sht ideja e prafrimit me baza t dhnash.

Prafrimi me baza t dhnash Prafrimi ma baza t dhnash prfaqson nj koncept t ndryshm me qeverisjen e burimeve t informacionit. T dhnat shihen si nj burim i rndsishm, i ndashm q mund t administrohet si do bashksi tjetr, si njerzit, materialet, paisjet dhe lekt. N prputhje me Weverest (1976) koncepti i bazave t t dhnave sht prqndruar n ndarjen e prbashkt t burimeve t t dhnave, kontrolli i plot i burimeve t t dhnave nga nj prgjegjs i prbashkt dhe kooperimi n prmbajtjen e ktyre burimeve t t dhnave t ndar. Baza e t dhnave sht nj bashkim i ndar i t dhnave bashkvepruese, t konceptuara pr t plotsuar nevojat me informacion t prdoruesve t shumfisht. Sejcili prdorues mund t kryej nj pamje unike t bazs s t dhnave n pruthje me nevojet e tij pr informacion. T dhnat jan ruajtur kshtuq ato jan t pavarura nga programet q ata prdorin. Prafrimi i prbashkt dhe i kontrolluar prdoret n kapjen dhe mbrojtjen e t dhnave, n shtimin, modifikimin dhe heqjen e t dhnave. Baza e t dhnave sht ilustruar n fig. 1-5. Baza e t dhnave prbhet prej 10 skedarsh, vijat q lidhin skedart paraqesin bashkveprim ndrmjet tyre. Ndryshe nga fig. 1-2 dhe fig. 1-3 skedart n fig. 1-5 nuk jan t lidhur direkt me aplikimin. N filim n B.D.ishin aplikimet e administrimit. Sot B.D. jan kudo. Ka nj treg t madh t programeve dhe informacioneve. Historiku: 1960: skedart COBOL (gjuha COBOL u prdor si gjuh e SEBD) 1920: B.D. hierarhike dhe rrjetore. 1980: B.D. relacionale 1990: B.D. objekt 2000: B.D. t orientuar objekt.

10

Prafrimi me B.D. I kan si dnim t dhnat t pavarura nga trajtimi. Prshkruan informacionet n kuadrin e nj aplikimi konkret: - B.D. t shrbimit spitalor: t smurt, shrbimet etj. - B.D. universitare: studentt, pedagogt, kurset, diplomat etj. - B.D. t filmave : titujt, vitet e prodhimit, aktort, buxheti etj. Interesohuni pr t dhna me vakum t madh. 1 mega = 166 , 1Giga = 109. Tera = 1012bytes

11

Prfitimi nga prafrimi me Baza t Dhnash Prafrimi me baza t dhnash ofron nj numr potencial avantazhesh. Ky prfitim prfshin teprime minimale tek t dhnat, qndrueshmrin e tyre, integrimin, ndarjen, forcimin e standardit, lehtsi n zhvillimin e aplikimeve, siguri uniforme, intimitetin (privacy), kontrollin e integruar, aksesin n t dhnat dhe prgjigjen pavarsin e t dhnave dhe mirmbajtjen e reduktuar t programeve. Teprimet minimale t t dhnave: N prafrimin me baza t dhnash skedart e t dhnave jan integruar n nj struktur t vetme logjike. N vazhdim do ndodhje e nj njsie t dhnash sht kontrolluar n mnyr ideale vetm n nj vend t bazs s t dhnave. P.sh. fakti SHIT N ADRESN pr nj klient specifik, mund t jet e regjistruar n dy skedar t ndar n sistemin e prpunimit t skedarve. N sistemin e bazave t t dhnave, ky fakt do t regjistrohet vetm nj her. Me kt nuk duhet thn se t gjitha teprimet do t zhduken. Shpesh her ka arsye t qndrueshme pr t ruajtur kopje t shumfishta t s njjts t dhn (P.sh. t dhnat e efektivitetit t kopjes, t dhnat e kontrollit t vlefshmris). Megjithat n sistemin e bazave t t dhnave, teprimet jan t kontrolluara. Qndrueshmria e t dhnave duke eliminuar (ose kontrolluar) teprimet n t dhnat ne reduktjm shum shanse pr paqndrueshmri p.sh. do SHIT NE ADRESEN sht ruajtur vetm nj her, pra nuk mund t kemi mosprputhje n vlerat e ruajtura. Kur n baz t t dhnave jan lejuar teprimet, sistemi i bazave t t dhnave vet e forcon qndrueshmrin duke modifikuar do ndodhje t njsis s t dhns. N qoft e njsia SHIT NE ADRESEN sht ruajtur n dy regjistrime t ndryshme n bazat e t dhnave, ather sistemi i bazave t t dhnave do t bj korigjimin n t gjith regjistrimet ku ndodh ndryshimi. Fetkeqsisht, shum sisteme sot nuk veprojn pr qndrueshmrin n kt mnyr. Pamja 1 Shitja Klientat Pamja 2 Llogaria Klientat Klientat Pamja 3 Porosit Klientat

Porosit

Porosit

Drgesat

Klientat

Tre pamje prdoruesish t ndryshme.

12

Integrimi i t dhnave N bazat e t dhnave, t dhnat jan organizuar n nj struktur t vetme llogjike s bashku me relacionet llogjike t prcaktuara ndrmjet njsive t caktuara t t dhnave. N kt mnyr prdoruesi mundet t lidh lehtsisht nj njsi t dhnash me nj tjetr. P.sh. po t lidhni nj shikim n dhe t merni n konsiderat nj Prodhim, kjo njsi sht e lidhur me Materialet dhe prdoruesi mund t prcaktoj se far materialesh jan t nevojshme pr nj prodhim t caktuar. Ndarja e t dhnave Baza e t dhnave sht krijuar q t ndahet nga t gjitha prdoruesit e autorizuar n organizm. P.sh. n nj kompani t implementosh bazn e t dhnave do t thot t plotsosh nevojat pr informacion t llogaris, shitjes, prodhimit, drgimit dhe departamenteve t tjera. Shumica e bazave t t dhnave sot lejojn prdoruesit e shumfisht pr t ndar bazn e t dhnave n mnyr konkurente, megjithat disa kufizime jan t nevojshme si do t shihet n kapitujt e mposhtm. N sistemin e bazave t t dhnave, do departament funksional sht paisur me pamjen (ose pamjet) e tij t bazs s t dhnave. P.sh. 1-7 tregon 3 pamje t ndryshme pr K.P.D. Pamja e par sht pr Departamentin e shitjes dhe tregon relacionet ndrmjet Klientit dhe njsive t Porosive. Pamja e dyt sht pr departamentin e Llogaris dhe tregon relacionet ndrmjet Klientit, Porosive dhe njsive t Drgimit. Pamja e tret sht pr Departamentin e Porosive dhe tregon relacionet ndrmjet Produktit, Shitsit dhe Materialeve. Forcimi i Standardizimit. Krijimi i funksionit t administrimit t bazave t t dhnave sht nj pjes mjaft e rndsishme e prafrimit me baza t dhnash. Ky funksion organizativ ka autiritetin t prcaktoj dhe t prforcoj standardin e t dhnave. Nqoftse n K.P.D. prcaktohet funksioni i administrimit t bazave t t dhnave, kjo zyr do t prcaktoj t gjitha emrate t dhnave dhe formatin si dhe akordon t drejtat e hyrjes pr t gjith kompanin. Mbi t gjitha ndryshimet n standardin e t dhnave do t miratohet nga administrimi i bazave t t dhnave. Lehtsia n zhvillimin e aplikimeve: Avantazhi kryesor i prafrimit me baza t dhnash sht se kostoja e kohs pr zhvillimin e aplikimeve t reja sht m e ult. Studimet tregojn se kur baza e

13

t dhnave sht konceptuar dhe krijuar, programuesi e prcakton dhe e zhvillon aplikimin e ri 2-4 her m shpejt se me baza t dhnash konvencionale.

Siguria uniforme, Intimiteti dhe Kontrolli i Integritetit: Funksioni i administrimit t t dhnave ka juridiksionin e plot mbi bazn e t dhnave dhe sht prgjegjs pr ndrtimin e kontrolleve t aksesit, modifikimit dhe mbrojtjes s t dhnave. Procedurat standarde t kontrollit dhe t standardizimit prmirsojn mbrojtjen e t dhnave n krahasim me ato t sistemit t skedarve t t dhnave. Megjithat, nqoftse nuk jan aplikuar kontrolle t mirfillta baza e t dhnave sht m e paraqitshme se skedart konvensional, meqense nj bashksi prdoruesish kan ndar burimet e prbashkta. Hyrja dhe prgjigja e t dhnave: Sistemi i bazave t t dhnave krijon disa rrug marrje pr do njsi t dhnash, duke i dhn prdoruesit m shum fleksibilitet n vendosjen dhe marrjen e t dhnave se sa me skedar t dhnash. Pavarsia e t dhnave Ndarja e prshkrimit t t dhnave nga programet e aplikimit q prdorin t dhnat sht quajtur pavarsi e t dhnave. Si rezultat i pavarsis s t dhnave organizmi mund t zhvilloj aplikime t reja pa pasur nevoj t ndryshoj aplikimet ekzistuese. Reduktimi i mirmbajtjes s programeve: T dhnat e ruajtura mund t ndryshohen shpesh pr arsye t ndryshme. Shtohen njsi t reja, ndryshohen formatet t dhnash, paisje t reja kujtes ose metoda t kapjes futen e kshtu me rradh. N mjedisin e skedarve t t dhnave kto ndryshime krkojn midifikimin e programeve t aplikimit q prdorin t dhnat. Termi i mirmbajtjes i referohet modifikimi ose rishikimit t programeve t vjetra pr ti br ata konform me formatet e reja t t dhnave, metodat e kapjes etj. N sistemin e bazave t tdhnave, t dhnat jan t pavarura nga programet e aplikimit q i prdorin ato me kufizimet e mundshme ose t dhnat ose programet e aplikimit krkojn ndryshimin n faktort e rinj q shtohen.

14

Komponentt e mjedisit t bazave t t dhnave Komponentt kryesor t mjedisit tipik t bazave t t dhnave jan treguar n fig. 1-8. Duke studjuar kta komponent dhe lidhjet ndrmjet tyre ju do t keni nj kuptim m t mir t prafrimit me baza t dhnash dha avantazhet q ata kan. T gjasht komponentt e treguar n fig. 1-8 jan prshkruar shkurtimisht n listn q jepet m posht. 1. Grupi i prdorsve: Grupi i prdorsve prbhet nga krkuesit e t dhnave. Kemi 3 kategori kryesore t krkesave t prdoruesve: vetm lexim, shtim/fshirje dhe modifikim. T gjitha krkesat pr t dhna jan realizuar nprmjet SQBDH. Ky sistem duhet t iterpretoj instruksionet e shprehura n termat e skems s jashtme pr ti kthyer ato n urdhra n bazn e t dhnave fizike. Arkitektura e nj SQBDH ka realizime t ndryshme sipas natyrs s saj, por kryesorja rrjedh identike dhe lejon t sktsohen n mnyr t prafrt principet baz.

Ndrfaqsi Prdoruesi/Sistem

Niveli konceptial
Udhzuesi Fjalorit t t dhnave SQBDH Baza e t dhnave

Niveli i brendshm Skema e brendshme

Administrimi Bazave t t Dhnave

Fig. 1-8 Komponentet e mjedisit t bazave t t dhnave 2. Sistemi i Qeverisjes s Bazave t t Dhnave (SQBDH) sht nj sistem programesh q merr dhe plotson t gjitha krkesat pr t dhna. Normalisht, SQBDH lejon hyrjen e njhershme t prdoruesve t shumfisht. Funksioni kryesor i ktij sistemi sht t organizoj t dhnat n bartsat periferik dhe t vej n dispozicion procedurat e krkimit dhe t seleksionimit t ktyre t dhnave. Pr t arritur n kto rezultate, prdoruesi prshkruan n termat abstrakte se far dshiron q ai t bj me kto t dhna, duke i ln n dor sistemit t kryej punn e krkimit n funksion t paraqitjes dhe organizmit t t dhnave n suportet fizike.

15

3. Baza e t Dhnave. Baza e t dhnave sht depozitimi fizik t t gjith t dhnave t prdoruesve. Nj baz t dhnash sht nj bashksi e strukturuar t dhnash t regjistruara n bartsa t kapshm nga kompjuteri pr t knaqur njkohsisht shum prdoruese n mnyr selektive dhe n koh t favorshme. Nj baz t dhnash realizohet pr t regjistruar fakte, ngjarje q takohen n jetn e nj organizmi dhe pr ti krkuar ata sipas nevojs ose pr t nxjerr konkluzione duke bashkuar fakte elementare.

16

Operacionet e bazave t t dhnave relacionale


Algjebra relacionale prcakton rrugn teorike t manipulimit t prmbajtjeve t tabelave duke prdorur tet operatort relacional: SELECT, PROJECT, JOIN, INTERSECT, UNION, DIFFERENCE, PRODUCT dhe DEVIDE. Ilustrimi i ktyre operatorve bhet mjaft leht: Union (mbledhja) Ky operacion vepron mbi dy relacione t s njjts skem. R1 dhe R2. Rezultati jep nj relacion R3 q ka pr n-sht ata q bjn pjes n R1 ose ata q bjn pjes n R2 ose n t dy relacionet. Pr t ilistruar operatorin UNION dhe t tjert n vazhdim do t prdorimrelacionet: Furnizuesi Num_Furnizuesit F1 F2 F3 F4 F5 Emri Arben Luan Besnik Dritan Ermir Qyteti Durrs Tiran Tiran Durrs Elbasan Furnizimi Num_Furnizuesi t F1 F2 F3 F4 F5 Num_Pjess P1 P18 P5 P18 P18

Pjesa Num_Pjes Emri Pjess P5 Vide P1 Dado P18 Bulon Me t dy relacionet. Shnimet e ktij operatori faqen n disa forma: R3 = R1UR2 R3 = UNION (R1, R2) R3 = APPEND (R1, R2)

Me kt rast prbrsit e R1 dhe R2 jan identike dhe rezultati R3 ka po ata atribute. 17

P.sh.: R1 Furnizimi Num_Furnizuesit Num_Pjess F1 P1 F2 P18 F5 P18 R2 Furnizimi 2 Num_Furnizuesit Num_Pjess F3 P5 F1 P1 F2 P18

R3 = Furnizues1 U Furnizues 2 Furnizimi Num_Furnizuesit Num_Pjess F1 P1 F2 P18 F8 P18 F3 P5 F2 P18 Diferenca: Operacioni i diferencs vepron mbi dy relacione t s njjts skem R1 dhe R2 q jep nj relacion t tret R3 q ka pr n-sht ata q jan me R1 dhe nuk jan n R2. P.sh.: Furnizues Num_F Emri F1 Arben F2 Luan F3 Besnik F1 Arben F2 Luan F3 Besnik Seleksioni (Furnizues, Num_pjess=P5) Num_Pjese P5 P5 P5 P1 P1 P1 Num_F F1 F2 F3 Emri Arben Luan Besnik Num_Pjese P5 P5 P5

18

Bashkimi (Jointure) ose 0-Produkte Operacioni q duke u nisur nga dy relacionet R1 dhe R2 formon nj relacion t tret R3 q prmban bashksin e t gjith n-shave q merren duke bashkuar n-sha nga R1 dhe n-sha nga R2 q verifikojn kandidatin. Shnime: p.sh.: F1 Num_ F F1 F2 F3 F2 Emer Num_F Arben F1 Luan F1 Besnik F2 R3 = JOIN (R1, R2 kandita).

Num_Pjese P1 P18 P5

JOIN (F1, F2, F1. NUM-F =. NUM F) Num-F F1 F1 F2 Emri Erban Arben Luan Num-Pjese P1 P18 P5

Bashkimi pa kondit korespondon me prodhimin kortezian Prerja Operacioni q vepron mbi dy relacione t s njjts skem (kan t njjtat atribute) dhe q formon nj relacion R3 q ka si n-she ata q jan s n R1 ashtu dhe n R2. Paraqitja: R3 = R1 R2 R3 = AND (R2, R2) R3 = INTERSECT (R1, R2)

p.sh. 19

Furni. 1 Num_F F1 F3 F4 Num_F F1 F2 F3

Emri Arben Besnik Fatmir Emri Arben Luan Besnik

Qyteti Durrs Tiran Durrs Qyteti Durrs Tiran Tiran

Furni.2

Num_F Emri F1 F3 Arben Besnik

Qyteti Durrs Tiran

Antiprojeksioni: Jep ata n-she q kan vlera n t gjitha fushn e prcaktimit t atributve q nuk marrin pjes n anti projeksion. Paraqitja: R1 = R ]s[ s- atributi i antiprojeksionit R1 = Antiprojeksion (R, s).

p.sh. FURNIZIM Num_Furnizuesi Num_ Pjese F1 P1 F2 P18 F1 P5 F3 P5 F1 P18 F5 P18

R1 = FURNIZIM ] NUM_FURNIZUESI[ Fusha e prcaktimit NUM_PJES = (P1, P5, P18) R1 NUM_FURNIZUESI F1.

20

Pjestimi jep njshet q realizojn rezultatet n vlerat e dhna pr n-shet e zgjedhura. Paraqitja: R1 = R S R1 = DIVIDE (R, S) p.sh. FURNIZIM Num_Furnizuesi Num_Pjese F1 P1 F2 P18 F1 P18 F5 P5 S Num_Pjese P1 P18

R1 = FURNIZIM

Num_Furnizuesi F1

Funksionet e llogaritjes Mundsia e prdorimit t lloharitjeve sht futur duke prgjithsuar projeksionin, seleksionin dhe bashkimin duka prdorur funksione. N kt mnyr atributi q gjendet me argumentin e nj operacioni sht zvendsuar nga nj shprehje e atributit. Kjo lejon ti prgjigjeni pyetjeve t reja: p.sh.: Supozojm se relacioni PJESE ( Num_pjese, Em_ Pjes, mimi_Pa_TVSH), q precizon cili sht mimi pa TVSH i nj pjes. Pr tju prgjigjur pyetjes jepni listn e emrave t pjesve pr t cilat mimi me TVSH sht <1000 jepet me R1 = seleksion (PJES, Emri_pa_TVSH 1.17<1000); jep n-shat Rezultati = Projeksion (R1, Em_Pjese). Jep listn e emrave Agregatet

21

Funsionet e llogaritjes lejojn t bhen llogaritje n rreshte, por shpesh lind nevoja e llogaritjeve n kolon. p.sh. mund t llogaritet shuma e shpenzimeve. Kjo realozohet nprmjet konceptit t agrgatit . Nj agregat sht ndarja horizontale e nj relacioni n funksion t vlerave t nj grupi atributsh, e ndjekur nga nj rigrupim nprmjet prdorimit t nj funksioni t llogaritjes. Funksionet m t prdorshm mbi funksionet jan: Shuma: shuma e elementeve t nj bashksie Mesatarja Minimumi Maksimumi Numrimi (count)

Forma: R = AGREGAT(Relacion, atribut1, Funksion, Atribut2) Ku: Atribut1: paraqet nj ose disa atribute t prdorurpr ndarje. Funksion: sht funksioni i llogaritjes mbi bashksi i prdorur mbi Atribut2.

p.sh. : Duke u nisur nga relacioni FURNIZIM (Em_Furnizuesi; Num_P; Sasia) Mund t llogarism sasin q siguron do furnizues si m posht: Rezultat = AGREGAT(FURNIZIM; Em_Furnizuesi, Sum (Sasia)) ose sasin mesatare t lvrimit Prcakton kufirin Rezultat = AGREGAT (FURNIZIM; ;AVERAGE (sasia)); Mesatarja totale

22

3. Jepen relacionet FLUTURIMET Numri. Flut. BA533 BA528 KG2544 KG2540 KG946 BR382 BA019 AEROPORTET Emr_Aeroporti Napoli Londr/ GK Londr/ GK Pisa Verona Venecia/ MP Manester Kai - Tak 3. 4. 5. 6. Origjina Napoli Londr A Verona Venecia/MP Venecia/MP Londr/GK Londr/HW Destinacioni Lohnd GK Pisa Londr GK Londr GK Manester Kai Tak Kai Tak NDALIMET Emr vendi Itali Angli Angli Itali Itali Itali Angli Hong - Kong Numri_ fluturimeve BR 382 BA 019 BA 019 Emr_ Aeroporti Dubai Dubai Shangai Numri Ndalimit 1 1 2

Prgjigjuni pyetjeve n SQL: 1. Cilat aeroporte jan n Angli? 2. Cilat aeroporte mund t kapen nga Pisa? Cilat udhtime kan m shum se 2 ndalime? N cilat vende ndalon BA 768? Cilat fluturime fillojn nga nj aeroport Anglez? Cilat fluturime fillojn nga nj aeroport Anglez dhe mbarojn n nj Italian?

4. T jepet shija e verrave t grads mbi 13 ose t prodhuara n vitin 1997. SELECT SHIJA FROM VER WHERE GRADA >13 UNION SELECT SHIJA FROM VER WHERE VITI_PRODH = 1997. 5. T llogaritet grada mesatare e Chablis. SELECT AVG (GRADA) FROM VERE 23

WHERE SHIJA = CHABLIS 6. T gjenden t gjitha kodet e verrave q jan pir nga m shum se 100 vet. SELECT NV FROM ABUZIV GROUP BY NV HAVINE COUNT (*)>100.

VERE (NV, Shija, Viti_Prodh, GRADA). PIJETAR (NP, EMRI ADRESA, SASIA). 1. Jepni listn e verrave q jan prodhuar m 1997 me Grad m t madhe se 13. 2. T jepet kodi i vers dhe shija pr verrat e prodhuar m 1997 me shkall mbi 13 n rendin alfabetik rrits t emrave t shijeve dhe zbrits t kodit. SELECT SHITE, NV FROM VER WHERE VITI_PRODH: 1997 AND GRADA > 13 OP.DERED BY SHIJA, ASC, NV DESC. 3. Emrat e pijetarve q kan pir Chablos. (3 mnyr) I. SELECT UNIQUE EMRI FROM PIJETAR, VER, ABUZIV WHERE PIJETAR, NP = ABUZIV, NP AND ABUZIV, NV = VER, NV. AND VERE, SHIJA. = Chablis SELECT UNIQUE EMRI FROM PIJETAR WHERE NP IN (SELECT NB 24

II.

FROM ABUZIV. NV = VER. NV AND VER. SHIJE = CHABLIS). III. SELECT UNIQUE EMRI FROM PIJETAR WHERE. NP. IN (SELECT NP FROM ABUZIV WHERE NV. IN (SELECT NV FROM VER WHERE SHIJA = Chablis).

4. T jepet shija e verrave t grads mbi 13 ose t prodhuara n vitin 1997. SELECT SHIJA FROM VER WHERE GRADA > 13 UNION SELECT SHIJA FROM VER WHERE VITI_PRODH = 1997. 5. T llogaritetgrada mesatare e Chablis. SELECT AVG (GRADA). FROM VER WHERE SHIJA = Chablis. 6. T gjenden t gjith kodet e verrave q jan pir nga m shum se 100 vet. SELECT NV FROM ABUZIV GROUP BY NV HAVINE COUNT (*) > 100.

25

Modeli Relacional i Bazave t t Dhnave Njsit dhe atributet: Konceptimi relacional fillon duke prcaktuar njsit e krkuara. Nj njsi sht nj person, vend ose send rreth t cilit nemendojm t grumbullojm t dhna. P.sh. n mjedisin universitar njsit me interes mund t jen stdentt, kurset, fakultetet etj. N.q.s. ju punoni n nj shoqri ajrore njsit mund t jen pilott, aviont, linjat etj. Njsit grupohen n prputhje me karakteristikat e prbashkta. P.sh. Studentt jan vendosur s bashku pr t formuar bashksi njsish. do bashksi njsish ka nj emr. Zakonisht emri reflekton prmbajtjen e saj. P.sh. studentt e U.T. mund t ruhen n bashksin e njsive me emrin STUDENT. N shoqrin ajrore mund t prdoret emri i bashksis s njsis AVION. do njsi ka disa karakteristika t njohura si atribute. P.sh. njsia STUDENT mund t prmbaj: kodin e studentit, emrin, notn mesatare, datn e regjistrimit, datn e lindjes, adresn e shtpis, numrin e telefonit. N mnyr t ngjashme shoqria ajrore mund t prcaktoj atributet pr njsin AVION: kodi avionit, data e kontrollt t fundit, ort e fluturimit, ort e fluturimit nga mirmbajtja e fundit. do atribut emrtohet pr t treguar prdorimin prmbajtjes s tij. P.sh. n njsin STUDENT, datlindja mund t shnohet STU_DL, ose numri i telefonit t shtpis STU_SHPI_PHONE.

Tabelat dhe karakteristikat e tyre


Pamja logjike e bazave t t dhnave relacionale sht lehtsuar nprmjet krijimit t lidhjes s t dhnave bazuar me strukturn e njohur si tabel. Tabela sht struktur dy dimensionale e kompozuar nga rreshta dhe shtylla. Ndryshe kjo tabel quhet relacion, emr i vendosur nga E.F.Codd. Nj relacion sht paraqitur nga nj tabel duke pasur: N emr t vetm q identifikon at Nj numr fiks kolonash, Nj numr t fardoshm rreshtash.

26

p.sh. relacionet Furnizues, Pjes, Furnizim. Atributet Furnizuesi Kod_furnizuesi F1 F2 F3 F4 F5 Emri Arben Luan Besnik Dritan Ermir Qyteti Durrs Tiran Tiran Durrs Elbasan

n-shet Pjesa

Furnizimi Kod_Furnizuesi Kod_Pjes Kodi_Pjess Emri_Pjess Sasia F1 P1 P5 Vid 100 F2 P18 P1 Dado 50 F3 P5 P18 Bulon 150 F4 P18 Kolonat jan quajtur atribute. F5 P18 do atribut: - sht prcaktuar nga nj emr. Ky emr duhet t jet i vetm brenda nj relacioni, pr t evituar konfuzionin, dy atributet t relacioneve t ndryshme mund t ken t njejtin emr. - Rreshtat jan quajtur n-she dhe jan t ndryshme n modelet relacionale. Radha e vendosjes s tyre nuk ka rndsi. Sasia e n-shave n nj relacion quhet kordinalitet. - do prerje rresht/kolon prmban nj vler t vetme. T dhnat mund t klasifikohen n prputhje me formatin dhe funksionin e tyre. a. Numerike: Numerike jan t dhnat mbi t cilat ju kryeni veprime arithmetike. P.sh. sasia sht dhn numerike. b. Character: T dhnat karakter t njohur ndryshe si string mund t prmbajn karaktere ose simbole q nuk pranojn veprime arithmetike. P.sh. Emri, Qyteti. c. Date: atributet do t prmbajn datat kalendarike. d. Logjike: mund t marrin vetm vlerat true ose false. do tabel duhet t ket nj els primar. N prgjithsi elsi primar sht nj atribut (ose kombinim atributesh), q prcakton n mnyr t vetme nj njsi t dhn (rresht). N rastin e tabls Furnizuesi Kod_Furnizuesi sht els primar i saj. Atributi Emri nuk sht els primar sepse prcakton disa njsi. elsat 27

elsi prbhet nga nj ose disa atribute q prcaktojn atributet e tjera. P.sh. Kodi i nj fature prcakton t gjitha atributet e tjera. Kemi folur pr elsin primar n paragrafin e mposhtm. Pr t vazhduar m tej konceptet do t marrim n konsiderat tabeln STUDENT t prcaktuar m posht: Student
Stud_Kod Stud_Emr Stud_Mbiemr Stud_Dl DEPT_Kod Stud_Phone Prof_LOG

Roli i elsit bazohet n konceptim e prcaktimit. N konceptin e Bazave t t dhnave shprehja A prcakton B tregon se duke njohur vlern e atributit B. N tabeln STUDENT duke njohur Kod_Stud ju mund ta gjeni Emrin e studentit etj. Shprehja e dhn m lart A prcakton B mund t prkthehet AB. N.q.s. A prcakton B, C dhe D, ju do t shkruani A B, C, D. Duke u nisur nga tabela STUDENT ne mund t shkruajm: STUD_KODSTUD_EMR N fakt STU_KOD i prcakton t gjitha prbrsit e tjer STUD_KODSTUD_EMR, STUD_MBIEMR, STUD_DL, DEPT_KOD, STUD_PHONE, PRFO_LOG. N t kundrtn STUD_KOD nuk prcaktohet nga STUD_EMR. Principi i prcaktimit sht shum i rndsishm, sepse ai sht prdorur n prcaktimin e konceptit kryesor t Databazs, q sht ai i varsive funksionale. Termi varsi funksionale mund t prcaktohet mjaft thjesht n kt mnyr: N tabeln Student mund t themi se STUD_PHONE varet funksionalisht nga STUD_KOD. P.sh. studenti me kod 321452 prcakton STUD_PHONE 2134. Nga ana tjetr STUD_PHONE, sepse numri i telefonit 2267 i prket dy studentve 324274 dhe 324291. Nga ana tjetr STUD_KOD me vlern 324247 jepe numri e SMITH. N rastin kur varsia nuk prcaktohet nj me nj, ather zgjerohet koncepti i elsit duke arritur n elsin e kompozuar. Nj atribut q sht pjes e elsit njihet si atribut i elsit. N relacionin STUDENT mund t shohim varsin STUD_EMR, STUD_MBIEMR STUD_PHONE, STUD_DL (duke supozuar identike EMR, MBIEMR). Duke mar n konsiderat elsin e kompozuar ne mund t flasim pr varsi funksionale t plot (varsi elementare).

28

Prkufizimi: N.q.s. atributi B sht funksionalisht i varrur nga elsi i kompozuar A, por jo nga nj nnbashksi A A, ather themi se atributi B ka varsi t plot funksionale nga A. Me zgjerimin e klasifikimit t elsave mund t prcaktohen disa tipe elsash. P. sh. elsi primar sht ai q identifikon do njsi. N relacionin student elsi primar sht STUD_KOD. elsi kandidat sht elsi primar pa llotollogji. P.sh. STUD_KOD, sht vet els kandidat. elsi primar pasqyron at q quhet integritet i njsis. Pr t mbajtur integritetin e njsis vm n dukje se vlera asgj (q do t thot nuk lejohen t mos regjistrohen vlera). Nuk sht e lejuar n elsin primar. Shnim: Asgj nuk do t thot zero ose space. Asgj do t thot t bsh Enter pa shtypur ndonj tast paraprakisht Asgj N.q.s. prdoret jo saktsisht mund t kryoj probleme meqense mund t ken kuptime t ndryshme. P.sh. Asgj mund t paraqes: Nj vler t panjohur, Vler q njihet, pa e humbur, Kandit t pa aplikueshme.

N varsi t sofistikimit t zhvillimit t aplikimit asgj mund t kryoj problem kur prdorim funksione si COUNT, AVERAGE dhe SUM. N prdorimin e kanditave asgj mund t kryoj probleme logjike kur tabelat relacionale jan t lidhura. Tabelat n vazhdim PRODUKT dhe SHITS ndajn bashk atributin KOD_SHITS. PRODUKT KOD_PROD 001278-AB 12321UUV QER.34256 SRE. 657UG ZZX. 324Q SHITS
KOD_SHITSI

PRSHK_PROD MIM_PROD SHEQER 65 VER 250 VAJ VEJETALL 170 TAPET 6500 800 Arben Mali Vera Shkmbi Gent Deti Arjan Kodra Mira Pasha Gzim Pylli 608 615 608 904 615 615

COD_SHITSI 232 235 231 232 235 555_234 123_536 224_194 342_656 123_324 899_425 29

EMR SHITSI KODI_ZONS_SHITSIT PHON_SHITS

230 231 232 233 234 235

elsi primar n tabeln PRODUKT sht KOD_PROD, ndrsa n tabeln SHITSsht KOD_SHITSI. Lidhja ndrmjet dy tabelave bphet me KOD_SHITSI. Theksojm se lidhja bhet kur tabelat ndajn nj atribut. M specifikisht elsi primar i nj relacioni paraqet ni els i jashtm n relacionin tjetr. elsi i jashtm sht atribut, i cili bashkshoqron vlerat e elsit primar n tabeln . N shembullin q kemi marr n konsiderat KOD_SHITSI sht elsi i jashtm n tabeln PRODUKT dhe elsi primar n tabeln SHITS. S fundi sht koncepti i elsit sekondar, i cili sht prcaktuar si element mjaft i rndsishm n marrjen e reultateve t pyetjeve. elsi sekondar prdoret pr ndrtimin e Querive. Sistemet e bazave t t dhnave Problemet q faqen n sistemet e skedarve i bjn bazat e t dhnave shum trheqse. Ndryshe nga sistemet e skedarve, databaza konsiston n t dhnat e lidhura logjikisht t ruajtura n t njjtn hapsir. Databaza paraqet ndryshim dhe nga fakti se si t dhnat jan ruajtur, hapur dhe administruar. Nga pikpamja skematike sht e qart diferenca ndrmjet sistemit t skedarve dhe data_bazs. Sistemi i bazave t t dhnave Database Dept.Personelit Dept. Shitjes Dept. i financave DBMS
Punnjsit Klientt Shitjet Inventari Llogaria

Sistemi i skedarve
Dept. Personelit Dept. Shitjes Dept. Financs

Punonjsit

Klientt

Shitjet

Inventari

Llogaria

30

Komplementet e mjedisit t bazave t t dhnave

Ndrfaqsi prdorues (sistem) Fjalori i t dhnave

SQBh

BDh

Administrimi i BDh

Dezinjimi dhe modelimi i bazs s t dhnave Dezinjimi i bazs s t dhnave prbn problemin baz pr t aritur fuqin e dshiruar n prdorimin e saj. Dezinjimi sht m i thjesht kur prdorim modelet. Modelet jan abstraksion i ngjrjeve dhe kandidatave t bots reale. Ky abstraksion na jep mundsin t zbulojm karakteristikat e njsive dhe lidhjeve midis tyre. N.q.s. modeli nuk sht i ndrtuar mir logjikisht ather databaza e derivuar prej tyre nuk do t sjell efektivitetin e premtuar. Si prfundim mund t themi se modeli i mir sjell dezinjim t mir, q jan bazat pr nj aplikim t mir. Modelet e bazave t t dhnave mund t grupihen n dy kategori: modeli konceptual dhe modeli i implementimit. Modeli konceprual fokusohet n natyrn logjike t paraqitjes s t dhnave. Modeli konceptual lidh me faktin se far do t paraqesin n databaz. Modelet konceptuale prfshijn modelin njsi shoqrin (E-R) dhe modelin objekt oriental. Modeli i implementimit merret me faktin se si jan paraqitur t dhnat n databaz ose se si sht paraqitur struktura e t dhnave. Modeli i implementimit prfshin modelin hierarhik, modelin rrjetor, modelin relacional dhe modelin object-oriented.

31

Tipet e sistemeve t administrimit t t dhnave DBMS n t ciln sht bazuar sistemi i bazave t t dhnave mund t klasifikohet n prputhje me numrin e prdoruesve, me vendin (vendet) e vendosjes dhe zgjerueshmria e prdorimit + tipi i prdorimit. Numri i prdoruesve prcakton me se DBMS sht klasifikuar. Single user multi user. DBMS single oser sporton vetm nj prdorues n nj ast t dhn, N prputhje me site e vendosjes DBMS klasifikohen: - DBMS e entralizuar - kur t dhnat vendosen n nj site t vetm. - DBMS e shprndar kur t dhnat vendosen n disa site. Lidhur me tipin e prdorimit dhe zgjerueshmrin jepen klasifikimet si m posht. Dbase transaksionale, kur merren informacione t . Dbase: decision support database, q lidhen me prodhimin e informacioneve q prdoren pr t marr vendime taktike dhe strategjike. N kt rast prdoren t dhnat . Termi data warehous (negacione t dhnash) prdoret pr t dhnat q prdoren n kt stil pune. Aplication Model. Nj Model Aplikacioni prbhet nga shrbimet e mposhtme: Shrbimet e prdoruesit (User Services). Kto prbjn ndrfaqen e sistemit si p.sh. nj GUI, nj ndrfaqesh menush, apo nj ndrfaqe command-line. Shrbimet e biznesit (Bussines Services). Kto prbpjn logjikn e aplikacionit ose si thuhet ndryshe business rules q lidh shrbimet e prdoruesit me shrbimet e t dhnave. Shrbimet e t dhnave (Data Service). Kto shrbime q zakonisht kryhen nga DBMS manipulojn t dhnat dhe sigurojn integritetin e tyre. Lejojn prdoruesit t bjn insert, update, delete dhe t krkojn t dhna pa u merakosur se ku ndodhen kto t dhna, se si jan implementuar ato dhe se si aksesohen ato. Po ku sht e mira e ndarjes s nj aplikacioni sipas ktij modeli? M posht po listoj nj ser arsyesh:

32

Paralelizm n ndrtimin software duke lejuar q antart e grupit t ndrtimit t punojn sbashku n secilin nga grupet e shrbimeve. Kjo gjithashtu lejon antart e grupit q t ndajn punn n pjes m t vogla dhe m t menexhueshme q bn r mundur minimizimin e riskut. Riprdorim i softwer-it, pasi shrbimet e biznesit mund tp implementohen si komponente p.sh. COM dhe mund t prdoren prsri n software t ndryshm. Fleksibilitet t lart n mbshtetjen e shum shrbimeve t prdoruesve si jan aplikacionet tradicionale dhe aplikacionet e reja web based. Qenja konsistent n grupe ndrtimi softwaresh pasi t gjith grupet prdorin t njjtin model zhvillimi aplikacioni. Mundsi pr tu prshtatur me teknologji t reja pasi t tre grupet e shrbimeve izolojn njra tjetrn e nga efektet e ndryshmimit t teknologjis pr nj grup shrbimiapo nj tjetr. Por cilat jan tipet e aplikacioneve q mbshtesin kt model? Single tier, tow tier, three tier dhe n tier jan tipet e aplikacioneve q mbshtesin kt model dhe paraqitin menyra pr t implementuar fizikisht t tre grupet e shrbimeve. Single tier. Aplikacionet Single tier jan aplikacionet q prcaktojn shrbimet e prdoruesit, biznesit dhe t t dhnave n nj makin t vetme. Shembuj aplikacionesh single tier jan MS Word, Ms Excel, m posht sht dhn nj paraqitje grafike e ktij tipi aplikacionesh.

33

Single Tier GUI Client, Peer ose server


Presentation Logic Busines Logic Data Acces Logic

Use srvice Business Services Data services

DBMS

Vihet re dhe q atje kemi vendosur disa terma t rinj si Presentation Logic, Business Logic, Data Access Logic t cilat prbjn thelbin e grupeve t shrbimit. Pra n kto tipe aplikacionesh kemi nj centralizim t gjith shrbimeve por le t kalojm drejt decentralizimit. Client/Server, towtiers, threetiers dhe ntiers. Klient/Server sht nj nga teknikat dominante n ndrtimin e software-ve n IT dhe sht zhvilluar ndrsa industria e kompjuterave kaloi nga sistemet m logjike t centralizuara drejt njri rrjeti workstations dhe servers. Klient/Server konsitston n dhnjen e nj arkitekture aplikacioni q bn t mundur q nj proces i kompjuterizuar t ndahet n nnprocese m pak komplekse dhe nj mekanizm komunikimi pr kto nnprocesse n mnyr q ata t bashkpunojn me njritjetrin. Qllimi i ndarjes sht q t arihet n nj form nivelesh e cila pastaj sht m e leht pr tu implementuar n disa makina n mnyra optimale. Kto nivele jan ashtu si e kam paraqitur dhe n figurn e msiprme: Presentation Logic (Logjika e prezantimit) q hyn n user services. Business Logic (Logjika e biznesit) q hyn n Bussiness servicess. Data access Logic (Logjika e aksesimit t t dhnave) q hyn n data Services. Ndrtimi i ktyre niveleve krkon nj modelim t kujdesshm dhe prcaktim t sakt t kufijve midis tyre n mnyr q t sigurohet q logjika e niveleve mos ndrfutet n njra tjetra. Organizmi i logjiks n nj mnyr t till siguron q ndryshimet e mvonshme n nj nivel t ken sa m pak ndikim n nivelet e tjera.

34

Pra mund t themi: Klient/Server sht nj teknologji q implementon nj sistem n nj organizat n nj mnyr modulare dhe fleksibil, duke lejuar shprndarjen e aplikimit ndrmjet shum makinave q ndodhen n nj enterprise. Ka disa arkitektura Klient/Server t cilat implementohen sot le t shohim me rradh ato: Two Tier klient/server N.q.s. n single tier ne kishim nj aplikim t vetm ktu kemin darjen e tij n komponentet q marrin emrin klient dhe server. Gjeneracioni i par i Klient/Server sht evulimi i nj sistemi file-sharing i cili u zvendsua nga nj Relational Database Management System (RDBMS). Sisteme t tilla ofrojn prqindje t larta transaksionesh dhe kur klienti krkon t veproj mbi kto t dhna ai drgon nj krkes prmes nj rrjeti n DBMS e cila m pas i kthen nj prgjigje duke i ofruar t dhnat q krkoi. Po ti krahasosh file sharing dhe klient/server, kto t fundit zvoglojn shum trafikun n rrjetpasi tashm kthen vetm t dhnat q do dhe jo gjith skedari si n rastin file-sharing, gjithashtu DBMS t ofron mundsin pr krijimin e aplikimeve me shum prdorues duke lejuar q t aksesohen dhe t ndryshohen t dhnat n mnyr t sigurt. Ktu aplikacioni ndahet n dy nivele q prfaqsohen nga workstation dhe server pr kt arsye kto lloj aplikacionesh quhen dhe two-tier klient/server. Two-tier klient/server ndahen n dy tipe. Fat client/thin server Thin client/fat server Fat client/thin server. Ky sht tipi m i zakonshm i implementimi t sistemeve tow-tier ku logjika e prezantimit dhe e biznesit vendosen np klient duke e br at mar emrin fat client, ndrse data accee logic vendoset n server q merr emrin thin server. Krkesat pr t dhna implementohen nga klienti nprmjet gjuhs SQL dhe kalojn n DBMS nprmjet nj protokolli transporti t dhnash ose duke prdorur mekanizmin e ODBC. M posht po jap nj paraqitje grafike t arkitekturs.

35

Tow-tier fat client/thin Server Client GUI Presentation Logic Business Logic User Services Business Services

Server

Data Access Logic DBMS

Data Services

Sisteme t tilla mund t implementohen leht duke prdorur RAD (rapi application development) tools si jan MS Visual Studio, Sybase Power Builder dhe Borland Delphi. Kto sisteme jan t prshtatshme pr mjedise workgroup. Por kto lloj sistemesh kan disa probleme: Vet arkitektura imponon q klientt duhet t jen makina shum t mira pr t prballuar ngarkesn q do t thot q t kesh workstations me fuqi procesim t lart, sasi t madhe memorje dhe hapsir n disk. Krkesat n database mund t gjenerojn rezultate t mdha t cilat per tu transportuar m klient mund t shkaktojn nj trafik t till q t degradojn rrjetit. do workstation q komunikon me server-in krkon nj lidhje t veant q krkon burimet e mdha. P.sh. MS SQL Server krkon 37K memorje pr do prdorues q lidhet me t. Ndodhja e logjiks s biznesit n klient on n nj kosto t lart t shprndarjes dhe mirmbajtjes pasi pr do ndryshim q mund t bhet n logjikn e biznesit duhet q t merret dhe t ohet n do klient ndryshimi dhe kjo rrit koston. Gjithashtu nga praktika dihet se performanca e sistemeve t tilla bihe n mnyr eksponenciale kur rrjeti degradon pasi sht arritur nj numr prdoruesish q punojn n t. Si prfundim mund t themi q kjo arkitektur nuk na jep fleksibilitetin dhe performanc q nevojitet n nj sistem t madh n enterprise ose Internet sic sht Mercury.

36

Thin client/fat server. Kjo sht nj alternativ e arkitekturs s m siprme n t ciln logjika e biznesit sht zhvendosur n ann e server-it pra n database duke prdorur teknikat e DBMS si stored procedure, triggers dhe constraints. M posht po jap paraqitjen grafike t ksaj arkitekture. Two-tier thin client/fat Server Client GUI Presentation Logic Busines Logic Data Access Logic DBMS User Services

Busines Services Data Services

Server

Por dhe kjo arkitektur nuk sht adekuate pr sisteme t mdha pasi gjuha q prdoret pr ndrtimin e stord procedure dhe triggers sht shum private p.sh. gjuha q prdoret MS SQL Server pr implementimin e tyre T-SQL q ka ndryshime nga PL/SQL e ORACLE. Kshtu q kemi m pak fleksibilitet dhe m pak mundsi pr kalim nga nj RDBMS n tjetrin. Gjithashtu si dhe n rastin e par mundsi pr t mbajtur nj lidhje database-i pr do workstation ka ndikim n server dhe e bn jo t plqyeshme kt arkitektur pr implementime n enterprise apo Internet. Multi-tier klient/server Duke patur parasysh t metat e msiprme n mund t risim performancn e aplikimit dhe t zvoglojn trafikun n rrjet duke kaluar n nj arkitektur me tre Threetier Client/Server tier ose si quhet three-tier client/server. User Services Client Three-tier Kjo arkitektur konsiston n shtimin e nj shtrese midis nj thin klient dhe nj thin serveri duke krijuar nj arkitektur me tre shtresa pra three tier. M posht po jap grafikisht formn e nj arkitekture t till. Aplication Business Services Server GUI Database Presentation Logic Server Data Access Logic Data Access logic Business Logic DBMS Data Services 37

Klienti komunikon me shtresn e mesit ose si quhet middle tier duke prdorur protokollohet standardi si TCP/IP, NetBEUIetj, m pas kljo shtres e mesit komunikon me shtresn e tret pra RDBMS duke prdorur protokolle komunikimi me database ose mekanizmin e ODBC. Shtresa e mesit sht prgjegjs pr: Implementimin e logjiks s biznesit dhe formimin e krkesave ndaj database-it. Prpunimin e prgjigjeve q vijn nga database duke aplikuar prsri logjike biznesi dhe gjenerimin e prgjigjeve ndaj klientit. N kt rast nuk krkohet nj lidhje e veant pr do prdorues pasi shum sesione prdoruesish mund t ndajn nj lidhje t caktuar duke br t mundur ruajtje t burimeve t server-it. Nprmjet ksaj arkitekture ne mund t implementojm fizikisht t tre shtresat presentation logic, business logic dhe data access logic dhe q ka t miren q ne mund t ndryshojm seciln nga tre shtrsat pa ndikuar shum n shtresn tjetr. Shpesh sht e mundur q bussiness logic dhe data access logic t qndrojn n t njjtn makin dhe kjo sht nj zgjidhje optimale. N kt rast kemi nj shtreszim logjik.

38

Kjo lloj arkitekture sot konsiderohet si e prshtatshme pr aplikacionet n enterprise dhe Internet pasi jan m t menazhueshme, mund t mirmbahen m leht dhe jan fleksibil duke ju prshtatur ndryshimeve t krkesave t biznesit. Multi-tier N kt arkitektur logjika e biznesit ndahet dhe shprndahet n disa makina duke shfrytzuar kshtu procesimin e shprndar n paralel. Aplikacionet m t prshtatshme pr kt lloj arkitekture jan aplikacionet q shfrytzojn Internetin.

Lidhjet n Lidhjet jan klasifikuar si nj-nj (1:1), nj-shum dhe shum-shum (M:N). Tregon simboli 1:1 n kt lidhje nj njsi sht e lidhur me nj tjetr dhe anasjelltas. P.sh. nj drejtor administron vetm nj shkall dhe vetm nj shkall sht administruar vetm nga nj drejtor, q sjell lidhjen 1:1 ndrmjet tyre. Ekzistenca e lidhjes 1:1 shpesh nnkupton q komponentt nuk jan prcaktuar si duhet. Megjithat ka raste kur 1:1 jan prcaktuar n mnyr t prshtatshme. P.sh. supozojm ju administroni bazn e t dhnave t nj kompanie punson pilot, llogaritare, mekanike personel shrbimi etj. Pilott kan disa atribute, q nuk i kan punonjsit tjer si jan liensa, raporti mjeksor, eksponenca e fluturimit, kontrollet periodike mjeksore. N.q.s. ju i vendosni t gjitha vetit specifike t pilotit n tabeln PUNONJS, ju do t keni shum asgj, pr punonjsit q nuk jan pilot. Pr t eliminuar prdorimin e asgj sht mir t ndahen atributet e pilotit n tabeln PILOT q sht lidhur me PUNONJS me lidhjen 1:1. (Sepse pilott kan disa atribute q jan njlloj me punonjsit e tjer si jan emri, datlindja, data e fillimit t puns etj.) Lidhja 1:m sht ideale n sistemin relacional dhe prbn blloqet kryesore n sistemin relacional. M posht do t tregojm se si konvertohen lidhjet M:N n 1:M.

N kt rast jemi duke punuar me njsi 1:M. Ne mund t ekzminojm kt lidhje modelin entyti-relation ship. (E-R). Nj model figura t thjeshta t 39

lidhjeve ndrmjet njsive q do t prdorni diagrame entyti relation ship ose ERD ndrtuar modelin ERD. Pr t ilustruar ERD

T dy modelet prdorin karakteristikat pr t paraqitur emrat e njsive jan me forma t mdha: PUNONJS, DEPA, dhe prdoren me numr njjs., Lidhjet jan folje aktive ose pasive dhe shkruhen me P.sh. pikturon, punon pr, prodhon t vogla.

40

Duke u nisur nga shpnimet e msiprme paraqitet n modelin E_R m posht Modeli Crows Foot. PIKTORI Pikturon

PIKTOR dhe PIKTUR do t

Modeli Chen PIKTORI pikturon

PIKTURA

PIKTURA

Fig. Lidhjet ndrmjet PIKTOR dhe PIKTURA. Orientimi i ERD nuk sht material. Lidhjet e msiprme mund t paraqiten pikturon

PIKTORI

PIKTURA

1 PIKTORI

pikturon

M PIKTURA

Fig. Paraqitja alternativ e modeleve.

Nj paraqitje konkrete e lidhjeve t msiprme.

41

PIKTORI
KODI_PIKTORI EMR_PIKTORI

123 126

Luan Besnik

Kodi_Pikturs

Titulli_Pikturs Kodi_Piktorit

1338 1339 1340 1341 1342

123 123 126 123 123

N mnyr t ngjashme me nj universitet R.S. mund t ket disa seksione, pr do seksion i duhe nj kursi. P.sh. kursi i Finance II mund t ket seksione njeri t Hn, Mrkur, Premte (hmp) nga ora deri 11:00 dhe nj tjetr Mart, Ejte, Shtun (MES) nga ora 18:00 deri ora 19:00. Meqense do seksion sht si KLAS, ather kemi lidhjen 1:M ndrmjet KURS dhe KLAS . Paraqitja e saj sht: Modeli Crows Foot KURS Modeli Chen KURS 1 ka KLAS M ka KLAS

Fig. Relacioni 1:M ndrmjet KURS dhe KLASE. Ky model mund t ilustrohet me tabela n form t Emri i tabels: KURS. elsi primar: KURS_KOD elsi i jashtm: ska KURS_KOD DEPT_KOD :

Ermi i databazs: KURS_BOLEGJ

KURS_PERSHK

KURS_KREDIT

42

ACCT_211 ACCT_212 CIS_220 CIS_420 QM_261 QM_362

ACCT ACCT CIS CIS CIS CIS

Accounting I Accounting II Hyrje n informatik Database Design Hyrje n Statistik Aplikime t Statistiks

3 3 3 4 3 4

Emri i tabels: KURS. elsi primar: KURS_KOD elsi i jashtm: KURS_KOD. Klase_Kod Kurs_Kod Klase_Seksion Klase_or HMP 18012 ACCT_211 1 10013 10014 10015 10016 10017 10018 10019 10020 10021 10022 10023 10024 ACCT_211 ACCT_211 ACCT_212 ACCT_212 CIS_220 CIS_220 CIS_220 CIS_420 QM_261 QM_261 QM_362 QM_362 2 3 1 2 1 2 3 1 1 2 1 2
8-8:50am HMP 9-9:45AM ME 2:302:45pm HMP 1010:50am E 6-8:40pm

Klase_Sall Prof_Num A-311 105 A-200 A-252 A-311 A-252 B-209 B-211 B-209 B-209 B-200 B-200 B-200 B-200 105 342 301 301 228 114 228 162 114 114 162 162

HMP 99:50am HMP 1010:50am M 6-8:40 pm HMP 88:50am ME 1-2:50pm HMP 1112:50pm ME 2:303:45pm HMP 1010:50 am

Fig. Baza e t dhnave KURS_KOLEGY N tabeln KLASE prbrsi KLASE_KOD prcakton n mnyr t vetme do rresht, duke qen els primar. Megjithat kombinimi KURS_KOD dhe KLASE_SEKSION prcaktojn n mnyr t vetme do rresht t tabels dhe formojn els kandidat. Lidhja 1:M implementohet leht n modelin relacional. Duhet t jemi t sigurt q elsi primar i nj tabele sht els i jashtm n tabeln me shum.

43

N lidhjen M:N lindin probleme n modelin relacional, por problemi zgjidhet duke dekompozuar at n disa relacione 1:M. Pr t trajtuar problemin e shtruar le t ekzamonijm mjedisin e kolegjit n t cilin do student mund t ndjek disa KLASA dhe do klas ka disa student. Figura n vazhdim tregon modelin ERD pr kt problem. Modeli Crows Foot STUDENT Modeli Chen M STUDENT ndjek KLAS N ndjek KLAS

Figura: Modeli M:N pr lidhjen ndrmjet STUDENT dhe KLAS Vetit e modelit ER sapotreguara jan: do KLAS ka shum STUDENT- dhe do student ndjek shum KLASA. Ndryshe mund t themi se ka shum rreshta n tabeln KLASA pr nj rresht n tabeln STUDENT dhe ka shum rreshta n tabeln STUDENT pr nj rresht n tabeln KLASA. Le t paraqesim shembullin e nj kolegji me dy student: MBIEMRI KLASAT E ZGJEDHURA SHKMBI
Accounting 1, ACCT-211, CODE Hyrje n Informatik, CIS-220, 10018, Hyrje n Statistik, QM-261, 1002. Accounting 1, ACCT-211, CODE Hyrje n Informatik, CIS-220, 10018, Hyrje n Statistik, QM-261, 1002. 10018, CODE CODE 10018, CODE CODE

MALI

Ky relacion mund t paraqitet n form tabelare si n figurn n vazhdim. Emri i Databazs CH2-TEXT 44

Emri i tabels STUDENT STUD_KOD MBIEMRI 321452 SHKMBI 321452 SHKMBI 321452 SHKMBI 324257 MALI 324257 MALI 324257 MALI

KLASE_KOD 10014 10018 10021 10014 10018 10021

Emri i tabels KLAS


Klas_kod Stud_kod Kurs_kod Klase_seksion Klas_or Kas_sall Prof_kod
ACCT211 ACCT211

10014 10014 10018 10018 10021 10021

321452 324257 321452 324257 321452 324257

3 3 2 2 1 1

CIS-220 CIS-220 QM-261 QM-261

HM 2:303:45pm HM 2:303:45pm HEP 99:50am HEP 99:50am HEP 39:50am HEP 39:50am

B 201 B 201 A 112 A 112 C 305 C 305

342 342 114 114 114 114

Fatmirsisht Ne mund t shmangim problemet q lindin nga lidhja M:N duke krijuar njsi t kompozuara ose nj ur. Meqense tabela e ktill sht prdorur pr t lidhur tabelat q m par prfaqsonin lidhjen M:N. Njsia e kompozuar prfshin si els t jashtm t paktn els primar t tabelave q do t lidhen. Konceptuesi i Bazs s t dhnave ka dy opsione kryesore pr t pprcaktuar elsin primar t tabels s kompozuar: - Bjhm kombinimin e dy elsave t jashtm, - Krijojn nj els t ri primar. Tabela REGJISTRIM lidh dy tabelat dhe quhet tabel lidhse. Kan n dukje se tabelat STUDENT dhe KLAS kan nga nj rresht pr njsi. Tabela REGJISTRIM ka shumzimin t tyre. N tabeln e lidhjes mund t vendson t dhna sipas rastit pr efekte raportimesh. Pr t prcaktuar gradn e studentit n nj lnd duhen dhe KLASE_KOD dhe STUDENT_KOD. 45

Lidhja e tabelave t msiprme paraqitet n modelin e t dhnave n vazhdim. Modeli Crows Foot STUDENT kryen KLAS

Diagrama E-R e rreshtuar :2 relacionale 1:M STUDENT Gjendet n REGJISTRIM bn pjes n


KLAS

Modeli Chen STUDENT


gjendet

KLAS

1 STUDENT

N
Regjistrmi

KLAS

n shembullin e msiprm kemi ilustruar lidhjen ndrmjet STUDENT dhe KLS. Figura mun t zgjerohet duke shtuar relacionin 1:M ndrmjet KURS dhe KLAS, dhe marrin figurn n vazhdim:

46

Modeli E-R N msimet e mparshme pam lidhjet dhe paraqitjen e tyre n modelin ERD. Modeli ERD ka n bazn e tij tre komponent: njsit, atributet dhe lidhjet. Duke prmbledhur ata q tham atributet paraqiten si m posht: Marim n konsiderat njsin STUDENT q prmban atribute EMR_STUD, MBIEMR_STUD, STUD_INIT (iniciale), STUD_EMAIL, STUD_PHONE. Paraqitja e ksaj njsie n dy modelet do t jet: Modeli Chen
STUD_INIT
MBIEMER_STUD

STUD_EMAIL STUD_PHONE

EMER_STUD

Modeli Crows Foot STUDENT EMR_STUD MBIEMR_STUD STUD_INIT STUD_EMAIL STUD_PHONE Fig. Atributet e njsis STUDENT n dy modelet.

47

Pjesmarja n lidhje Nj njsi q merr pjes n lidhje mund t jet opsionale ose e detyrueshme (mandatory). Pjesmarja n relacion sht opsimale n,q,s, ndodhja e njrs njsi nuk e ka t detyrueshme Ndodhjen e tjetrs. P.sh. n relacionin kursi gjeneron klas. N relacionin KURS mund t shtohen KURSE t reja pa patur nevoj q m par t jet krijuar relacioni KLAS. Kjo lidhje sht realizuar duke vendosur nj O n ann e njsis opsioanle. Kordinaliteti minimum pr njsit opsionale sht O. Pjesmarja n relacion sht e detyrueshme(mandatory) n.q.s. ndodhja e nj njsie krkon ndodhjen e njsis koresponduese. Ekzistenca e lidhjes s detyrueshme tregon q kordinaliteti minimal sht 1 pr njsin e detyrueshme. Pjesmarja n relacion sht mjaft e rndsishme n proesin e konceptimit t bazave t t dhnave. Supozojm se n Universitet ku ka profesor q japim msim dhe profesor q bjn krkim. Le t marrim n konsiderat lidhjen PROFESORI mson KLAS. Nga njra an KLAS msohet nga PROFESORI, por duke patur PROFESOR q nuk mson KLAS del q KLAS sht opsimale lidhur me PROFESOR. Njsia PROFESOR sht edetyrueshme me KLAS. N modelin Crows Foot do kemi: Fortsia e lidhjeve: Pr t kuptuar lidhjet sht e domosdodhme t njihen njsit q bjn pjes n kto lidhje. Prpara se t shohim klasifikimin e lidhjeve duhet t shohim ekzistencn e varsive ndrmjet tyre. Ekzistenca e varur: (Varsi ekzistente) N.q.s. ekzistenca nj njsi varet nga ekzistenca nj njsi ose disa t tjera, quhet ekzistencialisht e varur. P.sh. n.q.s. n nj kompani jepen kompesime pr personat n varrsi t nj tjetri, relacioni PUNONJS dhe I/T_VARUR shprehin kt fakt. N kt rast njsia I/T_VARUR sht ekzistencialisht e varur nga PUNONJS. (Njsia T_VARUR ekziston n saje t PUNONJS.) N.q.s. njsia nuk sht e varur nga njsi t tjera ather themi se njsia sht ekzistencialisht e pavarur. Lidhjet e dobta: N.q.s. nj njsi sht ekzistencialisht e pavarur, lidhja ndrmjet tyre quhet lidhje e dobt ose lidhje e paprcaktuar. Nga pikpamja e databazave lidhja e 48

dobt ekziston n.q.s. PK (Primary Keg) e njsis n fjal nuk prmban komponent t elsit primar PK nga njsia prind . p.sh. KURS(KOD_KURS, KOD_DEPT, PRSHK_KURS, KREDIT_KURS) KLAS(KOD_KLAS,KOD_KURS, SEKSION_KLAS, OR_KLAS..) N kt rast lidhja e dobt ekziston ndrmjet KURS dhe KLAS, sepse KOD_KLAS sht PK pr njsin KLAS, ndrsa KURS_KOD FK (pra elsi primar i KLAS nuk prmban KOD_KURS n elsin primar). N figurn n vazhdim po japim paraqitjen e lidhjes s dobt n modelin Crow;s Foot, e cila paraqitet me vija t ndrprera, modeli Chen nuk bn dallim ndrmjet tyre. KURS KLAS KO_KURS KOD_KLAS gjeneron KOD_DEPT SEKSION_KLAS PRSHK_KURS KURS_KOD (FK) KREDIT_KURS OR KLAS Fig. Lidhja e dobt ndrmjet KURS dhe KLAS. Lidhjet e dobta: Lidhje e fort ndryshe e njoheu si lidhja prcaktuese ekziston kur njsit e lidhura jan t varura ekzistencialisht. Nga pikpamja e databaze lidhja e fort ndrmjet dy njsive faqet kur PK e njsis s varur prmban Pk e njsis prind si komponent p.sh. KURS (KURS_KOD, KOD_DEPT, PRSHK_KURS,KREDIT_KURS) KLAS (KURS_KOD, SEKSION KLAS, OR_LAS,......) N relacionin KLAS, elsi primar sht formuar nga KURS_KOD+SEKSION_KLAS. Si shihet KURS_KOD sht PK n relacionin KURS. Paraqitja sht si m posht. KURS KURS_KOD KOD_DEPT PRSHK_KURS KREDIT_KURS PROFESOR KLAS SEKSION_KLAS KURS_KOD OR_KLAS

gjeneron shnim: m von.

O do t shihet KLAS 49

Mson

Fig. Nj njsi opsionale n relacionin Profesori msonKlas Duhet vpnp np dukje se semantika e priblemit prcakton tipin e pjesmarjes n relacion. P.sh. Universiteti ofron disa tipe kursesh dh do kurs ka disa klasa. Vem n dukje diferencn ndrmjet kursit dhe klass: nj KLAS prbn nj ofert specifike (seksion) t KURS.(kurset paraqiten n katalogt e universitetit, ndrsa KLASA-t prcaktohen pas regjistrimit). Duke analizuar njsin KLAS n KURS gjeneron KLAS n kurs gjeneron KLAS sht e leht t shihet q klasa nuk mund t ekzistoj pa kurs. Si rrjedhim konkludojm se KURS sht e detyrueshme n relacion. Por ne mund t paraqesim dy skenar pr njsin KLAS q paraqiten n figurat n vazhdim. Skenart jan pjes e semantiks s problemit, dhe varen nga fakti nga fakti se si jan prcaktuar relacionet: 1. KLAS sht opsional: Pr departamentin sht e mundur t krijoj njsin KURS dhe pastaj t krjoj njsin KLAS pasi t marr masat e msimdhnes. N botn reale, ky skenar sht i ngjashm me faktin q mund t ket kurse pr t cilt akoma nuk sht caktuar seksioni. KURS gjeneron O KLAS

Fig. KLAS sht opsional me KURS. 2. KLAS sht e detyrueshme: Kjo kandit ishte krijuar nga kufizimet q rrjedhin nga semantika e shprehjes do kurs gjeneron nj ose disa KLAS. N termet e E-R do KURS n gjeneron duhet t ket nj klas. <egjithat KLAS duhet t krijohet apo kursi sht krijuar.

50

KURS gjeneron O

KLAS

Fig. KURS dhe KLAS n lidhjen e detyrueshme. N fig. q sapo dham KURS nuk pranohet n.q.s. nuk i bashkshoqrohet nj saksion. Lidhjet e forta dhe njsit e dobta Kemi par se lidhjet e forta kan nj efekt n vizatimin e njsive t lidhura. N termat e databazs ekzistenca e lidhjeve t forta ndrmjet njsis prind dhe Ka njsis t lidhur me t i bashkshoqrohet njsia e dobt. Meqense njsit e dobta mund t luajn nj rol t rndsishm n implementimin e databazs, le ti shohim ata: Njsia e dobt quhet ajo q plotson dy kondita: 1. Ajo sht ekzistencialisht e varur, pra ajo nuk mund t ekzistoj pa njsin me t ciln sht e lidhur. 2. Ajo ka els primar sht pjesrisht ose totalisht i derivuar nga njsia prind. p.sh. nj kompani sigurimesh mundt siguroj punonjsin dhe personet e varur prej tij. Nj PUNONJS mund t ket ose jo T_VARUR, por T_VARUR nuk mund t ekzistojn pa PUNONJS. Me fjal tjera T_VARUR sht njsi e dobt n lidhjen PUNONJS ka T_VARUR. Paraqitja e tyre bhet Modeli Chen PUNONJS 1 (0,N) KOD_PUN EM:R_PUN MBIEMR_PUN INIT_PUN DLIN)PUN
opsionale (min. 0)

M T_VARUR O (1,1)
(e detyrueshme min. 1)

KOD_PUN KOD_VAR EMR_VAR DLIN_VAR

51

Crows Foot model PUNONJS KOD_PUN EMR_PUN MBIEMR_PUN INIT_PUN DLIN_PUN T_VARUR KOD_PUN KOD_VAR EMR_VAR DLIN_VAR

Ka

Njsia e dobt trashgon nj pjes ose t gjith pjest e elsit t saj primar nga kundrpjesa e fort. P.sh. t paktn nj pjes e elsit T_VARUR do t trashgohet nga njsia PUNONJS: PUNONJS(KOD_PUN, EMR_PUN, MBIEMR_PUN, INIT_PUN, DL_PUN) T_VARUR( KOD_PUN, KOD_IVARUR, EMR_IVARUR, DL_IVARUR). Shkalla e lidhjeve: Shkalla e lidhjeve tregon numrin r njsive t lidhura. Nj lidhje unare ekziston kur bashkshoqrimi realizohet me nj njsi t vetme. Nj lidhje binare ekziston kur dy njsi jan t lidhura. Nj lidhje ternare kur jan bashkshoqruar tre njsi. Lidhje t tjera ndeshen radhe dhe nuk kan emrtime speciale. N vazhdim po japim shembul pr secilin: Modeli Chen
PUNONJS PROFESOR Kontributor KFM MARRSI

mson
martuar KLAS

FOND

Unore Modeli Crows Foot

Binare

Ternare

52

PUNONJS

PROFESOR

KLASE

mson

Unare

Binare

KONTRIBUTOR

KFM

Mars

Kontribon pr

merr nga

I shprndar

Ternare

FOND

Si shihet n modelin Crows Foot krkohetkalimi i KFM nga lidhje n njsi. Modeli Chen e shpreh m qart lidhjen ternare. Ne shembujt e dhn n njsin PUNONJS mund t kemi martesa brenda punonjsve t ndrmarjes. Duhet theksuar se shumica e lidhjeve jan binare. Modelet ternare nuk jan shum praktik n realizim. Lidhjet :

Shpesh her lidhjet vendosen brenda t njjts bashksi njsish. Lidhjet ndrmjet t njjts bashksi njsish quhen . Lidhjet shprehen n tre format: nj-nj-, nj-disa, disa-disa. Nj ndrmarje ka nj njsi PUNONJS. Disa nga punonjsit jan martuar brnda ndrmarjes. N kt menyr kenmi lidhjen martesa, e cila sht 1:1. 1 PUNONJS martesa 1 Lidhja nj-disa: Le t shohim lidhjen administrim n skedarin punonjs.

53

1 PUNONJS N

administrimi

do punonj ja 1 administrator, ndrsa nj administrator ka disa punonjs. Meqense kemi nj tip regjistrimi lidhja faqet si cikl. Le t marrim dy ndodhje t ksaj strukture:
TOMI ANA GENCI DITI MARIJA FREDI SUELA MERI

TOMI

INA

GRIDI TOMI TOMI TOMI TOMI

Lidhja disa-disa: N disa organizma nj punonjs mund t ket m shum se nj administrator, kjo quhetc e organizmit. N kt rast lidhja ndrmjet punnjsve sht M:N. Shembull m tipik sht ai i llogaris s materialeve. M DETA 2 N artikull

N figurn n vazhdim, po japim dy ndodhje t ksaj strukture. A V U X V Y U X V B Y V Z W

54

Varsit funksionale Studimi i gjendjes ekzistuese (nj proces informatizimi) dhe nevojat e reja na ojn n prcaktimin e bashksis s t dhnave t domosdoshme pr aplikimin, q lejon t ndrtohet ai q auhet fjalot i t dhnave elementare. Pr t optimizuar sistemin e informacionit dhe m von trajtimet e tij duhet me regrupuar t dhnat n bashksi koherente. Disa t dhna jan t lidhura ndrmjet tyre. M praktikisht duhet vn n dukje q njohja e disa t dhnave sjell njohjen e disa t tjerave. P.sh. njohja e KNAC (kodit nacional) lejon njohjen e emrit dhe mbiemrit t personit. Trajtimi i ktyre problemeve na on n studimin e varsive funksionale. Koncepti i varsis funksionale. Prkufizimi: Le t jet dhn relacioni R(X,Y,Z) (ku X,Y, dhe Z jan bashksi prbrsish, Z mund t jet boshe). Do t themi q ekziston nj varsi funksionale ndrmjet X dhe Y e skenuar X Y, ather dhe vatm ather kur cilado qoft vlera e ( X,Y,Z) dhe (X,Y,Z) kemi: Y=Y (njohja e vlers s X sjell e shumta nj vler t Y). p.sh. le t marrim relacionet: PERSONI (KP, EMRI, MBIEMRI) MAKINA (KM, MARKA, TIPI, FUQIA, NGJYRA) ZOTRON (KP, KM, DATA, MIMI) Tek relacionet makina kemi varsit: KM NGJYRA TIPI MARKA TIPI FUQIA (TIPI, MARKA) FUQIA. Prndryshe varsit e mposhtme nuk ekzistojn. FUQIA TIPI ; TIPI NGJYRA. n.q.s. pjesa e majt prmban disa atribute ather flasim pr varsi funksionale me pjes t majt t kompozuar. Veti t varsis funksionale: Varsit funksionale i prgjigjen shum rregullave evidente: 1. Refleksioni

55

N.q.s. Y X rrjedh q XY Nj bashksi prcakton vetveten ose nj pjese t saj. 2. Shtimi: N.q.s. XY sjell XZYZ Pra t dy prbrsit mund t pasurohen me nj t tret. 3. Tranzitiviteti X Y dhe Y Z ather X Z. Tre rregullat e msiprme formojn aksionet e varsive funksionale. Nga aksionet e msiprme dhe tre rregullat e mposhtme: 4. Bashkimi i XY dhe XZ .. XYZ. 5. Pseudo_tranzitiviteti : X Y dhe WYZ..WXZ. 6. Dekompozimi : XY dhe Z Y .. XZ. Rregulli q prdoret n ndrtimin e skemave relacionale. Varsit funksionale elementare: Prkufizimi: varsia funksionale e forms XA, ku A sht prbrsi vetm, q nuk bn pjes n X( A X) dhe ku nuk ekziston X X e till q XA. I vetmi rregull i inferencs q zbatohet n varsit funksionale elementare sht traziviteti. Varsit funksionale Direkte Nj varsi funksionale AB sht direkte n,q,s, nuk ekziston C, q t gjeneronte varsin tranzitive ACB P.sh. Nr_Fature Nr_shitsit Nr_Shitsi Emr_shitsi Nr_Fature Emr_Shitsi direkte direkte jo direkte

Varsia e tret nuk sht direkte. Kjo varsi sht e paqart dhe nuk prfshihet n analizn e problemit. Tentativat pr gjetjen e varsive funksionale: Varsit funksionale q i interesojn konceptuesit jan ato elementare dhe direkte, t cilat po i shnojm CFE. Tentativa pr gjetjen e tyre (VFE) fillon nga fjalori i t dhnave: Krkohen VFE me dy rubrika elementare dhe direkte. 56

Krkohen VF me an t majt t kompozuar elementare dhe direkte. Paraqitja grafike e VF. M par se ta paraqesim varsit funksionale t gjetura gjat studimit t fjalorit t t dhnave, prdoret nj formalizues n formn e grafit t varsive funksiona. VF me dy rubrika paraqiten me nj shigjet q shkon nga Burimi Destinacioni. p.sh. Ngjyra Marka KM Tipi Fuqia

Paraqitja e VF me an t majt bhet: Nr_Fature Ref_artikullit

Sasia_faturizuar Konkluzion: Njohja e varsive funksionale ndrmjet t dhnave sht nj menyr pr t analizuar modelimin dhe t arrihet q ai t jet korekt. Kjo sht nj faz e rndsishme me analizn e problemit. Format normale Hapat e normalizimit N figurn 7.1 jan treguar hapat baz n proesin e normalizimit. S pari jan prcaktuar pamjet e prdoruesve. Pas ksaj do pamje e prdoruesit sht konvertuar n nj relacion t panormalizuar. Pasi hiqen grupet prsrits duke e shkruar disa her prbrsin nga relacioni i panormalizuar, ather relacioni sht n formn e par normale (1NF).

57

Pamjet e prdoruesve Relacionet e panormalizuara

Kan grupe t prsritin

Rel. Normaliz.1

Hiqen grupet e prsritur

Hiqen varsit e pjesshme

Rel. Normaliz.2
Hiqen varsit tranzitive

Rel. Normaliz.3

Fig. 7.1 Hapat e normalizimit Pas ksaj varsit e pjesshme dhe relacionet kalojn n 2NF. N fund hiqen varsit tranzitive dhe relacionet kalojn n 3NF. Procesi i normalizimit sht i lidhur ngusht me prkufizimet e varsive funksionale dhe realizohet nprmjet procesit t dekompozimit t vazhdueshm. Relacionet e panormalizuara. Le t marrim n konsiderat relacionin STUDENT n form t shtrir si m posht:
Disa vlera n prerjene e rreshtit me kolona
STUDENT# 42125 68134 EMER_ STUD ARBEN LUAN DREJTIMI _ KRYESOR IS PM KURSI# IS350 IS465 IS465 PM300 QM440 TITULLI_ KURSIT DATABASE SYSANAL SYSANAL BIZNES KERKOP EMRI_ INSTRU_ KTORIT CODT KEMP KEMP LEVIS KEMP VENDI_ ENSTRU_ KTORIT B104 B213 B213 B317 213 GRADA A C A B C

Fig. 7.2 Shembull relacioni t panormalizuar

58

Si rezultat n kt relacion ka clera t shumfishta n prerjen edisa kollonave me rreshtat. P.sh. prbrsi kuri merr vlera t shumfishta meqense nj student ndjek disa kurse. Nj relacion t panormalizuar nj prbrs i vetm nuk mund t shrbej si els primar. Po t marim n relacionin STUDENT prbrsin STUDENT # si els primar ather lidhjet ndrmjet prbrsve do t paraqiten si m posht duke prdorur metodn e skemave flluskore. M:N 1:1
STUDENT
EMR_ STUDENTI

M:N

DREJTIMI KRYESOR

KURSI#

GRADA

Si shihet nga figura lidhja ndrmjet STUDENT# dhe EMER_STUDENT si dhe DREJTIMI_KRYESOR sht nj-nga-nj dhe sht nj-disa duke filluar nga prbrsi KURSI#. Pra STUDENT# nuk prcakton n mnyr unike t gjith prbrsit. E meta kryesore e relacioneve t panormalizuara sht se ata prmbajn teprime. N relacionin STUDENT p.sh. informacionet lidhur me kursin IS465 paraqiten n disa vende. Supozojm se ne duam t ndryshojm emrin e ktij lursi nga SYSANAL n SYSANAL&DES. Pr t br kt ndryshim ne duhet t krkojm n t gjith relacionin STUDENT pr t lokalizuar t gjitha ndodhjet e KURSI# IS465. Nj paraqitje e shkurtr e relacionit t panormalizuar sht paraqitur n figurn n vazhdim:

STUDENT#

EMER_ STUDENTI

DREJTIMI_ KRYESOR

KURSI#

. . . . . . .

GRADA

STUDENT
STUDENT# 3821 69173 . . . EMER_ STUDENT ARBEN LUAN DREJTIMI KRYESOR IS PM

STUDENT-KURS 59

STUDENT# 38214 38214 69173 69173 69173 . . . .

KURSI# IS350 IS465 SI465 PM300 QM400

TITULLI_ KURSIT DATABASE SYSANAL SYSANAL PRODMGT OPRES

EMRI_ INSTRUKTORIT CODD KEMP KEMP LEVIS KEMP

VENDI_ INSTUKT. B104 B213 B213 D317 B213

GRADA A C A B C

Fig. 7.3 Normalizimi i relacioneve duke hequr grupet e prsritur Normalizimi i relacioneve Forma e Par Normale Relacioni i normalizuar sht relacioni q prmban vetm vlera elementare n prerjen e do kollone me do shtyll. Kshtu nj relacion i normalizuar nuk prmban grupe t prssitura. Pr t normalizuar relacionin q prmban vetm nj grup t prsriturlvizim grupu\in e prsritur dhe formojm dy relacione t reja. Kjo procedur sht ilustruar me relacionin STUDENT n fig. 7.3. Dy relacionet e formuara jan: 1. STUDENT, q prmban ato atribute q jan n grupin prsrits: STUDENT#_EMR_STUDENTI dhe DREJTIMI_KRYESOR. elsi primar pr kt relacion sht STUDENT#. Ky relacion sht 3NF si do t shohim. Relacioni STUDENT_KURS, q prmban ato atribute q jan n grupin prsrits. elsi primar i ktij relacioni sht i prbr nga STUDENT# dhe KURS#.

2.

Relacioni STUDENT_KURS n fig. 7.3 sht n formn e par normale (1NF). Nj relacion sht n formn e par normale nqoftse nuk prmban grupe t prsritur. Megjithse relacioni sht n formn e par normale, ai nuk sht akoma nj paraqitje ideale e ktyre t dhnave. E keqja e krij relacioni sht se ka teprime. Nqoftse n i lejm t dhnat n kt form do t ndeshim anomali nproesin e futjes, fshirjes dhe modifikimit t t dhnave. Anomalia e futjes: Supozojm se duak t fusim t dhna pr nj kurs t ri KURS# dhe TITULL_KURSI. P.sh. ne duam t fusim BA200 dhe INTROINFO. Ne nuk mundet ti regjistrojm kto t dhna pa patur t paktn nj student t regjistruar n kt kurs.

60

Anomalia e fshirjes: Supozojm se vetm nj student sht regjistruar n nj kurs. N qoft se studenti e le kursin (ose shkolln) ne duhet t heqim n-shen nga baza e t dhnave. Kjo do t sjell humbjen e informacionit pr titullin e lnds dhe instruktorin. Anomalia e modifikimit: Supozojm se duam t ndryshojm titullin e kursit IS465 nga SYSANAL n SYSANAL&DES. Meqense titulli i ktij kursi faqet disa her n STUDENT_KURS prdoruesi duhet t krkoj n t gjitha n-shet e relacionit dhe do her t modifikojm titullin e kursit. Kjo proedur mund t jet e pamjaftueshme dhe mund t rezultoj n paqndrueshmri nqoftse nuk jan korigjuar t gjitha n=shet. Arsyeja e ktyre anomalive n STUDENT_KURS sht se disa atribute jo els n kt relacion varen vetm nga KURSI# si n fig. 4=7. Varsi t pjesshme
TITULLI KURSIT
EMRI INSTRUKTORIT

STUDENTI GRADA KURSI#

VENDI INSTRUKTORIT

Fig. 7.4. Varsia e atributeve jo els me elsin primar t prbr Vem n dukje se vetm atributi GRADA varet nga t dy STUDENT# dhe KURSI#, kjo pr arsye se pr t njohur nj grad ne duhet t njohim edhe STUDENT# dhe KURSI#. Nj atribut q varet nga i gjith elsi i prbr quhet plotsisht i varur nga ky els. Atributet e tjera jo els (TITULLI_KURSIT, EMRI_INSTRUKTORIT, VENDI_INSTRUKTORIT) janp tp varur vetm n KURSI Kto atribute pjesrisht t varur nga elsi primar. Forma e Dyt Normale Nj relacion sht n formn e dyt normale n qoft se ai sht n formn e par normale dhe varsit funksionale t pjesshme jan eleminuar. Pr t transformuar relacionin me varsi funksionale t pjesshm n formn e dyt normale ne krijojm dy relacione t reja: njerin me atributet q jan plotsisht t varur STUDENT#, KURS# nga elsi primar dhe tjetrin me atributet q jan t varur KURS# nga nj pjese elsit. Ky proces sht ilustruar n fig. 7.5. 61

STUDENT_KURS
STUDENT# KURSI# TITULLI_ KURSI EMR_ INSTRUKTORI VEND_ INSTRUKTORI GRADA

REGJISTRIMI
STUDENT 38214 38214 69173 69173 69173 . . . . KURSI# IS350 IS465 IS465 PM300 QM440 GRADA A C A B C

KURSI_INSTRUKTOR 3NF
KURSI# IS350 IS465 PM300 QM440 TITULLI_ KRYESOR DBASE SYSANAL PRODMGT OPRES EMRI_ INSTR. COOD KEM LEWIS KEMP VENDI_ INSTR. B104 B213 D317 B213

2NF Fig. 7.5. Kthimi i relacionit n 2NF 1. Relacioni REGJISTRIMI me elsin e kompozuar STUDENT# dhe KURSI#. Atributi jo els GRADA sht i varur plotsisht n elsin primar. Ky relacion sht n formn e tret normale. 2. Relacioni KURS_INSTRUKTOR n elsin primar KURSI#. Atributet jo els (TITULLI_KURSIT, EMRI_INSTRUKTORIT dhe VENDI_INSTRUKTORIT) jan t varur vetm n KURSI#. Anomalit e prshkruara pr 1NF jan eleminuar n relacionet e reja. Vem n dukje se do kurs sht prshkruar vetm nj her n relacionin KURS_INSTRUKTOR. Si rezultat ndonj modifikim n t dhnat e kursit (p.sh. ndryshimi i titullit) sht reduktuar n nj n-she t vetme. Nga ana tjetr meqense t dhnat e kursit jan t ndara nga ana tjetr nga t dhnat e studentit, nj kurs i ri mund t shtohet ose nj i vjetr t hiqet pa iu referuar t dhnave t studentit. N skemn e paraiqtur relacionin KURS_INSTRUKTOR mund t bjm skemn e mposhtme:

KURS#

TITULLI_ KURSI

EMR_ NSTRUKTORI

VENDI_ INSTRUKTORI

Vem n dukje se do atrribut jo els varet nga KURS#. Megjithat VINDIINSTRUKTORIT varet nga EMRIINSTRUKTORIT. 62

Ky sht nj shembull i varsis tranzitive. Varsia tranzitive ndodh ather kur nj atribut jo els ( si VENDI INSTRUKTORIT) sht i varur nga nj ose m shum atribute jo els ( si EMRI INSTRUKTORIT). Varsia tranzitive e thjesht paraqitet si m posht:

els primar

N kt rast kemi varsi tranzitive ndrmjet elsit primar dhe atributeve A dhe B. Varsit tranzitive japin efektin e tyre n futjen, fshirjen dhe modifikimin duke shkaktuar anomali. Anomalia e futjes. Supozojm se duam t fusim t dhna pr nj instruktor t ri n relacionin KURS_INSTRUKTOR. Meqense t dhnat e instruktorit varen nga KURS#, ne nuk mund t fusim t dhna pr instruktorin gjersa ai t jet caktuar pr t zhvilluar nj kurs. Anomali e fshirjes: Fshirja e t dhnave pr nj kurs mund t oj n humbjen e t dhnave t instruktorit. Anomali e modifikimit: T dhnat e instruktorit faqen disa her n relacionin KURS_INSTRUKTOR. (p.sh. instruktori KEMP sht dy her) si rezultat ndonj ndrishim n t dhnat e instruktorit bn q t krkohet n t gjith relacionin. Eliminimi i ktyre anomalive bhet duke kaluar relacionin n formn e tret normale. Forma e tret Normale Relacioni sht n formn e tret normale (3NF) n qoft se ai sht n formn e dyt normale dhe nuk prmban varsi tranzitive. Relacioni n formn e tret normale ka formn e mposhtme: ........

elsi primar

Atributi 1

Atributi 2

Atributi n

Kjo do t thot se do atribut / prbrs jo els sht plotsisht i varur nga elsi primar dhe nuk kemi varsi tranzitive. Proesi i heqjes s varsive tranzitive sht trguar n fig. 7.6. Stributi /prbrsi jo els q merr pjes n varsin tranzitive (EMR_INSTRUKTORI dhe VENDI_INSTRUKTORI) jan hequr duke formuar relacionin e ri INSTRUKTOR. elsi primar i tij sht EMRI_INSTRUKTORIT, meqense ky atribut prcakton vendin e instruktorit. KURS_INSTRUKTORI
KURSI# TITULLI_ KRYESOR EMR_ VEND_ INSTRUKTORI INSTRUKTORI

63

KURS
KURSI# IS350 IS465 PM300 QM440 TITULLI_ KURSI DBASE SYSANAL PRODMGT OPRES EMR_ INSTRUKTORI COD KEMP LEVIS KEMP

INSTRUKTORI
EMR_ INSTRUKTORI COOD KEMP LEVIS VEND_ INSTRUKTORI B104 B213 B317

3NF 3NF Fig. 7.6. Kthimi n 3NF Analisti i bazs s t dhnave merret me kt proes duke par vlefshmrin e tij. Meqense prbrsi EMRIINSTRUKTORIT bhet els primar n relacionin e ri KURS. N kt rast themi se EMRI_INSTRUKTORIT sht elsi jashtm n relacionin KURS. Tani proesi i normalizimit sht kompletuar. Aplikimi yn me an t transformimeve t thjeshta sht kthyer n 4 relacione t 3NF. Relacionet jan prmbledhur n fig.7.7. STUDENT
STUDENT# 38214 69173 EMR_ DREJTIMI_ EMRI_ STUDENTI INSTRUKTORIT KRYESOR ARBEN IS CODD LUAN PM KEMP LEVIS . . . .

INSTRUKTOR
VENDI_ INSTRUKTORIT B104 B213 D217

KURS
KURS# IS350 IS465 PM300 QM440 . . . . . TITULLI_ KURSIT DBASE SYSANAL PRODMGT OPRES EMRI_ INSTRUKTORIT CODD KEMP LEWIS KEMP

REGJISTRIMI Fig. 7.2. Relacionet n formn normale Forma Normale Boyce Codd (BNCF)
STUDENT# 38214 38214 69173 69173 69173 . . . . . KURSI# IS350 IS465 IS465 PM300 QM440 GRADA A C A B C

64

Relacionet n formn e tret normale jan t mjaftueshme pr shum probleme praktike n bazat e t dhnave. Megjithat 3NF nuk garanton eliminimin e gjith anomalive. Krkimet e mtejshme kan identifikuar hapa shtes n proesin e normalizimit pt t eleminuat ndonj anomali q ka mbetur. Kur nj relacion ka m shum e nj els kandidat (pra elsa t mushm pr t qen primar nga t cilt zgjidhet vetm njri), mund t ndodhin anomali megjithse relacionet jan n 3NF. Le t marrim n konsiderat relacionin ST_DR_UDH q tregohet n fig. 7.8. els primar i ktij relacioni sht i prbr nga (STUDENT#, DREJTIM). Rregullat sintaktike pr relacionin jan: 1. do student mund t mbroj n disa drejtime. 2. Pr do drejtim nj student ka nj udhheqs (kjo kondit sht e vrtet n.q.s. STUDENT + DREJTIM sht els primar).. 3. do drejtim ka disa udhheqsa. 4. do udhheqs ka vetm nj drejtim. Diagrama e varsis q prnbledh kto rregulla sht treguar n fig. 7.8.b. ST_DR_UDH
STUDENT# 234 234 546 879 985 DREJTIMI FIZIK MUZIK BIOLOGJI FIZIK FIZIK UDHHEQSI AJNSHTAJN MOXART DARVIN BORI AJNSHTAJN DREJTIMI STUDENT# UDHHEQS

(a) ST_UDH
STUDENT# UDHHEQSI UDHHEQSI 234 AJNSHTAJN DREJTIMI AJNSHTAJN 234 MOXART FIZIK MOXART DARVIN MUZIK 546 DARVIN BORI BIOLOGJI 879 BORI 989 AJNSHTAJN FIZIK

(b)

UDH_DR

(c) Fig 7.8 Forma BCNF (a) relacioni n 3NF diagrama e varsis relacionet n BNCF sht e qart se relacioni sht 3NF meqense nuk ka varsi funksionalet pjesshme dhe tranzitive. Megjithat ka akoma anomali n relacionin e ndrtuar.

b) c)

65

P.sh. supozojm e studenti #546 ndryshon drejtimin nga BIOlLOGJI n MATEMATIK. Kur n-shja e ktij studenti do t modifikohet do t humbasim faktin q DARVIN udhheq BIOLLOGJIN. Prndryshe n qoft se t fusim nj n-she me informacionin q WATSON udhheq INFORMATIK, kjo nuk mund t bhet gjersa nj student t regjistrohet n kt drejtim. N relacionin ST_DR_UDH jan dy elsa kandidat (STUDENT#, DREJTIM) dhe (STUDENT#, UDHHEQS). Ne kemi zgjedhur t parin si els primar. Vem n dukje se dy elsat kandidat priten, meqense kan t prbashkt STUDENT#. Anomalia ndodh kur kemi mbulime t elsave kandidat. Kjo sht situat e rall, por mund t ndodh. R.F. Boyce dhe E.F. Codd e konstaton kt mangsi dhe propozuan nj prcaktim m t fort t 3NF. Prcaktimi i tyre lidhet me konceptin e determinantit. Determinanti sht nj atribut/prbrs (i thjesht ose i prbr) me t cilin etributet e tjera jan plotsisht t varur funksionalisht. P.sh. n relacionin ST_DR_UDH atributi UDHHEQS sht determinant, meqense atributi DREJTIMI sht plotsisht i varur nga UDHHEQS (fig. 7.8.b.). Themi se relacioni sht n BNCF ather dhe vetm ather kur determinanti sht els kandidat. Duke prdorur rregullin e Boyce-Codd ne shohim se ST_DR_UDH nuk sht n formn BNCF (sht n 3NF), sepse UDHHEQSI sht determinant, por ai nuk sht els kandidat (nj udhheqs mund t ket disa student). Pr t zgjidhur problemin kalojm relacionin nga 3NF n BNCF. Rezultati i nj projeksioni t till sht treguar n fi. 7.8.c. Varsit funksionale shumvlershe Deri tani kemi futur konceptin e varsis funksionale q ka uar n dekompozimin e relacioneve n formn e tret normale dhe n formn normale t BYOCE-CODD. Kjo sht e pamjaftueshme pr t eleminuar teprimet dhe anomalit e modifikimit. Le t marrim relacionin: STUDENT(NS, KURSI, SPORTI) Nj zgjerim i ktij relacioni paraqitet m posht: STUDENT
NS 10 0 10 0 20 0 20 0 KURSI Baza t dhnash Baza t dhnash Baza t dhnash Matematik sporti Tenis Futboll iklizm iklizm

N kt relacion: 66

NS kodi i studentit KURSI kurset e ndjekura SPORTI jan sportet praktike. Teprimet n kt relacion duken qart dhe megjithat nga fakti I mungess s varsis funksionale (duket qart q nuk ka varsi funksionale). Ky relacion deri tani sht i padekompozueshm. Shembulli i msiprm tregon pamjaftueshmrin e konceptit t varsis funksionale, q nuk lejon t kapet pavarsia q ekziston ndrmjet kurseve t ndjekura dhe sporteve praktike. Pr kt prgjithsohet koncepti i varsive funksionale duke futur at t varsis shumvlershe (VSH). Prkufizim: Le t jet R(A1, A2, . . . ., AN) nj skem e relacionit dhe X e Y nnbashksi t A1, A2, . . . . AN. Do themi se X Y (varsi shumvlershe e Y nga X) n.q.s. duke qen dhn vlera e X ka nj bashksi vlerash t t bashkshoqruara dhe kjo bashksi sht e pavarur nga prbrsit e tjer t relacionit R. Varsit shumvlershe karakterizohen nga nj pavarsi atributesh Y dhe Z t nga nj bashksi e tret X. Formalisht kemi: ( X Y) {(X,Y,Z) dhe (X, Y, Z) R (X,Y,Z) dhe (X,Y,Z,) R} ku X,Y,Z,Y,Z, paraqesin vlerat e X,Y,Z. Shembull: Tek relacioni STUDENT X NS Y KURSI Z SPORTI X Y Z (100, Baza t Dhnash, Tenis) X Y Z (100, Baza t dhnash, Tenis) X= 100 Y = Baza t Dhnash Z = Tenis Y = Baza t dhnash Z = Futboll X Y Z (100, Baza t dhnash, Futboll) X Y Z (100, Baza t dhnash, Futboll)

X Y Z (200, Baza t Dhnash, iklizm)

X Y Z (200, Matematik, iklizm) 67

X Y Z (200, Matematik, iklizm)

X Y Z (200, Baza t dhnash, iklizm)

sht pr t vn n dukje se VF jan rast i veant i VSH. N fakt: (X) {(X,Y,Z) dhe (X,Y,Z) R (X,Y,Z) dhe (X,Y,Z) R}. nga fakti se Y = Y. Pra ( XY) (XY). Aksionet e Vsh jan: 1. Komplementi : (X (XR-X-Y) Y) 2. Tranzitiviteti: (X dhe (Y (X Y) Z) Z) 3. Bashkimi : (X dhe (X (X Y) Z) YZ). Duke nisur nga aksionet e msiprme sht e mundur t futet koncepti i varsis shumvlershe elementare. Prkufizim: Varsia shumvlershe X Y elementare n.q.s.: e nj relacioni R sht

1. Y nuk sht bosh dhe nuk pritet me X 2. R nuk prmban nj tjetr V.SH t tipit XY ku XCX dhe Ycy. p.sh. le t jet relacioni: FLUTURIM(NF, AVION, PILOT) NF numri i fluturimit. Ktu supozohet se ekziston nj bashksi avionesh dhe nj bashksi pilotsh. do pilot mund t drejtoj do avion me do fluturim. N kt mnyr bashksit e avionave dhe pilotve jan t pavarura. Prej ktej dalin dy VSH elementare. NF AVION NFPILOT

Forma e katrt normale:

68

Nj relacion sht n formn e katrt normale ather dhe vetm ather kur tvetmet varsi shumvlershe elementare jan ato nt cilat nj els prcakton nj prbrs. N trajt shembulli relacioni STUDENT nuk sht n formn e katrt normale. elsi n kt rast sht bashksia e prbrsve (komplet n-shja) N t ekzistojn VSH elementare NSKURSI NS SPORTI sht treguar se do relacion ka nj dekompozim n formn e katrt normale q shte pa humbje. STUDENT (NS, KURSI, SPORTI) (NS, KURSI) (NS,SPORTI)

V.SH. elementare t dyja

Varsit funksionale shumclershe Forma e katrt Normale (4NF) Edhe kur relacioni sht n BNCF mund t ndodhin anomali, e cila shprehet n proesin e modifikimit. P.sh. le t konsiderojm relacionin e panormalizuar OFERTE n fig. 7.9.a. N relacion bjm supozimet e mposhtme: 1. Secili kurs ka nj ose disa instruktor 2. Pr secilin kurs t gjith librat e treguar jan prdorur. 3. Teksti, i cili sht prdorur pr nj kurs t dhn sht i pavarur nga instruktori, pra e njjta bashksi librash sht prdorur pa vn re instruktorin.

OFERTE OFERTE

KURSI MS_DOS MS_DOS MS_DOS MS_DOS MS_DOS MS_DOS DBASE DBASE

INSTRUKTORI ILIRI ARJANI PETRITI ILIRI ARJANI PETRITI MPZA MOZA

LIBRI ARBEN ARBEN ARBEN FATI FATI FATI ARI GENTI

69

KURSI MS_DOS

INSTRUKTORI ILIRI PETRITI ARJANI MOZA

LIBRI ARBEN FATI

DBASE

ARI GENTI

(a) Relacioni i panormalizuar (b) Relacioni i normalizuar Fig. 7.9 Relacioni me varsi shum vlershe N fig. 7.9.b relacioni OFERT sht i normalizuar. Kshtu pr do kurs t gjith kombinimet e mundshme t teksteve dhe profesioneve jan faqur n relacion. Vem n dukje se elsi primar i ktij relacionji prbhet prej tre atributeve. (KURSI, INSTRUKTORI, LIBRI). Meqense ktu nuk ka determinant (prve elsit primar relacioni sht n BNCF). Megjithat ai prmban teprime n t dhnat. Supozojm se duam t shtojm nj libr t tret me autor JONA. Kjo do t krkoj shtimin e 3 rrehtave, nga nj pr secilin instruktor. Le t shohim varsit funksionale n kt relacion. Pr do kurs sht prcaktuar grupi i instruktorve (pra 1:M) dhe grupi i librave (lidhja 1:M). Megjithat tekstet dhe instruktort jan t pavarur nga njri tjetri, kshtuq lidhja paraqitet si m posht. Tipi i varsis n kt figur sht shumvlershe. Pr t hequr varsin shumvlershe e projektojm relacionin n de relacione, ku secili prmban nj nga atributet e pavarur. Fig. 7-10 tregon rezultatin.

KURSI

INSTRUKTORI

LIBRI

MSUESI
KURSI MS_DOS MS_DOS MS_DOS DBASE INSTRUKTORI ILIRI PETRITI ARJANI MOZA KURSI MS_DOS MS_DOS DBASE DBASE

LIBRI
LIBRI ARBEN FATI ARI GENTI

Fig. 7.10 Relacioni n formn e katrt normale Nj relacion sht n formn e katrt normale (4NF) n qoft se ai sht n BNCF dhe nuk prmban varsi funksionale shumvlershe.

70

Forma t tjera normale: Format normale jasht UNF jan prcaktuar, por interesi i tyre sht vetm n fushn e krkimit, prandaj po japim shkurtimisht prkufizimet e tyre. Forma e pest normale. (5NF); Kjo form normale vepron me at q quhet varsia bashkuese (join depedency). Nj relacion q ka varsi bashkuese nuk mund t dekompozohet nprmjet projeksionit n relacione t tjera pa rezultate t rreme (sporious results). Forma e pest normale jep prkufizime pr heqjen e varsive bashkuese n.q.s. ekzistojn. Ushtrime dhe Problema 1. Klasifikoni secilin nga relacionet e mposhtme si t normalizuara, 1NF, 2NF, 3NF. a) PUNONJS(PUNONJS#, EMRPUNONJSI, KODIPUNS.)
b) PUNONJS(PUNONJS#, EMRPUNONJSI,<KODIPUNS,#VITE>)

2.

c) PUNONJS(PUNONJS#, EMRPUNONJSI, KODIPUNS,PRSHKRIMPUNE.) d) PUNONJS(PUNONJS#, EMRPUNONJSI, PROJEKT#,OR_PUNE.) Pr secilin nga relacionet e mposhtme t bhen: a) Jepni formn normale t gjendjes q jan. b) Identifikoni ndonj varsi t padshiruar. c) Jepni shembull t anomalis s futjes dhe fshirjes. d) Normalizoni relacionin m tej.
PUNONJS
KURS NIVELI I NIVELI II MJESHTR MJESHTR INTERESI LOJ ME BULA LOJ ME BULA SKI LOJ ME BULA LOJTARI BENI GIMI TONI MIRI TIMI POZICIONI SM P SM QM SM TRAJNERI NIKU EDI PJERNI GONI NIKU

PUN# 123 123 456 456

FUTBOLL

PUN# PUN# INTERESI TRAJNERI

KURS POZOCIONI

3. N figurn n vazhdim jepet paraqitja hierarkike (e panormalizuar) e informacioneve t mbledhura pr personelin e nj kompanie. Figura duhet t kuptohet si m posht: Kompani ka nj bashksi departamentesh. do departament ka nj bashksi punonjsish, projektesh dhe zyrash. 71

do punonjs ka historikun e puns s tij (punt q ka kryer punonjsi). Pr seciln nga punt punonjsi ka edhe historin e pagave t tij. do zyr ka bashksin e telefonave. Baza e t dhnave prmban informacionet e mposhtm. Pr do departament: numurin e departamentit (unik), buxhetin dhe numurin punonjsit q sht manaxher i departamentit (unik)
Departamenti

Punonjsi Detyra Historiku i pags

Projekti

Zyra
Telefoni

Pr do punonjs : numurin e punonjsit (unik), numurin e projektit t astit, numurin e zyrs, numurin e telefonit, titullin e do pune q ka kryer punonjsi, datn dhe rrogn pr do ndryshim n kt detyr. Pr do projekt: numurin e projektit (unik) dhe buxhetin. Pr do zyr : numurin e zyrs (unik) siprfaqen, dhe numurat (inuk) t telefonave t instaluar n kt zyr. Ndrtoni nj bashksi t normalizuar q paraqesin kto informacione.

Gjuha SQL (Structured Query Language


SQL prbhet nga dy gjuh: DDL Data Description Language DML Manipulation Language. Pr t ilustruar paraqitjen e komandave t SQL do t na shrbej si baz nj baze t dhnash e prbr nga 3 relacione. STUDENT (Kod_s, emr_s, mosha, qyteti) Relacioni i cili jep informacione mbi stidentt me Kod_s - kodi e studentit

72

Emr_s emrin e studentit Mosha - moshe e studentit Qyteti - qyteti i banimit. NDJEK (Kod_s, kod_mod, n_mes) Kod_s : kodi i studentit Kod_mod : kodi i modulit N_mes : nota mesatare KURS (kod_mod, titulli, prgjegjsi) Kod_mod : kodi i modulit Titulli : emrtimi i kursit Prgjegjs : prgjegjsi i modulit.

DDL:

Komandat e prcaktimit t t dhnave Krijimi i nj baze t dhnash (katalogu i bazs) Nga nj pikpamje e DBMS nj baz t dhnash prmban relacione baz dhe relacione t . Mnyra m e natyrshme e DBMS sht konzervoj relacionet n nj katalog t Dbazs. Pr ktprdoret komanda. Creata database emr_dbase:
Kat D-Base Kat tabel

Krijimi i tabelave relacioneve: Creat table emr_tabele type (gjatsia) [kufizimet]; type (gjatsia) [kufizimet]; type (gjatsi) [kufizimet];

atributi 1 atributi 2 ------atributi n

73

Krijimi i tabels identifikphet nga emri i tabels. N t jan prcaktuar emrat e atributve (ose kolonave), tipet e tyre, gjatsit dhe kufizime t mundshme (konditat e integritetit). Tipi p.sh. mund t jet: Char (n) ku n jep gjatsin e vargut t karaktereve Numeric (n1, n2) n1 sasia e tabelave e shifrave dhe presja n2 sasia e shifrave pas presjes. Date . . . . Kufizimet p.sh. mund t jen: Not null q ndalon atributin korespondues t jet null. Primary key q tregon se atributi sht els primar. Ky operacion krijon nj tabel boshe: qllimi i saj sht t kryoj strukturn e tabels. Heqja e tabels:

Drop table emr_tabele; Heq t gjitha t dhnat duke pastruar dhe strukturn e tabels. Krijimi i indeksit: Create index emr_indeksi on emr_table (kdone1....) Krijoni indeksin n nj tabel kur proesin emrin dhe atributet pr t cilat krkojm t gjenerojm indeks. Heqja e indeksit Drop index Emr_tabele.

Modifikimi i strukturs s tabels sht e mundur t modifikohet struktura e tabels. - Duke shtuar n tabel nj ose disa kolona (atribute) - Duke modifikuar tipin e t dhnave bashkshoqruar nj ose disa kolonave. Kujdes: sht e pamundur nj suprimonhet nj kolon.

1. Modify Table (Emr_Tabele, Atribut1,Atribut2,--74

2.

Alter Table Emr_tabele ADD(atributi tipi)

p.sh.

Shtimi: ALTER TABLE PRODUCT


ADD(P_SALLECODE CHAR(I); Modif: ALTER TABLE PRODUCT
MODIFY(P_PRICE-DECHAL(3,C))

DML: Ekzistojn dy tipe komandash t manipulimit t t dhnave: - Komandat e modifikimit t t dhnave. - Komandat e seleksionimit t t dhnave. Komandat e modifikimit t t dhnave: Shtimi i elementeve n nj tabel. Insert into emr_tabele [(kolon1, kolon2, - - - kolonn)] Values (V1, V2, - - -Vn) Shton nj rresht n tabeln e specifikuar. Mundet t preizphen vetm disa kolona pr t tjerat vendosen vlerat null ( ). Modifikimi i vlerave n nj tabel: Update emr_table set cdone1=vler1, - - - [where kondite] p.sh. Modifikimi i qytetit t studentit me kod 1234 Update STUDENT set qyteti = Durrs Where kod_s = 1234 Heqja e rreshtave n tabel: Delete from emr_tabele [where kondite]; Suprimon rreshtat q plotsojn konditn. p.sh. Delete from STUDENT WHERE qyteti = KOR Heq studentt nga kora

75

Komandat e seleksionit t t dhnave Blloku i kualifikimit Struktura e bllokut t kualifikimit sht ndrtuar nga 3 element t cilat jan. Select , From dhe Where. Forma e prgjithshme e bllokut t kualifikimit sht: Select From Where atr1, atr2, - - -,atrn. Emr_tabele. <kondit>

N shprehjen logjike mund t prdorim: 1 operatort e (>,<,>=, <=,<>,=) 2 lidhsit logjik (AND, OR, NOT) 3 Operacionet bashksive (UNION, INTERSECT, MINUS) 4 Brja pjes jo e elementit (in, notion). 5 Operatort bashksuar. Operatori Between Ekzistojn dy forma t thjeshtuara t bllokut t kualifikimit. A para kur sht hequr where. Select atr1, atr2, - - - atrn From Emr_tabele. Kjo korespondon me operacionin e projeksionit t relacionit mbi prbrsit atr1, atr2, - - -,atrn. Select emr_s From student; Ekuivalent me projeksionin Projeksion (Student, emr_s); - E dyta sht rasti kur lista e prbrsve sht zvendsuar me * . Select * From Emr_tabele Wher Kondit Select X1, X2, - - -,Xn From Emr_tabele. Where kondit p.sh.

Lidhur me konditat le t marrim disa shembuj. - Simbolet e krahasimit. p.sh. Kodet e studentve q kan mesatare >8 n M2

76

Select Kod_s From Ndjek Where Kod _ mod = M2 AND n_mes >8. Brja pjes n bashksi me operatorin IN. p.sh. Lista e emrave t studentve q banojn n Kor, Vlor.

Select Emr_s From Student Where qyteti IN (Elbasan, Kor, Vlor); - Vlerat n nj interval me operatorin Between. p. sh. Emrat e studentve me mosh ndrmjet 20 dhe 24 vjet. Select Emr_s From Student Where mosha between 20 and 24. - Mbi prezencn e disa karaktereve n nj varg me operatorin like varg. N varg shenja * zvendson nj varg fardo dhe shenja ? zvendson nj karakter fardo. p.sh.: Emrat e studentve q banojn n qytet q fillojn me B. Select Emr_s From Student Where qyteti like B*; Modifikimi i nj kondite bhet duke prdorur NOT. P.sh. NOT IN ose NOT LIKE p.sh. Emrat dhe qytetet e studentve q nuk banojn n Tiran dhe Durrs. Select Emr_s, qyteti From Student Where qyteti not in (Tiran, Durs);

77

N SQL ekziston mundsia e merrjes s rezultateve duke prdorur order by p.sh. Listoni emrat e qyteteve dhe studentave q nuk banojn t Tiran, t renditur sipas rendit alfabetik t qyteteve, pastaj sipas emrave pr studentt e t njjtit qytet. Select Qytet, Emr From STUDENT Where qyteti <> Tiran Order by qytet , emr; renditja n dy kutere. Funksionet e llogaritjes n kolon Si n algjebr relacionale, mund t bhen llogaritje mbi kolonat e tabels, kto funksione jan. Sum shuma e vlerave t kolons Avg mesatarja Max maksimumi Min Minimumi Count Numrimi p.sh. 1. Nota m e vogl, m e madhe dhe mesatarja e prgjithshme n modulin M1. Select Min (n_mes), Max (n_mes), Avg (n_mes) From Ndjek Where kod_mod = M1 2. Numrimi i studentve q ndjekin modulin M1. Select Count (*) From Ndjek Where kod_mod = M1; Agragatt Ktu mund t ndrtohen agragatet (ndarje horizontale e nj relacioni). Pr ndarjen e nj relacioni prdoret group by. Shembull: Emrat e qyteteve dhe pr secilin prej tyre numrin e studentve q banojn aty

78

Select qyteti, count (*) From Student Group by qyteti Krijon relacion t ri.

qyteti -

Sasia 20 30

Mund t bhen selsksione n funksion t rezultateve t funksioneve t llogaritjes mbi bashksi me ndihmn e Having. Shembull: Emrat e qyteteve q kan m shum se 10 student. Select qyteti. Count (*) From Student Group by qyteti Having count (*) > 10 Blloqet e kualifikimit q shtrngohen Nj kondit mund t prmbaj nj bllok tketr Shembull: Arben Emrat e studentve q banojn n t njjtin qytet me studentin Select Emr_s From Student. From Student Where Emr_s= Arben); Prod. Operacioni Jointure kryhet duke vendosur n From listn e relacioneve Shembull: Emrat e studentve dhe notat q kan marr n lnd t ndryshme. Select Emr_s, kod_mod, 1_mes From Student Ndjek Where student.kod_s = Ndjek. Kod_s. Qulifikatort ANY dhe ALL sht e mundur t krahasosh nj shprehje q jep vler me rezultatet e nj nnblloku ose me ndonj nga vlerat e saj. SQL propozon prdorimin e kualifikatorve ALL dhe ANY. M saktsisht (le t jet o nj nga operatort <,>,=,- -) - Kondita f o ANY<nnblloku> sht e vrtet ather dhe vetm ather kur foV sht i vrtet pr t paktn nj vler t rezultatit t nnbllokut. 79

funksioni i llogaritjes.

Kondita foALL <nnblloku> sht e vrtet ather dhe vetm ather kur foV sht e vrtet pr t gjitha vlerat V t rezultatit t krkess.

Vrejtje - Predikatet IN dhe =ANY jan ekuivalente - Predikatet NOT IN dhe <>ALL jan ekuivalente Shembull: Studentt E Tirans q kan moshn m t vogl se mosha maksimale e qytetit t Durrsit. Select Emr_s From Student Where Qyteti = Tiran AND mosha <ANY (Select mosha From Student Where qyteti = Durrs); Plotsohet pa ndonj rast. Sigurisht do t jet m i vogl sa maksimumi. Shembull: Studentin m t ri t Tirans. Select Emr_s From Student Where qyteti = Tiran AND mosha <= ALL (select mosha From Student Where qyteti = Tirana); Dhet t jet <= se t gjitha pra sht minimumi SQL ofron nj tjetr mundsi t kualifikimit pr t testuar nse rrezultati i nj nnkrkese sht bosh ose jo. Bhet fjal pr predikatin EXIST. EXIST <nnkrkes> sht e vrtet ather dhe vetm ather kur rezultati nuk sht bosh. Shembull: Studentt q jan t regjistruar n kurse. Select emr_s From Student 80

Where EXIST (Select * From Ndjek Where kodi_s = Student. Kodi_s sht e relacionit Ndjek S fundi n SQL ekzistojn operatrot e lidhjes ndrmjet krkesave: - UNION - INTERSECT - MINUS Kto korespondojn me operatort e bashkimit, Prerje dhe diferencs n gjuht algjebrik. Shembull : Jepni kodet e studentve q ndjekin kurset M1 dhe M2 Select kod_s From Ndjek Where kod_mod = M1 INTERSECT Select kod_s From Ndjek Where kod_mod = M2;

SQL2 Shprehjet e avancuara


CASE sintaksa CASE WHEN kond1 then rez1 WHEN kond2 THEN rez2 WHEN kondn THEN rezn [ELSE rez x] END. n.q.s. kond1 sht e vrtet ather rez1 e me radh, n.q.s. asnjra prej tyre nuk plotsohet ather rezx, n.q.s. nuk ka ELSE ather ELSE NULL (bashksi boshe). Le t marim relacionin 81 CASE : shprehje e CAST : shprehje e kthimit t tipit Rresht shprehje vler ndrto dhe ndrto nj n-she.

PUNONJS (KP, EMRI, PAGA, RAJONI) KP kodi punonjsit EMRI emri i punonjsit PAGA paga e punonjsit RAJON rajoni i puns sipas kategoris s (sportiv, muzik etj). M (RAJONI, KATI, TVSH, DIR) RAJONI emri i rajonit KATI kati ku ndodhet rajoni TVSH TVSH q prdoret pr rajonin DIR drejtori i rajonit. MV ( RAJONI, MUAJI, PL, PH) RAJONI emri i rajonit MUAJI - emri i muajit PL sasia parave t lejuara pr t prishur (PL) PH sasia e parave t harxhuara (PH). Pr t ilustruar CASE le t modifikojm pagat e punonjsit sipas rajonit. Pr ata t muziks e rritm 20%, pr ata t sportit 1,1%. UPDATE PUNONJS SET PAGA = CASE WHEN RAJONI = Muzik THEN PAGA = PAGA WHEN RAJONI = Sport THEN PAGA=PAGA ELSE 0 END. Variantet e mundshme: CASE vler 1 WHEN vler11 THEN rez 1 WHEN vler12 THEN rez2 WHEN vlern THEN rez n [ELSE rezx] END. CASE WHEN cler1 = vler11 THEN 82

WHEN vler 1 = vler 12 THEN WHEN vler1 = vler 1n THEN ELSE rezx END.

SQL 2 UNION, INTESECTION, DIFFERENCE Versioni i thjesht (e kemi par) <bllok kualifikim> operator 2 bllok kualifikimi> ku operata = (UNION, INTERSECT, EXCEPT) t dy blloqet duhet t jen kompatibl. d.m.th. n.q.s. jepen relacionet R(X1, X2, - - -, Xn) dhe S (Y1, Y2 - - - YP) Duhet n = p dhe Fusha (Xi) = Fusha (Yi) R UNOIN S eleminon dublimet R UNION ALL S nuk eliminon dublimet.

N.q.s. n<>p prdoret R UNION CORRESPONDING S Bashkimi (me eleminim) bhet vetm mbi kolona e prbashkta. p.sh. R(X1, X2, X3, X4) dhe S(X1, X3, X5) bjm R (X1, X3) S (X1, X3) R UNION CORRESPONDING BY kolonat S (kolonat e S) p.sh R UNION CORRESPONDING BY (X3) S bn R (X3) S(X3).

T njejtat probleme trajtohen pr INTESECTION, DIFFERENCE.

83

Modifikimi i skems: T shtohet nj kolon n nj tabel M(RAJONI, KATI, TVSH, DIR) Tipi ALTER TABLE M ADD COLUMN NBPUN (NUMBER) M( RAJONI, KATI, TVSH, DIR, NBPUN) Vlera implicite t NBPUN jan 0. UPDATE M SET NBPUN = 0; Ose Variabl q lviz me M UPDATE M X SET NBPUN = (SELECT COUNT (*) FROM PUNONJS WHERE PUNONJS, RAJONI = X. RAJONI) Vendos numrat e punonjsve tek relacioni M i modifikuar Pamjet dhe relacionet e (SNAPSHOP)

Derivimi i relacioneve t reja Koncepti i nnskemave t jashtme i ofrohet prdoruesit nprmjet konceptit t fotos (Snapshop) dhe pamjes (vues). Foto = Snapshop Forma e realizimit t nj foto bhet me CREATE SNAPSHOP <bllok kualifikimi> [REFRESH <periode>] far bhet: Llogaritet blloku she shohet rezultati Tabel s sht read-only S AS

84

Smund t manipulohet si relacion SELECT * FROM S Smund t rifreskohet periodikisht (do dit, muaj, . . .) sht i dobishm n mjediset e shprndar.

P.sh. ne mund t krijojm foton n sistemin hekurudhor. CREATE SNAPSHOP TR4002 AS FROM TIPI_VAGONIT WHERE NO_VAGONIT IN (SELECT NO_NOVAGONIT FROM TRENI WHERE NO_TRENI = 4002) Duke proceduar n kt mnyr ne krijojm n bazn e t dhnave nj relacion t ri pr t cilin skema sht: TR 4002 (TIPI_VAGONIT). Prcaktimi i pamjes: N vend q t llogarisim shprehjen relacionale dhe t materializohet shprthimi i saj, mund t konsiderohet q nj shprehje e till prcakton nj relacion tri virtual q quhet pamje. N sistemin Relacional prdoret skema e mposhtme n prcaktimin e pamjes: DEFINE VIEW V [Lista e prbrsve] AS < bllok kualifikimi>. Pamja V sht prcaktuar si nj relacion virtual mbi relacionet (d.m.th. mbi relacionet baz ose pamje t tjera) tashm t prcaktuara, q nedo i quajm relacione burim. Duke rimarr shembullin ton sht e mundur pr nj prdorues n Tiran t krijojm nj pamje GJEN_VAGON, q korespondon me nnbashksin e vagonave n stacionin e Tirans. DEFINE VIEW GJEN_VAGON AS SELECT NO_VAGONIT, TIPI_VAGONIT, GJENDJA FROM VAGON WHERE STACIONI = TIRAN

85

Pamja GJEN_VAGON ka prbrsit e prmendur me SELECT dhe jep relacionin GJEN_VAGON (NO_VAGONIT, TIPI_VAGONIT, GJENDJA). Nj pamje sht nj dritare dinamike me\bi bazn, n kt kuptim t gjitha modifikimet e kryera mbi nj relacion burimi jan pasqyruar automatikisht n pamjen. N shembullin q dham mund t njohim vagonat disponibel n Tiran SELECT NO_VAGONI FROM GJEN_VAGON WHERE GJENDJA = Disponibel Pr t trajtuar nj krkes t till, SQBDH relacionare krijon at q sht e prshtatshme pr ta quajtur kompozimi i pamjes. SELECT NO_VAGONI FROM VAGONI WHERE GJENDJA = Disponibel AND STACIONI = Tiran. Ka nj kontradikt n vizionin e pamjes si dinamike: N proesin e modifikimit ky proes duhet t shtrihet gjer n relacionin baz. Pr t br nj modifikim nprmjet nj pamje, duhet t jet e mundur t shtrihet ky modifikim gjer te relacionet burim. N.q.s. pamja sht e till q ekziston nj korespondenc biunivoke ndrmjet n-sheve t pamjes dhe t atyre t nj dhe vet nj relacioni burim modifikimet dhe fshirjet mund t shtrihen pa asnj problem. Lidhur me futjen n.q.s. pamja sht projeksion i nj relacioni, ather duhet prcaktuar cila dot jet vlera e prbrsve q nuk shfaqen n pamje. N rastin e pamjes GJEN_VAGON futja e nj vagoni t ri nprmjet pamjes bn t paprcaktuara vlerat pr PESHA_BOSH dhe KAPACITETI. Prej ktij del se shtrirja e futjes dhe modifikimeve nprmjet pamjes sht i pasigurt. N vazhdim po japim nj shembull pr t argumentuar kt fenomen: Le t marrim parasysh relacionet PUN (NUM, EMRI, KODIND) dhe NDER(KODIND, DREJ) 86

NUM - kodi i punonjsit EMRI emri i punonjsit Kodind kodi i ndrmarjes Drej emri i drejtorit

N form t shtrir: PUN


NUM e1 e2 e3 e4 e5 EMRI Ilsi Sknder Luan Ela Monda KODIND d1 d1 d1 d2 d2 KODIND d1 d2 DREJ Bujar Besi

NDER

Supozojm nj pamje PUND t prcaktuar mbi produktin e ktyre dy relacioneve mbi KODIND: DEFINE VIEW PUND AS SELECT NUM, EMRI, KODIND, DREJ FROM PUN, NDER WHERE PUN.KODIND = DREJ. KODIND Reaultatet marrim PUND
NUM e1 e2 e3 e4 e5 EMRI Ilsi Sknder Luan Ela Monda KODIND d1 d1 d1 d2 d2 DREJ Bujar Bujar Bujar Besi Besi

N.q.s. autorizojm prdoruesin t modifikoj pamjen PUND si m posht: MODIFY PUND SET DREJ = fred WHERE NUM = e1 Ndryshojn drejtorin pa marr parasysh se ai i takon ndrmarjes.

87

SQL procedurale SQL nuk suporton ekzekutimin e procedurave t bazuara n disa kondita logjike. Pra SQL nuk i pranon strukturat IF <kondite> THEN <kryej procedur > ELSE < kryej procedurn alternative>. END IF. Nga ana tjetr SQL nuk suporton ciklet. Pra SQL nuk suporton DO WHILE <kryej procedur> END DO N.q.s. jeni t interesuar t prdorni IF_THEN_ELS ose DO_WHILE, ju mund t prdorni gjuh programimi t tilla si COBOL, FORTRAN, C, PASCAL ose VISUAL BASIC. Ju mund t integroni shprehjet e SQL me gjuht e programimit. Prdorimi i Blloqeve t kualifikimit q shtrngohen sht prafrimi m i mir me aftsit procedurale n aplikimet e biznesit. Mungesa e aftsive procedurale ka br q shum aplikime biznesi t bazohen me shkrimin e rreshtave t programeve n COBOL. N sistemet e databazave prdoret Procedural SQL. Kodi procedural ekzekutohet nga DBMS kur thrritet (direkt ose indirekt) prdoruesi fundor. Kto elemente jan implementuar n Oracel SQL +, por jo n SQL2 por kryesisht n SQL3. PL/SQL2 mund t prdoret pr Trigerat Procedurat e Ruajtjes Funksionet PL/SQL.

Nuk duhen ngatruarfunksionet PL/SQL me funksione tashm t ndrtuara n SQL, si jan MIN, MAX. Kto funksione prdoren n shprehjet SQL ndrsa funksionet PL/SQL thrriten nga programet PL/SQL.

88

Trigerat Nj triger sht kod procedural q thrret automatikisht nga RDBMS, gjat ndodhje s nj ngjarje ne marim e t dhnave. Vlen t prmendet: Trigeri thritet paraose pas nj rresht sht i selektuar, inseruar ose update. Trigeri sht i bashkshoqruar me nj tabel t DB. do tabel mund t ket nj ose disa Trigera. Trigeri ekzekutohet si pjes e transaksionit q e prmban at. Trigeri mund t prdoret pr t theksuar kondita, q nuk mund t bhen gjat dezinjimit t DBMS dhe n proesin e implementimit. Pr t par se si sht krijuar dhe prdorur trigeri do t shohim nj problem t thjesht inventarizimi. . p.sh. n.q.s. produkti n dor (stok) sht modifikuar, kur produkti shitet, sistemi kontrollon automatikisht kur produkti n dor kalon nn minimum t lejueshm. Pr t demostruar kt proes le t fillojm me modifikimin e tabels: PRODUCT (P_KOD, P_PRSHKRIM, P_INDATE, P_NDOR, P_MIN, P_MIM, P_DISCOUNT, SH_KOD, P_MIN_POROSI, P_RIPOROSI). P_min - minimumi i lejeshm. SHITS (SH_KOD, SH_EMR, SH_KODZONE, SH_KONTAKT, SH_PHONE, SH_GJENDJE, SH_POROSI) SH_EMR - emri i njsis SH_KONTAKT - personi i kontaktit SH_POROSI - ka pasur pasuri t mparshme Pr t demostruar proesin le t fillojm me modifikimin pr t shtuar P_MIN_POROSI dhe riporosi (P_RIPOROSI). Vlerat fillestare t P_RIPOROSI mbushen PO/JO (1/0). Tabela produkt e modifikuar parqitet.
P_KOD P_PRSH P_INDATE P_NDOR P_MIN P_MIM P_DISCO SH_KOD P_MIN_POR P_RIPOR

1QER/31 2232QWE

Panel pikture
Kalavid

03_DHJ_02 24_JAN_03

8 6

5 5

20.000 990

0.00 0.05

25595 24288

25 15

0 0

89

N.q.s. ne e bjm sasin e produktit 11QER/31 n 4 dokumente: SQL > SELECT * FROM PRODUKT WHERE P.KOD = 11QER/31
P_DKO P_PRSHK P_INDATE P_NDOR P_MIN P_MIM SH_KOD P_DIS P_MIN_POR P_RIP

11QER/31 Panel pikt

03_DHJ_02

20000

25595

25

SQL > UPDATE PRODUCT SET P_NDOR = 4 WHERE P_KOD = 11QER/31. - 1 row update (prgjigjet sistemi) SQL > SELECT * FROM PRODUCT WHERE P_KOD = 11QER/31
P_KOD P_PRSHK P_INDATE P_NDOR P_MIN P_MIM SH_KOD P_DISC P_MIN_POR P_RIP

11QER/31 Panel pikt

03_DHJ_02

20000

25595

25

Trogeri m lart ka punuar mjaft mir. Ai e ka ndryshuar vlern e P_RIPOROSI nga NO(0) n YES (1). Le t shohim se far ndodh kur ne modifikojm sasin minimum pr produktin 2232/QWE duke br q sasia n dor pr t t jet nn minimum. SQL > SELECT * FROM PRODUCT WHERE P_KOD = 2232/QWE.
P_KOD P_PRSHK P_INDATE P_NDOR P_MIN P_MIM P_DISC SH_KOD P_MIN_POR P_RIP

2232/QWE kacavide

03_DHJ_02

990

24288

15

SQK > UPDATE PRODUCT SET P_MIN = 7 WHERE P_CODE = 2232/QWE 1 row update. SQL > SELECT * FROM PRODUCT WHERE P_CODE = 2232/QWE.
P_KOD 2232/QWE P_PRSHK

Kaavid

- - - - - - - - P_NDOR 7

P_MIN 6

- -

- - - - - - - -

P_RIP 0

Megjithse P_MIN sht m e vogl se P_NDOR n rubrikn P_RIPOROSI ngel NO (0). Prgjigja sht e thjesht se modifikuam P_MIN dhe trogeri q ndrton n punn vetm kur modifikohet P_NDOR.

90

Pr t eleminuar kt mosprputhje duhet ndryshuar trigeri duke prfshir dhe atributin P_MIN. Ky triger ndrtohet si m posht: >SQL CREATE OR REPLACE TRIGGER TRG_PRODUC_RIPOROSI AFTER INSERT OR UPDATE OF P_NDOR, P_MIN ON PRODUCT BEGIN UPDATE PRODUCT SET P_RIPOROSI = 1 WHERE P_NDOR <=P_MIN END; N kt rast problemi ecn n t dyja situatat. N proesin e msiprm n.q.s. ndryshojn P_NDOR pr produktin 11QER/31 si tregohet m posht. SQL > UPDATE PRODUCT SET P_NDOR = 28 WHERE P_KOD = 11QER/31. Do t marrim tabeln. Duke pasur tabeln PRODUKT do t krijojm triger pr t vlersuar P_NDOR . N.q.s. sasia n dor sht nn minimumin e treguar n P_MIN, ather kolona P_RIPOROSI do t bhet Yes (1). Sintaksa e krijimit t trigerit n Oracle sht: CREATE OR REPLACE TRIGER <emr trigeri> [BEFORE/AFTER] [DELETE/INSERT/UPDATE] OF <emr kolone> ON <emr tabele> [FOR EACH ROW] BEGIN PL/SQL instruksionet END. Trigeri q do t krijojm si tham m lart do t jet: SQL > LIST (listohet) 1. CREATE OR REPLACE TIGER TRG_PRODUK_P_POROSI 2. AFTER INSERT OR UPDATE OF P_NDOR N PRODUKT 3. BEGIN 4. UPDATE PRODUKT 5. SEP P_RIPOROSI =1 91

6. WHEN P_NEDORE <= P_MIN 7. END; SQL > RUN - Trigger created.

P_KODE 11QER/31

- - - -

P_NDOR P_MIN 29 5

P_RIPOROSI 1

Vini re se P_RIPOROSI ngelet prsri 1 megjithse plotsohet kondita P_NDOR > P_MIN. Dalim n konkluzionin q trigeri yn nuk i ka marr n konsiderat t gjitha rastet. P_RIPOROSI kalon 1 dhe nuk kalon m n 0. Si rezultat duhet prmirsuar trigeri q t jap prgjigje korrekte n t gjitha rastet. SQL > CREATE OR REPLACE TIGER TRG_PRODUK_P_RIPOROSI. BEFORE INSERT OR UPDATE OF P_NDOR P_MIN ON PRODUKT FOR EACH ROW BEGIN IF : NEW. P_NDOR < = :NEW. P_MIN THEN :NEW. P-P_RIPOROSI:=1 ELSE : NEW. P_RIPOROSI: = 0: END IF END. EACH ROW prdoret pr t trigjeruar t gjitha rreshtat e prekur nga trigeri. sht e prdorur : NEW pr vlerat e reja, po kshtu mund t prdoret: OLD pr vlerat e vjetra. Ne mund t krijojm tabeln REGJISTRIM pr t lidhur tabelat STUDENT dhe KLASE. N kt shembull elsi primar i tabels REGJISTRIM sht krijuar si els i kompozuar i elsave t jashtm STUD_KOD dhe KLASE_KOD. (Konceptuesi mund t krijoj els promar si RESHT_REGJISTRIMI duke prdorur vlera t ndryshme pr rreshtat. Paraqitja e databazs do t jet:

92

Emri i tabels: STUDENT elsi primar: STUD_KOD elsi i jashtm: ju STUD_KOD EMRI 321452 324257 SHKMBI MALI

Emri i tabels: REGJISTRIM elsi primar : KLASE_KOD + STUD_KOD


KLASE_KOD STUD_KOD GRADA_REGJISTRIMIT

10014 10014 10018 10018 10021 10021

321452 324257 321452 324257 321452 324257

C B A B C C

lsi i KLASE_KOD, STUD_KOD

jashtm:

Emri i tabels : KLASE elsi primar : KLASE_KOD elsi i jashtm: KURS_KOD


KLASE_KOD KURS_KOD KLASE_SEKSION

10014 10018 10021

ACCT_211 CIS_220 QM_261

3 2 1

KLASE_OR HM 2:30. 3:45am HEP 9:00. 9:50am HEP 9:00.

KLASE_SALLE

PROF_KOD

B201 A112 C305

342 114 114

93

Koncepte baz
Termi Object oriented (00) e ka origjinn te gjuht e programimit 00. Gjuha e par 00 sht SIMULA mtej C++ etj. Konceptet 00 aplikuar n B.Dh. Diferenca: Objekti n gjuht e programimit 00 ekziston vetm gjat ekzekutimit t programit. Objekti n BDh 00 ekziston prher dhe mund t ndahet n disa programe. Bazat e t dhnave 00 krijojn nj sistem unik gjenerimi q quhet identifikues objekti (OID = objekt identifikimi). * OID els primar n bazat relacionale. Struktura e brendshme e nj objekti prfshin specifikimin e * Variablave t ndodhjes. mbajn vlerat q prcaktojn gjendjen e brendshme t objektit Ktu mund t themi : Variabl i ndodhjes = atribut Sistemet Object Oriented lejojn prcaktimin e operacioneve ose funksioneve q mund t aplikohen n nj objekt t tipit t caktuar. * Nj operacion prcaktohet me dy pjes signature (interface) specifikon emrin e operacionit dhe variablat metoda (trupi) specifikon implementimin e operacionit

Koncept tjetr sht: 1 2 hierarhia e tipeve dhe klasave

94

Trashgimia Lejon prcaktimin e tipeve t reja duke trashguar operacione dhe struktura t prcaktuara n tipet dhe klasat e mparshme. Problem tjetr n BDh 00 sht paraqitja e relacioneve ndrmjet objekteve. Lidhje nuk paraqitet n mnyr eksplicie, por bhet duke prdorur metoda t prshtatshme q pozicionojn n obkektet e lidhura. Koncept tjetr sht polimorfizmi i operatorit, i cili i referohet nj operacioni q ka aftsin t zbatohet np objekte t tipave t ndryshme. p.sh: nj operacion q shrben pr llogaritjen e siprfaqes s nj objekti gjeometrik mund t ndryshoj n implementimin e tij, n varsi t faktit nse figura sht trekndsh apo katrkndsh. Kjo mund t krkoj prdorimin e rilidhjes s vonshme t emrit t operacionit me metodn e prshtatshme n ekzekutimin, kur tipi i objektit n t cilin do t zbatohet operacioni bhet i njohur. Identifikimi i objektit Si tham identifikimi i objektit bhet me OID. Vlera e OID sht e padukshme tek prdoruesi i jashtm. - Vetia kryesore e OID sht inimutabl, d.m.th. q vlera e nj OID pr nj objekt t veant nuk mund t ndryshoj. - Nj OID duhet prdorur vetm nj her. Kto dy veti sjellin q nj OID t mos varet nga ndonj vler e atributeve t objektit, meqense vlera e nj atributi mund t ndryshoj. Disa sisteme prdorin adresn fizike si OID duke rritur efektivitetin e kapjes s objektit. N.q.s. adresa fizike ndryshon nj shnjues indirekt na on n pozicionin e ri. Disa modele 00 krkojn q gjithka t paraqitet si objekt, pavarsisht n se sht vler e thjesht apo objekt kompleks. N kt rast do vler baz qoft e plot, varg apo Booleane ka OID. Kjo lejon q dy vlera baz kan OID t ndryshme, t cilat n disa raste mund t jen t dobishme. p.sh. nj vler e plot 50 mund t prdoret pr t paraqitur peshn n kg. dhe her t tjera moshn e personit. N kt rast mund t krijohen dy objekte me dy OID t ndrushme dhe t dyja t ken t njejtn vler baz 50.

95

Kjo sht e dobishme si model teorik, por nuk sht shum praktike sepse mund t krkoj nga gjeneratori shum OID. Megjithat shum sisteme oo i pranojn t dy dhe objektet dhe vlerat. Struktura e objektit N nj baz t dhnash 00 vlerat (gjendjet) e objekteve mund t ndrtohen nga objekte t tjera duke prdorur disa tipe konstruktorsh. do objekt paraqitet si treshe i, c, v, OID konstruktori ekzistojn tipe t ndryshm konstruktorsh n varsi t modelit t t dhnave ose modelit 00. Tipet e konstruktorve baz jan Atomi, n-shja, set. T tjer konstruktor jan List dhe array. Vlerat atomike jan elemente t fushs D. N to prfshihen. Integer, real, strong, Boolean q jan t dhna baz dhe ndonj tip tjetr q mbshtetet nga sistemi. Nj vler v sht interpretuar pr baz t vlers s konstruktorit c n tre (i,c,v) N.q.s. c = atom, vlera e v sht atomike n fushn D. N.q.s. c = set, vlera e v sht bashksia e identifikatorve t objekteve {i1, i2 . . . .in}, t cilt jan OID pr bashksin e objekteve q jan t t njjtit tip. N.q.s. c = tuple (n-she) vlera e v sht n-shja e forms <a1:i1, a2:i2, an :in>, ku do aj sht atributi ( i quajtur variabli i ndodhjes n terminologjin 00. N.q.s. c = lost, vlera e v sht list e renditur e identifikuesve t objekteve [i1, i2, . . .,in] t t njjtit tip. 96 vlera(gjendja)

N.q.s. c = array , vlera e v sht varg i identifikuesve t objekteve. T gjitha vlerat n nj objekt jo atomik referohen tek objektet e tjer nprmjet identifikatorit t tyre. I vetmi rast kur vlera duhet sht objekti atomik. N bashksin e typeve bn pjes dhe tipi bag. Bag sht i ngjashm me set, vese ky lejon vlera t dublikuara. N shembullin e mposhtm le t pranojm se do gj sht objekt, duke prfshir dhe vlerat baz. Le t pranojm se kemikonstruktor : atom, set, tuple. Tani do t paraqesim disa objekte t bazs s t dhnave KOMPANIA duke prdorur modelin e ndrtuar. Do t prdorim i1, i2, i3, . . . . si t gjeneruar nga sistemi. Nj objekt sht prcaktuar nga treshja: (OID, tipi konstruktor, vlera) Le t marrim n konsiderat objektet e mparshm: O1 = ( i1, atom, Tiran) O1 = (i2, atom, Durrs) O3 = (i3, atom, Vlorr) O4 = (i4, atom, 5) O5 = (i5, atom, Research) O6 = (i6, atom 6_MAI_02) prfaqson vlern 5 O7 = (i7, set, i1, i2, i3) O8 = (i8, tuple, <DNAME: i5, DNUMBER: i4, MGR: i9, LOCATION:i7, PUNONJS: i10, PROJEKT : i11) O9 = (i9, tuple, <MANAGER:i12, MANAGERSTRADE: i6) O10 = (i10, set, {i12, i13, i14}) O11 = (i11, set, {i15, i16, i17}) O12 = ( i12, atom, ) O13 = O14 = O15 = (i15, atom, Alpha ) O16 = O17 = Le ti analizojm objektet e paraqitura: Gjasht objektet e para jan vlera atomike (O1 O5) Objekti i shtat sht objekt set,q paraqet bashksin e vendeve t Departamentit 5 Bshksia {i1, i2, i3} i referohet {Tiran, Durrs, Vlor} 97

Objekti O8 sht tuple; q paraqet Departamentin 5 dhe ka atributet DNAME, DNUMBER, MGR, LOCATION si vlera. Atributi MGR ka objektin tuple O9 si vler t tij, i cili ka dy atribute. Vlera e atributit MANAGER sht i12 ( i patreguar), i cili sht punonjs q administron Departamentin. Ndrsa vlera MANAGERSTRAGE sht nj tjetr objekt atomik, vlera e t cilit sht data. Vlera e atributit PUNONJS e O8 sht objekti set t punonjsve q punojn n Departamentin etj. N kt model nj objekt mund t paraqitet si nj struktur grafi, meqense ata mund t ndrtohen duke aplikuar n mnyr t prsritur tre konstruktort baz.

Tipi konstruktor N gjuhn e prcaktimit t t dhnave (OODDL), q prfshin tipet e mparshme t konstruktorve, mund t prdoret pr t prcaktuar tipet e objekteve pr aplikimet e bazave t t dhnave. Kta tipe konstruktorsh mund t prdoren pr t prcaktuar strukturn e t dhnave pr nj skem t bazs s t shnave. Figura m posht tregon se ei mund t deklarohen PUNONJS dhe DEPARTAMENT. define type punonjs: tuple (emri : string. nss : string datlindja : Date seksi : Char dept : departament); define type Date: tuple (viti : integer, muaji : integer, dita : integer); define type Departament: tuple (demer : string, dnumer : string, mgr : tuple (manager: Punonjs 98

date fill:date); vendet : set (string) punonjs : (Punonjs); projekte : set (Projekte); tip baz Leksionin e ardhshm do t shohim se si integrohen strukturn e prgjithshme t objektit.

Shtrngimi i operacioneve dhe i metodave Koncepti i shtrngimit sht nj nga karakteristikat kryesore t gjuhve OO. Ky koncept sht i lidhur ngusht me tipin abstrakt t t dhnave dhe informacioneve. N bazat e t dhnave tradicionale ky koncept nuk sht aplikuar, meqense kto koncept kan filluar t implementohen me tipin abstrakt t aplikuar n OO. N prcaktimin e objektit mund t prdoren disa operacione pr t krijuar ose prishur objekte, t tjera operacione modifikojn objektet, t tjer mund t jen pr t marr pjes t objektit ose pr t kryer veprime mbi vlern e objektit. Pr t Karakterizuar objektin s bashku me veprimet q kryhen n t sht prdorur termi klas. Le t marim n konsiderat tipin Punonjs dhe Departament dhe t bjm zgjerimin e tij n prcaktimin e klass s objekteve. define class Punonjs type tuple (emri: string, nss : string, datlindja : Date, seksi : Char dept : Departamenti);

Signature

operations mosha (p:punonjs) : integer; krijo_pu_t_ri (Punonjs: prish_pun(p:Punonjs) boolean; define class Departament : type (demr: string, dnumr: integer, mgr : tuple ( manager: Punonjs,

metadata

99

date_fill: Date), vendet: set (string), punonjs : set (punonjs), prijekte : set (Projekte) ; tipi baz operations numri_i_pun (d:Departament) : integer; krijo_dept_ri: Departament, prish_dept (d : Departament) : boolean, shto_pun (d: Departament, p: Punonjs) boolean, (* shto punonjs t ri n departament*) hiq_pun (d:Departament, p:Punonjs): boolean. (*heq nj punonj nga departamenti*). Fig: Prdorimi i OODL pr t prcaktuar klasat Punonjs dhe Departament. Nj nga karakteristikat e objekteve sht persistenca. Nj objekt persistent mund t ruhet n databaz dhe pas prfindimit t programit. Objektet t tilla mund t thuren nga sistemi dhe gjuht tjera t programit. Nj objekt B quhet i pakapshm nga nj objekt A n.q.s.grafi i objektit A lidhet me objektin B. P.sh. t gjith objektet q kemi n konsiderat (q i pam leksionin e kaluar) jan t kapshm nga objekti O8. O8 O4 O12 O5 O6 O7 O12 O10 O13 O14 O15 O11 O16 O17

Veti tjetr shta transistenca (objekti zhduket)

100

Tipet dhe klasat e hierarhive dhe trashgimive Nj karakteristik tjetr kryesore e sistemeve 00 sht se ata lejojn tipin dhe klasat e trashgimis dhe hierarhis. Tipet dhe klasat e hierarhis. N shum aplikime t bazave t t dhnave ka shum objekte q jan t t njjtit tip. Ktu bazat e t dhnave OO krijojn mundsin pr klasifikimin e objekteve bazuar n tipin e tyre, si bhet n bazat e tjera t t dhnave. N bazat e t dhnave OO e re sht q sistemi lejon prcaktimin e tipeve t reja bazuar n tipe t tjera t prcaktuar duke futur konceptin e hierarhis. Tipi sht prcaktuar duke dhn emrin r tipit dhe duke prcaktuar numrin e atributeve ( v variablat e ndodhjes) dhe relacionet (metodat) pr tipin. N disa raste atributet dhe relacionet s bashku quhen funksione, pr t thjeshtuarterminologjin. Nj tip mund t prcaktohet si m posht formalisht TYPE_NAME: function, function, . . . . . . ,function p.sh. nj tip q prshkruan karakteristikate personit mund t prcaktohet. PERSON: Emri, Adresa, Datlindja, Mosha, Nss N kt tip Emri, Adresa, Datlindja, Nss jan implementuar si atribute t ruajtur, ndrsa mosha si metod q llogarit moshn nga Datlindja dhe Data_aktuale. Koncepti i nntipit sht i dobishm kur konceptuesi ose prdoruesi mund t krijoj tip t ri, i cili sht i ngjashm por jo identik me nj tip tashm t prcaktuar, t cilin do ta quajm supertip. p.sh supozojm se duam t prcaktojm dy tipe t reja PUNONJS dhe STUDENT si m posht: PUNONJS: Emri, Adresa, Datlindja, mosha, Nss, Paga. STUDENT: Emri, Adresa, Datlindja, Mosha, Nss, Dega, Grada. Ktu duhet q si STUDENT ashtu dhe PUNONJS prfshijn t gjitha funksionet e prcaktuara tek PERSON, plus disa funksione shum specifike t tyre, t cilt mund ti deklarojm si nntipe t PERSON. Secili prej tyre do t trashgoj funksionet e prcaktuara m par tek PERSON: Emri, Adresa, Datlindja, Mosha, Nss. Pr PUNONJS paga mund t jet atribut i ruajtur. Pr STUDENT sht e nevojshme Dega dhe GRADA.

101

Deklarimi i tyre bhet: PUNONJS : subtype_of PERSON, Paga STUDENT : subtype _of. Person: Dega, Grada. N kt mnyr secili prej tyre trashgon funksionet e PERSON. Objektet komplekse Ekzistojn dy tipe objektesh komplekse: t strukturuar t pastrukturuar.

Objektet komplekse t pastrukturuar dhe tipi i zgjerueshm: Nj objektin kompleks i pastrukturuar, i prodhura nga DBMS, lejon ruajtjen dhe hapjen e objekteve t mdha, q jan t nevojshm n aplikime. Shembuj tipik jan bitmap images dhe vargje t gjata t tekstit q njihen si binary large objects ose BLOB. Kta objekte jan t pastrukturuar np kuptimin q DBMS nuk din se si sht struktura e tyre. Meqense OO DBMS lejon prdoruesit t krijojn tipe t reja dhe tipi prfshin si strukturn dhe informacionin, mund ta shohim OO DBMS sikur ka nj tip t zgjerueshm.

Objektet komplekse N kt rast struktura e objektit sht e njhur nga OODBMS. Si shembull merret objekti DEPARTAMENT. N nivelin e par objekti ka struktur tuple me gjasht atribute: demerdnumer, mgr, vendet, punonjs dhe projekt. N kt struktur vetm demer dhe dnumer kan vler baz, t tjerat kan vlera kompleksive dhe prej ktu ndrtojm nivelin e dyt t objekteve komplekse. Njri prej tyre Vendet set punonjs set. Projekt set.

Tuple mgr

Secili prej tyre ka struktur n nivelin e dyt.

102

Polimorfizmi Nj karakteristik tjetr e sistemeve OO sht se ata prodhojn poliformizmin e operacioneve, q ndryshe njihet si mbulim i operatorve (operator overlooding). Ky koncept tregon q i njjt emr operatori ose simbol t futet n dy ose m shum implementime t ndryshme t operatorit n varsi t objektit n t cilin operatori aplikohet. Kjo ilustrohet me nj shembull t thjesht n gjuht e programimit. Simboli + merr kuptim t ndryshm kur operatort jan integer, string apo bashksi (PASCAL). N bazat e t dhnave OO ndodh e njjta situat. Le t marrim n konsiderat GEOMETRIC_OBJECT dhe nntipit GEOMETRIC_OBJECT : From, siprfaqja, Pika_Referimit. KATRKNDSH subtype_of GEOMETRIK _OBJECT (Forma =katrkndsh) Gjatsi, Gjersia TREKNDSH subtype_of GEOMETRIK_OBJECT (Forma = Trekndshi): Brinja1, Brinja2, Kndi. RRETHI subtype_of GEOMETRIC_OBJECT (Forma = Rreth):Rrezja Ktu funksioni Siprfaqja sht deklaruar pr t gjith objektet e tipit GEOMETRIC_OBJECT. Megjithse implementimi i metods pr siprfaqja mund t ndryshoj pr secilin nntip t GEOMETRIC_OBJECT. Nj mundsi sht t ket nj implementim t prgjithshm pr llogaritjen e siprfaqes s GEOMETRIC_OBJECT t prgjithsuar (p.sh. duke shkruar nj algoritm t prgjithshm pr llog. E siprfaqes s poligonit) dhe pastaj duke shkruar allgoritme m efikase pr llogaritjen e siprfaqes s objekteve gjeometrike si jan: rrethi, katrkndshi, trekndshi etj.

Trashgimia e shumfisht Trashgimia e shumfisht ndodh kur ndonj nntip T sht nntip i dy ose m shum tipeve t ndryshme dhe trashgon funksionet (atributet dhe metodat) e dy suporteve.

103

p.sh. mund t krijojm nntipin INXHINIER_MANAXHER q sht nntipi i t dyjave INXHINIER dhe MANAXHER. Nj problem q mund t ndodh n kt rast sht q t dy supertipet prej t cilave trashgon nntipi, sht se mund t ken funksione t ndryshme me t njejtin emr duke krijuar dykuptim. Pr t dy MANAXHER dhe INXHINIER mund t ken funksionin Paga. N.q.s. funksioni Paga sht implementimi me metoda t ndryshme n supertipet MANAXHER dhe INXHINIER dykuptimi trashgohet n nNtipin INXHINIER_MANAXHER. sht e mundur q supertipet INXHINIER dhe MANAXHER t trashpgojn funksionin Paga nga i njjti supertip dhe n kt rast nuk ekziston dy kuptimi. Ekzistojn disa menyra pr t vepruar me dy kuptimin ntrashgimin e shumfisht. Nj zgjidhje sht q sistemi t kontrolloj dykuptimin kur krojihet nntipi dhe ti lejoj prdoruesit t zgjedh funksionin q do t trashgohet. Nj menyr tjetr sht prdorimi i sitemit implicit (default). Rruga e tret sht ndryshimi i emrit t njjtit prej funksioneve. Konkluzioni mbi SGBD OO Avantazhet: Ato t prafrimit objekti i orientuar: riprdorimi, lehtsimin. Modeli i t dhnave sht i pasur. Merr n llogari dinamikn Lehtsi n prdorimin e LMD. Disa avantazhe ose probleme t pazgjidhura Thjeshtsia e modelit relacional humbet. Nuk ka akoma konsensur mbi nj LMDS standarde t tipit SQL me t cilin prdoruesit jan msuar. Konceptimi i skems konceptuale nuk sht i leht.

104

Zgjerimi i gjuhs SQL n O2SQL O2SQL ka karakteristikat e mposhtme: N O2 prdoren tipet atomike Boolean, Char, Integer, Real, String, dhe Bit. Tipi konstruktuar prfshin Tuple, list, set dhe unique set. Ndryshimi set dhe unique set sht se i dyti nuk lejon dublime. Prcaktimi i klass: class definition prbhet nga dy pjes: tipi i objektit metoda. Egziston nj ndryshim n O2 ndrmjet vlerave dhe objekteve Vlera ka vetm tip dhe prfaqson vetveten. Nuk ka O2. Objekti i prket nj klase: ka tip dhe metod. Objekti ka OID.

Sistemi O2 ka gjuhn O2C, e cila mund t prdoret pr t prcaktuar klasat, metodat dhe tipet. N vazhdim do t japim deklarimet n O2 pr bazn e t dhnave t nj zyre turistike:

105

Kapsulimi (Encapsulation) SQBOO nuk e aplikojn kapsulimin strikt. Ky sht i rnd pr tu aplikuar,sepse e bn t vshtir LMD. Shkallt e kapsulimit prcaktohen si m posht: 1. Kapsulimi strikt. Akcesi ( lexim shkrimi ) i t dhnave t objektit n nj klas tjetr krkon thirjen e nj metode t klass s objektit. 2. Kapsulimi me shkrim. Aksesi n shkrim bhet duke thrritur nj metod, aksesi n lexim bhet direkt. 3. Kapsulimi i pjesshm: klasat e objekteve kan dy tipe t dhnash, t dhnat publike t direkt dhe t dhnat private t aksesushme me tkurrjen e metods. N O2 kemi: Privat : ( implicit) q paraqet kapsulimi strikt. Read : (opsion i mundshm n atribut) q paraqet kapsulimin n shkrim. Public : pa kapsulim. Gjuha O2SQL Nj baz t dhnash projekt sht prshkruar nga bashksia e klasave n O2 si m posht: Class Projekt Type tuple (n_projekt:string, titull : string, buxheti : real, p_ekipi : ekipi , (ekipi i projektit) p_krkues : set (krkues)) (krkuesit e projektit) end; Class Personi type tuple (emri : string, mbiemri : string, adresa : tuple (rruga : string, p_qyteti:qyteti)) end;

106

Class ekipi type tuple (emri : string, tema : string, prgjegjs : krkues) end; Class krkues inherit Personi Type tuple (aktiviteti : Text, punon_n : ekipi) end; N vazhdim kryejm deklarimet e m poshtme: Name Projekt : unique set (Projekt) Name ekipet : unique set (ekipi) Name krkuesit : unique set (krkues).

Jepni prgjigjet n O2SQL pr pyetjet e mposhtme: 1. Emrat dhe mbiemrat e krkuesve q punojn n projekte Select tuple (w. Mbiemr, krkuesit, emri) From w in krkuesit. emri Type:tuple 2. Emrat dhe adresat e krkuesve q punojn n projektin PE2 Select tuple (emri: w. Emri, adresa: w. Adresa) From w in Person v in Projekt Where v. n_ projekti = Pe234. AND. 3. Emri i ekipit q siguron projektin PE234 dhe emrin e mbiemrin e krkuesit prgjegjs i ekipit. Select tuple (emri_ek : w. emri, emri: v.emri, mbiemri : v. mbiemri) From w in ekipi v in krkues Where projekte. N_projekt = PE234 AND v. aktiviteti = prgjegjs. 107

4. Titulli i projektit t siguruar nga ekipi ku prgjegjs sht Beni. Select From Where Projekt. Titulli Projekte v in krkuesit v emri = Beni AND v aktivitet = prgjegjs

5. Titujt e projekteve dhe numrin e krkuesve q punojn n kto projekte. Select tuple (titulli : Projekte.titulli, numr:COUNT (Projekte. P_ekipi) From Projekte v in krkuesit v. punon_n = p_ekipi 6. Titujt e projekteve ku punojn m shum krkues. Select tuple (titulli : Projekte. Titulli, numri : MAX (Projekte. P_ekipi) From Projekte 7. Renditja e projekteve n funksion t buxhetit q i sht caktuar. Sort w in Projekte By w. Buxheti

8. Emrat e ekipeve q punojn n projekte pr t cilat buxheti sht ndrmjet 100.000 dhe 150.000 Select w. emr From w in ekipet V in Projektet Where v. buxheti > 100.000 AND v. buxheti <150.000 9. Duke marr n konsiderat operatorin e Grupimit Group X in Z By (a1: q1, a2:q2, - - - - an, qn) prgjigjuni pyetjes

108

Pr do ekip mandarin global t buxhetit. Select Sum (w. buxheti) Group w in Projekte By (ekipi : w. p_ekipi) 10. Pr do ekip, numrin e projekteve pr t cilat buxheti kalon mesataren e projekteve. Select Count (w. buxheti) Group w in Projekte By (ekipi : w. p_ekipi, buxheti: buxheti > AVG (w. buxheti) 11. Emrat e krkuesve dhe numrin e projekteve ku ata punojn Select tuple (krkuesi : krkuesit. emri, numri: COUNT (n_ projekti) Group w in Projektet By (p_krkues: w. krkues) 12. 13. Krkuesit q punojn me nj projekt Krkuesit q punojn n maksimumin e projekteve.

Projeksioni: Ku operacion qndron n aksedimin e nj ose disa atributeve t n_shes. Marrim me konsiderat disa raste: Projeksioni mbi nj atribut atomik: Emri i vendit bashkshoqruar tek V_Franca: V_Franca. Emr Tipi i rezultatit string Projeksioni mbi nj atribut jo atomik. T gjendet adresa e kulls_eiffel Kulla_Eiffel. Adres. Type dy rezultat : tuple( rruga: string, qyteti:qytet);

109

Projeksioni duke prdorur navigimin ndrmjet objekteve dhe lidhjeve ndrmjet klasave. Emri i qytetit dhe adresa e kulls_eiffel. Kulla_eiffel. adresa. qyteti. emri. Tipi i rezultatit string. Prdor Monument dhe Sheshi nprmjet Inherit. Projeksioni mbi nj atribut koleksion. T gjith qytetet e Francs. V_Franca. qytetet. Tipi i rezultatit set (qytet). N atributet shumvlersh duhet patur kujdes. Nuk ka kuptim. V_Franca.qytet.emr. Nga ana intuitve do t na jap gjith qytetet e Francs (emrit). Kjo do t realizohet nprmjet me Select.

Prdorimi i metodave Thirrja e nj metode bhet n mnyr klasike duke e zbatuar mbi objektin n fjal dhe duke i dhn parametrat. Emri i vendit bashkshoqruar V_Franc V_Franc. P_emr Tipi i rezultatit string. Krkesa mbi koleksionet: Dallojm disa kategori operacionesg mbi koleksionet: Me marr t gjith koleksionin. Seleksionimi i disa objekteve duke aplikuar nj filter. Zbatimi i operacioneve .

110

p.sh. pr t marr t gjith koleksionin prdoren operacionet e m poshtm Lista e t gjitha vendeve: Em_vende Type : list (vendi) Vendi i tret : 11 vendet e para Em_vende [2] Tipi : Vendi. Em_vendet [0:10] Typa : list (vende).

Filtri

Select_From_Where.

N SQL komandn e pyetjeve t t dhnave t futur n SQL, por t adaptuar me modn e objekteve. N veanti shprehja e disa krkesave q n SQL bjn t prdoren disa bashkime bhet m thjesht n modn e objekteve nga fakti se lidhjet e objekteve paraqesin bashkime implicite. Forma e prgjithshme e bllokut t pyetjes sht: Select <rezulteti i krkuar> From <emrat e koleksioneve dhe t variablave> Where <kondit> N formn e tij t thjesht, filtri select i O2SQL bazohet n koleksionin e treguar pas fjals els from. N.q.s. ky koleksion sht nj list (respektivisht nj bashksi) rezultati do t jet nj list (respektivisht nj bashksi). O2 SQL prdor nocionin e variablit q paraqet nj element t koleksionit. Fjala from mund t prcaktoj shum variabla, secili i bashkshoqrur nj koleksioni. Froma e prgjithshme sht: variabl n koleksion. p.sh. Emrat e qyteteve t Francs Select w. emr From w in V_Franca. qyteti Tipi i rezultatit set (string). 111

Select w. emr From w in Em_qytete Where v. vendi:emr = Franc Tipi i rezultatit set (string). N rastin kur krkimi bhet n lista ose bashksi, rezultati sht bashksi. P.sh. Emrat e hoteleve me 2 yje n Londr Select h. Emr From w in Em_qytet. H in w. hotele Where w.emri = Londr and h.yje = ** . Tipi i rez . set (string). Ndrimi i n-sheve: sht e mundur t prdoren konstruktort e n-sheve, pr t marr rezultate m t prpunuar. - parisi dhe hotelet e tij: tuple (emr:Paris, emr, hotele: Paris.hotele) tipi i rezultatit:tuple (emr:string, hotele:set(hotele) - Emrat e hoteleve me 2yje n Londr dhe pension komplet. Select tuple (hotel:h.emr, pension:h.pension_complet). From w in Em_qytete H in w. hotele Where w. emr = Londr dhe h.yje = ** . Rezultati: set (tuple (hotel: string, pension:integer)

112

Operacionet mbi listat: N mnyr t prgjithshme O2SQL ofron operacionet e mposhtm mbi listat: Kapja e elementit t i x[i-1] Kapja e elementit t par : first (x) Kapja e elementit t fundit : last (x) Sasia e elementeve t listt : count (x) El. M i vogl Min(x) dhe m i madh Max(x) Shuma e elementeve sum(x) ose mesatarja avg (x) Lidhja e dy listave X dhe Y : X+Y. Lista boshe : Kist ( );

p.sh. popullsia totale e vendeve sum (select p_popullsia From p in Em_Vende); Tipi i rezultatit : integer. Operacione mbi bashksit: Bashkimi X union Y (ose X+Y) Diferenca e dy bashksive X exept Y (ose x-y) Prerja : X intersect Y (ose X*Y) Minimumi, maksimumi, shuma, mesatarja Kordinaliteti count (x) Bashksia boshe set ( )

p. sh. Emrat e qyteteve q kan m shum se 5o hotele Select w. emr From w in Em_qytet Where count (w.hotele) > 50 Tipi rez: string. mimi q duhet paguar pr t vizatuar kulln _eiffel pr 7 persona:

7*(( kulla_eiffel.tarifa)+ (element (select m.tarif from m i Monumentet_e_Parisit. Where m.emri = Harku i Triumfit ))) Rezultati : integer.

113

Quantifikatort: Exist x in y : p(x) Jep True n.q.s. tpaktn nj element i lists ose i bashksis knaq predikatin p. p.sh. A ka ndonj vend ku ka m shum se 50 qytete pr t vizatuar: exist p in Em_Vende : Count (p.qytete) > 50 rezultati i boolean Forall x in y :p(x)

Jep true n.q.s. t gjith elementet e bashksis ose lists knaqin predikatin p. p.sh. Shtitjet n Paris ku sht e mundur t shohsh t gjitha vendet e vizitueshme: Select t From t in Paris.shtitje Where forall m in Monumentet eParisit: m in t.vende Rezultati set (shtitje). Renditja Forma e prgjithshme e operacionit t renditjes sht si m posht: Sort x in z by f1, f2, - - - -,fn. Ku f1,f2, - - - -,fn jan krkesa ku faqet x si variabl dhe z si nj bashksi. Rezultati sht nj lisr q prmban gjith elementet e z. Kjo list sht renditja sipas elsave t dhn n fi. p.sh. Renditim qytetet sipas vendeve dhe sipas rendit alfabetik t emrave n do vend. ( 2 kutere). sort w in Em_qytete by w.vende, v.emr. rezultati : list e qyteteve.

114

Grupimi Group x in z By (a1:q1,a2:q2, - - -,an:qn) q1,q2, - - -qn jan krkesa x,z. Ndarja bhet si krkesave t by. p.sh. Rigrupo qytetet sipas shteteve group w in Em_qytete by (vende: w. vende) Baza e t dhnave: Pr t ilistruar operacionet ne supozojm se kemi nj baz t dhnash t nj agjensie udhtimi t prcaktuar si m posht: Class vendi Type tuple (emr: string, public kryeqiteti:qytet, public popullsia : integer, qytetet : set (qytet)) Class qytet type tuple (emr:string public popullsia:integer shteti : vendi public vendet_vizit:set (place) public hotelet:set (hotel) method write public shtitjet : set (shtitje)) public w _qytetet (c:qytete)method. public r_qytete:set (qytet) public w_shteti (c:vendi), public w_emri (c:string) public r_shteti : vendi public r_emri :string end; end; Class Monument inherit sheshi type tuple (shekulli : integer, ditt t mbyllura : list (string)) end; Muze inherit sheshi type tuple (dit_vizit:list(string) specialiteti : string end;

Class sheshi type tuple (emri:string emri_anglisht:string, read foto : bitmap read prshkrimi : string, adresa : tuple (rruga: string Class qyteti: qytet public tarifa I integer) end;

115

Class Hotel type tuple ( public emri : string, yjet : string mngjez:integer gjysm_ pension: integer komplet_ pension : integer adresa : string, qytetet : qytet) method end;

Class Shtitje type tuple (emri : string: shshet : list (sheshi)) method end;

N proesin e konceptimit t OO ekzistojn mnyra e deklarimit t objekteve persistente nprmjet shprehjes name. p.sh. name Em_vende : list (vendi); name Em_qytete : list (qytet); name Monumentet_e_Parisit : set (Monument); name Qyt_Monument : set (qytet); name Muzet : set (Muze); name Em_sheshe : set (sheshi); Prve ktyre veojm dhe objektet e mposhtm (pr arsye spjegimi) constant name V_Franca : Vendi; constant name Paris : qytet; constant name Rom : qytet; constant name kulla_eiffel: Monument:

116

Lidhur me veprimin JOIN kemi folur t gjith produktet quhen inner pr ojoin. Ky veprim paraqitet dhe n format outer join, e cila ka dy paraqitje: Left outer join dhe right outer join. Left outer join merr rreshtat n tabeln e par, bashkohen me t dyts pa iftim KLIENT
KOD_KLI 1132445 1217782 1312243 1321242 1542311 1657399 MBIEM_KLI MALI FUSHA SHKMBI ARA DETI PYLLI ZIP_KL I 32145 37134 34129 37134 37134 32145 KOD_AGENT 231 125 167 125 421 231

AGJENTI

KOD_AGJENT 125 167 231 333

AGJENT_PHONE 6152439887 6153426778 6152431124 9041234445

Natyral join:
KOD_KLI MBIEM_KLI ZIP_KLI KLI_KOD_AGET AGENT.AGENT_KODE AGENT_PHONE

12217782

1321242 1312243 1132445 1657399

FUSHA ARA SHKMBI MALI PYLLI

32145 37134 34129 32145 32145

125 125 167 231 231

125 125 167 231 231

6152439887 6152439887 6153426778 6259431124 6152431124

Left outer join


KOD_KLI 12217782 MBIEM_KLI ZIP_KLI

=
KOD_AGENT AGENT_PHONE

1321242 1312243 1132445 1657399 1542311

FUSHA ARA SHKMBI MALI PYLLI DETI

32145 37134 34129 32145 32145 37134

125 125 167 231 231 421

6152439887 6152439887 6153426778 6259431124 6152431124

I pa prcaktuar RIGHT JOIN


KOD_KLI MBIEM_KLI ZIP_KLI KOD_AGENT AGENT_PHONE

117

12217782

1321242 1312243 1132445 1657399

FUSHA ARA SHKMBI MALI PYLLI

32145 37134 34129 32145 32145

125 125 167 231 231 333

6152439887 6152439887 6153426778 6259431124 6152431124 9041234445

Prdorni databazn e vogl m posht pr t vn n dukje diferencn ndrmjet: natyral join equi joi (o join) outer join STUDENT
KOD_STUD KOD_PROF 100278 128569 2 512272 4 531235 2 531235 553427 1 KOD_PROF KOD_DEPT 1 2 2 6 3 6 4 4

PROFESOR

Natural Join
KOD_STUD 128569 512272 531235 553427 STUD_KOD_PROF PROFESOR)KOD)PROF KOD_DEPT 2 2 6 4 4 4 2 2 6 1 1 2

Left outer join


KOD_STUD 128569 512272 531235 552427 531235 KOD_PROF 2 4 2 1 KOD_DEPT 6 4 6 2

Right outer join 118

KOD_STUD 128569 512272 531235 552427 531235

KOD_PROF 2 4 2 1 3

KOD_DEPT 6 4 6 2 6

2. Ndrtoni doagramn E-R Supozojm se kemi mdelin E-R SHOFER drejton MAKIN

119

Shoferi nga shum makina n ndryshime dhe nj makin drejtohet nga shum shofer Si mund ta konvertoni kt n relacion 1:M.

Le t marrim n konsiderat shumn relacionale si m posht: LLOGARIA Emri_degs SHKOZET LABINOT LAPRAKE KOMBINAT QENDR KURBIN PLAZH DEGA Emri_degs SHKOZET LABINOT LAPRAKE KOMBINAT QENDR KURBIN PLAZH KLIENT
EMER_KLIENT JULIAN SAIMIR HALIM LUAN FATMIR TAULANT ALBAN RRUGA_KLIENT KRYESORE ELBASANIT KRYESORE ELBASANIT 4 SHKURTI GORIC KOMBINAT QYTETI_KLIENT DURRS TIRAN DURRS TIRAN TIRAN BERAT ELBASAN

Numri_Llogaris A 101 A 215 A 102 A 305 A 201 A 222 A - 217

Bilanci 500 700 400 350 900 700 750

Qyteti_degs DURRS ELBASAN TIRAN TIRAN TIRAN LA DURRS

Asetet 9.000.000 2100.000 1700.000 400.000 8.000.000 300.000 7.100.000

120

DEPOZITUES EMRI_DEPOZITUES NUMRI_LLOGARIS SAIMIR A_101 HALIM A_215 FATMIR A_305 TAULANT A_217 HUA EMRI_DEGS SHKOZET LABINOT LAPRAKE KOMBINAT QENDR KURBIN PLAZH

KODI_HUAS H_17 H_23 H_15 H_14 H_93 H_11 H_16

MANDATI 1000 2000 1500 1500 500 900 1300

HUAMARRS EMR_KLIENTI JULIAN SAIMIR ASTRIT LUANI BES AGRONI

KODI_HUAS H_17 H_23 H_15 H_14 H_93 H_16

121

Prdorni databazn e treguar m posht pr tiu prgjigjur pyetjeve. PRODUKT


KOD_PRODUKT PRSHKRIM_PRODUKT DATA_STOKUT_PROD PROD_N_DOR PRODH_MIM KODI

12_WWWP2 1QQ23_55 231_78_W 335 64 AJ AR/31/TYR DT_34_WWW EER_67/W ER_56/DF FRE_TRYS SE_67_85 ZW_QR/AV ZX_VRFJR

07_04_02 19_03_02

12 123 45 18 8 11 9 7 87 34 14 15

50 100

123 123 121 123 121 123 121 125 125

SHITJE
KOD_SHIT EMER_SHITJE SHITE_KONTAKTI KODI_ZONS_SHIT PHON_SHIT

120 121 122 123 124 125

Arben Mali

615

8P5_124

1. Pr do tabel identifikohni elsin primar dhe elsin e jashtm. N.q.s. tabela nuk ka els t jashtm shkruani asgj 2. Vizatoni diagramin e lidhjes. 3. Vizatoni skemn relacionale. 4. Formuloni 5 pyetje dhe prgjigjuni n gjuht algjebrike.

122

You might also like