En aquest tema, explorarem els diferents tipus de bases de dades i solucions d'emmagatzematge que es poden utilitzar en una arquitectura de sistemes. Entendre les opcions disponibles i saber com seleccionar la més adequada per a les necessitats específiques del sistema és crucial per dissenyar una arquitectura robusta i escalable.

Objectius d'Aprenentatge

Al final d'aquest tema, hauràs de ser capaç de:

  1. Comprendre els diferents tipus de bases de dades i solucions d'emmagatzematge.
  2. Identificar els avantatges i desavantatges de cada tipus.
  3. Seleccionar la solució d'emmagatzematge adequada per a diferents escenaris.

Tipus de Bases de Dades

  1. Bases de Dades Relacionals (RDBMS)

Les bases de dades relacionals emmagatzemen dades en taules amb files i columnes. Utilitzen SQL (Structured Query Language) per gestionar i interrogar les dades.

Exemples:

  • MySQL
  • PostgreSQL
  • Oracle Database
  • Microsoft SQL Server

Avantatges:

  • ACID (Atomicitat, Consistència, Aïllament, Durabilitat) garanteix la integritat de les dades.
  • Estructura ben definida i normalitzada.
  • Suport per a transaccions complexes.

Desavantatges:

  • Escalabilitat limitada en entorns de grans volums de dades.
  • Pot ser menys flexible per a dades no estructurades.

  1. Bases de Dades NoSQL

Les bases de dades NoSQL són dissenyades per emmagatzemar i recuperar dades no estructurades o semi-estructurades. No utilitzen SQL com a llenguatge principal.

Tipus de NoSQL:

  • Documentals: Emmagatzemen dades en documents JSON o BSON.
    • Exemple: MongoDB, CouchDB
  • Clau-Valor: Emmagatzemen dades com a parelles clau-valor.
    • Exemple: Redis, DynamoDB
  • Columnars: Emmagatzemen dades en columnes en lloc de files.
    • Exemple: Cassandra, HBase
  • Gràfics: Emmagatzemen dades en nodes i arestes per representar relacions.
    • Exemple: Neo4j, ArangoDB

Avantatges:

  • Alta escalabilitat horitzontal.
  • Flexible per a dades no estructurades.
  • Rendiment alt per a certs tipus de consultes.

Desavantatges:

  • Falta de suport per a transaccions complexes.
  • Pot no garantir ACID.

Solucions d'Emmagatzematge

  1. Emmagatzematge en Disc

L'emmagatzematge en disc és la forma més tradicional d'emmagatzematge de dades, utilitzant discos durs (HDD) o unitats d'estat sòlid (SSD).

Avantatges:

  • Cost relativament baix.
  • Gran capacitat d'emmagatzematge.

Desavantatges:

  • Rendiment més baix comparat amb altres solucions modernes.
  • Latència més alta.

  1. Emmagatzematge en Memòria

L'emmagatzematge en memòria utilitza la memòria RAM per emmagatzemar dades, oferint un accés molt ràpid.

Exemples:

  • Redis
  • Memcached

Avantatges:

  • Accés molt ràpid a les dades.
  • Ideal per a dades temporals o en memòria cau.

Desavantatges:

  • Capacitat limitada per la quantitat de RAM disponible.
  • Dades volàtils (perden les dades en cas de fallada de corrent).

  1. Emmagatzematge en Núvol

L'emmagatzematge en núvol ofereix una solució escalable i flexible per emmagatzemar dades, utilitzant serveis proporcionats per proveïdors de núvol.

Exemples:

  • Amazon S3
  • Google Cloud Storage
  • Azure Blob Storage

Avantatges:

  • Escalabilitat pràcticament il·limitada.
  • Alta disponibilitat i redundància.
  • Pagament per ús.

Desavantatges:

  • Dependència del proveïdor de serveis.
  • Potencials problemes de latència.

Comparació de Solucions d'Emmagatzematge

Tipus de Solució Avantatges Desavantatges Usos Recomanats
Emmagatzematge en Disc Cost baix, gran capacitat Rendiment més baix, latència alta Emmagatzematge de dades massives, arxius històrics
Emmagatzematge en Memòria Accés ràpid, ideal per a memòria cau Capacitat limitada, dades volàtils Dades temporals, memòria cau, sessions d'usuari
Emmagatzematge en Núvol Escalabilitat, alta disponibilitat Dependència del proveïdor, latència Emmagatzematge de dades massives, còpies de seguretat, contingut multimèdia

Exercicis Pràctics

Exercici 1: Selecció de Base de Dades

Escenari: Estàs dissenyant un sistema de comerç electrònic que necessita gestionar tant dades estructurades (com ara informació de productes i comandes) com dades no estructurades (com ara ressenyes de productes i comentaris d'usuaris).

Pregunta: Quina combinació de bases de dades utilitzaries i per què?

Solució:

  • Base de Dades Relacional (RDBMS): Utilitzaria una base de dades relacional com MySQL o PostgreSQL per gestionar les dades estructurades com la informació de productes i comandes, ja que aquestes dades requereixen integritat i suport per a transaccions complexes.
  • Base de Dades NoSQL Documental: Utilitzaria una base de dades NoSQL documental com MongoDB per gestionar les ressenyes de productes i comentaris d'usuaris, ja que aquestes dades són no estructurades i poden variar en format.

Exercici 2: Optimització d'Emmagatzematge

Escenari: Estàs treballant en una aplicació de xarxes socials que necessita emmagatzemar grans quantitats de fotos i vídeos dels usuaris.

Pregunta: Quina solució d'emmagatzematge utilitzaries i per què?

Solució:

  • Emmagatzematge en Núvol: Utilitzaria una solució d'emmagatzematge en núvol com Amazon S3 o Google Cloud Storage, ja que ofereixen escalabilitat pràcticament il·limitada, alta disponibilitat i redundància, i són ideals per emmagatzemar grans quantitats de contingut multimèdia.

Resum

En aquest tema, hem explorat els diferents tipus de bases de dades i solucions d'emmagatzematge disponibles per a arquitectures de sistemes. Hem après a identificar els avantatges i desavantatges de cada tipus i a seleccionar la solució adequada per a diferents escenaris. Aquest coneixement és fonamental per dissenyar arquitectures robustes i escalables que suportin els objectius de negoci.

En el següent tema, explorarem les diferències entre microserveis i monòlits, i com aquestes arquitectures poden influir en el disseny del sistema.

Arquitectures de Sistemes: Principis i Pràctiques per Dissenyar Arquitectures Tecnològiques Robustes i Escalables

Mòdul 1: Introducció a les Arquitectures de Sistemes

Mòdul 2: Principis de Disseny d'Arquitectures

Mòdul 3: Components d'una Arquitectura de Sistemes

Mòdul 4: Escalabilitat i Rendiment

Mòdul 5: Seguretat en Arquitectures de Sistemes

Mòdul 6: Eines i Tecnologies

Mòdul 7: Casos d'Estudi i Exemples Pràctics

Mòdul 8: Tendències i Futur de les Arquitectures de Sistemes

© Copyright 2024. Tots els drets reservats