PROGRAMDESTUDII:TehnologiiInformaticePentruAfaceri FORMĂDEÎNVĂȚĂMÂnt:IF Bazadedateonlinepentrugestionarea uneibiblioteci… [619741]

UNIVERSITATEAPETROL-GAZEPLOIEȘTI
FACULTATEA:ȘTIINȚEECONOMICE
DEPARTAMENTUL:CIBERNETICĂ,INFORMATICĂECONOMICĂ,FINANȚE
ȘICONTABILITATE
PROGRAMDESTUDII:TehnologiiInformaticePentruAfaceri
FORMĂDEÎNVĂȚĂMÂnt:IF
Bazadedateonlinepentrugestionarea
uneibiblioteci
Prof.coordonator.:Conf.Univ.Dr.AureliaPătrașcu
Absolvent: [anonimizat]
1.Notiunigeneralebazededate
1.1Bazededaterelationale(BDR)
1.2Bazededateorientateobiect(BDOO)
1.3Bazededatedistribuite(BDD)
2.UtilizareMySQLșiPHP
2.1NoțiunigeneraleMySQL
2.2Paginiwebstatice
2.3Paginiwebdinamice
2.4ConceptePHP
3.Proiectareaaplicatiei

1.Notiunigeneralebazededate
Sistemeledebazededateauunrolfoarteimportantînviațadezicuzi,fiind
folositeînmajoritateainstituțiiloractuale.Zilnic,majoritateapersoanelor
interacționeazăcuobazădedate:tranzacțiibancare,rezervareaunorbilete,căutarea
uneicărțiîntr-obibliotecăcomputerizată,etc.
Bazelededatepotaveamărimidiferite,delacâtevazecideînregistrări,de
exempluoagendătelefonică,pânălacâtevamilioane,cumarfiobazădedatecu
cărțiledintr-obibliotecă.
Utilizatoriiuneibazededatepotefectuamaimulteoperațiiasupradatelorstocate
aici:
•Introducereadenoidate
•Ștergereaunordateexistenteînbazadedate
•Actualizareadatelorstocate
•Interogareabazeidedate
CeesteoBazădeDate?
Însensullarg,obazădedateesteocolecțiededatecorelatedinpunctde
vederelogic,șicareestedestinatăunuianumitgrupdeutilizatori.Înacestsens,
bazelededatepotficreateșimenținutemanualsaucomputerizatașacumsuntîn
momentuldefață.Odefinițieîntr-unsensmairestrânsauneibazededateeste
următoarea:
Obazădedateesteocolecțiededate,creatășimenținutăȋntr-unsistem
informatic,cuscopuldeaprelucradateleîntr-oaplicație.Prelucrareadatelorsereferă
laoperațiicumarfiiintroducerea,ștergerea,actualizareasauinterogareadatelor.[1]
1.1Bazededaterelationale(BDR)
Bazelededaterelaționale(BDR)utilizeazămodeluldedaterelaționalși
noțiunileaferente.BDRauosolidăfundamentareteoretică,înspecialprincercetările
delaI.B.M.condusedeE.F.Codd.BDRreprezintăunansambluorganizatdetabele
împreunăculegăturiledintreele.

Atuncicânddorimsărealizămobazădedaterelaționalătrebuiesăștimclar
ceavemdefăcut,adicăsăstabilimobiectiveleactivitățiinoastre.Înacestsens,câteva
dintrecelemaiimportanteobiective,leprezentămîncontinuare:
•Partiționareasemnificăfaptulcăaceleașidatetrebuiesăpoatăfifolositeîn
moduridiferitedecătrediferițiutilizatori;
•Deschidereasereferălafaptulcădateletrebuiesăfieușoradaptabilela
schimbărilecarepotapărea(actualizareastructurii,tipurinoidedateetc.);
•Eficiențaareînvederestocareașiprelucrareadatelor,caretrebuie.[2]
1.2Bazededateorientateobiect(BDOO)
1.3Bazededatedistribuite(BDD)
Obazadedatedistribuita(BDD)esteocolectiedebazededatelogicinterconectate
distribuiteintr-oreteadecalculatoare.
Obazădedatedistribuităesteobazădedatecontrolatădeunsistemdegestiunea
bazelordedate(DataBaseManagementSystem,DBMS),încaredispozitivelede
stocareadatelorsuntatașateînmoddistribuitlamaimultecalculatoare.Aceste
calculatoarepotorisăseaflefizicînaceeașilocație(sală,clădireetc.),orisăfie
dipersateîntr-orețeadecalculatoareinterconectate.
Porțiuneauneibazededatedistribuiteatașatălaunulsingurdintrecalculatoarele
involvateestenumităpartițiesaufragment.Fiecarepartițieauneibazededate
distribuitesepoatereplica(duplica)identicîntr-oaltălocație,deciînaltcalculatordin
rețea,cuscopulmăririisiguranțeiînfuncționare(fiabilității).Pebazaacesteistructuri
redundante,eventualelegreșeli/defecteînfuncționaresepotdemulteorirepara"în
zbor",decifărăîntrerupereafuncționării,similarîntr-ooarecaremăsurăcuprincipiul
matricilorcudiscurihardmultipledetipRAID.[3]

2.UtilizareMySQLsiPHP
2.1NotiunigeneraleMySQL
TermenuldeSQLprovinedelatraducereaînlimbaenglezășianumeStructured
QueryLanguage.Acestaesteunlimbajdeprogramarespecialfolositpentru
manipulareabazelordedaterelaționale(RDBMS).Acestaarecascopintroducerea
datelor,folosireainterogăriidatelor,actualizarea,ștererea,editareadateloraflateîn
bazadedatecâtșicontrolulaccesuluilabazadedaterespectivă.Estecelmaipopular
limbajutilizatînceeaceprivescsistemeledegestiuneabazelordedate(SGBD)
relaționale.Caoprezentareaunuiscurtistoric,limbajulSQLafostdezvoltatdecătre
companiaIBMînanul1974,iarulteriorlafinalulanilor’70companiaRelational
Software,Inc.,înprezentOracleCorporationavăzutpotențialulacestuilimbajșiși-a
dezvoltatpropriulSQL.Duupăimplementareaînanul1979aprimeivariante
comercialedeSQLdecătreOracle,ceidelaIBMauapărutșieicupropriilevariante
pepiață.Amdefinitmaijoscelemaiimportantefuncționalitățialelimbajului:Se
potexecutainterogăriîmpotrivabazeidedateSepotrecuperadatedincadrulbazei
dedateSepotinsera,actualizașiștergedatedinbazadedateSepotcreamai
multebazededateșitabeleSepotcreaproceduristocateînbazadedateSepot
setapermisiunipentruavizualizaanumitetabelesauproceduriLimbajulSQLeste
divizatînmaimulteelementeundeseregăsesc:1.Clauzele,caresuntcomponenteale
instrucțiunilorșialeinterogărilor.Lafelcaopropoziție,oinstrucțiuneSQLare
clauze.FiecareclauzăefectueazăofuncțiepentruinstrucțiuneaSQL.Maijosle-am
definitpecelemaiimportante.SELECT–listeazăcâmpurilecareconțindatede
interesFROM–listeazătabelelecareconțincâmpurilelistateînSELECT
WHERE–criteriiledecâmpcetrebuieîndeplinitedefiecareînregistrarepentruca
aceastasăfieinclusăînrezultate.ORDERBY–Specificămodalitateadesortarea
rezultatelorGROUPBY–într-oinstrucțiuneSQLcareconținefuncțiiagregate,
listeazăcâmpurilecarenusuntrezumateînclauzaSELECT.HAVING–definește
condițiiledelaSELECT202.Instrucțiunile,caresuntformatedincuvinterezervate
șicuvintedefinitedeutilizator.Acesteasuntclasificatelarândullordinmaimulte
punctedevedere:A.Instrucțiunidedefinireadatelor–permitdescriereastructurii
bazeidedate.Spreexemplu:CREATEDATABASEnume_bdB.Instrucțiuni
pentruselecțiadatelor–cuvântulcheieesteSELECTSELECT[domeniu]
listă_selecțieC.Instrucțiunipentrumanipulareadatelor–implementareaacestorase

faceprininterogăriledeacțiune.Celemaiimportantesunt:CREATE,INSERT,
UPDATEșiDELETEINSERTINTOnume_tabel(câmp1,câmp2…)VALUES
(valoare1,valoare2…);3.TermeniiSQL-fiecareclauzăesteformatădintermeni
comparabilecupărțiledevorbire.Spreexemplu:Identificator-Unnumepecareîl
utilizațipentruaidentificaunobiectdinbazadedate,cumarfiunnumedecâmp.
Operator-Uncuvântcheiecarereprezintăoacțiunesaucaremodificăoacțiune.
Constantă–ovaloarecarenusemodifică,precumunnumărsauovaloareNULL
Expresie-Ocombinațiedeidentificatori,operatori,constanteșifuncțiicarese
evalueazălaosingurăvaloare
SELECT SelecteazăînregistrăridinBD
UPDATE ActualizeazădateledinBD
DELETE ȘtergedatedinBD
INSERTINTO Insereazăonouăînregistrareîn
BD
CREATEDATABASE Creeazăonouăbazădedate
ALTERDATABASE Modificăobazădedate
CREATETABLE Creeazăunnoutabel
ALTERTABLE Modificăuntabel
DROPTABLE Ștergeuntabel
CREATEINDEX Creeazăunindex
DROPINDEX Ștergeunindex
MySqlesteunsistemdegestiuneabazelordedaterelațional,produsdecompania
suedezăMySQLABșidistribuitsubLicențaPublicăGeneralăGNU.Estecelmai
popularSGBDopen-sourcelaoraactuală.Deșiestefolositfoartedesîmpreunacu
limbajuldeprogramarePHP,cuMySQLsepotconstruiaplicațiiînoricelimbaj
major.ExistămulteschemeAPIdisponibilepentruMySQLcepermitscrierea
aplicațiilorînnumeroaselimbajedeporgramarepentruaccesareabazelordedate
MySQL,cumarfi:C,C++,C#,Java,Perl,PHP,Python,FreeBasic,fiecaredintre
acesteafolosinduntipspecificAPI.MySQLvinecuointerfațăgraficădestulde
interactivăatâtpentruîncepătoricâtșipentruavansaținumitphpMyAdmin.Pentrua
administrabazelededateMySQLsepoatefolosimodulliniedecomandăsau,prin
descărcaredepeinternet,ointerfațăgraficăMySQLAdministratorșiMySQLQuery

Browser.Unaltinstrumentdemanagementalacestorbazededateesteaplicația
gratuită,scrisăînPHP,phpMyAdmin..LimbajulMySQLaremultefuncții,darprintre
celemaiimportanteseregăsesc:Esteunsistemdebazededatefolositînpaginile
webEsteunsistemdebazededatecareruleazăpeunserverEsteidealși
pentruaplicațiiledezvoltatedarșipentrucelemaipuțindezvoltateEstefoarte
rapid,deîncredereșiușordefolositMySQLfoloseștelimbajulSQLstandard
LimbajdeprogramareavansatcareruleazăpeunnumărdeplatformeEstegratuit
pentrudescărcareșiutilizareEstedezvoltatșidistribuitdeOracleCorporation
DatelefolositeînbazadedateMySQLsuntstocateîntabele.Untabelestedefinit
printr-ocolecțiededateșiconțineunanumitnumărdecoloaneșiderânduri.Bazele
dedatesuntfolositoarepentruastocainformațiapecategorii.
2.2Paginiwebstatice
Site-urileWebsepotcaracterizadupăfoartemulțiindicatori,darcelmaiimportant
indicatorestesubiectuldeactivitate(conținutul)site-ului.Tehnologic,site-uleste
alcătuitdintipuridedateșiinformațiistatice,produseșiservicii,anunțuri,formulare
online,clipurivideo,imaginistatice,efectedinamiceșimultealtele.Subiectul
site-uluiWebdiferăînfuncțiedeideeautilizatorul,spreexemplu:blog-uri,portaluri
Web,ziareWebșiaproapeoricealtceva.Paginilestaticenuschimbăconținutulși
aranjareageneralălafiecarevizităatâtatimpcâtnuintervinewebmasterulsau
programatorulpentrualeactualiza.Deasemeneapaginilestaticepotreprezenta
documenteHTMLstocatecașifișiereînsistemșisuntdisponibileîncadrul
serveruluiHTTP(URL-urilecareauterminația“html”nusuntîntotdeaunastatice).
Totodată,intepretareaacestortermenipotincludeșipaginilewebstocateînbazade
dateșipotincludepaginiformatateincluzândtemplate-urișifolositeprinaplicația
serveratâtatimpcâtpaginafolositănupoatefischimbatășiprezentatăînmod
esențial.10Paginilestaticesuntaccesibilepentruconținuturilecareniciodatăsau
rareoriaunevoiesăfieactualizate.Menținândunnumărmarealpaginilorstaticeca
fișierepoatefidenepracticatfărăuneltelenecesare,cumarfiStaticsitegenerators
careestedescrisînsistemultemplate-uluiWeb.Oricepersonalizaresauinteractivitate
trebuiesărulezetipclient,fiindrestrictivă.PaginileWebstaticesuntalcătuitedin
documentespeciale,alcăuitelarândullordintextșilimbajedemarcare.Pagina
stocatăînbrowserestedecelemaimulteoriundocumenthypertextmarking

language,afișatăexactînformaconcepută.Serverulareroluldeafurnizapagina
respectivă,fărăcaaceastasăsufereschimbări.Acestgendepaginisuntcreatede
obiceiînFlashsauînHTML,neputândfimodificatăfărăintervențiaunui
programatorsauwebmaster.Site-ulstaticestedefinitprintr-unnumărlimitatde
paginișiunformatfixalacestora.Fiecarepaginăreprezintăundocumentseparat,
singuramodalitatedeamodificasite-ulstaticestedeaaccesaseparatpaginileșisă
fieeditatcodulHTML.PrincipalelecaracteristicialepaginilorWebsunt:Conțin
numaielementeHTMLCodulsursădinbrowseresteasemănătorcucelal
fișieruluistocatNuoferăinteractivitateAvantajelefolosiriiunuisitestaticsunt
următoarele:EstepotrivitcompaniilormiciConfigurareasefacefoarterapid
CostulacestuisiteestemaimiccomparativcuceldinamicPedealtăparte,
dezavantajelefolosiriiacestuitipdesiteconstăîn:Nupoatefiactualizatdecătre
utilizatorCosturileîntrețineriiunuiastfeldesitesuntfoartemariNupotfi
integrateforumuri,magazineonlinesaurețeledesocializarePersoanelecare
actualizeazăsite-ulaunevoiedepregătirespecialăÎnconcluzie,paginileWeb
realizateînHTMLaudezavantajulcăsuntstatice,conținutullorneputândfi
modificatodatăceaufostîncărcatepeunserverdecâtaducându-leînapoipentruafi
editate.Pedealtăpartewebsite-urilestaticesuntprocesatemairepedepentrucănu
solicităserveruluialteoperațiuniînafarădelivrareacătrevizitatoriaconținutului
dejaîncărcatînfișiere.
2.3Paginiwebdinamice
PaginileWebdinamicesuntfolositecândsedoreștemodificareadinamicăa
conținutuluiWeb.Acestetipuridesite-urisuntmultmaiflexibileșimaiușorde
gestionat.
Configurareaacestoraestemaicomplexădeoareceseutilizeazălimbajulde
programarePHP,însăodatăconfiguratestemultmaiușordemodificat.Folosind
CMS-ul(ContentManagementSystem),conținutulsite-uluipoatefimodificat,
actualizat,sepotcreanoipagini,iarconținutulalesdecătreutilizatorpoatefișters.
Modificărileserealizeazărapid,nunecesităcunoștințedeprogramareșisepot
desfășurachiarșicândunvizitatoracceseazăpaginarespectivă.
AcestgendepaginiWebsecaracterizeazăprinconținutullordinamicșipoatediferi
lamaimulteaccesări.DeexemplulaacelașiURLconținutulpaginiipoatevariaîn
funcțiedediferițiparametrii,spreexemplulocațiageograficăautilizatorului,orasau
paginilevizitateanterior.Unsitedinamicpoateficondusdecătreunutilizator
printr-ointerfațădeadministrare,însăacelutilizatorvatrebuisăaibăcunoștințeale
browseruluiWebrespectiv.Prinintermediulacestuiprocessepotefectuamaimulte
operațiunideadăugaresaumodificareconținut(texte,imagini,multimedia),de
schimbarealayout-ului,demodelareadiferiteloracțiunidinrespectivulsite
(validareacomentariilor,asite-urilorintroduseîntr-undirectorWeb),deadministrare

anewsletter-ului(creare,editarenewsletter,trimitereapecategoriideuseri),câtși
alteacțiuniînfuncțiedenaturasite-uluișidecomplexitatealui.Acestgendesite
oferăutilizatoruluioseriedeavantajeprecum:Controldeplinasuprasite-ului
Posibilitateadeimplementareaunuimagazinonlineîninteriorulsite-ului
Diminueazăcantitateadecod,generându-setipuridiferiteînfuncțiedesituațiiPede
altăparte,dezavantajeleutilizăriiunuisitedinamicsunt:Configurareaunuisite
dinamicnecesităoperioadămailungădetimpCostulinițialestemairidicat12
Actualizareaacestorgenuridesite-uriestefoarteimportantădeoarecelaproiectareași
implementareaacestorelementetrebuieluateînconsideraremaimulteaspecte,
printrecaremodulîncarevorfiactualizatedateleșicosturileoperațiunilorde
actualizareperiodică.Pedealtăparte,comunicareacucliențiiestevitalăpentrucă
aceastăcomunicareserealizeazăprinsite-ulrespectiv,presupunândinserareade
formularedee-mailpepaginilesite-ului.Deasemenea,sepoatefolosiun
autoreponderprincaresevatrimiteautomatcătrevizitatormesajulderăspunsșide
asemeneamulțumindu-ipentruvizită.Înconcluzie,trebuiecunoscutfaptulcă
website-uriledinamicesuntconsumatoaremarideresursedinparteaserverului,dar
suntmaiaccesibileînvedereaconținutului.Pentruafidinamicunsitetrebuiesă
rulezeunlimbajdeprogramarebazatpescript-uri,categorianumindu-se“Server-Side
ScriptingLanguage”carepermitegenerareadinamicăaconținutuluiafișatînfuncție
desolicitareafiecăruivizitatorînparte.Îngeneral,oriceCMSinstalatpeserver,spre
exempluWordPress,Joomla,Drupalșimultealtelevageneraunwebsitedinamic.
Acesttipdesoftwarefoloseștescript-uripentruafacelegăturacubazadedatedin
caresevorextrageinformațiilenecesarealcătuiriisite-ului.Înplus,paginadinamică
oferăposibilitățideinteracțiuneînfuncțiedecaracteruldinamic:paginidinamicepe
parteadeclientșipaginidinamicepeparteadeserve
2.3ConceptePHP
PHPesteunlimbajdeprogramareorientatspreprogramareawebdinamică.Sepoate
folosiîncombinațiecuHTML,Javascript,CSS,AJAX,PERLsiMysqlpentrua
realizasite-urideocomplexitateridicată.Laoraactualătoatesite-uriledinamicesunt
realizateînacestlimbajdeprogramaresauîncombinațiecualtelimbaje.Conform
statisticilor(Wikipedia)esteinstalatpe20demilioanedesite-uriwebsipe1milion
deservereweb.Esteunlimbajdeprogramaregratis.Acestlimbajdeprogramare
poatefiinclusîncodulHTMLsaupoatefifolositcatemplatepentrusistemeleweb,

pentruconținutulpaginilordewebmanagementsauframeworkuriweb.CodulPHP
estedeobiceidescifratdeuninterpretorcașiunmodulînserverulwebsaucaun
executabil.ServerulwebcombinărezultateleacoduluiPHPinterpretatșiexecutat,
carepoatefioricetipdedată,incluzândimaginicupaginawebgenerată.Acestcod
maipoatefiexecutatcuajutorulinterfețeiauneiliniidecomandășipoatefiexecutat
pentruaimplementaaplicațiilegrafice.Pentruadefinidianmismpaginilorwebcreate,
limbajulPHPnevaajutasăefectuămacestlucru.Acesttipdelimbajestebenefic
pentrucreareaaplicațiilorwebdinamice,undesepoatedezvoltașiointerfațăgrafică
pentruaveniînajutorulutilizatorului.SintaxaPHPprovinedinlimbaengleză–
HypertextPreprocesor.Tehnologiarespectivăadevenitînultimultimpceamai
interesantăunealtănunumaipentrudezvoltatoriiweb,cișipentruprogramatorii
începători,dezvoltândofoartemaresimplitateînutilizare.Spredeosebirede
Javascript,careesteunlimbajdescripting,PHPesteuninterpretorpeparteadeserver.
Pentruaputeafolosiaceastătehnologieavemnevoiedeunserverweb(Apache)șide
instalareapachetuluiPHP.Acesttipdefuncționalitateoputemobservafoartebine
atuncicândseîncearcăconectareabazeidedateefectuataînlimbajulMySqlprin
interfațaphpMyAdminculimbajulHTML.Spreexemplu,înproiectulmeuam
realizatbazadedateînphpMyAdmin,iardupăaceeacuajutorullimbajuluiPHPam
efectuatlegăturadintreaceastașipaginawebundevreausămiseafișezedatele
stocateînbazameadedate.Spreexemplu,oformăgeneralăacoduluiPHParatăîn
felulurmător:
<?php
Echo”PrimulmeuscriptPHP”;
?>

Bibliografie
1.LunguIon,BothaIuliana,cursBazedeDate,ASEBucurești
2..LunguIon,BazedeDateOraclelimbajulSQL,Ed.ASE,București,2007
3.https://ro.wikipedia.org/wiki/Baz%C4%83_de_date_distribuit%C4%83
4.

Similar Posts