Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 129

Shkolla mesme profesionale

"Feriz Guri dhe Vëllezërit Çaka"


Kaçanik-Ismail Dashi

Bazat e të dhënave
Gjysmëvjetori II
Kl XII2, 2020_21
Historiku
Bazazt nga Edgar Frank Codd 70 të shekullit
të kaluar
mbështetet në teorinë matematikore të
algjebrës rekacionale dhe llogaritjeve
Implementimet fillestare ishin të ngadalta,
por me rritjen e fuqisë së komjuterëve modeli
mbizotërues
Në modelin relacional, shpejtësia
sakrifikohet për shkak të fleksibilitetit
Historiku
Rregullat e Codd-it
Rregulli Zero
 Një DBMS që konsiderohet relacionale duhet të
menaxhojë bazën e të dhënave ekskluzivisht në një mënyrë
relacionale
Rregulla 1 - Prezantimi i informacionit(The information rule)
 Të gjitha informatat përfaqësohen ekskluzivisht nga vlerat
në tabela d.m.th relacionet
 Rregulla 2 - Rregulli i qasjes (Guaranteed access rule)
Çdo vlerë e atributit e regjistruar mund të qaset
logjikisht përmes emrit ose kombinimeve të emrave
tabelave, celsit primar dhe atributeve
Rregulla 3 - Trajtimi i vlerave NULL(Systematictreatment of null values)
 Vlera NULL mund të zëvendësojë çdo lloj vlere dhe
paraqet informacionin inekzistent(I panjohur)
Rregullat e Codd-it
 Rregulla 4 - Qasja relacionale online në katalogun e bazave
të të dhënave (Dynamic online catalog basedon the relational
model)
 Në nivelin lokal, baza e të dhënave përshkruhet në të
njëjtën mënyrë si të dhëna në mënyrë që e njëjta gjuhë
relacionale të mund të përdoret për qasje katalogët bazës
 Rregulli 5 - Rregulli i gjuhës gjithëpërfshirëse (Comprehensive
data sublanguage rule)
 Duhet të ketë një gjuhë për të komunikuar me bazën e të
dhënave që mbështet definimin e të dhënave dhe pamjet,
manipulimin e të dhënave , administrim, menaxhim
transaksionesh ...
Rregulli 6 - Rregulli i pamjes(View updating rule)
 Të gjitha pamjet që, sipas teorisë relacionale, mund të
azhurnohen dhe implementohen në model
Rregullat e Codd-it
 Rregulla 7 - Niveli i lartë i futjes, azhurnimit dhe
fshirjes((Highlevel insert, update, and delete)
 Karakteristikat e manipulimit të të dhënave për rikthim
duhet të jenë gjithashtu e mundur kur futni, azhurnoni
dhe fshini të dhënat
Rregulla 8 - Pavarësia e të dhënave fizike(Physical data
independence)
 Të gjitha aktivitetet e ndërmarra nga përdoruesit dhe
aplikacionet sipas(kah) bazës së të dhënave të dhënat
nuk duhet të varen nga mënyra fizike e ruajtjes të dhëna
Rregulla 9 - Pavarësia e të dhënave logjike(Logical data independence)
 Lidhjet midis tabelave mund të ndryshojnë në mënyrë që
ato të mos preken te funksionet e aplikacionit që lidhen
me ato tabela
Rregullat e Codd-it
 Rregulla 10 - Pavarësia e Integritetit të të
dhënave(Integrity independence)
 vetë DBMS duhet të kujdeset për integritetin e të
dhënave, jo aplikacione të jashtme
Rregulla 11 - Pavarësia e Shpërndarë(Distribution independence)
 Aplikimi duhet të vazhdojë të funksionojë në mënyrë
operative kur prezantohet edhe kur jet versioni i DBMS
ditributiv ose kur versioni i shpërndarë centralizohet
Rregulla 12 - Rregulla mbi Mos-Shkeljen e
Integritetit( Nonsubversion rule)
 Integriteti i të dhënave nuk guxon të prishet në rrugë të
tjera në një bazë të dhënash që anashkalon rregullat
entegritetit dhe kufizimit
Modeli i të dhënave relacionale -
objektet
 Elementet e një grupi objektesh në një model të të
dhënave relacionale janë relacionet (ose tabelat)
Secili relacion përmban një listë të atributeve (ose
kolonave)
 Secili atribut ka domen-in (ose tip-in) e vet
 përcakton se cili lloj i të dhënave është vlera e atributit
 Çfarë diapazoni vlerash mund të marrë
 Çdo relacion përbëhet nga një grup n-ëshe n-tuples (ose
rreshta)
 Çdo grup n-ëshe ka vlerat e të gjitha atributeve të
relacionit
 n-ëshe me të njëjtat vlera gjithashtu nuk lejohen
Shembull i një relacioni

Emri i relacionit
Atributet
Student
StudentID Emri Mbiemri Datëlindja
0135187314 Martin Martini 27.11.1990
0135188315 Jetmir Jetmiri 17.10.1991
013588317 Arian Ariani 11.03.1990 n-ëshet
0135188315 Petrit Petriti 12.05.1991

Edhëna
elementare
Çelesi primar
Çelës primar është një atribut ose bashkësi atributesh që
në mënyrë unike identifikon secilën n-ëshe në relacionin
(rreshti në tabelë). Nëse më shumë atribute formojn çelësin
primar thuhet se ai është kompleks
 Me ndihmën e operacioni relacional natyror të
seleksionit , është e mundur rimarr secilin n-ëshe
individual sipas atributit StudentID
Student
StudentID Emri Mbiemri Datëlindja
0135187314 Martin Martini 27.11.1990
0135188315 Jetmir Jetmir i 17.10.1991
013588317 Arian Ariani 11.03.19910
0135188315 petrit petriti 12.05 g.1991
Çelësi i huaj
Çelësi huaj paraqet çelësi primar të një tabele, e cila si
lidhja me tabelën e saj origjinale shfaqet në një tabelë tjetër
Qytet
ID Emri
1 Kacanik
2 Shkup
Çelesi primar 3 Prishtinë
Student
StudentID Emri Mbiemri Datëlindja QytIetD
0135187314 Martin Martini 27.11.1990 1

0135188315 Jetmir Jetmir i 17.10.1991 3

013588317 Arian Ariani 11.03.19910 1


0135188315 Petrit Petriti 12.05 g.1991 1
Çelësi i huaj
Emrat - Formal dhe joformalë
Emri formal Emri jo formal
Tabel Relacion
Kolona Atribut
Të gjitha vlerat e mundshme të
Domen
kolonës
rresht n-ëshe
Definimi I tabelës Skem relacionale
Zënia e tabelës Statusi i relacionit
Rezultati i pyetësit Llogaria e rejardhur

Sasia e n-ëshave në një relacion quhet kordinalitet. Bashkesia e disa


vetive te mundeshme te nje entiteti quhet domen (angl. Domain) ose
Skema relacionale
R (a1; a2; …an ) është skemë relacionale e relacionit
(tabela)
 R paraqet emrin e relacionit
 a1; a2; …an paraqesin atributet e relacionit
 Skema relacionale - specifikon se si do të strukturohen
të dhënat logjikisht (definimi i tabelës)
 Rrallë ndryshon
 Instanca i skemës (të dhëna) - paraqet gjendjen e
relacionit (mbushja e tablës)
 shpesh ndryshon Gjendja e relacionit
Shembull:Skema relacionale
Student
StudentID Emri Mbiemri Datëlindja
0135187314 Martin Martini 27.11.1990

0135188315 Jetmir Jetmir i 17.10.1991

013588317 Arian Ariani 11.03.19910

0135188315 Petrit Petriti 12.05 g.1991

Cfar është nga fig e më sipërme skemë relacionale e cka


është instanca e skemës?
Shembull:Skema relacionale
Student
StudentID Emri Mbiemri Datëlindja
0135187314 Martin Martini 27.11.1990

0135188315 Jetmir Jetmiri 17.10.1991

013588317 Arian Ariani 11.03.19910

0135188315 Petrit Petriti 12.05 g.1991

Cfar është nga fig e më sipërme skemë relacionale e cka është


instanca e skemës?
Skema relacionale përfshin emrin e relacionit (Student) dhe
bashkësin eatributeve (StudentID, Emri, Mbiemri, DatëLindja)
Instanca e skemës është {<0135187314, Martin,
Martin, 27.11.1990>, <0135188315, Jetmir, Jetmiri, 17.10.1991>, ... }
Skema relacionale
Ekzistojnë katër veti themelore të një skeme relacionale
Tabela nuk përmban dy atribute të barabarta(emra)
Renditja e kolonave në tabelë nuk është e rëndësishme
Tabela nuk përmban dy rreshta plotësisht identikë
Renditja e rreshtave në tabelë nuk është e rëndësishme
Student Student
tudentID Emri Mbiemr Datëlindja StudentID Emri Mbiemr Datëlindja
135187314 Martin Martini 27.11.1990 0135187314 Martin Martini 27.11.1990

135188315 Jetmir Jetmir i 17.10.1991 0135188315 Jetmir Jetmir i 17.10.1991

13588317 Arian Ariani 11.03.19910 013588317 Arian Ariani 11.03.19910


135188315 Petrit Petriti 12.05 g.1990 0135188315 Petrit Petriti 12.05 .1990

Relacione të barabarta
Edhëna elementare
 Edhënave elementare (atomic data value)
është elementi më i vogël modeli relacional
Në tabelë përfaqësohet nga një qelizë e vetme
Nuk mund të zbërthehet pa humbje të vetitë
semantike
 Shembulli i emrit të markës së makinës MERCEDES ka
kuptim
 Elementet e emrave të makinave M, E, R, C, E, D, E, S-
humbasin kuptimin
Të dhënat elementare quhen gjithashtu edhe vlerat e
atributeve
Domen
 Domen është një bashkësi e të gjitha vlerave që mund
të marrë një atribut
Secili atribut ka vetëm një domen (fushë)
 Shumë atributete në të njëjtën tabelë mund të kenë
të njëjtën domen
 Shembuj atributet dhe domenit
 Për atributin VendiMbajtesLigjirate domen është një
bashkësi i të gjitha sallave
 Për atributin NgjyraAutomobilit, një domen është
bashkësia e të gjitha ngjyrave
 Për atributin e Nota domen janë numrat e plotë nga 1
në 5
Domen
Karakteristikat e domenit
 mund të ketë shumë atribute me të njëjtin domen në të
njëjtën tabelë
• Vendi Lindja dhe VendBanimi
• Ngjyra Fokëve, Ngjyra Makinës dhe Ngjyra Shtëpisë
 përmbajtja e domenit nuk ndryshon me kalimin e kohës
Domeni aktiv është nënbashkësi e domenit dhe përbëhet
nga të gjithë vlerat e atributeve të shkruara aktualisht në
tabelë
 Përmbajtja e domenit aktiv ndryshon me kalimin e kohës
• Nëse kemi makina me ngjyra të zeza, blu dhe të verdhë
këto tri ngjyra janë domain aktualisht aktiv
• Nëse marrim një makinë tjetër që është e gjelbër,
ndryshon domeni aktive d.m.th jeshile bëhet pjesë e saj
Vlera NULL
Informacioni që mungon në një relacion për ndonjë arsye
paraqitet si formë e veçantë e të dhënave vlera NULL
Rregulli 3. i Codd - trajtimi i vlerave NULL
 Vlera NULL mund të zëvendësojë çdo lloj vlere dhe
paraqet informacionin joekzistues
 ju lejon të trajtoni vlerat që nuk ekzistojnë me
përdorimin e algjebrës relacionale
 është i pavarur nga lloji i të dhënave dhe është e
ndryshëme nga të gjithë të tjerët vlerat
Shembull: Vlera NULL
Të dhënat që mungojnë shfaqen me vlera NULL, d.m.th.
nuk dihen në atë kohë
 vlera NULL është e ndryshme nga, për shembull
• 0 - në llojet e të dhënave numerike
• D "" – zbrazëtira në llojet e karakterit
Datëlindja
Arësyer për futjen e vlerë
StudentID Emri Mbiemri
0135187314 Martin Martini 27.11.1990 NULL
0135188315 Jetmir Jetmir i NULL -Nuk aplikohet
013588317 Arian Ariani 11.03.19910 -e padisponuesheme
0135188315 Petrit Petriti NULL -- aktualisht i panjohur
Çelesi primar
Çelës primar është një atribut ose bashkësi atributesh që
në mënyrë unike identifikon secilën n-ëshe në relacionin
(rreshti në tabelë)
 Rregulli 2. i Codd -it - rregulli i qasjes
• Çdo vlerë të regjistruar mund ti qasemi logjikisht
përmes emrit ose kombinimet e emrave të relacionit,
çelësit primar dhe atributit
Çelesi primar-kushtet
themelore
Çelësi primar duhet të plotësojë tre kushte themelore
1. Unike - në një tabelë nuk mund të ketë dy rreshta me vlera
të njëjta të çelësit primar
2. Minimaliteti - nëse çelësi primar është kompleks, d.m.th. Ai
përbëhet nga disa atribute, atëherë asnjë nga komponentët e
tij nuk mund hiqet pa shkelur rregullin e unitetit
3.
Çelesi primar-kushtet
themelore
3. Rregulli integritetit të çelësit primar
 Asnjë komponent çelësit primar nuk duhet të ketë vlera
NULL (kardinaliteti (1.1))
 Rregulli i Integritetit është pasojë e rregullit të minimalizmit
- nëse ndonjë atribute që mund të marrë pjesa e çelësit
kryesor merr vlerë NULL do të thotë që n-ëshe(n-tuple) e
relacinit mund të identifikohen pa të
 Rrjedh që një atribut i tillë nuk duhet të jetë pjesë çelësit
primar, d.m.th. rregulli i minimalitetit do të shkelej
Shembull: Çelesi primar
Me ndihmën e operacioni relacional natyror të seleksionit,
është e mundur rimarr secilin n-ëshe individual sipas
atributit StudentID që është çelësi primar i relacionit
Student
Një çelës Primar mund të përbëhet nga disa atribute
Student
StudentID Emri Mbiemri Datëlindja
0135187314 Martin Martini 27.11.1990
0135188315 Jetmir Jetmir i 17.10.1991
013588317 Arian Ariani 11.03.19910
0135188315 petrit petriti 12.05 .1991
Çelësi i huaj
 Çelësi huaj paraqet çelës primar të një tabele, e cila si
lidhja me tabelën e saj origjinale shfaqet në një tabelë tjetër
Lidhja ndërmjet tabelave në modelin relacional Realizohen
me të
Lidhjet bëhen nga rekordi aktual dhe për to kujdeset vetë
përdoruesi
 Çelësi i Huaj gjithmonë i referohet një çelësi primar
Shembull: Çelësi i huaj
Qytet
ID Emri
1 kacanik
Çelesi primar 2 Shkup
3 Prishtinë

Student
StudentID Emri Mbiemri Datëlindja QytIetD
0135187314 Martin Martini 27.11.1990 1

0135188315 Jetmir Jetmir i NULL 3

013588317 Arian Ariani 11.03.19910 1


0135188315 Petrit Petriti NULL 1 Çelësi i huaj
Rregullat e transformimit
Shndërrimi i diagrameve të entiteteve në një model
relacional
Anëtarësimi në lidhjet ndërmjet entiteteve
Konvertoni lidhjet binare
Konvertimi i një atributi me shumë vlera
Shndërroni marrëdhëniet komplekse
Rregullat e transformimit
 Hyrje
Rregullat e transformimit mundësojnë zhvillimin e një
modeli relacional bazuar në modelin ER
 Në fazë të krijimit të bazës së të dhënave kemi të bëjmë
me " dizajn logjikë "
 Bazuar në modelin konceptual (modeli ER) që krijojmë
tabelat reale në bazën e të dhënave (ne zgjedhim llojet e
të dhënave, çelësat primare dhe lidhjet midis tabelave)
Më vonë merremi me "model fizik" – përfaqësim relacioni
(tabela) me sistemin e file , zgjedhjen e strukturave e të
dhënave (indekset),….
Konvertimi i diagrameve të
entiteteve
1. Rregullat e transformimit
 Diagrami i entitetit në modelit ER pasqyrohet në
skemën relacionale në mënyrën si në vazhdim
 Secili entitet do të bëhet një tabelë - emri i tabelës
është i njëjtë emrin e entitetit
 Secili atribut do të bëhet një kolonë e tabelës
 PËR SECILËN TABELë ËSHTË ENEVOJSHME TË
ZGJIDHNI çelës primar dhe Kryesorja është t'i
kushtojmë vëmendje rregullave të veçantisë,
minimaliteti dhe integriteti
 Në këtë mënyrë, përcaktohet vetëm skema relacionale, jo
gjendja e relacioneve
Konvertimi i diagrameve të
entiteteve
Pjesëmarja në lidhje
Pjesëmarja tregon sa rreshta të entitetit të vecant marrin
pjesë në lidhjet midis entiteteve
Pjesëmarja quhet gjithashtu kardinaliteti i lidhjes
Ndahet në
 Pjesëmarja e Detyrueshëme(mandatory)- të paktën një
rresht duhet të marrë pjesë lidhjet midis entiteteve
 Pjesëmarja Opsionale - asnjë rresht nuk duhet të marrë
pjesë në lidhjet midis entiteteve
Pjesëmarja në marrëdhënie është gjithashtu i rëndësishëm
për shkak të transformimit të lidhjeve nga ER model në një
skemë relacionale
Shembull i provimit të
pjesëmarjes
Profesori është ushëheqës i katedrës(departamentit)
 A duhet që çdo mësues të jetë shefi i departamentit?
• JO pjesëmarja është opsionale !
 A duhet që secil katedër (departament të ketë një
përgjegjës?
• PO Pjesëmarja është i e detyrueshme !
 Personi posedon automobilë nga rent car-ë
• A duhet të huazohet çdo autmobil?
oJO Pjesëmarja është opsionale !
• A duhet që çdo person të ketë një automobilë të
huazuar?
• JO Pjesëmarja është opsionale !
Shndërrimi i lidhjeve binare
Hyrje
Konvertimi i lidhjeve është më kompleks sesa konvertimi i
vetë entiteteve në skema relacionale
 Konvertimi i lidhjeve varet nga dy gjëra
 Numri i entiteteve në lidhje (1: 1, 1: N, N: M)
 Pjesëmarja në lidhje
Para se të shndërroni një lidhje në një skemë relacionale
është e nevojshme të krijoni entitetet
 1. rregulli i transformimit
 Shënim
 entiteti i parë është lidhje E1
 entiteti dytë në është lidhje E2
Shndërrimi i lidhjeve binare 1:1
 2.Rregulli i transformimit – paraqitja e lidhjes 1: 1
realizohet në tre mënyra në varësi të pjesëmarjes në lidhje
Metoda 1 - nëse pjesëmarja në E1 dhe E2 është i
detyrueshëm
Metoda 2 - nëse anëtarësimi është i detyrueshëm për
vetëm njërën nga entitetet
Metoda 3 - nëse pjesëmarrja në E1 dhe E2 janë
opsionale(Jo i detyrueshëm )
Shndërrimi i lidhjeve binare 1:1
 Metoda 1 - nëse pjesëmarrja për E1 dhe E2 është e
detyrueshme
 Entitetet E1 dhe E2 bashkohen në një tabelë e cila do të
përmbajë atributet e tyre dhe do të kenë një çelës primar
të përbashkët
 SHEMBULLI I: Himni ipërket Shtetit
oSecili himn i përket një shteti ndërsa secili shtet ka një
himn => pjesëmarrja e detyrueshëme
Shndërrimi i lidhjeve binare 1:1
Shndërrimi i lidhjeve binare 1:1
 Metoda 2 - nëse pjesmarrja është i detyrueshëme për
vetëm njërën nga entitetet
Në entitetin me pjesmarrje të detyrueshëm, shtohet një
çelës i huaj I entitetit që nuk ka pjesmarrje të detyrueshëm
SHEMBULLI I:Profesor është shefi i Institutit
cdo profesor nuk ka pse të jetë shef i institutit =>
pjesmarrje opsionale
Instituti duhet të ketë një shef => pjesëmarrje të
detyrueshme
Shndërrimi i lidhjeve binare 1:1
Shndërrimi i lidhjeve binare 1:1
 Metoda 3 - nëse të dy pjesmarrjet për E1 dhe E2 janë
opsionale
 Kjo është një tabelë tjetër që përmban çelësat
primarë të të dy tabelave
 SHEMBULL: Mësuesi posedon LaptopZyrtar
o Secili mësues nuk ka nevojë të ketë një laptop =>
pjesmarrja opsional
oÇdo laptop nuk është e thanun të jetë i mësuesve
=> pjesmarrja opsional
Shndërrimi i lidhjeve binare 1:1
Shndërrimi i lidhjeve binare 1:N
3. rregulli i transformimit - shndërrimi i marrëdhënieve
binare 1: N
Nëse E1 dhe E2 janë në një lidhje 1: N => E1 nuk ndikon në
marrëdhënie ndërsa E2 zgjerohet me një atribut shtesë
(çelësi i huaj) I cili është çelësi primar në E1
 Nëse pjesmarrja E1 është opsional, çelësi i huaj në E2
vendoset që mund të bëhet tipNULL
 SHEMBULLI : kolegji(kursi) ipërket Katedrës
 Rasti A: Kursi duhet t'i përkasë një departamenti =>
pjesmarrja e detyrueshëm
 Rasti B: Lënda(kursi) nuk është e thanun ti përket ndonjë
katedre => pjesmarrja opsional
Shndërrimi i lidhjeve binare 1:N

m
Shndërrimi i lidhjeve binare M:N
I4. rregulli i transformimit - shndërrimi i lidhjeve binare M:
N
 për të transformuar lidhjen M: N gjithmonë futet Një
tabelë e re
 Përbëhem nga çelësat primarë të entiteve E1 dhe E2 që
së bashku përbëjnë çelësin primar kompleks i tabelës së
re
 Nëse lidhja ka disa atribute shtesë dhe ato përfshihen në
tabelë
 SHEMBULLI : student ndjek kurs
 Krijohet një tabelë e re e përbërë nga çelësa primarë të i
Entitetit Student dhe Kurs
 tabela e krijuar e re në këtë shembull do të përmbajë
atributin - Viti shkollor
Shndërrimi i lidhjeve binare M:N
Konvertimi i një atributi me
shumë vlera
 5. rregulli i transformimit
 Nëse entiteti E1 ka një atribut shumëvlerësh
o Transformimi bëhet në mënyrë të tillë që ky atribut të
paraqite në tabelë vecant
o Vëzhgohet funksionaliteti i marrëdhënies midis tabelës
së re dhe asaj të vjetër një model relacional - lidhja
mund të krijohet nga rregulla të njohura tashmë 1: 1, 1:
N, M: N
 SHEMBULL: person merret me Sporte
 Lidhja midis personit dhe tabelës së re Sport është M: N
Konvertimi i një atributi me
shumë vlera
Konvertimi i lidhjes të involvuar

 6. rregulli i transformimit
 Shndërrimi i një lidhjeje përfshirëse bëhet në një
mënyrë që të njihet lidhja (1: 1, 1: N dhe M: N) entiteti
me vetveten dhe më pas bëhet shndërrimi si me lidhje
të thjeshta
 Lidhja e Përfshirë është një lidhje e thjeshtë me
vetëveten
Konvertimi i lidhjes të involvuar-
shembull 1:1
 lidhja ËshtëMartuar midis dy
rreshtave të tabelës Person
lidhja është 1: 1 dhe të dy entitetet
janë opcionale
 ka nevojë për të bërë një tabel të re
Martesa e cila përbëhet nga
 Dy çelësa të huaj në tabelën Person
 këto dy çelësa së bashkupërbëjnë një
çelës primar të tabelës së re
Konvertimi i lidhjes të involvuar-
shembull 1:1
Konvertimi i lidhjes të involvuar-
shembull 1:N
 Lidhja ËshtëEpror midis dy rreshtave
tabela Punonjës
 lidhja është 1: N, E1 është opsionale, E2
është i detyrueshëm
 E1 është opsionale - jo çdo punonjës ai
duhet të jetë epror ndaj të tjerëve
punonjesit
 E2 është edetyrueshme- një punonjës
që është eprori duhet të ketë një grup
punonjësve ndaj të cilëve ai është epror
 Konvertimi bëhet tabelës Punonjësi i
shton një çelës të huaj Mbikëqyrësi
(eprori) që në të vërtetë është çelësi
kprimar i tabelës Punonjës
Konvertimi i lidhjes të involvuar-
shembull 1:N
Konvertimi i lidhjes të involvuar-
shembull M:N

 Lidhja ËshtëMik midis dy rreshtave të


tabelës Person
Lidhja është M: N, të dy entitetet janë
opcionale
Konvertimi bëhet duke bërë një tabelë
të re Shoku me të dy çelësa të huaj në
tabelën Person që përbën çelësin primar
në tabelaë të re
Konvertimi i lidhjes të involvuar-
shembull M:N
Shndërrimi një nënbashkësie të
një lidhjeje
7. rregulli i transformimit
Konvertimi i një nënbashkësie i të një lidhje bëhet në
mënyrë të tillë që të gjitha nënbashkësitë në lidhje
krijojnë l në tabela të veçanta dhe përmbajnë vetëm ato
atributet e specifike si dhe çelësi të huaj në tabelën
mbibashksi
SHEMBULL: Grupet e Student dhe Mësues janë nëngrupet
e një bashkësie Personi
 Person përmban çelësin primar dhe atributet e tij
 Studbent edhe Mësues përmbajnë një çelës të huaj në
tabelën e Person, a së bashku është gjithashtu i tij çelësi
primar dhe përmban atributet e tij specifik
Shembull:Shndërrimi një
nënbashkësie të një ll
Shndërrimi një nënbashkësie të
një lidhjeje-shembull
Shndërrimi
8. rregulli i transformimit lidhjejes ternare
 Lidhja ternare( treshe) shndërrohet në një model relacional
ashtu që
 Secila prej entiteteve paraqitet në një tabelë të veçantë
Për lidhje futet një tabelë e re që përmban çelësat primare
të tre entiteteve
 Çelësi primar i tabelës së re mund të jetë këto tre çelësa të
huaj ose mund të futet një çelësit primar gjenerik id i cili
bëhet më shpesh sidomos nëse ka atribute shtesë që
përshkruajnë lidhjen
SHEMBULLI I: Lidhjes Ternare Provim i midis entiteve
Student të ,Lënd dhe Mësues
 Do të krijohen tre tabela për secilën prej entiteteve
(Studenti, Lënda dhe Mësuesi) veç e veç
 krijohet një tabelë lidhëse e provimit që përmban çelësat
Shembull:Shndërrimi lidhjejes
ternare
Shembull:Shndërrimi lidhjejes
ternare
 Integriteti i të dhënave
Rregullat e integritetit të të dhënave
 Integriteti i referencilal
Integriteti i të dhënave
 Integriteti i të dhënave siguron koherencën e tyre dhe
qëndrueshmëria e përdorimit
Rregullat e Integritetit: Kufizimet në ndodhjen e vlerave të
atributeve dhe ndërlidhja e tyre
 Domen përcaktohet(definohet) për secilin atribut të
entitetit dhe përfaqëson një bashkësi të vlerave që një
atribut i veçantë mund të marrë
 Integriteti referencial siguron lidhjen logjike dhe rregullat
e marrëdhënies midis të dhënave në tabelat e lidhura
Integriteti referencilal
Integriteti referencial siguron lidhjen logjike dhe rregullat
e marrëdhënies midis të dhënave në tabelat e lidhura
 Në tabelë nuk mund të ketë një vlerë të celsit të huaj
për të cilën nuk ka vlerë të barabartë të çelësit primar në
tabelën bazë
Student
vendi
Student ID Emri Mbiemri Vend ID
0135187314 1 vendiID Emri
Martin Martini
1 kacanik
0135188315 Jetmir Jetmir i 3
2 Shkup
013588317 Arian Ariani 1 3 Prishtinë
0135188315 Petrit Petriti 4

Çelësi i huaj

Përpjekja e futjes së rreshtit I cili ka Vend ID=4 në tabelën puntorë nuk do të


pranohet asi në tabelën Vemdi nuk e përman këtë vlerë
Integriteti referencilal
 integriteti referencila është arrytur atëhere kur secila vlerë
e çelsit të jashtëm ekziston ndërmjet vlerave të celsit primar i
cili drejtohet tek nga një çelës i jashtëm ose është i barabartë
me zero (NULL)
Nga momenti ku kemi definu celsit primar dheçelsit të
jashtëm mbi bazën e të dhënave garantimi I integritetit të
dhënave dhe Integriteti referencilal është nën juridiksionin e
sistemin për menaxhimin e bazave relacine të të
dhënave(RDBMS)
Integriteti referencilal
 Integriteti referencilal përcakton rregullat
 futjes
 fshirjes
 Ndryshim (azhurnimet e të dhënave)
 Për të siguruar qëndrueshmërinë (konzistentencën ) e të
dhënave në bazës së të dhënave
 Projektuesi i bazës përcakton sjelljen e bazës
 Veprimi i kërkuar gjithashtu refuzohet dhe asnjë ngjarje
nuk ndodh kurfar ndryshimi në bazën e të dhënave
 Veprime Lejohen, por pasohen nga veprimet që duhet
vendosin konzistentencën e bazës së të dhënave
Integriteti referencilal
Integriteti referencial siguron lidhjen logjike dhe rregullat
e marrëdhënies midis të dhënave në tabelat e lidhura
 Në tabelë nuk mund të ketë një vlerë të celsit të huaj
për të cilën nuk ka vlerë të barabartë të çelësit primar në
Student
tabelën bazë
vendi

vendiID Emri
Student ID Emri Mbiemri Vend ID 1 kacanik
0135187314 Martin Martini 1
2 Shkup
0135188315 Jetmir Jetmir i 3
3 Prishtinë
013588317 Arian Ariani 1 Çelësi i huaj
Futja e të dhënave
Futja e të dhënave - ndalohet futja e të dhënave në tabelë, s
disa vlera kryesore të huaja, nëse jo në tabelën bazë ka të
njëjtën vlerë të çelësit primar (i kufizuar)
SHEMBULLI : Ju nuk mund të shtoni një rresht në tabelën
Student si vlera e atributit LocationId, i cili është gjithashtu një
çelës i huaj merr një vlerë që nuk është në tabelën
Vendndodhja
Student
Student ID Emri Mbiemri Vend ID vendi
0135187314 Martin Martini 1
vendiID Emri
0135188315 Jetmir Jetmir i 3
1 kacanik
013588317 Arian Ariani 1 2 Shkup
0135188315 Petrit Petriti 4 3 Prishtinë
Përpjekja e futjes së rreshtit I cili ka Vend ID=4 në tabelën puntorë nuk do të
pranohet asi në tabelën Vemdi nuk e përman këtë vlerë
Fshirja
Kufizimi (restricted)
e të dhënave
 Fshirja e rreshtit me një vlerë të caktuar të çelës primar
lejohet vetëm nëse ajo vlerë nuk shfaqet në një tjetër tabela
si çelës i huaj
 SHEMBULLI I: nuk mund të hiqet një rresht i vetëm nga një
tabelë Vendi, nëse në tabelën Student. ka referenca të tij
Student
Student ID Emri Mbiemri Vend ID vendi
0135187314 Martin Martini 1
vendiID Emri
0135188315 Jetmir Jetmir i 3
1 kacanik
013588317 Arian Ariani 1 2 Shkup
3 Prishtinë

Fshirja e rreshtit
Fshirja e të dhënave
Fshirja graduale ose kaskada (cascade)
Fshirja e rreshtit me një vlerë të caktuar të çelës primar
lejohet vetëm nëse ajo vlerë nuk shfaqet në një tjetër tabela si
çelës i huaj
 SHEMBULLI I: nuk mund të hiqet një rresht i vetëm nga
tabela Vendi, nëse në tabelën Student. ka referenca të tij

Student
Vendi
ID Emri Mbiemri Student ID Vend ID
vendiID Emri
1 Martin Martini 0135187314 3 1 kacanik
2 Jetmir Jetmir i 0135188315 3 2 Shkup
3 Arian Ariani 013588317 1 3 Prishtinë

Fshirja e rreshtit
Fshirja e të dhënave
Nullifikimi (nullifies)
Fshierja një vlerë specifike të çelësit primar, së pari, të gjitha
vlerat e njëjta të çelësit të huaj vendosen në vlera NULL, dhe
pastaj fshihet nga tabela bazë ajo vlerë çelësit primar
SHEMBULLI : Fshirja e një rreshti individual nga tabela e Vendi
së pari të gjitha vlerat çelësit të huaj që referojnë në ato rreshta
vendoset në NULL, dhe pastaj hiqen të dhënat e dëshiruara nga
tabela Vendi
Student
Vendi
ID Emri Mbiemri Student ID Vend ID
vendiID Emri
1 Martin Martini 0135187314 NULL 1 kacanik
2 Jetmir Jetmir i 0135188315 NULL 2 Shkup
3 Arian Ariani 013588317 1 3 Prishtinë

Fshirja e rreshtit
Azhurnimi i të dhënave
Azhurnimi ( Përditësimi )i të dhënave
Kufizimi(restricted) - azhurnimi i vlerës çelësi primarë
lejohet vetëm nëse kjo vlerë nuk shfaqet në një tabelë tjetër
si çelës i huaj
 Fshirja graduale ose kaskada (cascade)-azhurnimi i vleres
se çelësit primar shkakton azhurnimin e të gjitha të dhënave
në një tabelë tjetër ku shfaqet kjo vlerë çelësi primarë si një
çelës i huaj
Nullifikimi (nullifies) - azhurnimi një vlerë të caktuar çelësi
primar, së pari të gjitha vlerat e njëjta të çelësit të huaj
vendosim në vlerën NULL dhe më pas në tabelën bazë
ndryshon vlerën e çelësit primar
Gjuha e pyetsve SQL

Hyrje
Objektet SQL, emërtimi, fjalë të rezervuara, komente
Llojet e të dhënave
Fillimi SQL
SQL u krijua në 1974 në BM Research Laboratoryu
nën emrin SEQUEL (Structured English Query Language)
 SEQUEL më vonë u quajt SQL (Structured Query Language)
 arsyeja: një kompani ajrore në atë kohë kishte bred të mbrojtur
SEKUEL
Qëllimi i gjuhës ishte që të sjellë bazat e të dhënave relacionale më
afër përdoruesve, dhe koncepti i gjuhës intuitive
 SQL ishte gjithashtu superiore ndaj të gjitha gjuhëve të
mëparshme të punës me baza të dhënash, dhe për këtë arsye
është pranuar
SQL gjithashtu i përket gjuhëve jo procedurale të gjeneratës së 4-

 përshkruaan atë që duam të marrim si rezultat, jo si ta marrim
atë
 Në DBMS është I vensodur një optimizues të integruar të
pyetjeve që gjen mënyra më efikase për të ekzekutuar pyetje
Standardi SQL
SQL është gjuha standarde e bazave të të dhënave relacionale
(database language)
 Standardet ekzistuese janë
 1986 - SQL-86 ose SQL1 (versioni i parë i standardit - ANSI)
 1992 - SQL-92 ose SQL2
 Pyetjet dinamike përmirësuara, shtimi kursorët dhe raportet
gabimeve ...
 1999 - SQL: 1999
 u shtuan pyetje rekursive, trigerët, kontroll të rrjedhës dhe disa
tipare e objekt-orientuara
 2003 - SQL: 2003
 Shtohet mbështetja XML
 2006 - SQL: 2006
 2008 - SQL: 2008
 2011 - SQL: 2011
Qëllimi i standardizimit të SQL
Qëllimi i standardizimit
 Transportueshmëria e përkufizimeve të bazës së të dhënave
ndërmjet implentushmërive të ndryshme DBMS (MySQL, SQL
Server, Oracle ...)
 realiteti është se impementimet e tilla nuk janë kompatibile
plotësisht
 Problemi i kompatibilitetit
 kompani të ndryshme si Microsoft dhe Oracle po bëjnë varicione
ndryshimet e tyre SQL dhe I zgjerojnë më tej atë
 Oracle zgjeron - PL / SQL
 Microsoft zgjeron - Transact-SQL (T-SQL)
 Arsyet e Jo kompatibilitetit (papajtueshmërisë)
 Madhësia e standardit SQL (shpesh nuk zbatohet deri në fund)
 Standardi nuk specifikon disa fusha kryesore si p.sh.indeksimi
 Dhe në disa pjesë është e paqartë, nuk është precize kështu është
interpretohet ndryshe
Ndarja SQL
SQL është i ndarë në
 Gjuha për definimin e strukturës - DDL (Data Definition
Language)
 definion strukturën e objekteve në bazën e të dhënave
 Shembuj të komandave DDL janë
 CREATE
 ALTER
 DROP
Gjuha e Manipulimit të të Dhënave - DML (DataManipulation
Language)
 Komandat I manipulojnë të dhënat (rimarr, azhurnoj)
 Shembuj të komandave DML janë
 SELECT
 UPDATE
 INSERT
Objejtet SQL
Tabela tregon objektet SQL me të cilat do të punojmë brenda kësaj
lënde

Baza e të dhënave Data base


Relacioni i (tabla) Table

Atribut (shtylla , kolona) Column

Sinonim (alias) Alias


Kufizimi Constraint
Indeks Index
Emërtimi i objekteve SQL
Emrat e objekteve që krijohen nuk mund të jenë të njëjtë
me fjalë kyçe SQL (SELECT, UPDATE, FROM, ...)
 Emri mund të jetë i gjatë deri në 128 karaktere
 karakteri i parë duhet të jetë një shkronjë ose ‘_’
 brenda ashtu edhe në fund të emrit, mund të përdoren
gjithashtu edhe numrat
 SHEMBULL
 Student, student, student11, stu1dent => SAKT
 _Muaji 2012, st*udent, 11student, => JO I SAKT
 SQL është e pandjeshme (case insensitive )
për shkronjat e mëdha dhe të vogla midis fjalëve kyçe dhe
emrave të objekteve
 SeLect * From STUDENT = SELECT * FROM StudeNt
Rregullat e emërtimit të objekteve
Rregullat e emërtimit futen për shkak të mjeshtërisë së shkrimit të
kodit SQL
Nuk janë të detyrueshëme, por ka rregulla të pashkruara për ta
bërë më të lehtë kodin e tuaj SQL dhe të të tjerëve
 rregullat
 Emri i tabelës - shkruhet në njëjës pa shkronja shqipe (,ë, ç ...)
 Student, Shofer, makine, Tren, ...
 Çelësi primar - shënohet me Id ose Id + emrin e tabelës
 Në tabelën Student, çelësi primar duhet të jetë Id ose
IdStudent
 Çelësi i huaj - shkruhet në mënyrë të tillë që së pari të shkruhet
emri i tabelës së cilës i bëhet referencë + Id
 Nëse në tabelën Student kemi një çelës të huaj në tabelën
Vend çelësi i huaj duhet të emërohet me VendiId
 Fjalët kyçe SQL- shkruhen me germa të mëdha
Përdorimi i komenteve brenda SQL
Ekzistojnë dy lloje të komenteve
 Bllok komentet - koment në shumë rreshta kodi (/ * ... * /)

/ ∗ Ky është
i koment shumë rreshtave ∗ /

 Komentet rreshti - komentoni vetëm në 1 rresht të kodit (−


− ...)

-- Ky është koment
SELECT ∗ FROM City -- Ky është koment
Leximi diagrameve sintaksës
Çdo komandë themelore që mësojmë do të
shfaqetdiagramet sintaksore ku shënojnë opsionet e
mëposhtme
| - ndan opsionet e ofruara
{} –kornizon elementet që kërkohen
[] – kornizon elementet opsionale
[,. . . n] – elementet i përpara presjes mund të përsëriten
një herë ose më shumë herë
Fjalët e shkruara me shkronja të mëdha - fjalë kyçe SQL dhe
duhet të shkruhen saktësisht ashtu
Lloji i të dhënave
Lloji i të dhënave përcakton se cilin tip të dhënash mund të
përmbajnë një atribut i veçantë dhe operacione që mund të
kryhen në atë bashkësi vlerash.
 Llojet e paracaktuara të të dhënave
 numrat e egzakt
 numrat e përafërt (Aproksimativ)
 Koha dhe data
 karakter
 Binare
 të tjerë
 llojet e përcaktuara nga përdoruesi - ne nuk do të merremi
me to
Numrat egzakt
Numrat e egzaktë janë ata që mund të shkruhen në një
kompjuter me saktësi ashtu siç janë
DBMS brenda një prej vlerave nga diapazoni është zakonisht
përfundimtare përdoret për të ruajtur vlerat NULL
Tipi i të dhënës Diapazoni vlerave Përdorimi i kujtesës

bigint -263 deri 263 - 1 8B

int -231 deri 231 - 1 4B

smallint -215 deri 215 - 1 4B


tinyint 0 deri 255 1B
bit 1ose 0 (TRUE ose FALSE) 2B
Numrat egzakt/1
Përveç atyre të përmendur, numrat e saktë përfshijnë edhe
tipe të të dhënave numeric, decimal, money dhe smallmoney
 Lloji i të dhënave decimal(m,n) përdoret për të shkruar
numrat me pikë dhjetore
 m - paraqet numrin e përgjithshëm të shifrave
 n - paraqet numrin e shifrave pas pikës dhjetore
 P.sh DECIMAL (10.3) - paraqet numrin dhjetor me më të
lartin15 shifra, nga të cilat maksimumi 3 shifra mund të
ndodhen pas pikës dhjetore
 lloji i të dhënave dhjetore ruan numrat numerikë pa
gabime në kontrast me numrat e pikave lundruese - float
Numrat e përafërt
Numrat e përafërt janë numrat që i ruajmë afërsisht
shfaqjen e vlerave
Tipi i të dhënës Diapazoni vlerave kujtesa
float[(n)] -1, 79 ∗ 10308 do 1, 79 ∗ 10308 4B-8B
real -3, 40 ∗ 10308 do 3, 40 ∗ 10308 4B

n - numri i bitëve të nevojshëm për të ruajtur mantisën


dhe prej saj varet nga hargjimi i kujtesës
Nëse specifikohet n, vlera e tij duhet të jetë midis 1 dhe
53, dhe nëse jo vlera paracaktuar është 53
 Nëse n është në intervalin 1-24, atëherë konsumohet 4B,
dhe nëse është prej 25-53 memorie 8B
Llojet e orës dhe datës
Llojet e kohës dhe datës shkruajnë kohën dhe datën në
bazën e të dhënave të dhënat në një format të rënë dakord
Tipi i të dhënës Diapazoni vlerave kujtesa
date prej 1.1.1 deri 31.12.9999 3B
datetime prej 1.1.1753 deri 31.12.9999 8B

Formati i datës është ‘YYYY-MM-DD’ dhe si i tillë


gjithmonë tregohet
DBMS intern shkruan datën në formën e një numri të
plotë që paraqet numrin e ditëve të kaluara që nga
31.12.1899.
 Një regjistrim i tillë lejon operacione + dhe - me data ku
rezultati është gjithmonë numri i ditëve
Llojet e të dhënave karakter
Llojet e të dhënave karakter janë ato në të cilat shkruhet
teksti
Tipi i të dhënës Diapazoni vlerave kodimi kujtesa

char[(n)] 1 deri 8000 ASCII n*B


varchar[(n|max)] 1 deri 8000 ASCII n + 2B
nchar[(n)] 1 deri 4000 UNICODE n * 2B
nvarchar[(n|max)] 1 deri 4000 UNICODE * 2 + 2B

n - tregon gjatësinë maksimale të karaktereve fikse ose


të gjatësisë ndryshueshme
 char dhe nchar - tregojnë një string me madhësi fikse
varchar dhe nvarchar - tregojnë një string të
karakteresh me gjatësi të ndryshueshme
Llojet e të dhënave binare
Llojet binare të të dhënave përdoren për të ruajtur imazhe,
filma, dokumente et

Tipi i të dhënës Diapazoni vlerave kujtesa

binary[(n)] Fiks prej 1 deri 8000B nB


varbinary[(n|max)] Varijabil prej 1 deri 8000B n + 2B
image Varijabil prej 2.147.483.647B

max për llojin të të dhënave varbinary mundëson


ruatjen e deri në 2 GB të dhëna
Llojet e tjera të dhënave
Llojet e tjera të të dhënave përdoren për të ruajtur fajllat
XML, ruatjen e identifikatorve global. . .
cursor - Përdoret për ndryshoret ose për parametrat e
daljes të harmonizuara me procedurat e që përmbajnë një
referencë në kursori
uniqueidentifier - Një identifikues unik global që quhet edhe
GUID
XML - Lloji i të dhënave në të cilat ruhen të dhënat XML
Table - Ky lloj i të dhënave përdoret për ruajtje të
përkohshme të bashkësisë që rezulton për përdorim të
mëvonshëm. Më shpesh ruhen rezultatete e funksioneve
tabelare
Kategorija Tip Përshkrimi
Një numër i plotë që mund të marrë vlerat 1, 0 ose
bit
NULL
Numrat int Numrat e saktë e plotë.
Ekzakt money lloj i të dhënave që përfaqëson paratë.
tip numerik që saktësisht i japim se sa dhjetore duam
decimal
shkruaj numrat
Numrat
Lloji i përafërt i të dhënave duke përdorur pikën
Aproksimativ float
lundruese.

nchar UNICODE përfaqësimi i një teksti me madhësi fikse.


Unicod
Përfaqësimi UNICODE i tekstit me madhësi të
tekstual nvarchar
ndryshueshme.
char Përfaqësimi i një teksti me madhësi fikse.
Tekstual Përfaqësimi i një teksti me madhësi variabile . Nuk e
varchar
mbësht ë,č, ć, š
date Përfaqësimi i datës në formatin vijues 'YYYY-MM-DD'
Data dhe Përfaqësimi i datës dhe orës. Një shembull i formatit të
datetime
koha njëvlerat e datës dhe kohës '2011-11-20 00: 00: 00.000'
time Praqitja 24 orë kohë 'hh: mm: ss'
Krijimi i objekteve në një bazë të
dhënash
Krijimi i një baze të të dhënave
Krijimi i tabelave
Përditësimi i tabelave
Fshirja e tabelave
Krijimi bazës të të dhënave
Hapi i parë në implementimin e një skeme relacionale
është krijimi i një baze të të dhënave
CREATE DATABASE { EmriBazësDhanave }
 Me mundësi shtesë mund të vendosni se ku të krijoni
bazën e të dhënave dhe cilat do të jenë karakteristikat e saj
 fshirja e bazës e të dhënave bëhet me komandën e
mëposhtme
DROP DATABASE { EmriBazësDhanave }
 specifike për ekzekutimin e kodit SQL është se DBMS
nuk e bën kurrë pyet “A jeni i sigurt që dëshironi të fshini të
gjithë bazën e të dhënave ? " - ai thjesht fshin në mënyrë të
pakthyeshme kështu duhet pasur kujdes për këtë
Krijimi tabelave
Çdo tabelë përbëhet nga emri dhe kolonave të e veta, dhe
për secilën kolona zgjidhet
 Emri
 Lloji i të dhënave
 Kufizimet
 Çelësi primar dhe i huaj, kërkohet dhënie , vlera të
paracaktuar, unike dhe verifikimi
CREATE Table { EmriTabelës }
(
{EmriShtyllës} {TipiTëdhënës } {[ NOT ] | NULL }
{EmriShtyllës} {TipiTëdhënës } {[ NOT ] |NULL }
{ … }{ … } {… }
)
Krijimi tabele me çelës primar
Krijimi i një tabele me një çelës primar
CREATE Table Shteti (
Id int PRIMARY KEY NOT NULL ,
Emri nvarchar (50) NOT NULL
)
Krijimi i një tabele me një çelës kompleks
CREATE Table LandStudent (
StudentId int NOT NULL ,
LandId int NOT NULL ,
CONSTRAINT QP_LandStudent
PRIMARY KEY ( StudentId , LandId )

)
Krijimi tabele me çelës tehuaj
Krijimi i një tabele me një çelës huaj
CREATE TABLE Qytet(
Id int PRIMARY KEY NOT NULL ,
Emri nvarchar (50) NOT NULL ,
ShtetiId int NOT NULL ,
CONSTRAINT QH_Qytet_shtet FOREIGN KEY
( ShtetId ) REFERENCES Shteti ( Id )
)

Detyrimi për të futur atributet


 NOT NULL - kur vlera e atributit kërkohet të jepet
 NULL - nëse atributi mund të marrë një vlerë NULL
Krijimi i një tabele me kufizime të tjera
 Krijimi i një tabele me kufizime të të dhënave: vlera të
paracaktuara, unike dhe verifikim
 UNIK – vlerë unike
 Kur caktohet ky kufizim , secila vlerë në kolonë duhet
të jetë unik ose gjatë shtimit të një rresht të ri DBMS
raporton se kufizimi po shkelet
 CHECK - kontrolli i vlerës
 Ky kufizim kontrollon nëse vlera e shtuar rishtas
plotëson kushtin e vendosur .
 DEFAULT - vlera e paracaktuar
 Ky kufizim caktohet kur duam vlerë atributet vendoset
një vlerë të paracaktuar - çdo herë që shton një rresht
të ri nëse eksplicit nuk theksohet qartë vlera atributet
do të marr një vlerë të paracaktuar
Krijimi i një tabele me kufizime të tjera/1
CREATE TABLE Student (
Id int PRIMARY KEY NOT NULL ,
Emri nvarchar ( max ) NOT NULL ,
Mbiemri nvarchar ( max ) NOT NULL ,
NrInd char (11) NOT NULL ,
IRregullt bit NOT NULL
CONSTRAINT DF_ IRregullt DEFAULT (1) ,
DatLindja datetime NOT NULL ,
CONSTRAINT UQ_Student_NrInd
UNIQUE ( NrInd ),
CONSTRAINT CH_Student_ DatLindja
CHECK (DatLindja > ’1900.01.01 ’)
)
Check- me të, së bashku me llojin e të dhënave,
ne përcaktojmë domenin e atributit
Përditësimi i tabelave
Pasi të krijohet një skemë relacionale, ajo mund të
ndryshohet
 Ndryshimi i strukturës zakonisht bëhet për normalizim
ose denormalizimi i bazës së të dhënave
 Shtimi i një kolone të re bëhet si më poshtë

ALTER TABLE {EmriTabelës}


ADD {EmriKolonës}{Tip}{ [ NOT ] | NULL}

Fshirja e një kolone bëhet si më poshtë

ALTER TABLE {EmriTabelës}


DROP COLUMN {EmriKolonës}
Fshirja e tabelës
 Komanda DROP përdoret për të fshirë tabelën, si dhe për
të fshirë të gjitha objektet e tjera në bazën e të dhënave
 Kur fshini një tabelë është e nevojshme të kontrolloni nëse
tabela që e fshini a ka referencat e veta në objektet e tjera
 Nëse tabela ka referencat e veta, DBMS do ta parandalojë
fshirjen
Fshirja e një tabele gjithashtu fshin të gjitha të dhënat nga
ajo

DROP TABLE {EmriTabelës}


Komandat SQL për menaxhimin e të
dhënave(DML) - komanda SELECT

 Përpunimi i pyetjeve SQL


Hapat e përpunimi I pyetjeve SQL
Hapat e përpunimit i pyetjeve SQL
Përpunimi I pyetjeve SQL zhvillohet në hapat e mëposhtëm
1. Kontroll sintakse
 Kontrollon nëse pyetja është e saktë; nëse po e analizon atë pema
logjike, ku secila degë e pemës përfaqëson një operacioni logjike që
do të ekzekutohet nga pyetësi
2. Kontrollimi i objekteve që referohen
 Kontrollon nëse struktura e skemës relacionale përputhet me
pyetjen
3. Optimizuesi i pyetjeve
 Optimizer I pyetjes gjithashtu gjeneron plane të mundshme të
ekzekutimit të pyetjeve, kontrollon nëse ka tashmë pyetje në memorien
cache dhe zgjedh atë që është më i favorshëm
4. Plani i ekzekutimit
 Plani i ekzekutimit ruhet në memorien cache dhe ekzekutohet në
execution engine
5. Rezultati pyetjes
Përpunimi i pyetjeve SQL
Komandat SQL për menaxhimin e të dhënave
Marrja e të dhënave
Pjesë të komandës SELECT
Riemërtoni kolonat
Marrja e të dhënave
 Për të marrë të dhënat e ruajtura tashmë nga tabelat e
bazës së të dhënave të dhëna, përdoret komanda SELECT
Komanda I SELECT kthen një bashkësi të dhënash në
formë tabele
Paraqitja e komandës SELECT
 Komanda SELECT është komplekse dhe ka shumë
mundësi
 Paraqitja themelore e komandës SELECT është si më
poshtë
Pjesa FROM
Hapi 1 - Komanda SELECT është FROM, në të cilën
zgjedhet burimi të dhënat që duam të marrim
 Burimi i të dhënave mund të jetë
 Tabela
 Shumë tabela të bashkuara (JOIN)
 Pamja
 Funksione tabelor
...
 Kjo komandë është një pjesë e detyrueshme e
komandës SELECT
SELECT Kolona1, Kolona 2, Kolona N ,. . .
FROM Tabela 1, Tabela 2, Tabela_n ,. . .
lista e seleksionit – zgjidhja e
kolonave
Hapi 3 –te përzgjedhja e kolonave për ti marrë është
fjala për operacionin relacional të projeksionit
Ka dy mundësi për përzgjedhjen thjesht të kolonave
 Marrja e të gjitha kolonave (*)
SELECT ∗ FROM Tabela
Vetëm disa (duhet të numërohen dhe ndahen me
presje)

SELECT Kolona1, Kolona 2, Kolona N


FROM Tabela
Lista e seleksionit -shembull
Student
StudentID Emri Mbiemri
0135187314 Martin Martini
0135188315 Jetmir Jetmiri

SELECT ∗ , Emri , StudentID , ∗ FROM Student


Rezultati i pyetjes së mësipërme nuk është një
relacion. Pse?
Student
StudentID Emri Mbiemri Emri StudentID StudentID Emri Mbiemri
0135187314 Martin Martini Martin
0135188315 0135187314 0135187314 Martin Martini
Jetmir Jetmiri Jetmir
0135188315 0135188315 Jetmir Jetmiri
Pjesa WHERE
Hapi 2 - Kur nuk duam të marrim tërësinë e të dhënave
por vetëm nënbashkësi i saj i të dhënave duhet të
filtrohen
Filtrimi i të dhënave bëhet me fjalën kyçe WHERE dhe
pas vendoset një kusht filtrimi
 Komanda WHERE korrespondon me një operacion
relacional të përzgjedhjes(Selection)
Në Komandat WHERE më shpesh përdoren
 Kolona
 literalët
 Operatorët
Pjesa WHERE-operatorët
Për filtrimin më të ndërlikuar të të dhënave në pjesën
WHERE përdoren
lloje të ndryshëm të operatorëve
 Llojet e Operatorëve janë
 Operatorët aritmetikë
 I Operatorët logjikë
 operatorët krahasimit
 Operatorët e Veçantë
 IN
 BETWEEN
 LIKE
 IS
Operatorët aritmetikë
Operatorët aritmetikë tregohen në tabelë

OPERATOR QËLLIMI
+ Operator mledhjes
- Operator zbritjes
∗ Operator shumëzimit
/ Operator pjestimit
% Operator modul
Operatorët aritmetikë-shembull
Shembull i përdorimit të operatoritmbledhje mbi llojet e
të dhënave tekst
SELECT
Emri + ’ ’ + Mbiemri AS ’Emri dhe mbiemri’
FROM Student

StudentID Emri Mbiemri Emri dhe Mbiemri


0135187314 Martin Martini Martin Martini
0135188315 Jetmir Jetmiri Jetmir Jetmiri
Operatorët logjikë-shembull
Shembull i përdorimit të operatorit AND
SELECT *
FROM Student
WHERE Emri = ’ Jetmir ’ AND Mbiemri = ’ Jetmiri’

StudentID Emri Mbiemri StudentID Emri Mbiemri


0135187314 Martin Martini 0135188315 Jetmir Jetmiri
0135188315 Jetmir Jetmiri
Operatorët relacional-shembull
Shembull i përdorimit të operatorit "ndryshe" (<>) mbi
tllojet e të dhënave tekst
SELECT *
FROM Student
WHERE Mbiemri <>’ Martini’

StudentID Emri Mbiemri StudentID Emri Mbiemri


0135187314 Martin Martini 0135188315 Jetmir Jetmiri
0135188315 Jetmir Jetmiri
Operatori special-IN
Operatori special IN përmirëson mundësinë dinamike të
gjuhës SQL
Mund të zëvendësoj disa operatorë OSE
Operatori IN përdoret më shpesh në bashkëpunim me
nënpyetjet
SELECT Kolona1 , Kolona2
FROM Tabela
WHERE Kolona1
[ NOT ] IN ({vlera1 , vlera2 , . . . | SELECT . . . })
Operatori special-IN shembull
Operatori IN ndryshon disa komanda OR, ndërsa
avantazhin e tij është se ata pajtohen mirë me nënpyetjet,
përkatësisht vlerat në pjesën IN mund të merret nga burime
të ndryshme në kushte të ndryshme ndërsa kjo nuk është e
mundur me OR
SELECT ∗ FROM Student
WHERE NrInd IN ( ’0135187314’ , ’0135187315’)

Student ID Emri Mbiemri Student ID Emri Mbiemri


0135187314 Martin Martini 0135187314 Martin Martini
0135188315 Jetmir Jetmir i 0135188315 Jetmir Jetmir i
013588316 Arian Ariani
0135188317 Petrit Petriti
Operatori special-BETWEEN
Për marrjen e një diapazoni të të dhënave përdoret
operator special BETWEEN
Për operatorët BETWEEN, kufijtë e poshtëm dhe të
sipërm përfsshihen nërezultat
kufijtë e poshtëm dhe të sipërm duhet të jenë të të
njëjtit tip si kolona si dhe diapozoni marrë

SELECT Kolona1 , Kolona2


FROM Tabela
WHERE Kolona1 BETWEEN vlera1 AND vlera2
Operatori special-LIKE
Për të kërkuar tekst LIKE përdoret një operator i veçantë
 sintaksa themelore për përdorimin e operatorit LIKE
është
SELECT Kolona1 , Kolona2
FROM Tabela
WHERE Kolona1 [ NOT ] LIKE ‘mostër’

Kolona1 duhet të ketë një tip të dhënash tekst


 nchar, char, varchar, nvarchar
Në ‘mostër’ vendoset rregulli i kërkimit të kolonës
 Rregullat e kërkimit të tekstit janë dhënë në tabelën
vijuese (marrëdhëniet) në serverin SQL dhe ka ndryshime
të vogla krahasuar me Access)
Operatori special-LIKE
Rregullat e kërkimit të tekstit janë dhënë në tabelën më
poshtë
 ka të bëjë me SQL Server dhe ka dallime të vogla në
krahasim me Office Access
Rregulli Përshkrimi

% Çdo karakter i përbërë nga 0 ose më shumë karaktere


Zëvendëson çdo karakter, por vetëm një
-
[] Çdo karakter nga p.sh. diapazoni ([a-c]) ose bashkësia ([abcd])

Çdo karakter që nuk është nga, për shembull, një diapazon (ˆ [a-c]) ose një
ˆ grup (ˆ [abcd])
LIKE ‘% a%’ - Kthen të gjitha rreshtat që përmbajnë
shkronjën a
Më pëlqen ‘a%’ - Kthen të gjitha rreshtat në të cilat
shkronja e dytë është a
I LIKE ’[a-c]%’ - Kthen të gjitha rreshtat që fillojnë me
Operatori special-IS
Operatori IS shërben për të provuar ekzistencën e një
vlere, kjo do të thotë, ajo shqyrton nëse një atribut i
veçantë është NULL apo jo
Sintaksa themelore e operatorit IS është si më poshtë
SELECT Kolona1 , Kolona2
FROM Tabela
WHERE Kolona1 IS [ NOT ] NULL

Testohet një vlerë është e barabartë me NULL nuk mund të


Bëhet kështu (Kolona 1 = NULL)
Operatori special-IS-shembull
Shembull i përdorimit të operatorit IS
është e nevojshme të merren të gjithë studentët që
nuk kanë të dhënë mbiemrin
SELECT *FROM Student
WHERE Mbiemri IS NULL

Student ID Emri Mbiemri


0135187314 Martin Martini Student ID Emri Mbiemri
0135188317 Petrit NULL
0135188315 Jetmir Jetmir i
013588316 Arian Ariani
0135188317 Petrit NULL
DISTINCT
Hapi 4 - Komanda DISTINCT tërheq vetëm ato vlerat të
ndryshme nga një kolonë e vetme dhe është opsionale
Vlera NULL konsiderohet gjithashtu si një nga vlerat e
ndryshme
Sintaksa themelore e komandës DISTINCT është si më poshtë
SELECT DISTINCT Kolona1 FROM Tabela

Përdoret kur dëshironi të merrni, për shembull, të


gjitha ngjyrat e ndryshmeProduktet ose të gjithë emrat
e ndryshëm të klientëve. . .
Vendoset përpara atributit vlerat e ndryshme të të cilit
duam marrim
Pjesa DISTINCT-shembull
Shembul I përdorimit Komanda

SELECT DISTINCT Mbiemri FROM Student

Student
Student
Student ID Emri Mbiemri Mbiemri
0135187314 Martin Martini Martini
0135188315 Jetmir Jetmir i Jetmir i
013588316 Arian Ariani Ariani
0135188317 Petrit NULL NULL
Pjesa ORDER BY
Hapi 5 - Komanda ORDER BY përdoret për të renditur vlerat
Rritëse(ASC, psh. 1 → 9, a → z)
 në zbritje (DESC, psh. 9 → 1, z → a)
 Renditja në ngritje është e paracaktuar, dhe sintaksa
themelore është
SELECT Kolona FROM Tabela
ORDER BY { Kolona [ ASC ] |[ DESC ] }
Renditja kryhet si më poshtë
1. Rendit sipas kolonës së parë të dhënë në drejtimin e
dhënë
2. Për ato vlera që janë të barabarta sipas kriterit të parë
klasifikimi sipas kolonës së dytë në drejtimin e dhënë
3. Procedura bëhet për të gjitha kolonat
Pjesa ORDER BY-shembull
Shembull përdorimi t të komandës ORDER BY
SELECT * FROM student
ORDER BY Emri, Mbiemri

Student
Student
Student ID Emri Mbiemri Student ID Emri Mbiemri
0135187314 Martin Martini 013588316 Arian Ariani
0135188315 0135188315 Jetmir Jetmir i
Jetmir Jetmir i
013588316 0135187314 Martin Martini
Arian Ariani
0135188317 Petrit petriti 0135188317 Petrit petriti
Pjesa TOP
Hapi 6 - për të marrë vetëm rreshtat e para përdorni
komandaëTOP
Sintaksa themelore e komandës TOP është si më poshtë
SELECT TOP Numer [ PERCENT ] Shtylla
FROM Tabela
TOP përdoret së bashku me një numër të plotë që do të thotë sa
rreshta të parë duhet të merren nëse vendoset një mundësi shtesë
PERCENT tërheq një përqindje të numrit të përgjithshëm të rreshtave, a
jo numri i rreshtave
SHEMBULL: Një tabelëë ka 1000 rreshta
 TOP 10 → kthen 10 rreshtat e parë
 TOP 10 PERCENT → kthen 100 rreshtat e parë
Riemërimi i kolonave
Shpesh ka nevojë për emërtimin e kolonave ose
tabelave riemëruar duke përdorur operatorin AS
 Një shembull i riemërtimit është dhënë më poshtë
SELECT NrInd AS ’ Numëri amë i studentit ’ ,
Emri , Mbiemri
FROM Student AS ’Studenti’

Student ID Emri Mbiemri Numëri amë studentit Emri Mbiemri


0135187314 Martin Martini 0135187314 Martin Martini
0135188315 Jetmir Jetmir i 0135188315 Jetmir Jetmir i
Faleminderit për kontributin

You might also like