En aquest tema, explorarem les diferències clau entre les bases de dades relacionals (RDBMS) i les bases de dades no relacionals (NoSQL). Aquesta comparació ens ajudarà a entendre quan és més adequat utilitzar un tipus de base de dades o l'altre, depenent dels requisits del projecte.
- Definició i Estructura
Bases de Dades Relacionals (RDBMS)
- Definició: Les bases de dades relacionals emmagatzemen dades en taules estructurades amb files i columnes.
- Estructura: Utilitzen un model de dades basat en relacions, on les taules poden estar relacionades entre si mitjançant claus primàries i claus foranes.
- Exemples: MySQL, PostgreSQL, Oracle, SQL Server.
Bases de Dades No Relacionals (NoSQL)
- Definició: Les bases de dades NoSQL emmagatzemen dades de manera no estructurada o semi-estructurada, sovint en formats com JSON, BSON, o documents.
- Estructura: No utilitzen un model de dades basat en relacions. En canvi, poden utilitzar models de documents, claus-valor, columnes amples o grafs.
- Exemples: MongoDB (documents), Redis (claus-valor), Cassandra (columnes amples), Neo4j (grafs).
- Model de Dades
Característica | RDBMS | NoSQL |
---|---|---|
Estructura | Taules amb files i columnes | Documents, claus-valor, columnes amples, grafs |
Esquemes | Esquema rígid (predefinit) | Esquema flexible (dinàmic) |
Relacions | Relacions explícites amb claus foranes | Relacions implícites o no necessàries |
- Escalabilitat
RDBMS
- Escalabilitat Vertical: Augment de la capacitat del servidor (més CPU, RAM, etc.).
- Limitacions: Pot ser costós i té límits físics.
NoSQL
- Escalabilitat Horitzontal: Afegir més servidors per distribuir la càrrega.
- Avantatges: Millor per a aplicacions amb grans volums de dades i alta disponibilitat.
- Consistència i Disponibilitat
RDBMS
- Consistència: ACID (Atomicitat, Consistència, Aïllament, Durabilitat) garanteix transaccions consistents.
- Disponibilitat: Pot ser limitada en entorns distribuïts.
NoSQL
- Consistència: BASE (Basically Available, Soft state, Eventual consistency) permet flexibilitat en la consistència.
- Disponibilitat: Alta disponibilitat en entorns distribuïts.
- Casos d'Ús
RDBMS
- Aplicacions: Sistemes financers, aplicacions empresarials, CRM, ERP.
- Quan Utilitzar: Quan es requereix consistència i integritat de dades.
NoSQL
- Aplicacions: Aplicacions web, xarxes socials, big data, IoT.
- Quan Utilitzar: Quan es requereix escalabilitat i flexibilitat en l'estructura de dades.
- Exemples Pràctics
RDBMS: MySQL
CREATE TABLE Clients ( id INT PRIMARY KEY, nom VARCHAR(100), email VARCHAR(100) ); INSERT INTO Clients (id, nom, email) VALUES (1, 'Joan', '[email protected]');
NoSQL: MongoDB
{ "_id": 1, "nom": "Joan", "email": "[email protected]" }
db.clients.insertOne({ _id: 1, nom: "Joan", email: "[email protected]" });
- Exercici Pràctic
Exercici: Identificar el tipus de base de dades adequat
Llegeix els següents escenaris i decideix si és més adequat utilitzar una base de dades relacional o no relacional. Justifica la teva resposta.
- Sistema de Gestió d'Inventari: Requereix transaccions consistents i integritat de dades.
- Aplicació de Xarxa Social: Necessita gestionar grans volums de dades d'usuaris amb alta disponibilitat i escalabilitat.
- Sistema de Facturació: Requereix informes detallats i consistència en les transaccions financeres.
Solucions
- Sistema de Gestió d'Inventari: RDBMS. La consistència i integritat de dades són crucials.
- Aplicació de Xarxa Social: NoSQL. La flexibilitat i escalabilitat són més importants.
- Sistema de Facturació: RDBMS. La consistència en les transaccions financeres és essencial.
Conclusió
En resum, les bases de dades relacionals i no relacionals tenen diferents punts forts i febles. La selecció del tipus de base de dades depèn dels requisits específics del projecte, com ara la necessitat de consistència, escalabilitat, flexibilitat en l'estructura de dades i disponibilitat. Entendre aquestes diferències és fonamental per prendre decisions informades sobre l'arquitectura de dades en qualsevol aplicació.
Fonaments de Bases de Dades
Mòdul 1: Introducció a les Bases de Dades
- Conceptes Bàsics de Bases de Dades
- Tipus de Bases de Dades
- Història i Evolució de les Bases de Dades
Mòdul 2: Bases de Dades Relacionals
Mòdul 3: Bases de Dades No Relacionals
- Introducció a NoSQL
- Tipus de Bases de Dades NoSQL
- Comparació entre Bases de Dades Relacionals i No Relacionals
Mòdul 4: Disseny d'Esquemes
- Principis de Disseny d'Esquemes
- Diagrames Entitat-Relació (ER)
- Transformació de Diagrames ER a Esquemes Relacionals