Diferència entre revisions de la pàgina «Bases de dades»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
m
 
(Hi ha 14 revisions intermèdies del mateix usuari que no es mostren)
Línia 1: Línia 1:
Mòdul de bases de dades. Les 3 primeres UFs son comunes a DAW i ASIX. La UF4 és només per DAW
+
Mòdul de bases de dades per CFGS.
 +
 
 +
<nowiki>#FpInfor #AsixMp02 #DawMp02 #DamMp02 #AsixMp02Uf04 #DawMp02Uf04 #DamMp02Uf04</nowiki>
  
 
<br>
 
<br>
  
 
== BBDD no-SQL ==
 
== BBDD no-SQL ==
És la més recent generació de bases de dades. Han sorgit de la necessitat de alta disponibilitat per sites web molt visitades i amb gran quantitat d'informació (Twitter, Facebook, Amazon, etc.)
+
É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: molt ràpides però d'estructura limitada
 +
** AWS DynamoDB: es paga per amplada de banda (throughput), més que per capacitat. Veure referències més avall.
 +
** Redis: molt ràpida, es guarda en memòria enlloc de disc.
 +
* '''Document''' store: schemaless (sense esquema) però els documents tenen estructura interna.
 +
** MongoDB
 +
* '''Graph''' database
 +
** ...
 +
* '''Wide column''' stores
 +
** Apache Cassandra (Java)
 +
** HBase (Java, utilitzada per facebook).
  
 
En aquest curs tractarem:
 
En aquest curs tractarem:
* [[MongoDB]]
+
* [[MongoDB]] : Document store
* [[Google Appstore]] (Google App Engine)
 
  
També son molt importants les següents:
+
<br>
* AWS DynamoDB (veure referències més avall).
 
* Apache Cassandra
 
* Redis
 
* HBase
 
  
 
=== MongoDB ===
 
=== MongoDB ===
Línia 38: Línia 49:
 
** http://boto.readthedocs.org/en/latest/ref/dynamodb.html
 
** http://boto.readthedocs.org/en/latest/ref/dynamodb.html
 
*...
 
*...
 
 
<br>
 
<br>
  
== BBDD SQL ==
+
== BBDD orientades a objecte ==
* Cacauet: [[Curs de SQL]]
+
Solen estar orientades a persistència d'objectes per aplicacions.
* MySQL amb Python:
 
**http://www.kitebird.com/articles/pydbapi.html
 
* SQLite
 
* El relleu de MySQL serà MariaDB? : https://mariadb.org/
 
* PostgreSQL
 
* Python i AWS: [http://boto.cloudhackers.com/en/latest/index.html boto library]
 
* ...
 
  
<br>
+
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 orientades a objecte ==
+
* [[Google Appstore]] (Google App Engine)
 
* [[ZODB]]: ODB per Python amb ZEO (servidor per xarxa).
 
* [[ZODB]]: ODB per Python amb ZEO (servidor per xarxa).
 
* ...
 
* ...
 
<br>
 
<br>
 
  
 
== BBDD objecte-relacionals ==
 
== BBDD objecte-relacionals ==
Línia 63: Línia 65:
 
* http://en.wikipedia.org/wiki/Object-relational_database
 
* http://en.wikipedia.org/wiki/Object-relational_database
 
* Comparativa: http://en.wikipedia.org/wiki/List_of_object-relational_database_management_systems
 
* Comparativa: http://en.wikipedia.org/wiki/List_of_object-relational_database_management_systems
 
+
* [http://ioc.xtec.cat/materials/FP/Materials/2252_DAM/DAM_2252_M02/web/html/media/fp_dam_m02_u8_pdfindex.pdf Apunts IOC BBDD objecte-relacionals].
  
 
Bases de dades Objecte-Relacionals:
 
Bases de dades Objecte-Relacionals:
Línia 69: Línia 71:
 
** [[Tutorial Oracle XE amb Zend Server]]
 
** [[Tutorial Oracle XE amb Zend Server]]
 
** [[Oracle: custom datatypes]]
 
** [[Oracle: custom datatypes]]
** Oracle i PHP: http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/php_db/php_db.htm
+
** [http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/oow10/php_db/php_db.htm Oracle i PHP]
** Taules aniuades: http://www.orafaq.com/wiki/NESTED_TABLE
+
** [http://www.orafaq.com/wiki/NESTED_TABLE Taules aniuades]
 
** ...
 
** ...
  
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.
+
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ó procedimental, sense encapsular les funcions en objectes, podem utilitzar [[PostgreSQL]].
* PostgreSQL: http://postgresql.org
+
 
** Setup: http://linuxpoison.blogspot.com.es/2012/01/how-to-install-configure-postgresql.html
+
<br>
** PostgreSQL i Python (tb explica setup): http://zetcode.com/db/postgresqlpythontutorial/
 
** Tutorial: http://www.postgresql.org/docs/9.1/static/tutorial.html
 
** phppgadmin
 
  
 +
== BBDD relacionals ==
 +
Les clàssiques!
 +
* Cacauet: [[Curs de SQL]]
 +
* MySQL amb Python:
 +
**http://www.kitebird.com/articles/pydbapi.html
 +
* SQLite
 +
* El relleu de MySQL serà MariaDB? : https://mariadb.org/
 +
* PostgreSQL
 +
* Python i AWS: [http://boto.cloudhackers.com/en/latest/index.html boto library]
 +
* ...
 
<br>
 
<br>

Revisió de 07:37, 25 jul 2018

Mòdul de bases de dades per CFGS.

#FpInfor #AsixMp02 #DawMp02 #DamMp02 #AsixMp02Uf04 #DawMp02Uf04 #DamMp02Uf04


BBDD no-SQL[modifica]

É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: molt ràpides però d'estructura limitada
    • AWS DynamoDB: es paga per amplada de banda (throughput), més que per capacitat. Veure referències més avall.
    • Redis: molt ràpida, es guarda en memòria enlloc de disc.
  • Document store: schemaless (sense esquema) però els documents tenen estructura interna.
    • MongoDB
  • Graph database
    • ...
  • Wide column stores
    • Apache Cassandra (Java)
    • HBase (Java, utilitzada per facebook).

En aquest curs tractarem:


MongoDB[modifica]

Referències:


AWS DynamoDB[modifica]

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[modifica]

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[modifica]

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ó procedimental, sense encapsular les funcions en objectes, podem utilitzar PostgreSQL.


BBDD relacionals[modifica]

Les clàssiques!