UNIVERSITETI ALEKSANDER MOISIU DURRES/ VITI AKADEMIK ’09- ‘10 BAZA TE DHENASH/SPECIALIST RRJETI/ Viti dyte LEKSION #2 / PERGATITI: EJONA XHEKA
1.1 1.1 Hyrje yrje
Ne menyre te pergjithshme, te gjitha makinat ne Internet/Intranet mund te ndahen ne 2 kategori: server dhe klient. Ato makina te cilat i ofrojne sherbime makinave te tjera (si psh web serverat ose FTP serverat) quhen servera. Ato makina te cilat kerkojne te lidhen dhe te perdorin keto sherbime quhen kliente. 1.1.1 Karakteristikat e klientit dhe te serverit
Klienti dhe serveri jane entitete logjike qe puno jne se bashku per te kryer nje n je pune (task).
Klienti dergon nje kerkese per nje sherbim dhe serveri proceson kete kerkese te klientit dhe dergon mbrapsht tek klienti pergjigjen e kerkuar. Dallimet midis nje serveri dhe nje klienti jane te meposhtmet: Sherbimet: 1. Sherbimet: Klient/server eshte nje bashkepunim midis dy proceseve qe behen run ne dy makina te ndara. Serveri eshte ai qe ofron nje sherbim dhe klienti eshte ajo makine qe e perdor kete sherbim. sherbim. Parimisht, Parimisht, klient/ser klient/server ver na ofron nje ndarje te paster te ndarjes ndarjes se funksioneve funksioneve duke u bazuar tek sherbimet. 2. Shper Shpernd ndarj arja a e burim burimev eves: es: Serveri mund ti sherbeje me shume se nje n je klienti ne te njejten kohe duke rregulluar aksesimin e burimeve prej klienteve te ndryshem. Protokollet asimetrike: asimetrike: 3. Protokollet Kemi te bejme me nje lidhje nje-me-shume midis klientit dhe serverit. Klientat jane ata qe nisin gjithmone nje dialog me serverin per te kerkuar nje sherbim. Serverat jane ne gjendje pasive dhe presin kerkesa prej klienteve.
4. Fshehja e vendodhjes: Serveri eshte nje proces qe mund te behet run ne te njejten makine me klientin ose ne nje makine te ndryshme nga klienti. Klient/server jane zakonisht software qe maskojne vendodhjen e serverit nga klienti duke bere ridrejtimin e thirrjes per sherbime kur nevojiten. Nje program mund te jete nje klient, nje server, ose te dyja bashke. 5. Pershkallshmeria: Sistemet klient/server mund te pershkallezohen ne menyre vertikale ose horizontale. Pershkallezim horizontal dmth se mund te shtohen ose hiqen klienta duke pasur ndryshim te vogel ne performance. Pershkallezim vertikal dmth te migrojme ne nje server me te shpejte ose te shperndahet procesi ne disa servera.
6. Integriteti: Serveri bashke me te dhenat qe ruan menaxhohet ne menyre qendrore, si rrjedhim ka lehtesi ne mirembajtjen e tij dhe siguri te madh te dhenash. Ne te njejten kohe, klientat jane perdorues personal dhe te pavarur.
1.2 Avantazhet dhe disavantazhet e klient/server Avantazhet e Klient/Server
Informatizimi sipas arkitektures klient/server ofron nderfaqen e perdoruesit, ruajtje te dhenash dhe sherbime software-ike me produktivitet me te larte. 1.Shperndarje te dhenash Te dhenat jane informacionet e mbledhura nga procesi i punes ne nje kompani dhe duke kaluar ne server behen te kapshme nga te gjithe punonjesit e autorizuar ti manipulojne ato. SQL (Structured Query Language) ofron te gjithe perdoruesve te autorizuar aksesim te ketij informacioni nepermjet nje view e cila eshte konsistente me nevojat e perdoruesve, e njejta view lejohet te aksesohet prej perdoruesve me te njejta te drejta. 2. Sherbimet e integruar Ne modelin klient/server, i gjithe informacioni per te cilin klienti ka nevoje mund ta gjej ne desktopin e kompjuterit te tij. Nuk eshte e nevojshme qe nje klient te ndryshoje terminalin e vet te punes ose te logohet ne nje procesor tjeter per te aksesuar informacionin e nevo jshem. 3. Ne rastet me te shumta arkitektura klient/server lejon ndarjen e roleve dhe te detyrave midis makinave te ndryshme te cilat jane te njohur me njeri-tjetrin vetem nepermjet nje rrjeti. Kjo perben nje avantazh per kete arkitekture qe eshte lehtesia e mirembajtjes. Psh, eshte e mundur nje zevendesim, upgrade ose nje rivendosje e te gjithe serverit nderkohe qe klientet jane te pakapshem nga te gjitha keto ndryshime. Kjo lloj pavaresie nga ndryshimet e mundura eshte e njohur ndryshe si enkapsulim.
4. Te gjitha te dhenat jane te ruajtura ne servera, te cilat kane kontrolle sigurie shume me te madh sesa makinat e klienteve. Serverat kontrollojne aksesimin e burimeve dhe sigurojne qe vetem perdoruesit me te drejta te percaktuara mund te aksesojne te dhena dhe ti ndryshojne ato. Meqenese data storage eshte i qenderzuar, administrimi i te dhenave te update-uara eshte shume i lehte te kryhet. Disavantazhet e klient/server
1. Rendimi i trafikut ne rrjet perben nje disavantazh. Me rritjen e numrit te klienteve te njekohshem lidhur me te njejtin server, serveri mbingarkohet dhe ulet aftesia e tij per ti sherbyer te gjithe klientave. 2. Ne arkitekturen klient/server nqs ne rastet kritike nje server fail, ath kerkesat e klienteve te tij nuk mund te permbushen. 2.1 Tipet e serverave a. File Server • • •
• •
File Servers jane te dobishem per te bere share informacionin, Klienti dergon nepermjet rrjetit nje kerkese per nje file tek file serveri Ky eshte tipi me primitive i sherbimit te te dhenave i cili eshte perdorur per shkembime mesazhes ne rrjet per te gjetur te dhenat e nevojshme. I gjithe file i kerkuar kalon nepermjet rrjetit nga serveri tek klienti Keta lloj serverash jane te perdorshem si repository per flat documents, vizatime apo imazhe.
b. Database Server
Ne rastin e nje bisnesi te vogel softi i databases mund te behet run ne nje PC te vetme shume thjesht. Ne rastet kur behet fjale per bisnese te mesme apo te medha ath sasia e informcionit eshte shume e madhe, kemi shume punonjes ne rrjet qe kerkojne te aksesojne kete informacion ne menyre paralele; do te na hyjne ne pune softe i serverit te databases qe bejne te mundur aksesimin e databases prej punonjesve te ndryshem. Kjo nuk eshte vetem ceshtje e lidhjes ne rrjet. Softet e serverave te databases lejojne qe i njejti informacion te mos aksesohet per ndryshime te njekohshme prej shume perdoruesve, qe indeksimi dhe sortimi I informacionit te behet sa me lehte, lejojne analize te informacionit te ruajtur ne database per krijime raportesh. Gjithashtu lejohet edhe perdorimi i aplikacioneve te ndryshme per te perdorur te njejtin informacion te q enderzuar. Me ane te hardit te specializuar, nje server database ofron shume opsione, si psh stafi te mund te perdori aplikacione te ndryshme per te aksesuar bashkesine e informacionit te databases, por i gjithe informacioni do te qendroje ne serverin e databazes. Meqenese databazat kane qene nje prej aplikacioneve me te hershem te krijuar, me kalimin e viteve dhe investimet qe jane bere ne drejtim te tyre kane arritur te perfeksionohen maksimalisht. Serverat e databases me modern arrijne te mbajne sasi shume te medhaja informacioni dhe ta ofrojne kete informacion ne nje varietet formatesh, duke perfshire paraqitjen automatike te te dhenave neper faqe webi dhe futjen e te dhenave nepermjet formave ne web apo tools-eve te tjera e-commerce. Per disa kompani serveri i databazes eshte zemra e gjithe veprimtarise se saj te perditshme. Softaware i serverit te databazes eshte i ndryshem prej hardit te serverit, ku ky i fundit eshte makina fizike qe perdoret dhe lidhet ne rrjet; i cili eshte i ndryshem edhe prej sistemit operative ku ky i fundit behet run ne makinen fizike te serverit; porse ofron nje nderfaqe midis tij dhe aplikacioneve specifike. Edhe pse kemi perkufzime te ndryshme per te treja keto komponente , ne punen e perditshme ato do te punojne se bashku shume ngushte, prandaj zgjedhja juaj per serverin e databazes do te ndikohet prej OS se serverit dhe hardit te zgjedhur.
Kemi thënë që funksioni bazë i DBMS është të suportojë zhvillimin dhe ekzekutimin e aplikacioneve të bazës së të dhënave. Por nga një këndvështrim më i lartë, një sistem i tillë mund të shihet me një strukturë të thjeshtë që përbëhet nga dy pjesë: serveri (që shpesh njihet si back end) dhe një bashkësi klientësh (të quajtur front ends). Shpjegim: 1. Serveri është vetë DBMS me gjithë funksionet e tij, që kemi përmendur. Pra “server” është një emër tjetër për DBMS. Klientët janë aplikacionet që ekzekutohen mbi DBMS. Këto aplikacione mund të jenë të gatshme ose të shkruara nga përdoruesi. 2. Klienti dergon nje kerkese SQL ne formen e nje mesazhi tek serveri i databazes; rezultati i cdo komande SQL do te kthehet mbrapsht nepermjet rrjetit. Kodi i aplikacionit gjendet tek makina e klientit keshtu qe ose duhet te shkruhet kod per tu perdorur prej klientit ose blihen third-party tool te gatshme.
Meqë i gjithë sistemi mund të ndahet qartazi në dy pjesë, serveri dhe klienti, ekziston mundësia e përpunimit të shpërndarë. Përpunim i shpërndarë do të thotë që makina të ndryshme mund të lidhen në ndonjë formë rrjeti në mënyrë që të dhënat të mund të shpërndahen në to. Shembulli më i qartë i përpunimit të shpërndarë është Interneti, ku përpunimi i të dhënave mund të bëhet në makina të ndryshme të rrjetit. Mund të përdoret dhe termi përpunim paralel. Mund të kemi nivele të ndryshme si: DBMS si back end dhe aplikacionet si front end. Këto dy njësi mund të qëndrojnë në një makinë të vetme por për avantazhe të qarta, përdoren në makina të ndryshme. Kjo ilustrohet në figurën e mëposhtme:
Aplikacionet e shkruara nga përdoruesi janë programe të shkruara në C#, . NET etj., ose në ndonjë nëngjuhë. Aplikacionet e gatshme (që shpesh quhen tools)janë programe që shërbejnë për të krijuar programe të tjera. Ndarja në makina të ndryshme është në përputhje dhe me mënyrën si punojnë sot kompani të ndryshme. Për shembull, një bankë përpunon të dhënat në kompjutera të ndryshëm. Edhe përdoruesit e kësaj banke mund të aksesojnë të dhënat nga kompjuter të ndryshëm. Makinat klient mund të kenë ruajtur të dhënat e tyre dhe serveri aplikacionet e veta. Në përgjithësi, cdo makinë do të veprojë si server për disa përdorues dhe si klient për disa të tjerë. Me fjalë të tjera, cdo makinë do të suportojë një sistem baze të dhënash. Gjithashtu një klient i vetëm mund të dojë të aksesojë servera të ndryshëm. Kjo vecori është mjaft e pëlqyeshme, pasi edhe kompanitë e ndryshme operojnë në mënyrë të tillë që të dhënat e tyre nuk janë ruajtur në një makinë të vetme por janë të shpërndara në disa të tilla. Edhe
aplikacionet kanë nevojë që të aksesojnë të dhënat nga më shumë se një makinë. Ky akses mund të ofrohet në dy mënyra të ndryshme: •
Klienti mund të aksesojë disa servera, por vetëm një gjatë një kohe të caktuar (d.m.th. cdo kërkesë mund t’i dërgohet një serveri të vetëm). Në një sistem të tillë nuk është e mundur që brenda një kërkese të kombinohen të dhëna nga më shumë servera. Për më tepër përdoruesi duhet të dijë se cila makinë mban cilat të dhëna.
•
Klienti mund të aksesojë të dhënat në servera të ndryshëm dhe njëkohësisht (pra, një kërkesë e vetme mund të kombinojë të dhëna nga servera të ndryshëm). Në këtë rast serverat e shohin veten si të ishin një server i vetëm dhe përdoruesi nuk ka nevojë të dijë se ku ndodhen të dhënat nëpër servera.
Rasti i dytë përbën vërtetë sistemin e shpërndarë të bazës së të dhënave. Baza e të dhënave e shpërndarë bën që një aplikacion i vetëm të jetë në gjendje të operojë në mënyrë “transparente” mbi të dhënat e shpërndara në baza të dhënash të ndryshme, të menaxhuara nga DBMS të ndryshme, që ekzekutohen në makina të ndryshme, që suportohen nga sisteme shfrytëzimi të ndryshëm dhe që janë të lidhur në rrjete të ndryshme komunikimi. Me “transparente” kuptojmë që aplikacioni operon sikur të dhënat të ishin të gjitha të menaxhuara nga një DBMS i vetëm që ekzekutohet në një makinë të vetme.
c. Transaction Servers
Klienti mund te therrasi remote procedure ose sherbime qe ndodhen tek serveri me nje databaze SQL duke perdorur transaction server. •
• •
•
Shkembimet ne rrjet konsistojne ne nje kerkese/pergjigje te vetme. Statement i SQL ose perfundon me sukses ose deshton. Keto statement SQL te grupuara se bashku quhen transaksione. Me nje transaction server krijohet aplikacioni klient/server duke shkruar kod si per komponentin klient ashtu dhe per komponentin server. Komponenti klient zakonisht konsiston ne nje GUI (Graphical User Interface). Komponenti i serverit konsiston ne transaksionin SQL kundrejt databazes Keto aplikacioni jane quajtur OLTP (Online Transaction Processing).
•
•
OLTP eshte aplikacion mission-critical qe do te thote qe koha e pergjigjes duhet te jete me pak sesa (1-3 sec). Aplikacionet OLTP kerkojne gjithashtu dhe nje kontroll te rrepte sigurie dhe integriteti te databazes.
TP Monitor (Transactional Processing Monitor) ofron menaxhim te transaksioneve; dmth sigurohet qe ose te gjitha veprimet brenda nje tranzaksioni te perfundojne me sukses ose kur edhe vetem nje veprim te deshtoje ath i gjithe tranzaksioni duhet te deshtoje dhe te “kthehen mbrapsht” ( roll back) edhe veprimet qe perfunduan me sukses brenda tranzaksionit. Nje aplikacion mund te behet run ne disa makina njekohesisht dhe kjo behet per te shperndare ngarkesen e punes ne disa makina; ndryshe njihet si load balancing pra balancim ngarkese ne disa makina ne te njetin cluster. TP monitor eshte ai qe vendos ose rrugezon kerkesen e klientit drejt makines qe ka ngarkesen me te vogel te punes.
2.2 Arkitektura klient/server 2.2.1 Rreth Fat Servers dhe rreth Fat Clients
Dime se modeli klient/server dallohet per ofrimin e sherbimeve qe ofron si dhe funksionaliteteve qe jane te ndare midis klientit dhe serverit. Dallohen dy tipe e meposhtme: 1. Modeli Fat Server 2. Modeli Fat Client 1.Modeli Fat Server • • •
•
• •
Vendos me shume sherbime ne server Zakonisht perdoret per aplikacione qe jane mission-critical Aplikimi eshte me i thjeshte per tu menaxhuar duke qene se pjesa me e madhe e punes kryhet ne server. Serverat Transaction perdorin cilesine e enkapsulimit per te eksportuar procedurat/metodat, te cilat veprojne mbi te dhena ne vend qe te meren vete te dhenat. Klienti ndervepron me te tille servera duke pe rdorur therritjen remote te procedurave. Shembuj te tille jane Groupware, Transaction Servers, and Web Servers.
2. Modeli Fat Client • • •
Vendos me shume funksione ne anen e klientit. Jane format me tradicionale te sistemeve klient/server Shembujt me te mire jane modelet e file server dhe databaze server ku klienti eshte ai qe di me mire sesi jane te organizuara te dhenat ( te ruajtura ne server)
Ne ambjentet real/aktual te punes eshte e mundur qe si fat server edhe fat client mund te bashkeekzistojne ne te njejten aplikacion. 2.2.2 Arkitektura
Gurute e arkitektures klient/server nuk pelqejne te perdorin terminologjine fat server apo fat client, por ti referohen atyre me termat arkitektura klient/server 2-tier, 3-tier and N-tier. Kjo do te varet prej menyres se si jane ndare funksionalitetet. Tek keto te fundit do te bejne pjese: nderfaqja e perdoruesit, llogjika e bisnesit, te dhenat e bera share.
2.2.2.1 Arkitektura 2 shtresore Client/Server
Ne arkitekturen 2-tier nderfaqja e perdoruesit eshte e vendosur ne ambjentin e desktopit te klientit dhe sherbimet menaxheriale te databazave ndodhen ne server i cili eshte nje makine
shume e fuqishme qe u sherben disa klienteve. Menaxhimi i procesimit ndahet midis nderfaqes se perdoruesit dhe sistemit menaxherial te DB. Ky i fundit ofron stored procedura apo trigera. Kjo lloj arkitekture eshte nje zgjedhje e mire per rastin e punes ne nje grup i cili nuk ka me shume sesa 100 persona te lidhura ne LAN ne te njejten kohe. Por nqs kalohet ky numer limit ath performanca do te ulet. Nje tjeter pike e dobet e arkitektures 2 shtresore eshte fleksibiliteti i dobet i kalimit te funksionaliteteve nga nje server ne tjetrin pa rigjeneruar ne menyre manuale kodin e procedurave. GUI and Application resource
DBMS, Legacy and other
Ky eshte lloji i arkitektures me te perdorshme edhe ne ditet e sotme; lidhur me arkitekturen klient/server. I gjithe aplikacioni dekompozohet ne dy bashkesi sherbimesh. Klienti kombinon sherbimet e UI (user interface) dhe te bisnesit ndersa shtresa e dyte ofron sherbimet e te dhenave. 2.2.2.2 Arkitekura 3 shtresore klient/server
E dekompozon aplikacionin ne 3 bashkesi sherbimesh: UI, bisnesi dhe te dhenat.Llogjika e bisnesit zhvendoset ne serverin e aplikacionit. Te dhenat qe duhen bere share zhvendosen ne serverin e databases.
Arkitektura 3 shtresore lindi si pasoje e pikave te dobeta te arkitektures 2-tier. Ketu eshte shtuar nje shtrese middleware (www.middleware.org) e vendosur midis ambjentit te punes se klientit dhe sistemit menaxherial te databazave.
SQL SQL data data access access
RPC, RPC,
Tier
MOM, MOM, HTTP HTTP
1
Tier 2 Dbms, Legacy and other resource managers
Tier 3
Ne cilat raste duhet perdorur arkitektura 3 shtresore klient/server?
Duke folur ne menyre te pergjithshme themi se arkitektura 2-tier eshte me e lehte per tu zhvilluar sesa ajo 3-tier; megjithate kur aplikacioni behet shume kompleks ath kompleksiteti i arkitektures 2-tier rritet ne menyre eksponenciale. Nqs aplikacioni juaj ploteson nje nga pikat me poshte ath eshte mire qe te zgjidhni arkitekturen 3-tier. 1. Shume sherbime ose klasa ( rreth 50) 2. Aplikacioni eshte shkruar ne gjuhe te ndryshme programimi ose i krijuar prej disa organizatave. 3. Jetegjatesia e aplikacionit eshte me e madhe sesa 3 vjet. 4. Nqs kryhen me shume sesa 50,000 transaksione ne dite ose nqs ka me shume sesa 300 perdorues qe aksesojne te njejten databaze. 5. Nqs ka 2 ose me shume burime te dhenash si psh dy DBMS ose nje DBMS dhe nje file system.
3.1 Evolucioni i modelit te databases Modelet e ndryshem te databases qe jane paraardhes te modelit relacionare kane pas qene zgjidhje te pjeshme te problemeve te pafund sesi duhet te ruhen te dhenat dhe sesi te perpunohen ne menyre sa me eficente. Modeli relacionare eshte momentalisht modeli me I mire lidhur me ruajtjen dhe aksesimin me te mire dhe te shpejte te te dhenave. Evoluimi I modeleve te databazave ka ndodhur kur eshte kerkuar te kapercehen problemet qe ka pasur modeli paraardhes. Modeli i pare ka qene file system te njohur ndryshe si flat file. File system eshte OS. Cdo kush mund ti kontrolloj filet ne file system te sistemit operative me ane te komandes dir ne Dos, me nje kerkim te thjeshte ne Windows Explorer. Problem qendron sepse perdorimi i file system nuk ofron asnje strukture database. Figura 3.1 tregon evoluimin e modeleve te databases qe nga vitet 1940 edhe ketej. Megjithese paksa te vjeteruar modelet hierarkike dhe rrjet jane perseri ne perdorim.
Figura 3.1 evoluimi iteknikave te modeleve te dataazes
3.1.a Modeli Hierarkik i Databazes
Modeli hierarkik i databases eshte nje strukture peme e invertuar; dmth se rrenja qendron siper dhe gjethet jane niveli me i ulet. Tabelat sipas ketij modeli do te kene lidhje prinderore me nje tabele tjeter dmth se krijohen relatat femije-prind. Cdo tabele femije ka nje tabele prind te vetem dhe cdo tabele prind mund te kete ne menyre te njekohshme disa tabela femije. Tabelat femije jane krejtesisht te varuru prej tabelave prind ne kuptimin qe cdo tabele femije mund te ekzistoj vetem nqs ekziston tabela prind i tij. Nga kjo rrjedh se cdo hyrje ne tabelen femije ekziston nqs ekziston si hyrje ne tabelen prind tabela prind e tij. Nga gjithe sa u tha arrihet ne perfundimin se modeli hierarkik i databazes suporton lidhjen nje-me-shume. Figura 3.1.a eshte nje shembull i nje modeli hierarkik te databases. Cdo pune eshte pjese e nje projekti, i cili eshte ne varesine e nje menaxheri, qe eshte pjese e nje divizioni, qe eshte pjese e nje kompanie. Keshtu per shembull, ekziston nje relate nje-me-shume midis departamenteve sepse ka shume departamente ne cdo kompani.
Disavantazhi i modelit hierarkik eshte se aksesi i cdo te dhene duhet te filloj qe prej rrenjes, qe ne rastin e figures tone eshte Company. Nuk mund te kerkohet per nje punonjes nqs nuk dihet se ne cilen kompani, department punon ai dhe cilin manaxher ka; vetem pasi kemi keto te dhena ath mund te arrijme tek punonjesi.
Figura 3.1.a modeli hierarkik i databazes 3.1.b Modeli Rrjet i Databazes
Modeli rrjet i databazave, mer si riferement modelin hierarkik i databazave. Modeli rrjet lejon qe tabelat femije te mund te kene me shume sesa nje tabele prind; duke krijuar ne kete menyre nje strukture peme te ngjashme me nje rrjet. Shume tabela prind per nje tabele femije bejne te mundur qe te krijohen relata shume-me-shume. Ne shembullin qe paraqitet ne figuren 3.1.b eshte vendosur lidhja shume-me-shume midis punonjesve dhe puneve. Me fjale te tjera nje punonjesi mund t’i caktohen disa punera dhe nje pune mund ti caktohet disa punonjesve njekohesisht. Dmth se shume punonjes mund te kene shume pune dhe shume pune mund te kene shume punonjes. Figura 3.1.b tregon sesi menaxheret mund te jene pjese edhe e kompanive edhe e departamenteve. Me fjale te tjera, modeli rrjet mer ne konsiderate qe jo vetem cdo department i kompanise ka nje menaxher porse cdo kompani ka nje menaxher te pergjithshem ( ne jeten e perditshme CEO). Figura me poshte tregon edhe disa tabela te reja. Njera eshte tabela qe tregon per tipin e punonjesit i cili mund te percaktohet si i punesuar part-time apo full-time. Me e rendesishme eshte tabela e cila percakton se cila pune duhet ti percaktohet kujt punonjesi. Krijimi i tabeles Assigment
Figura 3.1.b modeli rrjet i databases 3.1.c Modeli Relacionar i Databazes
Modeli relacionar i databases permireson modelin hierarkik, porse nuk shkeputet plotesisht prej hierarkise se te dhenave ashtu sic mund te dalohet edhe prej figures 3.1.c, cdo tabele mund te selektohet ne menyre te menjehershme, pa qene e nevojshme selektimin e meparshem te objektit prind. Kyci qendron ne ceshtjen se per cfare duhet te shikoni-psh nqs deshironi te gjeni adresen e njerit punonjes duhet te dini se per cilin punonjes po kerkoni adresen ose rruga me e gjate eshte te gjeni adresat e secilit punonjes derisa te arrini tek a dresa qe po kerkoni. Nje perparesi tjeter e databazave relacionare eshte se cdo tabele mund te krijoj lidhje me tabela te tjera pa qene e rendesishme pozicioni hierarkik i tabelave. Natyrisht qe duhet te vendoset nje lidhje midis tabelave porse nje tabele mund e krijoje disa lidhje jo vetem me tabelat femije porse edhe me ato prind. Figura 3.1.c tregon nje shembull te thjeshte nje database relacionare e cila bazohet ne skenarin e figures 3.1.b ; tabelat qe tregohen jane ajo e projekteve dhe ajo e punerave. Fusha Project_ID ne tabelen Project percakton ne menyre unike secilin projekt te ruajtur ne tabelen e projekteve. Relata midis projektve dhe punerave eshte nje lidhje nje-me-shume duke shfrytezuar fushen Project_ID. Nga figura 3.1.c vihet re se qe te treja hyrjet ne tabelen e punerave jane pjese te projektit te shitjeve te programeve.
Figura 3.1.c : modeli relacionar i databases
Figura 3.1.c modeli elacionar i databases- pamja e te dhenave
3.1.d Modeli Objekt i Databazes
Nje model objekt database ofron nje pamje tre dimensionale te te dhenave ku cdo objekt ne kete lloj database arrihet te kapet ne menyre te menjehershme. Nqs ne rastin e databases relacionare ofrohen modele dy dimensional te te dhenave te cilat do sherbjne shume mire ne rastet kur kerkohen nje grup me te dhena, ndersa modeli objekt sherben shume mire ne rastet kur kerkohet nje objekt i vetem dhe jo nje grup objektesh. Modeli i databazes me objekte na ndihmon te kalojme veshtiresi te tilla si nevoja per tipet e fushave te rekordeve dhe tabelat me lidhje shume-me-shume ne raste e databazave relacionare. Figura 3.1.d tregon modelin me objekte te modelit relacionar te figures 3.1.c .
Figura 3.1.d : modeli objekt i databases
Avantazhi i ketij lloj modeli database qendron ne faktin se sado kompleks dhe i madh te jete aplikacioni, secili element do te ndahet ne objektet baze perberes se tij dhe keta objeket mund te aksesohen ne menyre te drejperdrejte; pra duke njohur pjeset e vogla perberese mund te ndertohet figura e madhe dhe komplekse e gjithe skanearit me te cilin keni te beni.
3.1.e Modeli Objekt-Orientuar
DBMS-te objekt orientuar shtojne funksionalitete te databases gjuhes programuese.keto lloj DBMS perfshijne dhe zgjerojne akoma me shume semantiken e C# aqo Java; gjuhe keto objekt orientuese per te ofruar aftesi me te zhvilluara drejt programmimit ne database. Nje database qe menaxhohet nga nje sistem menazhues i databazave te objekt orientuara njihet si ODBMS; object DBMS. Databazat e objekteve jane shume afer gjuheve objekt programuese dhe lejojne te dhenat e objektit te ruhen pa qene e nevojshme per te konvertim si ne rastin e databazave relacionare. Eleminohet nje pjese e mire kodi dhe objektet ruhen shume me shpejt.
Disa sisteme informacioni mund te kene strukture te dhenash mjaft komplekse dhe nuk eshte e lehte qe te modelohen sipas modeleve tradicional te te dhenave. Nje databaze objekt mund te perdoret ne rastet kur nje strukture hierarkike, rrjet dhe relacionale eshte e papershtatshme ose restrictive. Databazat me objekte mund te zgjidhin shume mire relaten shume-me-shume.
USHTRIME 1.Shpjegoni termat e meposhtme:
a) b) c) d) e) f) g) h)
Server Fat client Arkitekture klient/server Tranzaksion Fat server Middleware Klient GUI
2. Nertoni nje skeme te thjeshtezuar lidhur me Database Serverat. Shpjegoni shkurtimisht me fjalet tuaja llogjiken e funksionimit te tyre. Cfare kerkesash dergohen nga ana klient dhe cfare pergjigjeje do te ktheje ana server? 3. Ndertoni nje skeme te thjeshtezuar mbi arkitekturen 2-shtresore klient/server. Fol mbi organizimin e anes klient dhe te anes server ne kete lloj arkitekture. Si jane ndare GUI, BL dhe DBMS ne kete lloj arkitekture? Cilat jane disa avantazhe apo disavantazhe lidhur me arkitekturen 3-shtresore klient/server? 4. Ndertoni nje skeme te thjeshtezuar lidhur me File Serverat. Shpjegoni shkurtimisht me fjalet tuaja llogjiken e funksionimit te tyre. Si komunikojne klienti dhe serveri ne kete lloj serveri? Per cfare jane te perdorshem keta lloj serverash? 5. Ndertoni nje skeme te thjeshtezuar mbi arkitekturen 3-shtresore klient/server. Fol mbi organizimin e seciles shtrese perberese ne kete lloj arkitekture. Si jane ndare GUI, BL dhe DBMS ne kete lloj arkitekture? Cilat jane disa avantazhe apo disavantazhe lidhur me arkitekturen 2-shtresore klient/server?
Qarko pergjigjen e sakte:
1. Per arkitekuren klient/server eshte e vertete : a) b) c) d) e) f) g) h)
Fsheh vendndodhjen e serverit Rritet lehtesia e mirembajtjes se te dhenave Ulet siguria lidhur me te dhenat Behet me i lehte pershkallezimi vertikal Vetem a) Vetem a) dhe b) Vetem c Tre pika nga te melarmet
Pergjigja. H)
2. Ne avantazhet e arkitektures klient/server hyn edhe : a) b) c) d) e) f)
Shperndarje te dhenash Ndarje te funksioneve Rritje e integritetit Vetem a) Vetem a) dhe b) Vetem a) dhe b) dhe c)
Pergjigje. F)
3. Ne lidhje me fat client nuk eshte e vertete: a) b) c) d) e) f)
Perdoret ne file dhe database servera Vendos me pak sherbime ne anen server Perdoren therritjet RPC Vetem a) Vetem c) Vetem a dhe b)
Pergjigja. E)
4.Arkitekura klient/server : a) b) c) d) e)
Ofron nje ndarje te paster te funksioneve Perdor protokolle asimetrike Ofron enkapsulim te sherbimeve Behet me i veshtire pershkallezimi horizontal Vetem a)
f) Vetem a) dhe b) g) Vetem c) h) Tre pika nga te melartmet Pergjigja. H)
5. Ne disavantazhet e arkitektures klient/server hyn edhe : g) Perdorim kredencialesh per aksesim burimesh serveri h) Ndarje te funksioneve i) Rendimi i trafikut ne rrjet j) Vetem a) k) Vetem c) l) Vetem a) dhe b) m) Vetem a) dhe b) dhe c) Pergjigja. E)
6. Ne lidhje me fat server eshte e vertete: g) h) i) j) k) l)
Perdoret ne file dhe transactional servera Vendos me pak sherbime ne anen server Perdoren therritjet RPC Vetem a) Vetem c) Vetem a dhe b)
Pergjigja. E)
7. Per serverat tranzaksional eshte e vertete se: a) Ana klient konsiston vetem ne nje GUI b) Ana server konsiston ne BL dhe RDBMS c) Transaksioni SQL ka nje pergjigje te vetme pavaresisht nga numri i instruksioneve perberes. d) Vetem nje nga pikat e para e) Vetem dy nga pikat e para f) vetem tre nga pikat e para Pergjigja. F)