Base de dades al núvol
Una base de dades al núvol és una base de dades que normalment s'executa en una plataforma de computació al núvol i l'accés a la base de dades es proporciona com a servei. Hi ha dos models de desplegament comuns: els usuaris poden executar bases de dades al núvol de manera independent, utilitzant una imatge de màquina virtual, o poden adquirir accés a un servei de bases de dades, mantingut per un proveïdor de bases de dades al núvol. De les bases de dades disponibles al núvol, algunes estan basades en SQL i algunes utilitzen un model de dades NoSQL.
Els serveis de bases de dades tenen cura de l'escalabilitat i l'alta disponibilitat de la base de dades. Els serveis de bases de dades fan que la pila de programari subjacent sigui transparent per a l'usuari.[1]
Models de desplegament
[modifica]Hi ha dos mètodes principals per executar una base de dades en una plataforma al núvol:
- Imatge de la màquina virtual
- Les plataformes al núvol permeten als usuaris comprar instàncies de màquines virtuals durant un temps limitat i es pot executar una base de dades en aquestes màquines virtuals. Els usuaris poden carregar la seva pròpia imatge de màquina amb una base de dades instal·lada o utilitzar imatges de màquina ja fetes que ja inclouen una instal·lació optimitzada d'una base de dades.[2]
- Base de dades com a servei (DBaaS)
- Amb una base de dades com a model de servei, els usuaris paguen tarifes a un proveïdor de núvol per serveis i recursos informàtics, reduint la quantitat de diners i l'esforç necessari per desenvolupar i gestionar bases de dades.[2] Els usuaris reben eines per crear i gestionar instàncies de base de dades i controlar els usuaris. Alguns proveïdors de núvol també ofereixen eines per gestionar les estructures i les dades de bases de dades.[3] Molts proveïdors de núvol ofereixen bases de dades tant relacionals (Amazon RDS, SQL Server) com NoSQL (MongoDB, Amazon DynamoDB).[3] Aquest és un tipus de programari com a servei (SaaS).
Arquitectura i característiques comunes
[modifica]- La majoria dels serveis de bases de dades ofereixen consoles basades en web, que l'usuari final pot utilitzar per subministrar i configurar instàncies de bases de dades.
- Els serveis de base de dades consisteixen en un component gestor de bases de dades, que controla les instàncies de base de dades subjacents mitjançant una API de servei. L'API del servei s'exposa a l'usuari final i permet als usuaris realitzar operacions de manteniment i escalat a les seves instàncies de base de dades.
- La pila de programari subjacent inclou normalment el sistema operatiu, la base de dades i el programari de tercers utilitzats per gestionar la base de dades. El proveïdor de serveis és responsable d'instal·lar, aplicar pedaços i actualitzar la pila de programari subjacent i garantir la salut i el rendiment generals de la base de dades.
- Les característiques d'escalabilitat difereixen entre els proveïdors - alguns ofereixen l'escalat automàtic, d'altres permeten a l'usuari augmentar-lo mitjançant una API, però no s'escalen automàticament.[4]
- Normalment hi ha un compromís per a un cert nivell d'alta disponibilitat (per exemple, 99,9% o 99,99%). Això s'aconsegueix mitjançant la replicació de dades i la fallada de les instàncies a altres instàncies de la base de dades.[5]
Model de dades
[modifica]El disseny i el desenvolupament de sistemes típics utilitzen la gestió de dades i les bases de dades relacionals com a components clau. Les consultes avançades expressades en SQL funcionen bé amb les relacions estrictes que s'imposen a la informació per les bases de dades relacionals. Tanmateix, la tecnologia de bases de dades relacionals no es va dissenyar ni desenvolupar inicialment per utilitzar-la en sistemes distribuïts. Aquest problema s'ha solucionat amb l'addició de millores de clustering a les bases de dades relacionals, tot i que algunes tasques bàsiques requereixen protocols complexos i costosos, com ara la sincronització de dades.
Les bases de dades relacionals modernes han mostrat un rendiment baix en sistemes intensius de dades, per tant, la idea de NoSQL s'ha utilitzat dins dels sistemes de gestió de bases de dades per a sistemes basats en núvol. Dins de l'emmagatzematge implementat amb NoSQL, no hi ha requisits per als esquemes de taules fixes i s'evita l'ús d'operacions d'unió. "Les bases de dades NoSQL han demostrat que ofereixen una escalabilitat horitzontal eficient, un bon rendiment i una facilitat de muntatge en aplicacions al núvol". Els models de dades que es basen en algorismes de retransmissió simplificats també s'han emprat en aplicacions de mapes de núvol intensius en dades exclusives als marcs virtuals.[6]
També és important diferenciar entre bases de dades al núvol que són relacionals en contraposició a les no relacionals o NoSQL:
- Bases de dades SQL
- Les bases de dades SQL són un tipus de base de dades que es pot executar al núvol, ja sigui en una màquina virtual o com a servei, depenent del venedor. Tot i que les bases de dades SQL són fàcilment escalables verticalment, l'escalabilitat horitzontal suposa un repte, els serveis de bases de dades al núvol basats en SQL han començat a resoldre's.
- Bases de dades NoSQL
- Les bases de dades NoSQL són un altre tipus de bases de dades que es poden executar al núvol. Les bases de dades NoSQL estan construïdes per donar servei a càrregues de lectura/escriptura pesades i poden escalar fàcilment amunt i avall,[7] i, per tant, són més adequades de manera nativa per executar-se al núvol. Tanmateix, la majoria de les aplicacions contemporànies es construeixen al voltant d'un model de dades SQL, de manera que treballar amb bases de dades NoSQL sovint requereix una reescriptura completa del codi de l'aplicació.
- Algunes bases de dades SQL han desenvolupat capacitats NoSQL, com ara JSON, JSON binari (per exemple, BSON o variants similars) i tipus de dades de magatzem de valor-clau.
- Una base de dades multimodel amb capacitats relacionals i no relacionals proporciona una interfície SQL estàndard als usuaris i aplicacions i, per tant, facilita l'ús d'aquestes bases de dades per a aplicacions contemporànies construïdes al voltant d'un model de dades SQL. Les bases de dades natives multimodel admeten diversos models de dades amb un nucli i un llenguatge de consulta unificat per accedir a tots els models de dades.
Referències
[modifica]- ↑ Hwang, G. «Proof of Violation for Trust and Accountability of Cloud Database Systems». A: 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid) (en anglès), May 2016, p. 425–433. DOI 10.1109/CCGrid.2016.27. ISBN 978-1-5090-2453-7.
- 1 2 Chao, Lee. Cloud database development and management (en anglès). Boca Raton: Taylor & Francis, 2014. ISBN 978-1-4665-6506-7. OCLC 857081580.
- 1 2 McHaney, Roger. Cloud technologies: an overview of cloud computing technologies for managers (en anglès), 2021. ISBN 978-1-119-76951-4. OCLC 1196822611.
- ↑ Chao, Lee. Cloud database development and management (en anglès). Boca Raton: Taylor & Francis, 2014. ISBN 978-1-4665-6506-7. OCLC 857081580.
- ↑ Sakr, Sherif (en anglès) Cluster Computing, 17, 2, 6-2014, p. 487–502. DOI: 10.1007/s10586-013-0290-7. ISSN: 1386-7857.
- ↑ Modi, A International Journal of High Performance Computing and Networking, 10, 1, 2017, p. 134. DOI: 10.1504/IJHPCN.2017.083213.
- ↑ Agrawal, Rakesh; etal SIGMOD Record, 37, 2008, p. 9–19. DOI: 10.1145/1462571.1462573. ISSN: 0163-5808.