Je suis d'apprentissage traditionnels de Bases de données Relationnelles (avec PostgreSQL) et en faisant quelques recherche j'ai trouver quelques nouveaux types de bases de données. CouchDB, Bruine, et Scalaris pour n'en nommer que quelques-uns, qu'est-ce que va être le prochain technologies de base de données à traiter?
Réponses
Trop de publicités?Je dirais next-gen de la base de données, pas de prochaine génération SQL.
SQL est un langage d'interrogation et de manipulation de bases de données relationnelles. SQL est dicté par une norme internationale. Alors que la norme est révisée, il semble toujours travailler au sein de la base de données relationnelle paradigme.
Voici un peu de nouvelles technologies de stockage de données qui sont de toutes les attentions actuellement:
- CouchDB est une base de données non relationnelle. Ils appellent ça un document de base de données orientée.
- Amazon SimpleDB est également une base de données non relationnelle accessible de manière distribuée par le biais d'un service web. Amazon a également distribué clé-valeur magasin appelé Dynamo, dont les pouvoirs de certains de ses S3 services.
- Dynomite et Kai sont des solutions open source d'inspiration par Amazon Dynamo.
- BigTable est propriétaire d'un solution de stockage de données utilisées par Google, et mis en œuvre à l'aide de leur Système de Fichiers de Google de la technologie. Google MapReduce utilise BigTable.
- Hadoop est un open-source de la technologie et inspirée par Google MapReduce, et de servir un besoin similaire, pour distribuer le travail de très grande échelle de magasins de données.
- Scalaris est un système distribué transactionnelle magasin de clé/valeur. Pas non relationnelles, et de ne pas utiliser SQL. C'est un projet de recherche à partir de la Zuse Institut à Berlin, en Allemagne.
- RDF est un standard pour le stockage de la sémantique des données, dans laquelle les données et les métadonnées sont interchangeables. Il a son propre langage de requête SPARQL, qui ressemble à SQL superficiellement, mais est en fait totalement différent.
- Vertica est un très évolutif orienté sur la colonne de base de données analytique conçu pour la distribution (réseau) de l'architecture. Il ne demande à être relationnelle et SQL-conforme. Il peut être utilisé par le biais d'Amazon Elastic Compute Cloud.
- Greenplum est un haut de l'échelle d'entreposage de données SGBD, qui implémente les deux MapReduce et SQL.
- XML n'est pas un SGBD à tous, c'est un format d'échange. Mais certains SGBD produits de travailler avec des données au format XML.
- ODBMS, ou l'Objet de Bases de données, à la gestion de données complexes. Il ne semble pas être une dominante ODBMS produits dans le courant dominant, peut-être à cause d'un manque de normalisation. Le Standard SQL gagne peu à peu certains OO caractéristiques (par exemple, extensible types de données et les tables).
- De la bruine est une base de données relationnelle, en tirant une grande partie de son code de MySQL. Elle comprend plusieurs modifications architecturales conçu pour gérer les données évolutive "cloud computing" architecture du système. Il est probable qu'elle continuera à utiliser le standard SQL avec certains MySQL améliorations.
- Cassandra est une solution hautement évolutive, finalement cohérente, distribué, structuré key-value store, développé à Facebook par l'un des auteurs de Amazon Dynamo, et a contribué au projet Apache.
- Projet Voldemort est un non-relationnelle, de distribuer, de valeur-clé du système de stockage. Il est utilisé à LinkedIn.com
- Berkeley DB mérite une mention. Ce n'est pas "next-gen", car elle remonte au début des années 1990. Il est un populaire clé-valeur magasin qui est facile à intégrer dans une variété d'applications. La technologie est actuellement détenue par Oracle Corp
Voir aussi cet article de nice par Richard Jones: "Anti-SGBDR: UNE liste de distribution de clé-valeur des magasins." Il examine plus en détail la description de certaines de ces technologies.
Les bases de données relationnelles ont des faiblesses, pour être sûr. Les gens ont été affirmant qu'ils ne gèrent pas toutes les exigences de la modélisation des données depuis le jour où il a été introduit.
Année après année, les chercheurs de trouver de nouvelles façons de gérer les données de satisfaire à des exigences particulières: soit que les exigences à traiter des relations de données qui n'entrent pas dans le modèle relationnel, ou encore des exigences de grande ampleur, le volume ou la vitesse que la demande de traitement des données effectué sur des distribué des collections de serveurs, au lieu du centre de serveurs de base de données.
Même si ces technologies de pointe de faire de grandes choses pour résoudre spécialisées problème qu'ils ont été conçus pour les bases de données relationnelles sont toujours une bonne solution pour la plupart des besoins de l'entreprise. SQL ne va pas disparaître.
J'ai écrit un article en php|Architecte magazine sur l'innovation en matière de bases de données non relationnelles, et la modélisation des données relationnelles et non relationnelles, bases de données. http://www.phparch.com/magazine/2010-2/september/
Je suis absent graphique de bases de données dans les réponses jusqu'à présent. Un graphique ou d'un réseau d'objets est commun dans la programmation et peut être utile dans des bases de données. Il peut gérer des semi-structurées et interconnecté de l'information de manière efficace. Parmi les domaines où le graphique de bases de données ont acquis beaucoup de l'intérêt du web sémantique et de la bioinformatique. RDF a été mentionné, et c'est en fait une langue qui représente un graphique. Voici quelques pistes pour savoir ce qui se passe dans le graphique de la base de données de la zone:
- Graphiques - une meilleure abstraction de base de données
- Graphd, le backend de Épurée
- Neo4j open source graphique moteur de base de données
- AllegroGraph RDFstore
- Graphdb couche d'abstraction pour la bio-informatique
- Graphdb derrière Dirigé Bord moteur de recommandation
Je suis partie de la Neo4j projet, qui est écrit en Java, mais a des bindings Python, Ruby et Scala. Certaines personnes l'utilisent avec Clojure ou Groovy/Graal. Il est également un outil graphique évolution.
Peut-être pas le meilleur endroit pour répondre à cela, mais je tiens à partager cette taxonomie du monde noSQL créé par Steve Yen (veuillez trouver à l' http://dl.dropbox.com/u/2075876/nosql-steve-yen.pdf)
(1) clé‐valeur‐cache
memcached
repcached
la cohérence
infinispan
extrêmes de l'échelle
jboss cache
vitesse
terracoqa
(2) clé‐valeur en magasin
espace
flare
schéma gratuit
RAMCloud
(3) finalement cohérent clé‐valeur en magasin
dynamo
voldemort
Dynomite
SubRecord
MongoDb
Dovetaildb
(4) commandé‐clé‐valeur en magasin
tokyo tyrant
lightcloud
NMDB
luxio
memcachedb
actord
(5) les données‐structures serveur
redis
(6) n-uplet magasin
gigaspaces
coord
apache rivière
(7) l'objet de la base de données
ZopeDB
db4o
Shoal
(8) le document store
CouchDB
Mongo
Jackrabbit
Les Bases de données XML
ThruDB
CloudKit
Perservere
Riak Basho
Scalaris
(9) de largeur de colonne magasin
BigTable
Hbase
Cassandra
Hypertable
KAI
OpenNep
Pour un coup d'oeil sur ce que la recherche universitaire est en train d'être fait dans le domaine de la next gen bases de données de prendre un coup d'oeil à ceci: http://www.thethirdmanifesto.com/
En ce qui concerne le langage SQL comme une bonne mise en œuvre du modèle relationnel, je cite wikipédia, "SQL, initialement poussé comme le langage standard pour les bases de données relationnelles, s'écarte du modèle relationnel en plusieurs endroits. L'actuelle norme ISO SQL ne mentionne pas le modèle relationnel ou de l'utilisation des termes relationnels ou des concepts. Toutefois, il est possible de créer une base de données conforme au modèle relationnel à l'aide de SQL si l'on n'utilise pas certaines fonctions SQL."
http://en.wikipedia.org/wiki/Relational_model (mentionné dans la section "SQL et le modèle relationnel" sur Mars 28, 2010