Bases de dades

De Cacauet Wiki
Salta a la navegació Salta a la cerca

Mòdul de bases de dades per CFGS.

BBDD no-SQL

És la més recent generació de bases de dades. Han sorgit un conjunt heterogeni de tècniques de la necessitat d'alta disponibilitat per sites web molt visitades i amb gran quantitat d'informació (Twitter, Facebook, Amazon, etc.).

El gran objectiu de les BBDD no-SQL és l'escalabilitat. Normalment s'aconsegueix mitjançant replicació. En el paradigma SQL resulta molt difícil d'implementar, en particular a nivell de sharding (distribució de contingut en diferents nodes). En aquest camp és on les no-SQL són molt avantatjoses, permetent escalar mitjançant replicació i sharding.

Hi ha diferents tipologies de BBDD no-SQL:

  • Key-value store (les més senzilles)
  • Document store
  • Graph database
  • Wide column stores

En aquest curs tractarem:

També son molt importants les següents:

  • AWS DynamoDB (veure referències més avall).
  • Apache Cassandra: (Java) orientada a columna.
  • Redis: key-value store, molt ràpida ja que manté la informació en RAM, enlloc de disc.
  • HBase: (Java) utilitzada per Facebook.


MongoDB

Referències:


AWS DynamoDB

Treballarem BBDD d'alta disponibilitat en AWS: DynamoDB. Permet escalar projectes per gran quantitat de demandes per segon, però té algunes peculiaritats en la seva organització.


BBDD orientades a objecte

Solen estar orientades a persistència d'objectes per aplicacions.

Moltes vegades intervé un ORM (Object Relational Mapper) per facilitar la traducció d'objectes en taules o en l'estructura adient de la BBDD emprada.


BBDD objecte-relacionals

Teoria:

Bases de dades Objecte-Relacionals:

Teòricament s'inclou a PostgreSQL com a BBDD objecte-relacional. Però en realitat, a data de Març de 2013 no és del tot cert. Disposa d'objectes amb atributs, però no permet crear mètodes (member functions). Si volem utilitzar una aproximació procedural, sense encapsular les funcions en objectes, podem utilitzar PostrgreSQL.



BBDD relacionals

Les clàssiques!