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.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

Struktura e Db
Metadata
Klientt
Produktet

T dhnat

Shrbimet

T dhnat e
prdoruesit fundor

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.

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

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

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

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

Skedari
KLIENT
Programet e
administrimit
t skedarve

Programet e
administrimit
t skedarve

Raportet

Skedari
Agjent

Raportet

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

Pamja 2

Pamja 3

Shitja

Llogaria

Porosit

Klientat

Klientat

Porosit

Porosit

Klientat

Drgesat

Klientat

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

Pjesa
Num_Pjes Emri Pjess
P5
Vide
P1
Dado
P18
Bulon
Me t dy relacionet.
Shnimet e ktij operatori
faqen n disa forma:

Qyteti
Durrs
Tiran
Tiran
Durrs
Elbasan
Furnizimi
Num_Furnizuesi
t
F1
F2
F3
F4
F5

Num_Pjess
P1
P18
P5
P18
P18

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:

R3 = JOIN (R1, R2 kandita).

p.sh.:
F1
Num_ F
F1
F2
F3

F2
Emer
Num_F
Arben
F1
Luan
F1
Besnik
F2

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

Furni.2

Qyteti
Durrs
Tiran
Tiran

Num_F Emri

Qyteti

F1
F3

Durrs
Tiran

Arben
Besnik

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

R1 = FURNIZIM

S
Num_Pjese
P1
P18

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

II.

SELECT UNIQUE EMRI


FROM PIJETAR
WHERE NP IN
(SELECT NB
24

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

PRSHK_PROD MIM_PROD
SHEQER
65
VER
250
VAJ VEJETALL
170
TAPET
6500
800

KOD_SHITSI

EMR SHITSI KODI_ZONS_SHITSIT PHON_SHITS

230
231
232
233
234
235

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

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

Punnjsit
Klientt
Shitjet
Inventari
Llogaria

DBMS

Sistemi i skedarve
Dept. Personelit

Punonjsit

Dept. Shitjes

Klientt

Shitjet

Dept. Financs

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

Server

GUI
Presentation Logic
Business Logic

Data Access Logic


DBMS

User Services
Business Services

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

Server

GUI
Presentation Logic

User Services

Busines Logic
Data Access Logic
DBMS

Busines Services
Data Services

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
Data
Business
Access
Access
DBMS
Logic
Logic
logic

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

PIKTOR dhe PIKTUR do t

Modeli Crows Foot.

Modeli Chen

PIKTORI

PIKTORI

Pikturon

pikturon

PIKTURA

PIKTURA

Fig. Lidhjet ndrmjet PIKTOR dhe PIKTURA.


Orientimi i ERD nuk sht material. Lidhjet e msiprme mund t paraqiten

PIKTORI

1
PIKTORI

pikturon

PIKTURA

pikturon

M
PIKTURA

Fig. Paraqitja alternativ e modeleve.

Nj paraqitje konkrete e lidhjeve t msiprme.

41

PIKTORI
KODI_PIKTORI

EMR_PIKTORI

123

Luan

126

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
ka

KURS

KLAS

Modeli Chen
KURS

1
ka

KLAS

Fig. Relacioni 1:M ndrmjet KURS dhe KLASE.


Ky model mund t ilustrohet me tabela n form t

Ermi i databazs: KURS_BOLEGJ


Emri i tabels: KURS.
elsi primar: KURS_KOD
elsi i jashtm: ska
KURS_KOD
DEPT_KOD

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

ACCT_211

10014

ACCT_211

10015

ACCT_212

10016
10017

ACCT_212
CIS_220

2
1

10018

CIS_220

10019
10020

CIS_220
CIS_420

3
1

10021
10022

QM_261
QM_261

1
2

10023

QM_362

10024

QM_362

8-8:50am
HMP
9-9:45AM
ME 2:302:45pm
HMP 1010:50am
E 6-8:40pm

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

Klase_Sall Prof_Num
A-311
105
A-200

105

A-252

342

A-311

301

A-252
B-209

301
228

B-211

114

B-209
B-209

228
162

B-200
B-200

114
114

B-200

162

B-200

162

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

ndjek

KLAS

Modeli Chen
M
STUDENT

KLAS

ndjek

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

MALI

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

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

10014

321452

10014

324257

ACCT211
ACCT211

10018

321452

CIS-220

10018

324257

CIS-220

10021

321452

QM-261

10021

324257

QM-261

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

B 201

342

B 201

342

A 112

114

A 112

114

C 305

114

C 305

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

REGJISTRIM

Gjendet n

bn pjes n

KLAS

Modeli Chen
STUDENT

1
STUDENT

KLAS

gjendet

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

EMER_STUD

STUD_PHONE

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

gjeneron
shnim:
m von.

KLAS
SEKSION_KLAS
KURS_KOD
OR_KLAS

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

KLAS
gjeneron

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

KLAS
gjeneron

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
Ka e lidhjeve t forta ndrmjet njsis prind dhe
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

M
T_VARUR
O
(1,1)

(0,N)
KOD_PUN
EM:R_PUN
MBIEMR_PUN
INIT_PUN
DLIN)PUN

opsionale
(min. 0)

(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

Ka

T_VARUR
KOD_PUN
KOD_VAR
EMR_VAR
DLIN_VAR

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

mson
martuar

Unore

KLAS

Binare

Kontributor

KFM

MARRSI

FOND

Ternare

Modeli Crows Foot


52

PUNONJS

PROFESOR

KLASE

mson

Unare

Binare

KONTRIBUTOR

KFM

Kontribon pr

Mars

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

MARIJA

GENCI

TOMI

DITI

INA

FREDI

SUELA

MERI

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

X
U

Y
V

X
U

Y
V

Z
V

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.

KM
Ngjyra

Tipi

Marka

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#

EMER_
STUD

42125

ARBEN

DREJTIMI
_
KRYESOR
IS

68134

LUAN

PM

KURSI#

TITULLI_
KURSIT

IS350
IS465

DATABASE
SYSANAL

EMRI_
INSTRU_
KTORIT
CODT
KEMP

IS465
PM300
QM440

SYSANAL
BIZNES
KERKOP

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

M:N

1:1
EMR_
STUDENTI

STUDENT

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#

KURSI#

38214
38214
69173
69173
69173
. . . .

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.

2.

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#.

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

STUDENTI
GRADA

EMRI
INSTRUKTORIT

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

INSTRUKTORI
TITULLI_
KURSI
DBASE
SYSANAL
PRODMGT
OPRES

EMR_
INSTRUKTORI
COD
KEMP
LEVIS
KEMP

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

INSTRUKTOR

EMR_
DREJTIMI_
EMRI_
STUDENTI INSTRUKTORIT
KRYESOR
ARBEN
IS
CODD
LUAN
PM
KEMP
LEVIS
. . . .

KURS
KURS#
IS350
IS465
PM300
QM440
. . . . .

TITULLI_
KURSIT
DBASE
SYSANAL
PRODMGT
OPRES

EMRI_
INSTRUKTORIT
CODD
KEMP
LEWIS
KEMP

VENDI_
INSTRUKTORIT
B104
B213
D217

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

b)
c)

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#

DREJTIMI

UDHHEQSI

234

FIZIK

AJNSHTAJN

234

MUZIK

MOXART

546

BIOLOGJI

DARVIN

879

FIZIK

BORI

985

FIZIK

AJNSHTAJN

STUDENT#
UDHHEQS
DREJTIMI

(a)

(b)

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

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.

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

sporti
Tenis

Baza t dhnash

Futboll

Baza t dhnash

iklizm

Matematik

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
Y
Z
(200, Baza t Dhnash, iklizm)

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, 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 : (XY) (XR-X-Y)
2. Tranzitiviteti: (XY) dhe (YZ) (XZ)
3. Bashkimi : (XY) dhe (XZ) (XYZ).
Duke nisur nga aksionet e msiprme sht e mundur t futet koncepti i
varsis shumvlershe elementare.
Prkufizim: Varsia shumvlershe XY
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

LIBRI
ARBEN
FATI

DBASE

MOZA

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

MSUESI
KURSI
MS_DOS
MS_DOS
MS_DOS
DBASE

INSTRUKTORI
ILIRI
PETRITI
ARJANI
MOZA

LIBRI

LIBRI
KURSI
MS_DOS
MS_DOS
DBASE
DBASE

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

PUN#

KURS

INTERESI

123

NIVELI I

LOJ ME BULA

123

NIVELI II

LOJ ME BULA

456

MJESHTR

SKI

456

MJESHTR

LOJ ME BULA

LOJTARI
BENI
GIMI
TONI
MIRI
TIMI

POZICIONI
SM
P
SM
QM
SM

TRAJNERI
NIKU
EDI
PJERNI
GONI
NIKU

FUTBOLL

PUN#
PUN#

KURS
INTERESI

TRAJNERI

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

Projekti

Detyra

Zyra
Telefoni

Historiku i pags

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

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

type (gjatsia) [kufizimet];


type (gjatsia) [kufizimet];
type (gjatsi) [kufizimet];

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.
p.sh.

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

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

funksioni i llogaritjes.

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

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 : shprehje e
CAST : shprehje e kthimit t tipit
Rresht shprehje vler ndrto dhe ndrto nj n-she.

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

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>]

AS

far bhet:
Llogaritet blloku she shohet rezultati
Tabel s sht read-only

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

DREJ

d1

Bujar

d2

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

Panel
pikture

03_DHJ_02

20.000

0.00

25595

25

2232QWE

Kalavid

24_JAN_03

990

0.05

24288

15

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

11QER/31 Panel pikt

P_INDATE P_NDOR P_MIN P_MIM

03_DHJ_02

SH_KOD P_DIS

20000

P_MIN_POR

P_RIP

25

25595

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

11QER/31 Panel pikt

P_INDATE P_NDOR P_MIN P_MIM

03_DHJ_02

SH_KOD P_DISC P_MIN_POR P_RIP

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

2232/QWE kacavide

P_INDATE P_NDOR P_MIN P_MIM P_DISC SH_KOD P_MIN_POR P_RIP

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

vlera(gjendja)
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

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;

metadata

define class Departament :


type (demr: string,
dnumr: integer,
mgr : tuple ( manager: Punonjs,
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

O5
O12

O7
O6

O10
O12

O13

O11
O14

O15

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

Tuple mgr

Vendet set
punonjs set.
Projekt set.

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.

Krkuesit q punojn me nj projekt

13.

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 :

Em_vende [2]
Tipi : Vendi.

11 vendet e para

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

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;

115

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

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

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

AGJENTI
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

KOD_AGJENT

AGJENT_PHONE

125
167
231
333

6152439887
6153426778
6152431124
9041234445

Natyral join:
KOD_KLI

MBIEM_KLI

ZIP_KLI

KLI_KOD_AGET

AGENT.AGENT_KODE

12217782

FUSHA
ARA
SHKMBI
MALI
PYLLI

32145
37134
34129
32145
32145

125
125
167
231
231

125
125
167
231
231

1321242
1312243
1132445
1657399

Left outer join


KOD_KLI
12217782

1321242
1312243
1132445
1657399
1542311

MBIEM_KLI

FUSHA
ARA
SHKMBI
MALI
PYLLI
DETI

AGENT_PHONE

6152439887
6152439887
6153426778
6259431124
6152431124

=
ZIP_KLI

32145
37134
34129
32145
32145
37134

KOD_AGENT

AGENT_PHONE

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

PROFESOR

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

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

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

DEGA
Emri_degs
SHKOZET
LABINOT
LAPRAKE
KOMBINAT
QENDR
KURBIN
PLAZH

Qyteti_degs
DURRS
ELBASAN
TIRAN
TIRAN
TIRAN
LA
DURRS

Bilanci
500
700
400
350
900
700
750

Asetet
9.000.000
2100.000
1700.000
400.000
8.000.000
300.000
7.100.000

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

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

HUAMARRS
EMR_KLIENTI
JULIAN
SAIMIR
ASTRIT
LUANI
BES
AGRONI

MANDATI
1000
2000
1500
1500
500
900
1300

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

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

PRSHKRIM_PRODUKT

DATA_STOKUT_PROD

PROD_N_DOR

PRODH_MIM

KODI

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

120
121
122
123
124
125

EMER_SHITJE SHITE_KONTAKTI KODI_ZONS_SHIT PHON_SHIT

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