Professional Documents
Culture Documents
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.
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.
K_Emri
K_Phone
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
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.
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.
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.
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
Pamja 2
Pamja 3
Shitja
Llogaria
Porosit
Klientat
Klientat
Porosit
Porosit
Klientat
Drgesat
Klientat
Klientat
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
14
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
15
16
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
Num_F
F1
F2
F3
Emri
Arben
Luan
Besnik
Num_Pjese
P5
P5
P5
18
p.sh.:
F1
Num_ F
F1
F2
F3
F2
Emer
Num_F
Arben
F1
Luan
F1
Besnik
F2
Num_Pjese
P1
P18
P5
Emri
Erban
Arben
Luan
Num-Pjese
P1
P18
P5
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
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
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
Forma:
R = AGREGAT(Relacion, atribut1, Funksion, Atribut2)
Ku:
-
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
II.
25
26
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
Stud_Emr
Stud_Mbiemr
Stud_Dl
DEPT_Kod
Stud_Phone
Prof_LOG
28
Nj vler t panjohur,
Vler q njihet, pa e humbur,
Kandit t pa aplikueshme.
PRSHK_PROD MIM_PROD
SHEQER
65
VER
250
VAJ VEJETALL
170
TAPET
6500
800
KOD_SHITSI
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
Punnjsit
Klientt
Shitjet
Inventari
Llogaria
DBMS
Sistemi i skedarve
Dept. Personelit
Punonjsit
Dept. Shitjes
Klientt
Shitjet
Dept. Financs
Inventari
Llogaria
30
Ndrfaqsi prdorues
(sistem)
Fjalori i t
dhnave
SQBh
BDh
Administrimi i BDh
31
32
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
35
Server
GUI
Presentation Logic
Business Logic
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
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
38
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.
lidhjeve ndrmjet njsive q do t prdorni diagrame entyti relation ship ose ERD
ndrtuar modelin ERD. Pr t ilustruar ERD
t vogla.
40
Modeli Chen
PIKTORI
PIKTORI
Pikturon
pikturon
PIKTURA
PIKTURA
PIKTORI
1
PIKTORI
pikturon
PIKTURA
pikturon
M
PIKTURA
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
KURS
KLAS
Modeli Chen
KURS
1
ka
KLAS
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
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
43
ndjek
KLAS
Modeli Chen
M
STUDENT
KLAS
ndjek
MALI
10018,
CODE
CODE
10018,
CODE
CODE
KLASE_KOD
10014
10018
10021
10014
10018
10021
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
kryen
KLAS
REGJISTRIM
Gjendet n
bn pjes n
KLAS
Modeli Chen
STUDENT
1
STUDENT
KLAS
gjendet
N
Regjistrmi
KLAS
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
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
gjeneron
shnim:
m von.
KLAS
SEKSION_KLAS
KURS_KOD
OR_KLAS
O do t shihet
KLAS
49
Mson
KLAS
gjeneron
50
KURS
KLAS
gjeneron
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
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
PUNONJS
PROFESOR
KLASE
mson
Unare
Binare
KONTRIBUTOR
KFM
Kontribon pr
Mars
merr nga
I shprndar
Ternare
FOND
53
1
PUNONJS
N
administrimi
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
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
KM
Ngjyra
Tipi
Marka
Fuqia
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
Rel. Normaliz.1
Hiqen grupet
e prsritur
Hiqen varsit
e pjesshme
Rel. Normaliz.2
Hiqen varsit
tranzitive
Rel. Normaliz.3
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
58
M:N
1:1
EMR_
STUDENTI
STUDENT
DREJTIMI
KRYESOR
KURSI#
GRADA
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
2.
60
STUDENTI
GRADA
EMRI
INSTRUKTORIT
KURSI#
VENDI
INSTRUKTORIT
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
els primar
elsi primar
Atributi 1
Atributi 2
........
Atributi n
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)
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
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)
e nj relacioni R sht
68
(NS,SPORTI)
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
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
70
2.
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
Punonjsi
Projekti
Detyra
Zyra
Telefoni
Historiku i pags
72
DDL:
emr_tabele
atributi 1
atributi 2
------atributi n
73
Heqja e tabels:
Krijimi i indeksit:
Create index emr_indeksi on emr_table (kdone1....)
Heqja e indeksit
Drop index
Emr_tabele.
2.
p.sh.
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
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
76
Select Kod_s
From Ndjek
Where Kod _ mod = M2 AND n_mes >8.
-
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
78
qyteti
Sasia
20
30
funksioni i llogaritjes.
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
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
83
Modifikimi i skems:
T shtohet nj kolon n nj tabel
M(RAJONI, KATI, TVSH, DIR)
Tipi
ALTER TABLE M ADD COLUMN NBPUN (NUMBER)
Variabl q lviz me M
UPDATE M X
SET NBPUN = (SELECT COUNT (*)
FROM PUNONJS
WHERE PUNONJS, RAJONI = X. RAJONI)
(SNAPSHOP)
AS
far bhet:
Llogaritet blloku she shohet rezultati
Tabel s sht read-only
84
SELECT *
FROM
S
Smund t rifreskohet periodikisht (do dit, muaj, . . .)
sht i dobishm n mjediset e shprndar.
85
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
EMRI
Ilsi
Sknder
Luan
Ela
Monda
KODIND
d1
d1
d1
d2
d2
DREJ
Bujar
Bujar
Bujar
Besi
Besi
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.
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
P_PRSHK
03_DHJ_02
SH_KOD P_DIS
20000
P_MIN_POR
P_RIP
25
25595
P_PRSHK
03_DHJ_02
20000
25595
25
P_PRSHK
2232/QWE kacavide
03_DHJ_02
990
24288
15
P_PRSHK
Kaavid
- - - - - - - - P_NDOR
7
P_MIN
6
- -
- - - - - - - -
P_RIP
0
90
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
92
SHKMBI
MALI
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:
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:
-
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
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.
Signature
operations
mosha (p:punonjs) : integer;
krijo_pu_t_ri (Punonjs:
prish_pun(p:Punonjs) boolean;
metadata
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
100
101
t strukturuar
t pastrukturuar.
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.
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
104
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).
Projekt. Titulli
Projekte
v in krkuesit
v emri = Beni AND
v aktivitet = prgjegjs
w. Buxheti
prgjigjuni pyetjes
108
11.
12.
13.
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
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
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.
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
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.
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;
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;
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
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
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
KOD_PROF
2
4
2
1
KOD_DEPT
6
4
6
2
KOD_STUD
128569
512272
531235
552427
531235
KOD_PROF
2
4
2
1
3
KOD_DEPT
6
4
6
2
6
drejton
MAKIN
119
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
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
Arben Mali
615
8P5_124
122