☁️ Bases de dades al núvol
📘 Què és el núvol en el context de l’SGBD?
El núvol representa una de les tecnologies actuals més utilitzades per garantir la disponibilitat, l’escalabilitat i el rendiment dels Sistemes Gestors de Bases de Dades (SGBD). Permet utilitzar infraestructures virtuals que poden ser:
- Maquinari dedicat (HW dedicat)
- Serveis gestionats per tercers (ex: Oracle Cloud, AWS, Azure)
Avantatges de l’ús del núvol
- Cost més eficient: pagament per ús, sense invertir en infraestructures pròpies.
- Alt rendiment i escalabilitat: adaptació automàtica a pics de càrrega.
- Alta disponibilitat: sistemes redundants i amb tolerància a errors.
- Alt nivell de seguretat: xifratge, còpies de seguretat, control d’accés.
- Administració completa: manteniment, actualitzacions i gestió integrades.
- Compatibilitat amb els SGBD tradicionals (Oracle, MySQL, PostgreSQL…)
- Ideal per teletreball: accés remot des de qualsevol lloc i dispositiu.
⚠️ Inconvenients o riscos
- Dependència d’un tercer: cal confiar en el proveïdor del servei.
- Caiguda de la connexió a internet: pot deixar la BD inoperativa temporalment.
- Riscos de seguretat: tot i estar protegits, hi ha vulnerabilitats potencials.
- Manca de control total: l’usuari no gestiona directament el hardware ni el sistema complet.
☁️ Principals proveïdors de núvol per a SGBD
- Oracle Cloud: plataforma pròpia amb suport per a multitenant, PDBs i Oracle Autonomous Database.
- AWS (Amazon Web Services): amb serveis com RDS, Aurora, suport per a Oracle, PostgreSQL, MySQL, etc.
- Azure (Microsoft): amb bases de dades SQL gestionades, integració amb sistemes híbrids.
Aquestes plataformes ofereixen monitoratge en temps real, còpies automàtiques, sistemes de recuperació davant desastres i integració amb eines DevOps.
💬 Resum
Treballar amb un SGBD al núvol ofereix molts avantatges a nivell de rendiment, flexibilitat i manteniment. Tot i això, cal tenir en compte la dependència d’internet i la confiança dipositada en el proveïdor. És una solució recomanable per entorns amb teletreball, projectes dinàmics i empreses que busquen escalabilitat sense gran inversió inicial.
Clúster en sistemes de bases de dades
📘 Què és un clúster?
Un clúster és un conjunt de servidors interconnectats que funcionen com una única unitat per oferir serveis, com ara una base de dades, de manera més robusta i fiable. Això permet aconseguir alta disponibilitat i tolerància a fallades.
🎯 Objectiu principal
- Evitar interrupcions del servei davant una fallada d’un dels servidors.
- Repartir la càrrega de treball (balanç de càrrega) entre diferents nodes.
Funcionament bàsic
Tots els nodes del clúster comparteixen accés a la mateixa base de dades o disc. Quan un node falla, un altre pot assumir automàticament el seu rol, evitant talls de servei.
Exemples típics:
- Oracle RAC (Real Application Clusters)
- MySQL Cluster
- Microsoft SQL Server amb AlwaysOn o Failover Cluster
Components típics d’un clúster
- Nodes: màquines físiques o virtuals que formen part del clúster.
- Interconnexió: xarxa ràpida per sincronització i control d’estat.
- Emmagatzematge compartit: discos accessibles per tots els nodes.
- Software de clúster: gestiona el monitoratge, failover i recursos compartits.
Beneficis del clúster
- Alta disponibilitat (HA)
- Tolerància a fallades
- Escalabilitat horitzontal (afegir nous nodes)
- Continuïtat de negoci
Consideracions
- Implementació més complexa
- Pot implicar més cost d’infraestructura
- Cal tenir control d’accés i seguretat entre nodes
Exemple gràfic (conceptual)
🖥️ Node 1 (actiu) + 🖥️ Node 2 (en espera) → Base de dades comuna
Si el Node 1 falla, el Node 2 s’activa automàticament (failover).
Conclusió
Els clústers són una solució professional per entorns crítics que requereixen disponibilitat 24/7. Són àmpliament usats en entorns corporatius i serveis en línia amb gran demanda.
SGBDD – Sistemes Gestors de Bases de Dades Distribuïdes
📘 Què és un SGBDD?
Un Sistema Gestor de Bases de Dades Distribuïdes (SGBDD) és un tipus d’SGBD que permet gestionar una base de dades que no es troba emmagatzemada en un únic lloc, sinó que està repartida entre diversos ordinadors o nodes interconnectats.
Cada node pot estar en una ubicació geogràfica diferent, però es presenta a l’usuari com si fos una base de dades única i coherent.
🎯 Objectius d’un SGBDD
- Oferir una visió unificada de la informació
- Garantir consistència i integritat entre dades repartides
- Permetre la disponibilitat contínua en cas de fallada d’un node
- Optimitzar l’accés mitjançant localització de dades
Funcionament bàsic
El SGBDD controla com i on es fan les consultes, actualitzacions i sincronitzacions entre nodes. Pot fer rèpliques de les dades per garantir tolerància a errors i millorar la disponibilitat.
Components habituals:
- 🖥️ Servidors de dades (nodes)
- Xarxa de comunicació
- Programari de coordinació i sincronització
Exemples de SGBDD
- Oracle Distributed Database
- PostgreSQL amb BDR (Bi-Directional Replication)
- Microsoft SQL Server Distributed Queries
- Google Spanner, Amazon Aurora Global Databases
Avantatges
- Redundància de dades i tolerància a fallades
- Millora el rendiment en entorns globals
- Suporta usuaris de diferents ubicacions
⚠️ Inconvenients
- Més complexitat de gestió i sincronització
- Dependència de la connexió entre nodes
- Gestió més complicada de transaccions distribuïdes
💬 Conclusió
Els SGBDD són ideals per a empreses amb presència global, grans volums de dades i necessitat de disponibilitat constant. Tot i la seva complexitat, són una eina poderosa per mantenir bases de dades robustes, escalables i resilients.
Regles D.A.T.E. per a la disponibilitat del SGBD
📘 Què són les regles D.A.T.E.?
Les regles D.A.T.E. són un conjunt de principis que defineixen les característiques essencials que ha de tenir un sistema per ser considerat altament disponible. Aquest acrònim fa referència a:
- D → Disponibilitat
- A → Accessibilitat
- T → Tolerància a errors
- E → Escalabilitat
D – Disponibilitat
El sistema ha d’estar disponible la major part del temps. Això implica minimitzar els talls de servei, tant previstos (manteniments) com imprevistos (errors, fallades de maquinari...).
Exemple: sistemes amb SLA del 99,99% de disponibilitat anual.
A – Accessibilitat
Els usuaris autoritzats han de poder accedir al sistema quan ho necessitin, sense bloquejos ni problemes de connexió. Això implica garantir una conectivitat estable i una infraestructura de xarxa segura.
Exemple: configuració redundant de xarxes i sistemes de control d’accés.
T – Tolerància a errors
El sistema ha de continuar funcionant encara que es produeixi un error o fallada en una part del sistema. Això inclou mecanismes com el failover, rèpliques, backups, i sistemes de recuperació automàtica.
Exemple: clústers amb basculació automàtica (Oracle RAC, SQL AlwaysOn...)
E – Escalabilitat
El sistema ha de poder créixer i adaptar-se a l’augment de dades, d’usuaris o de càrrega de treball, sense perdre rendiment. Aquesta escalabilitat pot ser:
- Vertical: afegir més recursos a un únic servidor (CPU, RAM…)
- Horitzontal: afegir nous servidors (distribució de càrrega)
Exemple: bases de dades en núvol amb escalat automàtic.
Conclusió
Seguir les regles D.A.T.E. és fonamental per dissenyar i mantenir sistemes de bases de dades robustos i disponibles. Aquests criteris són especialment rellevants en entorns de producció crítica, on la pèrdua d’accés a les dades pot tenir un gran impacte.
SGBDD – Funcionament i característiques (2a part)
📘 Com funciona un SGBDD?
Un Sistema Gestor de Bases de Dades Distribuïdes (SGBDD) funciona sobre una col·lecció de bases de dades distribuïdes entre diversos ordinadors, però que als usuaris es presenten com una única base de dades lògica.
Tipus de distribució
- Repartició horitzontal: cada servidor emmagatzema diferents files d’una taula.
- Repartició vertical: cada servidor conté diferents columnes d’una taula.
- Rèplica: es copia total o parcialment una taula a diferents ubicacions per garantir la disponibilitat i millorar l’accés.
Transparències en un SGBDD
Un bon SGBDD ha d’oferir diversos nivells de transparència per a l’usuari, com:
- Transparència de localització: l’usuari no sap on es troben les dades físicament.
- Transparència de fragmentació: les dades poden estar dividides entre diversos llocs, però es consulten com si fossin una única unitat.
- Transparència de rèplica: l’usuari no és conscient de si les dades tenen còpies en diversos servidors.
- Transparència de concurrència: múltiples usuaris poden accedir a les dades simultàniament sense conflictes.
- Transparència de fallades: en cas de fallada d’un node, el sistema segueix funcionant.
Gestió de transaccions
Una transacció distribuïda pot implicar diversos nodes. Per garantir-ne la coherència, s'utilitzen protocols com el 2PC (Two-Phase Commit):
- Fase 1 – Preparació: cada node confirma si pot fer el commit.
- Fase 2 – Confirmació: si tots els nodes accepten, es fa el commit; si no, es fa rollback.
🔐 Seguretat i consistència
És fonamental garantir que les dades siguin consistents, segures i sincronitzades entre totes les ubicacions. Això pot incloure:
- Còpies de seguretat distribuïdes
- Sincronització automàtica de rèpliques
- Control d’accés per node
Exemples de solucions SGBDD
- Oracle Distributed Database
- PostgreSQL amb BD-R
- Microsoft SQL Server Linked Servers
- Amazon Aurora Global Database
- Google Cloud Spanner
Avantatges d’un SGBDD
- Disponibilitat global
- Repartiment de càrrega entre servidors
- Accés més ràpid segons localització de l’usuari
- Escalabilitat horitzontal
- Continuïtat de negoci en cas de fallada d’un node
⚠️ Inconvenients
- Implementació i manteniment més complexos
- Dependència d’una bona infraestructura de xarxa
- Gestió delicada de transaccions distribuïdes
Conclusió
Els SGBDD són una solució robusta i escalable per a entorns distribuïts, especialment útils en aplicacions globals o crítiques. Tot i que requereixen una gestió tècnica més avançada, ofereixen una gran fiabilitat i disponibilitat si es configuren correctament.
Fragmentació en SGBDD
📘 Què és la fragmentació?
La fragmentació és una tècnica emprada en Sistemes Gestors de Bases de Dades Distribuïdes (SGBDD) que consisteix a dividir una base de dades en parts més petites, anomenades fragments, que poden ser emmagatzemades en diferents llocs (nodes).
Aquesta estratègia permet:
- Millorar el rendiment
- Apropar les dades als usuaris finals
- Repartir la càrrega
- Facilitar l’escalabilitat i manteniment
Tipus de fragmentació
1. Fragmentació horitzontal
Consisteix a dividir les files d’una taula en grups. Cada fragment conté un subconjunt de registres amb la mateixa estructura.
Exemple: una taula d’alumnes dividida per campus:
-
alumnes_campusA
→ alumnes del campus A -
alumnes_campusB
→ alumnes del campus B
2. Fragmentació vertical
Consisteix a dividir les columnes d’una taula. Cada fragment conté només algunes columnes de la taula original, però inclou la clau primària per poder unir-les.
Exemple:
-
alumnes_dades_personals
: id, nom, cognoms -
alumnes_dades_academiques
: id, curs, nota
3. Fragmentació híbrida (mixta)
Combina la fragmentació horitzontal i vertical. Es pot dividir primer per files i després per columnes, o viceversa.
Exemple: alumnes del campus A (fragmentació horitzontal), amb dades separades en dues taules (vertical).
Avantatges de la fragmentació
- Proximitat de les dades a l’usuari
- Millor repartiment de càrrega
- Millor manteniment i seguretat
- Escalabilitat i rendiment optimitzats
⚠️ Consideracions i desavantatges
- Pot augmentar la complexitat de consultes
- Cal sincronitzar la informació si es repliquen fragments
- Cal garantir consistència en operacions distribuïdes
Conclusió
La fragmentació és una tècnica essencial en sistemes distribuïts per millorar l’eficiència i adaptar el sistema a escenaris globals o complexos. Una bona estratègia de fragmentació pot reduir temps de resposta i millorar l’experiència d’usuari.
Replicació de dades en SGBDD
📘 Què és la replicació?
La replicació és el procés mitjançant el qual es creen i mantenen còpies sincronitzades d’una base de dades o d’un subconjunt de les seves dades en diversos nodes d’un sistema distribuït.
Aquesta tècnica s’utilitza per garantir una major disponibilitat, redundància i tolerància a fallades.
🎯 Objectius de la replicació
- Permetre l'accés a les dades des de diferents ubicacions
- Garantir continuïtat del servei en cas de fallada d’un node
- Repartir la càrrega de consultes entre diferents servidors
- Millorar el rendiment i reduir la latència
Tipus de replicació
1. Replicació sincrònica
Les dades es repliquen en temps real entre nodes. Tota escriptura o actualització s’ha de completar en tots els nodes abans de considerar-se finalitzada.
Avantatge: màxima coherència.
Inconvenient: pot alentir les operacions si algun node és lent o falla.
2. Replicació asincrònica
Les dades es repliquen amb cert retard (retard controlat). Les escriptures es fan primer en un node principal, i es propaguen després als altres.
Avantatge: més ràpid i tolerant a la latència.
Inconvenient: pot haver-hi inconsistències temporals.
Models de replicació
- Master-slave: només el node mestre pot escriure; els esclaus només llegeixen.
- Master-master: tots els nodes poden llegir i escriure, amb sincronització entre ells.
Exemples de replicació
- Oracle Data Guard (sincrònica i asincrònica)
- PostgreSQL Streaming Replication
- MySQL Group Replication
- Amazon Aurora Global Databases
Avantatges
- Redundància i tolerància a errors
- Accés més ràpid segons ubicació geogràfica
- Recuperació davant desastres (disaster recovery)
- Escalabilitat de lectura
⚠️ Inconvenients
- Complexitat de configuració i manteniment
- Possibles inconsistències (especialment en replicació asincrònica)
- Dependència de l’estabilitat de xarxa entre nodes
Conclusió
La replicació és una estratègia clau per millorar la disponibilitat i la resiliència de les bases de dades, especialment en entorns distribuïts o amb alts requeriments de servei. La seva correcta implementació permet garantir continuïtat operativa i rendiment.
Clúster d'Oracle – Oracle RAC
📘 Què és Oracle RAC?
Oracle RAC (Real Application Clusters) és una solució d’Oracle que permet a diversos servidors accedir a una base de dades compartida simultàniament. Està dissenyada per proporcionar alta disponibilitat, escalabilitat i tolerància a fallades.
Característiques clau
- Accés concurrent a la mateixa base de dades per diversos nodes (servidors)
- Emmagatzematge compartit entre els nodes
- Failover automàtic: si un node cau, un altre continua donant servei
- Distribució de càrrega entre nodes
- Escalabilitat horitzontal (es poden afegir més nodes segons les necessitats)
Components d’un entorn RAC
- Dos o més nodes amb Oracle instal·lat
- Xarxa d’interconnexió (per sincronitzar memòria i processos entre nodes)
- Sistema d’emmagatzematge compartit (SAN, NAS, ASM...)
- Oracle Clusterware per gestionar el clúster i recursos
Alta disponibilitat i failover
Oracle RAC garanteix que si un node falla, un altre node assumeix automàticament la càrrega, sense necessitat de reiniciar la base de dades o perdre connexions. Aquesta funcionalitat és essencial per sistemes 24/7.
Escalabilitat
A mesura que creix el volum de dades o les consultes, es poden afegir nous nodes al clúster sense necessitat d’aturar el sistema. Això permet adaptar-se a les necessitats de rendiment en temps real.
Avantatges d'Oracle RAC
- Continuïtat del servei
- Failover i recuperació ràpida
- Escalabilitat dinàmica
- Millor ús dels recursos del sistema
⚠️ Inconvenients o requisits
- Cost elevat (licències i infraestructures)
- Configuració i manteniment complexos
- Requereix infraestructura de xarxa i emmagatzematge robusta
Alternatives similars
- Microsoft SQL Server AlwaysOn
- MySQL Group Replication
- PostgreSQL Patroni o Citus
Conclusió
Oracle RAC és una de les solucions més potents per a entorns empresarials que requereixen alta disponibilitat i tolerància a fallades. Tot i el seu cost i complexitat, ofereix una plataforma estable per a aplicacions crítiques que no poden permetre’s caigudes de servei.