Introducció¶
En una era definida per la transformació digital, recopilar, accedir i transformar les dades s'ha convertit en el nucli de la gran majoria d'aplicacions informàtiques. Però, què són les dades? Podem definir les dades com una representació d'una informació del món real que és emmagatzemada per després poder ser tractada per diferents finalitats.
En aquest tema s'estudiaran els diferents tipus d'emmagatzemar aquestes dades.
Fitxers i directoris¶
Abans que les aplicacions informàtiques es convertiren en l'eina principal per a gestionar les dades, les empreses emmagatzemaven la informació en calaixos, carpetes i arxius. El fet de recopilar, recuperar i tractar aquestes dades requeria d'un procés manual lent. Malgrat això, el sistema és senzill i fàcil d'utilitzar.
La informàtica ha intentat mantindre la nomenclatura i l'estructura perquè es pareguen al que els usuaris utilitzen manualment. Es continua parlant de fitxers o arxius, carpetes o directoris, formularis, etc.
En informàtica, els fitxers són estructures de dades ordenades, creats i gestionats pel sistema operatiu. Els fitxers s'identifiquen per un nom, que pot incloure una extensió, per indicar el tipus de dades que conté.
Fitxers de text¶
Depenent de com es representa la informació, podem diferenciar els fitxers en fitxers de text o fitxers binaris.
Els fitxers de text són fitxers que contenen text i, generalment, poden ser llegits per l'usuari. Algun exemple d'aquests fitxers són:
- Fitxers de text pla.: Fitxer que sols emmagatzema text sense format (.txt).
- Fitxers de configuració: Fitxers que s'utilitzen per configurar el sistema operatiu o alguna aplicació en concret (.ini, .conf, .env, .json, .yml...). Normalment aquests fitxers estan escrits mitjançant un llenguatge de marques.
- Fitxers de codi font: Contenen les línies de codi que componen un programa, escrites en un llenguatge d'alt nivell (que pot entendre una persona) (.java, .c, .cpp, .py, .js, .php...).
- Fitxers anotats: Fitxers que utilitzen un llenguatge de marques per representar dades i informació addicional sobre aquestes (.xml, .html, .json, .yml, .css).
- Fitxers de text enriquit: Guarden text, però permeten oferir una visió del text amb format (.rtf, .tex, .md)
Fitxers binaris¶
Els fitxers binaris són fitxers que representen la informació utilitzant una codificació binària (zeros i uns) i què, generalment, no poden ser llegits a simple vista. Aquests fitxers necessiten d'aplicacions específiques per poder accedir a la informació emmagatzemada.
Info
Podeu provar d'obrir qualsevol d'aquests fitxers en un editor de text (Notepad, per exemple) i veureu símbols sense cap classe de sentit.
Contingut del fitxer de la Figura 1
ÿØÿà JFIF ÿÛ C
%# , #&')*)-0-(0%()(ÿÛ C
(((((((((((((((((((((((((((((((((((((((((((((((((((ÿ Ô" ÿÄ ÿÄ ÿÚ æ›…Ãˆr)ëäHCª—”º°9pëA9K©YÉÃÝóÖuåÏrôJᦈG4hž^Ϫßâþ‰ž™gÕX¼¹tIyòܧ™žˆ/Êúß×–»³_¬Ýe7øNxÕ%ÁQtŠÌ¤½”³;ÐÍ-s„ãäéd³‰ïü'¿1«ã›ÓruÁ6E¶DE°C´ßH[]æ'¡—)„ ¢*hŠœHDc4V¬ŒB»«8QÚ[…nF#b1ˆÆ¶+2-Š\f´œµ±iÇôœÞÊLg›ÑšÎ›ëŽaÒƒÔy«7(Ä”ÔP™dç¬ó|ÏåMUeòΪ¼ÔÙ.uiÔÍŠu³ÔøÉfûÊü
Ì{WäO`¸»ôuyüϯÍäs×¢ó´Ù‰ªüún¦ÕôzòîÆ XD\Ù6°si6°si[› æŒ},uç=ï…÷vP§Þ 4À´ ` -VVrê"Ô¬±‚ !
-&ˆ¦…]•™[”µ+UT¬QR²54AN$cd
•Ñ³Káˆóú=(Îü*¢ü±¯Êú¯%JPºn1¹êevãÞuëãm¹¶FÜOn|våÕŸÅ2ȧ^—WÍè·ÔÝåú²ò¹½ÎOª‹ªß
réÒxw಺î¤ÏeVrº´gÑ›uÔܾ“~‡-©bm‰¶&؆ÄÛ"¹˜·b<ÿ ºðÞæÊc%/LLbc &
Ð *²¢Z3è£"À &„€CBM
...
Alguns dels tipus de fitxers binaris més comuns són:
-
Fitxers multimèdia: Qualsevol fitxer multimèdia conté la informació en binari, tant siga imatges (.png, .jpg, .gif, ...), vídeos (.avi, .mpg, .mp4, ...) o àudio (.wav, .mp3, ...).
-
Fitxers comprimits: Fitxers que canvien la representació utilitzada "naturalment" en l'ordinador per representar les mateixes dades en menys espai, per tant, de manera comprimida. Cal fer una transformació per a obtindre o recuperar les dades d'aquest tipus de fitxers (comprimir i/o descomprimir). .zip, .z, .rar, .gz, .rar
- Executables: Programes informàtics escrits en llenguatge màquina. .exe, .class, ...
- Fitxers d'aplicacions: Fitxers amb un format específic per cada aplicació, des de documents de processament de text (.docx o .odt), .pdf_ o fitxers de Photoshop (.psd).
Directoris¶
En un sistema informàtic, un directori, també conegut com a carpeta, és una estructura d'organització utilitzada per emmagatzemar i gestionar arxius i altres directoris. Aquesta és una part fonamental de la gestió de l'arxiu del sistema operatiu i permet als usuaris organitzar els seus documents, aplicacions i altres dades de manera jeràrquica i estructurada.
Els directoris es poden organitzar en una jerarquia. Un directori pot contenir arxius i altres subdirectoris. A la vegada, aquests subdirectoris també poden contenir arxius i més subdirectoris, creant una estructura en forma d'arbre.
Bases de dades¶
Malgrat que les dades poden ser emmagatzemades mitjançant fitxers, aquest sistema pot provocar problemes:
- Redundàncies i inconsistències: El fet d'haver de transportar els fitxers i duplicar-los en cada dispositiu que vol ser utilitzat porta a la redundància de dades, que pot portar a inconsistències si les modificacions no es fan a escala global.
- Dificultat d'accés a les dades: Cada aplicació llegeix les dades d'una manera concreta, que ens pot portar inconvenients si hem d'importar i exportar constantment.
Per evitar els problemes anteriors, s'han dissenyat sistemes de gestió de la informació alternatius, com les bases de dades.
Una base de dades és un sistema de gestió de la informació que emmagatzema les dades d'una manera eficient i ordenada, sense redundàncies i les quals poden ser utilitzades per diferents aplicacions.
Avantatges¶
- Independència entre les dades i les aplicacions que accedeixen a aquestes.
- Atomicitat de les actualitzacions (evita inconsistències).
- Accés concurrent o simultani a les dades per part de diverses aplicacions.
- Menor redundància.
- Major seguretat en les dades. Es permet configurar i limitar l'accés a les dades per part dels usuaris.
Desavantatges¶
- Instal·lació costosa. El control i administració de les bases de dades requereix d'un maquinari i programari potent.
- Requereix personal qualificat per administrar i gestionar aquests sistemes.
Estructura¶
L'estructura de les bases de dades, típicament, segueix una estructura client/servidor i té la següent estructura:
- Usuaris: Els usuaris interactuen en una aplicació connectada a la base de dades. Aquesta aplicació pot permetre als usuaris consultar, modificar o explotar les dades.
- Aplicació: L'aplicació (programa informàtic) actua com a client i es connecta al sistema gestor de bases de dades (SGBD), en el servidor per recuperar o modificar les dades. L'aplicació es comunica amb el SGBD mitjançant un llenguatge comú, típicament el Structured Query Language (SQL).
- Sistema Gestor de Bases de Dades (SGBD, o en anglés DBMS, DataBase Management System): És el programari responsable de la creació i administració de bases de dades i gestionar la comunicació amb els clients. Normalment està instal·lat en un servidor. Aquest programari rep les peticions SQL dels clients i les tradueix en accions sobre la base de dades.
- Base de dades: Conjunt de dades emmagatzemades en un SGBD d'una manera ordenada i estructurada. Per exemple, en bases de dades relacionals, s'organitzen en taules i relacions.
Metadades¶
Una base de dades és autodescriptiva, en el sentit que conté una descripció d'ella mateixa. Per tant, les bases de dades també emmagatzemen descripcions de les dades que es guarden.
Aquestes dades de descripció s'anomenen metadades (dades sobre les dades). La forma i format de les metadades varia segons el SGBD utilitzat.
Les metadades es poden consultar per determinar les taules existents particulars, els índexs o altres estructures existents en la base de dades i es troben definides en les estructures que es coneixen com el diccionari de dades (DD).
Classificació de les bases de dades¶
Segons l'organització i estructura interna de les dades, podem classificar les bases de dades en les següents categories:
Bases de dades jeràrquiques¶
Aquest tipus de bases de dades organitza la informació d'una manera jeràrquica, és a dir, s'organitzen en una estructura d'arbre invertit on l'informació es guarda en cada node. De cada node, poden crear-se nodes addicionals. El primer node s'anomena arrel, i sobre aquest, es construeix tot l'arbre. Els últims nodes dels quals no descendeix cap node més s'anomenen fulles.
Aquest model va començar a utilitzar-se en 1992 i va arribar a ser un dels models més utilitzats, però amb el temps s'ha deixat d'utilitzar.
En aquest model Les connexions en l'arbre són fixes i l'accés a les dades es realitza d'una manera ràpida. No obstant això, el principal desavantatge és que no es permeten relacions de molts a molts (N:M).
Bases de dades en xarxa¶
Aquest tipus de bases de dades és molt similar al model jeràrquic, però en aquest cas, les dades s'organitzen en una estructura de graf, el que permet crear relacions de molts a molts (N:M).
Bases de dades relacionals o SQL¶
Aquest model de bases de dades és el més utilitzat en l'actualitat. Les bases de dades relacionals és basen en el Model relacional, enunciat per Edgar F. Codd en 1969. En aquest model, les dades s'organitzen en taules que poden estar relacionades enter elles.
Aquestes bases de dades també reben el nom de bases de dades SQL, ja que utilitzen en llenguatge SQL (Structured Query Language) per realitzar les consultes a la base de dades.
Avantatges¶
- El més utilitzat i conegut pels desenvolupadors.
- S'han elaborat moltes eines al llarg del temps per facilitar la seua gestió.
- L'atomicitat de les operacions en la base de dades. En aquestes bases de dades,
o es fa l'operació sencera o no es fa. Possibilitat de tornar enrere amb
rollback
. - Les dades han de complir requisits d'integritat.
Desavantatges¶
- L'atomicitat de les operacions penalitza el rendiment.
- L'escalabilitat, que encara que està provada en molts entorns, sol ser inferior a les bases de dades NoSQL.
Bases de dades NoSQL¶
La terminologia bases de dades NoSQL s'utilitza per englobar noves maneres d'organitzar les dades sense seguir el model relacional. NoSQL significa Not Only SQL.
Depenent de l'estructura interna d'aquestes bases de dades, les característiques i la utilització serà diferent. Es poden classificar en:
- Documentals: Les quals guarden la informació en documents. Exemple: MongoDB o Firebase.
- Gràfiques: Utilitzen grafs per modelar l'informació i són útlis per modelar relacions, com per exemple, en xarxes socials. Exemple: Neo4j o TypeDB.
- Clau valor: Les dades s'organitzen en tuples, que emparella una clau única amb un valor associat (com podria ser una agenda telefònica). Exemple: Redis.
Aquest tipus de bases de dades són flexibles, escalables i simplifiquen el desenvolupament d'aplicacions web i en el núvol.
Bases de dades orientades a objectes¶
Una base de dades orientada a objectes està dissenyada a partir del paradigma dels llenguatges orientats a objectes.
Avantatges¶
- Molta capacitat de modelat.
- Es poden definir tipus de dades a partir d'altres ja existents (herència, especialització, ...)
Desavantatges¶
- No existeix un estàndard.
- Complexa d'utilitzar.
Aquest tipus de bases de dades no ha arribat a utilitzar-se d'una manera global, ja que els llenguatges orientats a objectes han trobat maneres d'accedir a les bases de dades relacionals. Exemple: ObjectDB
Bases de dades objecte relacionals¶
Les bases de dades objecte relacionals es caracteritza per combinar els aspectes més rellevants de les bases de dades relacionals i les bases de dades orientades a objectes. Aquestes bases de dades permeten l'emmagatzematge d'objectes, però també permeten la utilització SQL, com les bases de dades tradicionals.
Bibliografia¶
- Material de Laura Villalba, Introducció a les bases de dades.
- Ahijado Sánchez, A, Bases de datos, Ed. Marcombo.
- https://ioc.xtec.cat/materials/FP/Recursos/fp_dam_m02_/web/fp_dam_m02_htmlindex/WebContent/u1/a1/continguts.html
- https://en.wikipedia.org/wiki/Graph_database
- https://en.wikipedia.org/wiki/Key%E2%80%93value_database
- https://www.tutorialspoint.com/object-and-object-relational-databases
- https://www.geeksforgeeks.org/difference-between-hierarchical-and-network-data-model/