Enrera
Mòdul 4

Creació i gestió d'entorns web dinàmics (PHP)

  Pràctica
1
2
3
4
   
Exercicis
Exercicis
 
   Anàlisi de bases de dades    
 

L'objectiu d'aquesta pràctica consisteix a analitzar diferents motors de bases de dades existents en el mercat. Conèixer els punts febles i forts de cada producte.

 
Introducció
   
Abans d'existir les bases de dades, s'utilitzaven fitxers seqüencials com a magatzem de dades; eren d'accés molt ràpid, però només de manera seqüencial. Per accedir a una posició havíem de llegir-nos el fitxer sencer. Com a millora d'aquest sistema, sorgiren els fitxers indexats, on l'accés ja podia ser aleatori, i es podia accedir a la posició desitjada del fitxer.
   
  A mesura que la tecnologia avançava, els programes i les dades cada vegada eren més complexos i grans. Es requeria un gran magatzem que garantís un determinat nombre de condicions i que permetés operacions complexes sense que es violessin aquestes restriccions; a més, cada usuari que accedís a unes dades havia de protegir el seu entorn per protergir-les de la resta d'usuaris. Neix la necessitat d'accés multiusuari.
   
  Davant d'aquestes necessitats, apareixen les bases de dades jeràrquiques, on les dades se situen seguint una jerarquia. A manera d'exemple, podem enunciar que un/a alumne/a està matriculat de N crèdits, o un professor té N alumnes. Aquestes bases de dades tenien el problema que els accessos a les dades eren unidireccionals, i el camí invers era possible però molt complicat, i el temps de càlcul era considerable. A tall d'exemple, podíem esbrinar fàcilment els alumnes que tenia un professor, però era difícil conèixer el professor de cada alumne/a.
   
  Per millorar aquestes limitacions i introduir el concepte de relacions entre les taules d'una base de dades, apareixen les bases de dades relacionals ( RDBMS). Aquest sistema va aportar dos pilars fonamentals a la tecnologia de les bases de dades, l'establiment de les propietats ACID i un llenguatge comú d'accés a les dades, SQL.
   
  Com que les RDBMS han de suportar les propietats ACID, mai seran tan ràpides com treballar directament sobre fitxers, encara que internament treballin sobre ells. La majoria de desenvolupadors prefereixen sacrificar una mica de velocitat enfront de les grans funcionalitats que ofereixen.
   
  I gràcies a l'estàrdard SQL, tenim la possibilitat de demanar quines dades volem, sense especificar com s'han d'extreure i/o presentar.
   
  Bases de dades Open Source
   
El món de les bases de dades és immens, però nosaltres ens centrarem majoritàriament en les bases de dades (Open Source - codi obert). Aquestes BD tenen la particularitat de tenir versions que estan sota llicència GPL, això fa que per a aplicacions educatives i divulgatives, el seu cost sigui mínim o nul. En aplicacions comercials el cost de les llicències comparat amb les BD propietàries és purament testimonial.
   
 

Podem entendre que les modificacions i millores constants que es van produint en els productes analitzats fan que aquesta documentació sigui simplement introductòria, ja que abans de prendre una decisió haurem d'analitzar les diferents opcions que ens ofereix el mercat en aquell moment. Analitzarem, doncs, quatre exemples de bases de dades:

 

El MySQL
   
  Els orígens del MySQL daten de 1979, amb una eina de BD anomenada UNIREG, creada per Michael Widenius para a l'empresa sueca TcX. El 1994, TcX necessitava un servidor SQL per al desenvolupament d'aplicacions web. Van provar alguns servidors comercials per a les immenses taules de TcX, pero van trobar que eren massa lents. Fins i tot es va analitzar l'mSQL, però no implementava alguna de les característiques que TcX necessitava. Es va encarregar a Widenius el desenvolupament d'un servidor de bases de dades, amb un interfície semblant al de l'mSQL, ja que en aquell moment estaven disponibles algunes eines gratuïtes per a l'mSQL que es podien adaptar amb poc esforç al nou servidor.
   
  Va ser el 1995 que David Axmark de Detron HB va animar TcX perquè publiqués el MySQL a Intenet, i que es construís mitjançant la utilitat 'GNU Configure'. El MySQL no és un projecte Open Source realment, ja que sota certes condicions és necessària una llicència. Tot i això, el MySQL és un dels preferits dins la comunitat Open Source.
   
  El MySQL no es limita a la comunitat Open Source, també és portable a sistemes operatius comercials com el Windows (NT/2000/95/98/ME/XP), Solaris i altres. Un dels èxits de la seva expansió ha estat la inclusió d'aquesta BD en quasi totes les distribucions Linux, a més d'estar disponible en quasi totes les plataformes hardware i sistemes operatius. I el gran propulsor d'aquesta base de dades ha estat sens dubte el llenguatge interpretat per a web PHP, que ha fet que el MySQL creixés al mateix pas que ho ha fet la comunitat del PHP.
   
  Quan arribà la popularitat del Linux i el PHP com a plataforma per a aplicacions web de baix cost, es va trobar que l'única base de dades gratuïta que oferia les característiques necessàries era el MySQL. El MySQL era al lloc adequat en el moment adequat, i va aprofitar l'ocasió.
   
 

MySQL

   
  Característiques del MySQL
   
  És possiblement una de les BD més ràpides que podem trobar, a més de consumir pocs recursos de la màquina on està instal·lada.
   
 
Comparativa MySQL vs altres motors de BD
   
 

Es tracta d'un sistema de BD relativament fàcil d'instal·lar i administrar enfront d'altres productes del mercat. Es recomana per iniciar-se en el món de les BD, ja que disposa d'infinitats d'utilitats, manuals i documentació que la immensa comunitat d'usuaris s'ha encarregat de realitzar desinteresadament.

   
  La gestió de la base de dades utilitza l'SQL (Structured Query Language), a més d'utilitzar protocols de comunicació de bases de dades desenvolupades per Microsoft, mitjançant ODBC o ADO.
   
  Ofereix una gran capacitat de connectivitat, ja que molts clients es poden connectar simultàniament al servidor, i poden utilitzar alhora diferents BD. Es pot accedir de forma interactiva utilitzant diferents interfícies que permeten introduir i visualitzar les consultes. A més, disposa d'una gran varietat d'interfícies de programació per al seu accés (C, Perl, Java, PHP,Python...).
   
  Es tracta d'una BD preparada per al treball en xarxa i s'hi pot accedir des de qualsevol lloc d'Internet com a resultat de la seva gran fiabilitat en matèria de control de permisos i seguretat d'accés
   
  A més dels manuals i fòrums de discussió, molt participatius, el MySQL ofereix un servei de contractes de manteniment i suport per als desenvolupadors o les corporacions que necessitin un acord més formal; aquest terme és fonamental per al desenvolupament d'aplicacions empresarials.
   
  En versions antigues, el MySQL no compleix totes les propietats ACID , però en versions més actuals, ja s'ha adaptat més el sistema a les característiques d'una RDBMS. En les versions 3.23 no complia la integretat referencial, amb possibles problemes d'inconsistència de dades, i tampoc tenia transaccions. En les actuals versions diverses deficiències han estat resoltes majoritàriament. Això ens ha de fer pensar, ja que si en aquell moment, tot i no complir el
100 % dels requisits d'una veritable RDBMS, oferia altres característiques que la consideraven idònies per al seu ús, les versions actuals consoliden més encara l'opció del MySQL ja sigui en l'àmbit personal com empresarial.
   
  El PostgreSQL
   
   
  Podem afirmar que el PostgreSQL és la segona BD més popular implantada en el mercat Linux. El PostgreSQL es va dissenyar com una base de dades orientada a objectes, és a dir, una ORDBMS, amb la qual el concepte de 'taules' el substituïm per un 'objecte', i es permet crear nous tipus de dades, fer herències entre objectes, etc.
   
 
PostgreSQL
   
  El PostgreSQL és, sens dubte, una de les bases de dades que ha aportat més implementacions per als experts, disposa d'allò que al MySQL li falta, però també li falta tot allò que el MySQL té. El PostgreSQL té transaccions, integritat referencial, vistes i multitud de funcionalitats, a canvi de convertir-se en un motor lent i pesat.
   
 
PostgreSQL
   
  La versió 7 va incorporar una meravella anomenada MVCC (Multiversion Concurrency Control), gràcies a la qual els bloquejos d'escriptura actuen només a la sessió del client, i no en les dels altres clients
   
 
Web de PostgreSQL
   
 

Darrere d'això continua havent-hi errors inexplicables, el dimoni continua morint de tant en tant, continua sent mulithreading (cada connexió un procés), i els processos continuen deixant connexions obertes i forats en la memòria, a més de la gran quantitat de memòria que es desaprofita. Falta afinar més els permisos d'accés dels usuaris a les taules, i això comporta problemes serioros en servidors web.

   
  Tot això fa que el PostgreSQL sigui una RDBMS poc viable per a un servidor d'Internet, però sí per a un servidor amb poques connexions que requereixi moltes funcionalitats, com un e-comerce. Podem dir que es tracta d'un sistema que respon a poques connexions però complexes, en cas d'operacions senzilles i moltes connexions, el sistema resulta poc recomanable pel que fa a velocitat i recursos emprats.
   
  El MySQL i el PostgreSQL es van convertir en rivals i van esclatar batalles de partidaris d'un i de l'altre. Amb l'alliberació de les BD comercials i l'entrada de les grans empreses al món Linux, s'ha modificat el panorama. Amb l'aparició de la versió 7 del PostgreSQL, s'esperava una nova era, pero sembla ser que no ha estat així; el MySQL ha contraatacat amb la versió 4 i i superiors, que han implementat algunes mancances de versions anteriors i han millorat algunes de les seves virtuts.
   
  A hores d'ara, el PostgreSQL ofereix un producte competent per a experts i orientat a objectes, però encara està lluny d'implantar el seu sistema com a referent de les BD a Internet; és més recomanable en altres entorns.
   
  La InterBase
 

 

  Borland, seguint la política d'alliberar les eines de desenvolupament, va alliberar la InterBase. Es tracta d'una bona BD, amb uns setze anys d'antiguitat dins del sector de les bases de dades comercials. La InterBase, a més, ofereix eines de pagament per al món comercial.
   
  Podem dir que ha estat una de les primeres BD Open Source a ser compatible amb l'SQL92 en el nivell d'entrada (recordeu que el MySQL, el PostgreSQL i l'mSQL, no ho són). Això significa que podem adaptar-la a qualsevol aplicació que funcioni sobre una BD compatible amb l'SQL92, com l'Oracle, el DB2, o l'Informix.
   
  Quasi tots els gestors de Backup suporten la InterBase, i també disposa de gestors remots per al Windows, com el Marathon. La InterBase és un producte molt professional, preparat per a qualsevol projecte que necessiti una BD fiable. Té la majoria de funcionalitats d'una base de dades comercial, no consumeix massa recursos, i té una velocitat pròxima al MySQL, amb algunes funcionalitats del PostgreSQL.
   
  De totes maneres, Borland encara no ha alliberat les eines més avançades, i la comunitat d'usuaris que disposa és molt minsa comparada amb altres motors de BD. Si Borland vol que la InterBase triomfi i s'endinsi en el món Linux, caldrà obrir-se a la comunitat de desenvolupadors.
   
 

Web d'Interbase

   
 
InterBase
   
  SAP DB
   
 

La SAP DB és la base de dades desenvolupada inicialment per suportar l'ERP anomenat SAP R/3. Les últimes versions de la SAP R/3 contenen l'ordre de 10.000 taules. Amb això deduïm que és una base de dades preparada per moure grans quantitats de dades. Aquesta base de dades té un mode de compatibilitat amb l'Oracle 7.

   
  Sens dubte, és la més difícil d'administrar i instal·lar: no té scripts per a l'arrancada automàtica, els hem de crear nosaltres igual que els scripts per crear noves taules, encara que potser sigui la més professional. No és una base de dades per a principiants, i hi ha molt poca documentació a la xarxa.
   
  Amb la SAP DB tenim el control sobre els fitxers on s'ubica la BD, i hem de crear tres fitxers : sistema, log i dades. Això permet sobrepassar els límits de memòria de fitxer independentment del sistema operatiu. Aquesta capacitat permet a la SAP DB admetre bases de dades molt grans comparades amb altres motors que depenen de les limitacions del mateix sistema operatiu, respecte a la capacitat i allotjament dels fitxers que requerim.
   
 
SAPDB
   
 
SAPDB
   
  Podem entreveure que la SAP DBés una molt bona base de dades però pesada i poc moderna. És capaç de guardar immenses quantitats de texts i nombres, però no aspectes multimèdia. Però la pitjor característica roman en la complexitat de l'administració. El PHP no té una API nativa d'accés directe sobre la SAP DB, i el suport ODBC, mai és tan ràpid, ni aprofita tots els avantatges d'una interfície especiíica.
   
  La SAP DB té molts bons fonaments, però haurem d'esperar com reacciona la comunitat PHP, ja que de moment no s'ha demostrat massa interès per aquest motor. L'equip de la SAP hauria de millorar l'administració i la instal·lació, a més de promoure més informació sobre el seu producte.
   
  Conclusions
 


  Hem intentat donar unes pinzellades de les possibles alternatives que tenim, i segons el projecte que hem de dur a terme, la possible solució variarà, ja que necessitem prioritzar unes característiques enfront d'unes altres que podrem sacrificar, o que establim que no són tan prioritàries per al nostre sistema.
   
  No afegirem immensos quadrants comparatius, ja que segons la font, hi ha autèntiques baralles per establir qui és primer o qui va davant del primer. Hem de partir de la sempre certa afirmació: '"No hi ha rés perfecte". I no hem de perdre de vista les fites que volem assolir en el nostre aplicatiu (fiabilitat, qualitat, preu i suport).
   
  Es tracta de buscar una motor de base de dades que el puguem integrar dins d'un servidor web Apache, i accessible des del PHP, per a la creació d'entorns web dinàmics. Davant d'això, la resposta és majoritària: l'anomenat trio infernal (MySQL, APACHE, PHP) és la combinació més encertada, fiable, estable i documentada que tenim actualment.
   
Atenció !

Hi ha una adreça web que pertany al MySQL, en la qual es pot sol·licitar una comparativa del MySQL amb altres motors de bases de dades existents en el mercat. Doneu-hi un cop d'ull, és interessant:

 
 
http://www.mysql.com/information/features.html
 
Amunt
Pràctica
1
2
3
4
Exercicis
Exercicis