Professional Documents
Culture Documents
bazave te te dhenave me
zbatim ne MYSQL
Bazat e punes ne access (ketu
permenden elementet themelore
dhe puna me to )
Urdherat themelore ne
SQL(structural query language)
(ketu mesohen urdherat themelore
dhe manipulimet me to ne SQL( te
pergjithshem) ,ndersa ushtrimet
organizohen ne MYSQL)
nbraha-bazat e te dhenave 1
Menyra e vleresimit
nbraha-bazat e te dhenave 2
Literatura
Literatura :
1.Mastering access , Autore:Alan
Simpson,Celeste Robinson ,Botimi
1999
2.Database system concepts
Autore :Abraham Silberschatz,Henry
F.Korth,S.Sudarshan,Botimi 2001
3.Microsoft server 2000
4.Database modeling and design
autore:Toby .J.Teorey,botimi 1999
(gjindet ne biblioteke)
nbraha-bazat e te dhenave 3
Literatura
5. Mannual-sql (manual I mysql-
se ne web ne adresen
www.mysql.com)
6.Database process,autore :David
Kroenke(gjindet ne biblioteke)
7.Access bible 2002 ,autore
Michael Irwin ,Cary Prague
8.Teach yourself sql (botim nga
SAMS)
nbraha-bazat e te dhenave 4
Bazat e te dhenave
Ç’eshte baza e te
dhenave
Per cfare sherben
Si ndertohet
nbraha-bazat e te dhenave 5
Funksionet e bazave te te
dhenave
Vendosja e te dhenave
Pershtatja
Modifikimi
Kerkimi
Printimi
Qasja e me teper se nje shfrytezuesi
Qasja nga intraneti dhe interneti etj
nbraha-bazat e te dhenave 6
Kriteret qe merren parasysh
ne nje baze
“Data Redudancy“(perseritja e te
dhenave )Gjate ndertimit te bazes
se te dhenave ,nga disa persona
mundet qe nje fajlle (tani e
tutje tabela) i njejte te
perseritet p.sh nje e dhene
“emri”.Keshtu ne bazen e te
dhenave fitojme perseritje te te
dhenave ,kjo njihet me emrin
“redudancy”.
nbraha-bazat e te dhenave 7
Data redudancy
Nje redudance e te dhenave eshte
bere ne shembullin qe do te
shohim ne vijim ,ku e dhena e
emrit ne nje lidhmeri te
entiteteve eshte perseritur dhe
si e tille eshte e palejueshme.
Kjo shihet ne diagramin e
paraqitur me poshte dhe kjo
perseritje eshte bere ne tere
tabelat e shqyrtuara (atributi
emri) .
nbraha-bazat e te dhenave 8
Data redudancy(vazh.)
nbraha-bazat e te dhenave 9
“Veshtirsia ne qasje”
Nese merret nje shembull I ndertimit te
nje programi per pune bankare ,sic
dihet ne te duhet te kemi nje aplikim per
vendosje te klienteve ,per balance te
te ardhurave etj dhe kerkohet nje e
dhene qe te kihet regjistri I te dhenave
te klienteve qe jane nga “tirana” .Nese
ne ate program nuk eshte aplikacioni i
kerkesave nje gje te tille nuk mundemi
me e pase d.m.th kemi nje veshtiresi ne
qasje te te dhenave .Kete e ilustron ky
diagram i meposhtem.
nbraha-bazat e te dhenave 10
Veshtirsia ne qasje(vazh.)
nbraha-bazat e te dhenave 11
Veshtirsia ne qasje(vazh.)
Siq shihet me siper mundesia e
kerkimit te te dhenave nuk eshte
e mundur pasi nje gje e tille nuk
eshte parapare ne kuader te asaj
forme kerkuese,qe d.m.th se kemi
veshtiresi ne qasje
nbraha-bazat e te dhenave 12
“Data isolation”
nbraha-bazat e te dhenave 13
“integrity problem”
Nese kemi te bejme me nje kliente
te bankes dhe per ate dhe klientet
tjere kemi vendose qe ne llogarine e
tije te kete me se paku 30 euro
gjate terheqjes se parave nga
llogaria ateher kemi te bejme me nje
pjese te programit e cila mundeson
nje te dhene te tille ,tani venja e
largimi i nje kushti te tille na paraqet
problem ,keto paraqesin nje integritet
referencial te te dhenave
nbraha-bazat e te dhenave 14
“Atomicity of data”
Problemi I tille ne kuader te nje baze te
te dhenave paraqitet nese kemi te bejme
me dergim te nje llogaria nga klienti 1 ne
ate te klientit 2 dhe nese gjate ketij
transferi na largohet shuma nga klienti1
por nuk paraqitet te klienti 2,d.m.th
humben te dhenat .Gjate bartjes se te
dhenave duhet ajo te jete “atomike “d.m.th
qe bartja te behet brenda atij entiteti.
nbraha-bazat e te dhenave 15
“concurrent access anomalies”
Nese ne kuader te nje banke kemi
shumen prej 80 eurove ne nje llogari dhe
njekohesisht nga e njejta llogari dy
persona (klient) terheqin ne te njejten
kohe shumat p.sh 50 dhe 40 nga po e
njejta shume ,ateher llogaria e tille e
larte shenuare mbetet ne nje pozite
inekzistente ,per kete sistemi duhet te
kete nje supervision i cili bene nje
kontrolle te tille .Kjo na paraqet nje
anomali gjate qasje paralele te te
dhenave
nbraha-bazat e te dhenave 16
“security problem”
Nese meret shembulli I bankes ateher
programi te cilin e kemi duhet qe ti
mundesoje klienteve vetem te kene
qasje ne gjendjen e llogarise se tyre
dhe parashtrimit te kerkesave ne
lidhje me te por jo edhe te nderhyrjes
se tyre ne vet gjendje ,kjo arrihet me
ane te sigurimit te te dhenave ne
kuader te asaj baze te te dhenave
nbraha-bazat e te dhenave 17
Siguria e te dhenave(vazh.)
Nje gje e tille do te ishte e
realizueshme nese ne shembullin
e shikimit te te dhenave nga
forma e paraqitur me pare te mos
kishim mundesi te nderhyrjes ne
vet programin e ndertimit te
bazes .
nbraha-bazat e te dhenave 18
“shikimi i te dhenave ”
Abstrakcioni i te dhenave
Qasja dhe skema e te dhenave
Pavaresia e te dhenave
nbraha-bazat e te dhenave 19
Abstrakcioni i te dhenave
Shfrytezuesit e bazes se te dhenave
duhet ti paraqitet baza ne ate menyre
qe ai ta kete me te lehte per me
perdore kjo arrihet permes disa
niveleve te organizimit te te dhenave
Niveli fizike I te dhenave –ky eshte
niveli I pare I shikim te te dhenave
dhe ketu jane te dhenat e pershkuara
ne detale se si jane te vendosura
Niveli logjike-ketu pershkruhen
lidhmerite dhe rrolet e te dhenave ,ne
veqanti nga administratori I bazes se
te dhenave
nbraha-bazat e te dhenave 20
Abstakcioni i te dhenave (1)
Niveli i shikimit –ky ne radhe te pare na
mundeson nje shikim te nje aplikacioni te
programit por jo edhe detalet e tipeve
te te dhenave dhe te dhenave ne
pergjithesi .P.sh nje puntore banke i cili
punon ne kabine per dhenie dhe marrjen
e te hollave ka mundesin e shikimit te te
dhenave por jo edhe te te dhenave detale
,perkatesisht per modifikim te vet
bazes se te dhenave .Nje ilustrim I
kesaj do te ishte
nbraha-bazat e te dhenave 21
Abstrakcioni i te dhenave(2)
nbraha-bazat e te dhenave 22
Qasja dhe skema e te
dhenave
Skema e te dhenave-eshte realizimi
logjike I bazes se te dhenave ,p.sh si
ne gjuhe programuese qe behet
definimi dhe tipi i variblave etj.
Qasja e te dhenave –eshte nje
permbajtje e momentit e bazes se te
dhenave p.sh ne shembullin e bankes ne
nje moment kemi 300 kliente dhe me
shume te teresishme 300000 euro
,kjo do te ishte nje qasje
nbraha-bazat e te dhenave 23
Pavaresia e te dhenave
Aftesia e ndrrimit te skemes se
te dhenave nga nje nivel dhe I cili
nuk ndikon ne skemen e te dhenave
ne nivelin tjeter ,paraqet pavaresin
e te dhenave .Jane dy nivele te
pavaresise se te dhenave
1.niveli fizike dhe
2.niveli logjike
nbraha-bazat e te dhenave 24
Modelet e bazave te te
dhenave
Me model te te dhenave
nenkuptojme teresine e veglave
per pershkrim te :
1. Te te dhenave
2. Te lidhjeve te tyre
3. Semantiken e te dhenes
4. kushtezimet
Ne varesi nga pershkrimi i
mesiperm kemi keto lloje te
bazave te te dhenave
nbraha-bazat e te dhenave 25
“entity relation model”
Nje modele I tille do te pershkruhej
me pershkrim reale te te dhenave i cili
pershkruhet me ,objekte bazike te
quajtura entitete , lidhmerise se tyre
si dhe atributet p.sh nje entitet mund
te jete personi qe punon ne banke dhe
keto jane te pershkruara me atribute
p.sh ai te punoje ne kabine,ndersa
lidhmeria e tyre do te ishte mes disa
entiteteve .Keto modele shkurt do ti
shenojme me E-R.Pershkrimi i te
dhenave ne kuader te nje E-R do te
paraqitej ne keto pika kryesore
nbraha-bazat e te dhenave 26
E-R modeli
Bashkesia e entiteve
Lidhmeria e tyre
Paraqitja e Dizajnit
Kufizimi i te dhenave
Qelesat
E-R Diagrami
Veglerit e zgjeruara te E-R
Dizajni i nje E-R baze
Kthimi i nje E-R modeli ne forme
tabele
nbraha-bazat e te dhenave 27
Objektet (entitetet)
Nje baze mund te modelohet si :
Bashkesi e entiteteve ,
Relacionet ne mes tyre.
Nje objekt eshte nje objekt ekzistues dhe i
cili dallon nga nje tjeter.
Psh nje person i caktuare ,fabrika etj
Keto objekte kane vetite e tyre ( atributet)
Psh :njerzit kane emer dhe mbiemer etj
Nje bashkesi e entiteteve eshte ajo
bashkesi e cila ka tipe te njejte dhe qe
ndajne veti (atribute) te njejta ne mes
vete.
Psh : bashkesia e te gjithe njerezve (kane te
gjithe emra,mbiemra etj),bashkesia e te gjitha
fabrikave etj nbraha-bazat e te dhenave 28
Bashkesia e entitetit”loan”
customer-id customer- customer- customer-
loan- amount
name street city
number
nbraha-bazat e te dhenave 29
Atributet
Pershkrimi i nje objekti mundesohet permes
shume vetive (atributeve)
Psh :
bleresi (customer) = (customer-id,
customer-name, customer-street,
customer-city)
huaja (loan) = (loan-number, amount)
Domeni i atributit – bashkesia e vlerave te
mundeshme te atributeve
Tipet e atributeve :
Atributet e drejtperdrejta (thjeshta) dhe ato te
derivueme (ato qe rrjedhin nga ato te parat).
Ato te parat jane te njevlershme dhe te
shumevlershme
Psh shumevlershme :numrat e kartelave te bankes etj
Ato te derivueshme
Merren nga ato te parat
Psh mosha e marre nga data e lindjes
nbraha-bazat e te dhenave 30
Atributet e derivueme
nbraha-bazat e te dhenave 31
Lidhmeria e te dhenave
Lidhmeria e te dhenave realizohet per disa
objekte
Psh :
Hayes depositor A-102
me kete behet lidhmeria e bleresit
(customer) dhe llogarise se tije .
Lidhmeria ndermjet e objekteve eshte nje
relacion matematike i me teper se 2
objekteve ,i marre si nenbashkesi e {(e1,
e2, … en) | e1 E1, e2 E2, …, en En}
nbraha-bazat e te dhenave 32
Nje lidhje ne mes te marresit
dhe huadhenesit
nbraha-bazat e te dhenave 33
Lidhmeria e objekteve
Nje paraqitje e nje lidhje ne mes te objekteve
eshte paraqitur edhe ne kete skeme ,dhe objekti
depozitor mund te ket edhe atributin “data-access”
nbraha-bazat e te dhenave 34
Shkalla e lidhjes se objekteve
Kjo paraqet numrin e entiteteve qe
marrim pjese ne nje lidhje.
Relacioni ne te cilin marrin pjese dy
entitete quhet binar ,tri ternar etj.
Ne nje lidhje mund te futen me teper
se dy entitete .
Psh nje i punesuar ne banke mund te
kete pune ne disa filialla, atehere kemi
nje lidhje ternare ne mes te entiteteve te
punesuar ,punet dhe fillialle
Lidhjet ne mes te me shume se 2
entiteteve jane te rralla
nbraha-bazat e te dhenave 35
Tipet e lidhjeve ne mes te
entiteteve
Meqe shumica e lidhjeve ne mes te
entiteteve eshte lidhje binare ateher
me poshte do te pershkojme tipet e
lidhjes ne mes tyre.
Tipet themelore te lidhjes ne mes te
entiteteve jane keto :
Nje me nje (One to one)
Nje me shume (One to many)
Shume me nje (Many to one)
Dhe shume me shume (Many to many )
nbraha-bazat e te dhenave 36
Tipet e lidhjes- nje me nje dhe
nje me shume
nbraha-bazat e te dhenave 38
Diagrami i nje E-R-je
nbraha-bazat e te dhenave 40
Nje E-R me i komlikuar
nbraha-bazat e te dhenave 41
Lidhmerite me atribute
nbraha-bazat e te dhenave 42
Rrolet e objekteve
Entitetet e nje lidhje nuk duhet te jen me veti
te ndryshme
Ne vizat e meposhtme “manager” dhe “worker”
paraqesin rrolet;ata specifikojne se si entiteti
“employee” komunikon me “ works-for” ne ate lidhje.
Rrolet ne nje E-R shenohen me shkronja ne vizat qe i
lidhin entitetet dhe kushtit te lidhjes .
Rrolet me labela zgjedhen sipas deshires dhe merren
vetem per kjartesi te semantikes
nbraha-bazat e te dhenave 43
Menyrat e shenimit te lidhjes
Lidhja nje me shume do te shenohet me (), ku njeshin
e paraqet fillimi i vizes ndersa shumicen mbarimi ,viza
(—) e pa orientuare paraqet lidhjen shume me shume e
orientuare nga kushti i lidhjes ne drejtim te entitetit.
Psh : nje me nje :
Bleresi eshte i shoqeruare me se paku nje hua (loan) permes
huadhenesin (borrower)
Njesoj huaja eshte e lidhur me te pakten nje bleres permes
te huadhenesit (borrower)
nbraha-bazat e te dhenave 44
Nje me shume
Ne lidhjen nje me shume huaja( loan)
eshte lidhur me te pakten nje bleres
permes “borrower”,ndersa bleresi
eshte i lidhur me disa huaja permes te
“borrower”
nbraha-bazat e te dhenave 45
Shume me nje
Ne kete raste kemi mundesin e
kundert me ate te mare ne rastin e
mesiperm.
nbraha-bazat e te dhenave 46
Shume me shume
nbraha-bazat e te dhenave 47
Realizimet e lidhjeve
Ne lidhjet e mesiperme duhet
cekur se kusht themelore eshte
qe ato te dhena te cilat
deshirojme ti lidhim te kene tipe
te njejte te te dhenave (ku tipi i
te dhenave do te permendet
edhe ne vazhdim )
nbraha-bazat e te dhenave 48
Pjesemarrja e nje entiteti ne
nje lidhje
Pjesemarrja totale ne nje lidhje (e shenuar e me viza te
dyfishta ): kjo merret ne ate raste kur secili entitet merr pjese
ne te pakten nje lidhje ne ate lidhmeri te entiteteve
Psh pjesemarrja e huase (loan) ne “borrower” eshte totale
secila hua duhet te kete nje bleres(costumer) permes te
“borrower”
Pjesemarrja e pjesshme : disa entitete mund te mos marrin
pjese ne te gjitha lidhjet ne ate baze
Psh pjesemarrja e “customer” ne “ borrower” eshte e
pjesshme
nbraha-bazat e te dhenave 49
Qelesat (Keys)
Le te jete K R
K eshte nje “superkey” i relacionit R nese
vlerat e K jane te mjaftueshme per identifikim
te nje qifti te mundshem nga relacioni r(R)
Ku me relacion te mundshme nenkuptojme nje qift i
cili mund te krijohet ne ate model.
Psh : {customer-name, customer-street} dhe
{customer-name}
jane “superkeys” te “Customer”,nese dy “customer”
nuk kane emra te njejte.
K eshte “candidate key “ nese K eshte
minimal
psh : {customer-name} eshte “candidate key”
per “Customer”,perderisa ai do te jete
“superkey” (nen supozimin se dy “customers”
nuk kane emer te njejte ) dhe nese
nenbashkesit e tije nuk jane “superkey”.
nbraha-bazat e te dhenave 50
Fushat kryesore dhe rroli i tyre
ne lidhjen e entiteteve
Kombinimi i qelesave kryesore te entiteteve me
pjesemarrje te pjesshme ne nje lidhje formojne
nje “super key”.
Psh (customer-id, account-number) eshte nje “super
key” per tabelen “depositor”
Shenim: kjo nenkupton se qiftet e entiteteve kane
te pakten nje lidhje ne bashkesine epjesshme te
lidhjes.
Psh nese percjellim te gjitha qasjet e te dhenave ne secilin
llogari (account) nga secili “customer”, ne nuk mund te
supozojme lidhje per secilen qasje.Edhe pse ne mund te
marrim atribute me shumevlera
Gjithashtu gjate percaktimit te “candidate key”-ve duhet
te kihet parasysh edhe lidhmeria e te dhenave ne ato
entitete
Gjate percaktimit te “primary key ” ne
bashkesine e lidhjeve me me shume se nje
“candidate key ” ne kuader te nje pyetsore kjo
duhet edhe te ceketnbraha-bazat
ne semantiken
e te dhenave e tij. 51
Realizimi i lidhjeve ne access
Me nje shembull shohim ne
vazhdim lidhjet e tipeve te
permendura
1.nje me nje
Kjo realizohet ndermjete fushave
kryesore te atyre dy entiteteve
nbraha-bazat e te dhenave 52
Lidhja nje me nje
nbraha-bazat e te dhenave 53
Lidhja nje me nje (vazh.)
nbraha-bazat e te dhenave 54
Lidhja nje me nje(vazh)
nbraha-bazat e te dhenave 55
Lidhja nje me nje (vazh.)
nbraha-bazat e te dhenave 56
Lidhja nje me nje (vazh.)
nbraha-bazat e te dhenave 57
Lidhja nje me shume
Kjo lidhje ne access realizohet
per dy entitete ashtu qe ne
tabelen e pare ku deshirojme te
kemi lidhjen nje duhet te kemi
fushen kryesore ,ndersa ne te
dyten ku deshirojme te kemi
lidhjen shume duhet te jete fushe
jokryesore,kjo shihet me kete
shembull,ndermjet tabelave 1 dhe
tabeles 2. gjithashtu duhet te
ceket se tipet e te dhenave duhet
te jen te njejta
nbraha-bazat e te dhenave 58
Lidhja nje me shume
nbraha-bazat e te dhenave 59
Lidhja shume me shume
Kjo lidhje ne access realizohet ne
mes te dy atributeve jo kryesore
duke ndertuare nje tabele ndihmese
e cila perbehet nga atributet
kryesore te dy tabelave ne lidhje
dhe i ka qe te dy ato si atribute
kryesore,sic shihet ne shembullin e
meposhtem ,ku behet realizimi i
lidhjes ne mes te tab1 dhe tab2.
nbraha-bazat e te dhenave 60
Lidhja shume me shume(vazh.)
nbraha-bazat e te dhenave 61
Lidhjet jo binare
nbraha-bazat e te dhenave 62
Shembull i diagramit E-R me
nje lidhje ternare
nbraha-bazat e te dhenave 63
Shembull i diagramit E-R me
nje lidhje ternare
Sic shihet nga shembulli i mesiperm
lidhja ternare eshte realizuare ne
mes te entiteteve “job”,”employ” dhe
“branch”.E gjithe kjo eshte realizuare
permes “works on”.
nbraha-bazat e te dhenave 64
Lidhmeria ne nje relacion
ternare
Ne nje relacion ternare (ose n-are) se
paku nje lidhje ne mes te tyre lihet
anash per te percaktuare lidhjen ne
mes te dy entiteteve qe marrin pjese
ne ate lidhje
Psh nje lidhje ne mes te “works-on “
dhe “job” paraqet faktin se secili
“employee” punon se paku ne nje “job”
ne cilendo “branch”
Nese aty merren me shume se nje
lidhje ateherë kemi dy menyra te
percaktimit te kuptimit ne mes tyre.
nbraha-bazat e te dhenave 65
Lidhmeria ne nje relacion
ternare(vazh)
Psh nje relacion ternare R ne mes te entiteteve
lidhese A, B dhe C me lidhje ne B dhe C mund
te kuptohet si
1.secili entitet ne kete rast A eshte i
percaktuare ne menyre te vetme me entitet B
dhe C ose
2.secilit qift te entiteteve nga (A, B) i
pergjigjet nje i vetem C dhe secilit qift nga (A,
C) nje i vetem B
Secila alternative eshte marre ne menyra te
ndryshme
Per kete arsye ne largojme nje ose me shume
lidhje ne relacionet ternare (n-are) gjate
realizimit te lidhjes .
nbraha-bazat e te dhenave 66
Paraqitja binare e lidhjeve qe
nuk jane binare
Ato relacione qe nuk jane binare eshte mire
me i paraqite ne trajte binare
Psh nje lidhje familjare ne mes te prinderve
dhe femijes paraqet nje lidhje ternare ,si
relacion ternare me mire eshte me e paraqite
me dy relacione binare permes femijes dhe
nenes si dhe permes te babait dhe femijes.
Duke mare dy relacione binare ne lidhje lejohen
informata te pjesshme ne ate lidhje (psh vetem baba
dihet )
Mirepo ka disa relacione te cilat per nga natyra e
tyre jane jo binare
Psh “works-on”
nbraha-bazat e te dhenave 67
Paraqitja binare e lidhjeve qe
nuk jane binare
Ne pergjithesi secili relacion jo binare mund te
shprehet permes atyre binare duke krijuare nje
entitet artificial.Kjo behet keshtu
Zevendesohet R ne mes te entiteteve A, B dhe C me
nje entitet E, ateher merren keto lidhje te reja:
1. RA, per E dhe A 2.RB, per E dhe B
3. RC, per E dhe C
Duhet krijuar edhe disa atribute lidhese ne E
Se pari duhet te shtohen ter atributet e R ne E
Per cdo relacion lidhje (ai , bi , ci) ne R, krijohet
1.Nje entitet i ri ei ne bashkesine e entiteteve E
nbraha-bazat e te dhenave 69
Paraqitja binare e lidhjeve
qe nuk jane binare
nbraha-bazat e te dhenave 70
Modelet relacionale(3)
Struktura e nje baze relacionale
Algjebra relacionale
Domeni i njehsimeve Relacionale
Veprimet e zgjeruara me Algebra-
relacionale
Modifikimi i bazes
Shikimet (Views)
nbraha-bazat e te dhenave 71
Shembulli i nje
relacioni,tabela “account”
nbraha-bazat e te dhenave 72
Struktura baze
Per bashkesite e dhena D1, D2, …. Dn nje
relacion r eshte nenbashkesi e
D1 x D2 x … x Dn
d.m.th relacioni i gjatesise n eshte nje qift i
renditur (a1, a2, …, an) ku secila ai Di
Psh :nese customer-name = {Jones, Smith, Curry,
Lindsay}
customer-street = {Main, North, Park}
customer-city = {Harrison, Rye, Pittsfield}
ateher r = { (Jones, Main, Harrison),
(Smith, North, Rye),
(Curry, North, Rye),
(Lindsay, Park, Pittsfield)}
eshte relacion i gjatesise 3 me atributet
customer-name x customer-street x customer-
city
nbraha-bazat e te dhenave 73
Tipet e atributeve
Secili atribute eshte i emeruare
Bashkesia e vlerave te lejuara te atributit
paraqet domenine e atributit
Vlerat e atributeve kerkohet te jene atomike,
kjo do te thote te pandashme
Psh atribute me shume vlera nuk jane atomike
Psh vlerat e atributeve te kompozuara nuk jane
atomike
Ndersa vlera zerro eshte pjese e secilit
domene
Vlera zerro sjell komplikime ne definimin e
shume operatoreve
ne vijim do te injorojme vlerat zerro dhe do ti
shohim me vone .
nbraha-bazat e te dhenave 74
Skema Relacionale
nbraha-bazat e te dhenave 75
Shembull i nje relacioni
Vlerat e nje relacioni jane te
specifikuara permes te tabelave
Ku nje element (t) nga r eshte nje
cifte i paraqitu me nje
rresht(record) ne kuader te tabeles
atributet
(ne kolona)
customer-name
customer-street
customer-city
customer
nbraha-bazat e te dhenave 76
Relacionet jane jo te renditura
renditja e cifteve ne kuader te nje tabele eshte e
parendesishme dhe per kete mund te jene ne nje
renditje te cfardoshme
psh relacioni ne account i paraqitur ne cifte te
cfardoshme
nbraha-bazat e te dhenave 77
Baza e te dhenave
Bdh perbehet prej disa relacioneve
Informatat per nje fabrike ndahen ne pjese ne
disa relacione ku secili nga ta paraqet nje
informate
Psh : account :paraqet informata ne lidhje me
llogarite ne ate firme
depositor : paraqet te dhenat ne
lidhje me depozituesit
customer : paraqet informatat ne
lidhje me klientet
Paraqitja e te dhenave ne nje relacion si ne
bank(account-number, balance, customer-
name, ..)
rezulton ne
Perseritjen e te dhenave (psh dy kliente me nje
llogari)
Paraqitja e vlerave zerro (psh paraqet klientin qe
nuk ka llogari)
nbraha-bazat e te dhenave 78
Pershtatja e bdh
nbraha-bazat e te dhenave 79
Relacioni “customer”
nbraha-bazat e te dhenave 80
Relacioni “depositor”
nbraha-bazat e te dhenave 81
E-R Diagrami per nje banke
nbraha-bazat e te dhenave 82
Skema e Diagramit per banke
nbraha-bazat e te dhenave 83
Gjuha e pyetsoreve (Query
Languages)
Kjo eshte gjuha me te cilen ipen dhe
merren te dhenat nga bdh.
Kategorite e gjuheve
procedurale
Dhe jo-procedurale
Gjuhet e pastra (“Pure” languages):
Algjebra relacionale
Njehsimet me ciftet relacionale
Domeni i njehsimeve relacionale
nbraha-bazat e te dhenave 84
Algjebra Relacionale
Eshte gjuhe procedurale
Keto jane operacionet themelore
Select
project
union
set difference
Cartesian product
rename
Veqori e ketyre operacioneve eshte se
marrin si te dhena hyrese disa relacione
dhe japim vetem nje relacion ne dalje si
rezultate.
nbraha-bazat e te dhenave 85
Shembull i operacionit Select
• Relacioni r A B C D
1 7
5 7
12 3
23 10
1 7
23 10
nbraha-bazat e te dhenave 86
Shembull i operacionit
Select(vazh.)
A=B ^ D > 5 (r) me ane te relacionit te
mesiperm eshte mundesue te behet
zgjedhja e te dhenave nga relacioni r
me kushte qe ato te dhena te
plotesojne keto kushte:
• 1.qe A te jete sikurse B
• 2.dhe qe ne ate relacion r kushti D te
jete me i madhe se sa numri 5 dhe
sic u pa me larte nje gje te tille e
plotesojne rreshti i pare dhe i fundit
ne relacionin r.
nbraha-bazat e te dhenave 87
Operacioni “Select”
Shenimi : p(r) do te thote :
p paraqet predikatin zgjedhes ne ate relacion
Definohet si me poshte :
p(r) = {t | t r dhe p(t)}
ku p eshte nje formule me kushtet e
zgjedhjes qe permbane ne vete shprehjet e
lidhura me relacionet : (dhe (and)), (ose
(or)), (mohimin (not))
secili nga termet eshte njeri nga :
<attribute> dicka <attribute> ose <constant>
ku dicka paraqet : =, , >, . <.
Shembull i operacionit “select” eshte ky :
branch-name=“Perryridge”(account)
nbraha-bazat e te dhenave 88
Operacioni “select”
Ne shembullin e fundit
mundesohet shikimi i te dhenave
te llogarive(account) nga filialla
me emer (branch) “Perryridge”
nbraha-bazat e te dhenave 89
Operacioni “Project”
A B C
Relacioni r :
10 1
20 1
30 1
40 2
A,C (r)
A C A C
1 1
1 = 1
1 2
2
nbraha-bazat e te dhenave 90
Operacioni “Project”
shenim:
me relacioni A1, A2, …, Ak (r)
ku A1, A2 jane emrat e atributeve jane marre
atributet e cekura ne relacionin r .
Veprimi qe kryhet eshte ky merren k kolona
te cekura duke i perjashtuare te tjerat
Vlerat e njejta (te shumfishta ) ne kuader te
rreshtave gjithashtu perjashtohen
Psh per te eliminuare emrin e filialles ( branch-
name) nga llogaria (account) marrim si me
poshte
account-number, balance (account)
nbraha-bazat e te dhenave 91
Operacioni “Union”
A B A B
Relacionetr, s:
1 2
2 3
1
s
r
r s: A B
1
2
1
3
nbraha-bazat e te dhenave 92
Operacioni “Union”
Shenimi : r s
Definohet sikurse :
r s = {t | t r ose t s}
r s eshte i vertete (i realizueshem) kur
1. r, s kane numer te njejte te atributeve
2. Domenet e atributeve duhet te jene
kompatibile ne mes veti (psh , kolona e 2-te
nga relacioni ka tipe te njejte te vlerave me
kolonen 2 nga s)
Psh . Gjeni te gjithe “customers” me llogari
(account) ose hua (loan)
customer-name (depositor) customer-name
(borrower)
nbraha-bazat e te dhenave 93
Ndryshimi ne mes te
bashkesive
A B A B
Relacionet r, s:
1 2
2 3
1
s
r
r – s: A B
1
1
nbraha-bazat e te dhenave 94
Ndryshimi ne mes te
bashkesive
Shenimi r – s
Definohet si :
r – s = {t | t r dhe t s}
Ndryshimi ne mes te bashkesive duhet te
merret ne mes te relacioneve kompatibile
dhe pershkrimi i shembullit larte eshte
ky:jane marre ato cifte te relacionit r dhe
jane larguare nga r ato qe jane edhe ne s.
r dhe s duhet te kene te njejten gjatesi
Domenet e atributeve duhet te jene
kompatibile
nbraha-bazat e te dhenave 95
Produlti kartezian
Relacionet r, s: A B C D E
1 10 a
10 a
2
20 b
r 10 b
s
r x s:
A B C D E
1 10 a
1 10 a
1 20 b
1 10 b
2 10 a
2 10 a
2 20 b
2 10 b
nbraha-bazat e te dhenave 96
Produkti kartezian
Shenimi r x s
Definimi eshte :
r x s = {t q | t r dhe q s}
Supozohte se atributet nga r(R) dhe
s(S) jane disjunkte. (d.m.th
R S = ).
Nese atributet e r(R) dhe s(S) nuk jane
disjunkte ,ateher ato qe mbesin duhet te
merren.Pershkrimi i shmbullit te
mesiperm eshte ky:secili cifte i anes se
majte ne relacioni r eshte marre me
secilin cifte te anes se djathte nga
relacioni s nbraha-bazat e te dhenave 97
Kompozimi i operacioneve
Me kombinimin e operacioneve te mesiperme mund
te behet krijimi i shprehjeve operacionale,psh :
A=C(r x s)
rxs
A B C D E
1 10 a
1 10 a
1 20 b
1 10 b
2 10 a
2 10 a
2 20 b
2 10 b
A=C(r x s)
A B C D E
1 1 a
2 0 a
2 2 b
0
nbraha-bazat e te dhenave 98
2
Kompozimi i relacioneve
Me shembullin e mesiperm shihet
se eshte marre fillimisht produkti
kartezian i bashkesive dhe ne
kuader te tije kushti qe
bashkesite A dhe C me qene te
barabarta.
nbraha-bazat e te dhenave 99
Riemrimi i Operacioneve
Lejon emerim dhe me kete mund ti
qasemi nje rezultati te shprehjes
relacionale algjebrike.
Lejon referim te nje relacioni me me
shume se nje emer.psh : x (E)
Kjo na mundeson shikim e te dhenes nga
shprehja E me emrin X.
Nese shprehja algjebrike E ka nje gjatesi
n,atehere x (A1, A2, …, An) (E)
Na jepe rezultatin e shprehjes E me emer
X dhe me atribute e riemruara A1, A2,
…., An.
nbraha-bazat e te dhenave 100
Shembuj te relacioneve
branch (branch-name, branch-city, assets)
(borrower.loan-number = loan.loan-number(borrower x
loan))) –
customer-name(depositor)
nbraha-bazat e te dhenave 104
Shembuj pyetsoresh (vazh)
Gjeni emrat e te gjithe klienteve te cilet kane hua
ne filiallen “Perryridge”.
Pyetsori 1
customer-name(branch-name = “Perryridge” (
borrower.loan-number = loan.loan-number(borrower
x loan)))
pyetsori 2
customer-name(loan.loan-number = borrower.loan-number(
Zgjidhja :
balance(account) - account.balance
r s
A B C D B D E
1 a 1 a
2 a 3 a
4 b 1 a
1 a 2 b
2 b 3 b
r s
r s
A B C D E
1 a
1 a
1 a
1 a
2 b
r s = { t | t R-S(r) u s ( tu
r)}
nbraha-bazat e te dhenave 114
Shembull i operacionit te
pjestimit
A B
B
Relacionet r, s:
1 1
2 2
3
1 s
1
1
3
4
6
1
2
r s: A r
r s: A B C
a
a
To see why
R-S,S(r) simply reorders attributes of r
Query 1
Find all customers who have an account from at
leastthe
CN(“Downtown” and the Uptown”
BN=“Downtown”(depositor branches.
account ))
CN(BN=“Uptown”(depositor
account
where ))
CN denotes customer-name and BN
denotes
branch-name.
Query 2
Generalized Projection
Outer Join
Aggregate Functions
Relation r:
7
7
3
10
sum-C
g sum(c) (r)
27
branch-name
account-number balance
Relation account grouped by branch-name:
Perryridge A-102 400
Perryridge A-201 900
Brighton A-217 750
Brighton A-215 750
Redwood A-222 700
branch-name balance
Perryridge 1300
Brighton 1500
Redwood 700
branch-nameamount
loan-number
L-170 loan
Relation Downtown 3000
L-230 Redwood 4000
L-260 Perryridge 1700
Relation borrower
customer-name
loan-number
Jones L-170
Smith L-230
Hayes L-155
loan-numberbranch-nameamount
customer-name
L-170 Downtown 3000 Jones
L-230 Redwood 4000 Smith
L-260 Perryridge 1700 null
Right Outer
loan-number Join
branch-nameamount
customer-name
L-170
loan borrower
Downtown 3000 Jones
L-230 Redwood 4000 Smith
L-155 null null Hayes
loan-numberbranch-nameamount
customer-name
account account
Insert {(“Perryridge”,
in
information A-973, 1200)}
the database specifying that Smith
has
depositor $1200 in accountA-973
depositor at the A-973)}
{(“Smith”, Perryridge branch.
create
Considerview all-customer
the view as
(named all-customer ) consisting of
branches and their customers.
branch-name, customer-name (depositor
account)
branch-name, customer-name (borrower
loan)
e can find all customers of the Perryridge branch by writing:
branch-name
{t | s Find
borrower( t[customer-name
the names of all customers s[customer-name
] =having a loan, an ])
u account, or both
depositor at the bank
( t[customer-name ] = u[customer-name
Find
| s loan(s the names of] all
[branch-name customers having a loan from
= “Perryridge”
the Perryridge
u borrower branch, and] the
(u[loan-number = s[cities they live] in
loan-number
t [customer-name] = u[customer-name])
v customer (u[customer-name] = v[customer-nam
t[customer-city] = v[customer-cit
Find the(tnames
t | c customer of all customers
[customer.name] who have an
= c[customer-name])
account at all[branches
s branch(s located
branch-city in Brooklyn:
] = “Brooklyn”
u account ( s[branch-name] = u[branch-name]
s depositor ( t[customer-name] = s[customer-nam
s[account-number] = u[account-number]
ind the names of all customers who have a loan of over $120
{ c | Find
l ({the
c, lnames
borrower
of all customers having a loan, an account,
or
both at (
b,a thel,Perryridge branch:
b, a loan b = “Perryridge”))
a( c, a depositor
b,n( a, b, n account b = “Perryridge”))}
Basic Structure
Set Operations
Aggregate Functions
Null Values
Nested Subqueries
Derived Relations
Views
Modification of the Database
Joined Relations
Data Definition Language
Embedded SQL, ODBC and JDBC
0
(5< 5 )=
some false
0
(5 = some5 ) = true
0
(5 ) = true (since 0
5
some 5)
(= some) in
However, ( some) not in
nbraha-bazat e te dhenave 221
Definition of all Clause
0
F <comp> all5 r
(5< all ) = t r (F <comp> t)
false
6
6
(5< all10 ) = true
4
(5 = all 5 )=
false
4
(5 all 6 ) = true (since 5 4 and 5 6)
( all) not in
However, (= all) in
nbraha-bazat e te dhenave 222
Example Query
Find branch-name
select the names of all branches that have greater
from
assets branch
than all branches located in Brooklyn.
where assets > all
(select assets
from branch
where branch-city = ‘Brooklyn’)
Find all
select distinct T.customer-name
customers who have at least two
from depositor T
accounts at the
where not unique (
Perryridge branch.
select R.customer-name
from account, depositor as R
where T.customer-name = R.customer-
name
and
R.account-number = account.account-
number
and
account.branch-name = ‘Perryridge’)
(Schema used in this example)
with max-balance(value) as
select max (balance)
from account
select account-number
from account, max-balance
where account.balance = max-
balance.value
Deletefrom
delete theaccount
record of all accounts with
balances below the
where balance average
< (select at the bank.
avg (balance)
from account)
update account
set balance = balance 1.05
where balance 10000
The order is important
Can be done better using the case statement (next
slide)
update account
set balance = case
when balance <=
10000 then balance *1.05
else balance *
1.06
end
Relation borrower
customer-name
loan-number
Jones L-170
Smith L-230
Hayes L-155
Note: borrower information missing for
L-260 and loan information missing for
L-155
select customer-name
from (depositor natural full outer join borrower)
where account-number is null or loan-number is nu
SQLDisconnect(conn);
SQLFreeConnect(conn);
SQLFreeEnv(env);
}
pStmt.setString(1, "A-9733");
pStmt.executeUpdate();
Beware: If value to be stored in database contains
a single quote or other special character, prepared
statements work fine, but creating a query string
and executing it directly would result in a syntax
error!
rs.getString(“TYPE_NAME”);
}
There are also functions for getting information such as
Foreign key references in the schema
Database limits like maximum row size, maximum no. of connections, etc
Network
192-83-7465 Johnson
Alma Palo Alto A-101
019-28-3746 Smith
North Rye A-215
192-83-7465 Johnson
Alma Palo Alto A-201
321-12-3123 Jones
Main Harrison A-217
019-28-3746 Smith
North Rye A-201
Jonhson
Smith
Hayes
A-101 A-201
T T T
T T
T T
select loan-number
from loan
where amount between 90000 and
100000
shenim:
Attributet ne urdherin select jashte
funksioneve agregate
duhet te hyne ne urdherin group by
select branch-name
from branch
where assets > some
(select assets
from branch
where branch-city = ‘Brooklyn’)
(5< 0
) =vertete (5< per 0 )=e
er 5
ndonje 5
pavertete
6
donje
0
(5 =per ) =e (5 per 0
) =e vertete (pasi
5
ndonje vertete ndonje 5 0 5)
(= per ndonje ) ne
Dhe , ( per ndonje ) nuk eshte ne te
(5 = per te 5 ) =e pavertete
gjitha
(5 per te
4
) = e vertete (pa rastet 5 4 dh
gjitja 6 e 5 6)
select branch-name
from branch
where assets > all
(select assets
from branch
where branch-city = ‘Brooklyn’)
shenojme se X – Y = Ø X Y
Veqori themelore e tyre eshte se behet ruajtja e pyetsoreve te caktuare ne kuader te asaj baze te te dhenave
Kushtet e lidhjes
Tipet e lidhjes
Relacioni borrower
customer-name loan-number
Jones L-170
Smith L-230
Hayes L-155
L-170 3000
L-230 4000
JonesL-170 3000
Smith L-230 4000
JonesL-170 3000
Smith L-230 4000
HayesL-155 null
JonesL-170 3000
Smith L-230 4000
null L-260 1700
HayesL-155 null
Gjeni te gjithe klientet kane nje llogari apo hua (por jo qe te dyja )
ne banke.
select customer-name
from (depositor natural full outer join borrower)
where account-number is null or loan-number is null
Modifikimi i te dhenave ne
pyetsore mund te behet per te
gjithe te dhenat e fushave te
shqyrtuara apo edhe te vetem
nje fushe ,ndryshimi i te dhenave
te te gjitha fushave ne pyetsore
behet me zgjedhje te opcionit
“properties” nga ana e djathte e
miut e shtypur kudo ne nje
hapesire te zbrazet te pyetsorit
Append query
Update query
Make table query
Delete query