En aquesta secció, explorarem els diferents tipus de bases de dades que existeixen, les seves característiques principals i els casos d'ús més comuns. Les bases de dades es poden classificar en diverses categories segons la seva estructura, model de dades i ús específic.

  1. Bases de Dades Relacionals (RDBMS)

Característiques Principals:

  • Model de Dades: Utilitzen el model relacional, on les dades es representen en taules (relacions).
  • Estructura: Les taules estan formades per files (registres) i columnes (atributs).
  • Integritat: Suporten regles d'integritat referencial per mantenir la coherència de les dades.
  • Llenguatge: Utilitzen SQL (Structured Query Language) per a la manipulació i consulta de dades.

Exemples:

  • MySQL
  • PostgreSQL
  • Oracle Database
  • Microsoft SQL Server

Casos d'Ús:

  • Sistemes de gestió empresarial (ERP)
  • Aplicacions financeres
  • Sistemes de gestió de continguts (CMS)

Exemple de Codi SQL:

-- Creació d'una taula
CREATE TABLE Clients (
    ID INT PRIMARY KEY,
    Nom VARCHAR(100),
    Correu VARCHAR(100)
);

-- Inserció de dades
INSERT INTO Clients (ID, Nom, Correu) VALUES (1, 'Joan', '[email protected]');

-- Consulta de dades
SELECT * FROM Clients;

  1. Bases de Dades No Relacionals (NoSQL)

Característiques Principals:

  • Model de Dades: No segueixen el model relacional. Poden utilitzar models de documents, claus-valor, columnes o gràfics.
  • Escalabilitat: Dissenyades per escalar horitzontalment, és a dir, afegint més servidors.
  • Flexibilitat: Permeten estructures de dades més flexibles i poden gestionar dades no estructurades o semi-estructurades.

Tipus de Bases de Dades NoSQL:

  • Documentals: Emmagatzemen dades en documents JSON, BSON, etc. (Ex: MongoDB, CouchDB)
  • Claus-Valor: Emmagatzemen dades com a parelles clau-valor. (Ex: Redis, DynamoDB)
  • Columnars: Emmagatzemen dades en columnes en lloc de files. (Ex: Cassandra, HBase)
  • Gràfics: Emmagatzemen dades en nodes i arestes, ideals per a dades relacionals complexes. (Ex: Neo4j, OrientDB)

Exemples:

  • MongoDB (Documental)
  • Redis (Claus-Valor)
  • Cassandra (Columnar)
  • Neo4j (Gràfics)

Casos d'Ús:

  • Aplicacions web i mòbils amb grans volums de dades
  • Sistemes de recomanació
  • Xarxes socials

Exemple de Codi MongoDB:

// Inserció de documents en una col·lecció
db.clients.insertOne({
    ID: 1,
    Nom: 'Joan',
    Correu: '[email protected]'
});

// Consulta de documents
db.clients.find();

  1. Bases de Dades Orientades a Objectes (OODBMS)

Característiques Principals:

  • Model de Dades: Utilitzen el model orientat a objectes, on les dades es representen com a objectes, similar a la programació orientada a objectes.
  • Integració: Faciliten la integració amb llenguatges de programació orientats a objectes com Java, C++, etc.
  • Herència: Suporten herència, encapsulació i polimorfisme.

Exemples:

  • db4o
  • ObjectDB
  • Versant

Casos d'Ús:

  • Aplicacions CAD/CAM
  • Sistemes de simulació
  • Aplicacions científiques

Exemple de Codi db4o (Java):

// Creació d'un objecte i emmagatzematge en db4o
ObjectContainer db = Db4oEmbedded.openFile(Db4oEmbedded.newConfiguration(), "clients.db");
Client joan = new Client(1, "Joan", "[email protected]");
db.store(joan);
db.close();

  1. Bases de Dades en Memòria (IMDB)

Característiques Principals:

  • Velocitat: Emmagatzemen dades principalment en memòria RAM, oferint un accés molt ràpid.
  • Persistència: Algunes ofereixen opcions de persistència per assegurar que les dades no es perdin en cas de fallada.
  • Aplicacions: Ideals per a aplicacions que requereixen temps de resposta molt ràpids.

Exemples:

  • Redis
  • Memcached
  • SAP HANA

Casos d'Ús:

  • Sistemes de cache
  • Aplicacions en temps real
  • Analítica en temps real

Exemple de Codi Redis:

# Inserció de dades
SET client:1 "Joan"

# Consulta de dades
GET client:1

  1. Bases de Dades Distribuïdes

Característiques Principals:

  • Distribució: Les dades es distribueixen a través de múltiples nodes o servidors.
  • Escalabilitat: Dissenyades per escalar horitzontalment.
  • Resiliència: Ofereixen alta disponibilitat i tolerància a fallades.

Exemples:

  • Apache Cassandra
  • Google Spanner
  • Amazon DynamoDB

Casos d'Ús:

  • Aplicacions globals amb necessitats de latència baixa
  • Sistemes de comerç electrònic
  • Xarxes socials

Exemple de Codi Cassandra (CQL):

-- Creació d'una taula
CREATE TABLE clients (
    id UUID PRIMARY KEY,
    nom TEXT,
    correu TEXT
);

-- Inserció de dades
INSERT INTO clients (id, nom, correu) VALUES (uuid(), 'Joan', '[email protected]');

-- Consulta de dades
SELECT * FROM clients;

Conclusió

En aquesta secció hem explorat els diferents tipus de bases de dades, incloent les bases de dades relacionals, NoSQL, orientades a objectes, en memòria i distribuïdes. Cada tipus té les seves pròpies característiques, avantatges i casos d'ús específics. Comprendre aquestes diferències és fonamental per seleccionar la base de dades adequada per a cada aplicació o projecte.

© Copyright 2024. Tots els drets reservats