====== Système de gestion de base de données (SGBD) ====== Voir aussi [[/informatique/SQL|/informatique/SQL]], [[/informatique/NoSql|/informatique/NoSql]], [[/informatique/GraphDB|/informatique/GraphDB]], [[/informatique/web_semantique|/informatique/web semantique]] (RDF) ===== SGBD Relationnels (SGBDR) ===== ==== MySQL ==== [[/informatique/sgbd/MySQL|MySQL]] ==== DuckDB ==== [[/informatique/sgbd/DuckDB|DuckDB]] ==== Oracle ==== ==== MsSQL ==== Microsoft SQL Server ==== PostgreSQL ==== [[http://www.postgresql.org]] ==== H2 Database engine ==== H2, the Pure Java SQL database. The main features of H2 are: * Very fast, open source, JDBC API * Embedded and server modes; in-memory databases * Browser based Console application * Small footprint: around 1 MB jar file size [[http://www.h2database.com/]] ==== Derby ==== Apache Derby, an Apache DB subproject, is an open source relational database implemented entirely in Java and available under the Apache License v2.0. Some key advantages include: * Derby has a small footprint -- about 2.6 megabytes for the base engine and embedded JDBC driver. * Derby is based on the Java, JDBC, and SQL standards. * Derby provides an embedded JDBC driver that lets you embed Derby in any Java-based solution. * Derby also supports the more familiar client/server mode with the Derby Network Client JDBC driver and Derby Network Server. * Derby is easy to install, deploy, and use. http://db.apache.org/derby ==== HyperSQL (HSQLDB) ==== Pure Java SQL database. Version 2.0 supports the widest range of SQL Standard features seen in any open source database engine. We have reached SQL Standard conformance to almost full SQL-1992 Advanced Level and SQL:2008 core language features plus an extensive list of SQL:2008 optional features and many extensions. Version 2.0 is fully multithreaded and supports high performance 2PL and MVCC transaction control models. See the [[http://hsqldb.org/web/features200.html|list of new features]] in version 2.0. http://hsqldb.org/ ==== Firebird ==== Firebird is a relational database offering many ANSI SQL standard features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, and powerful language support for stored procedures and triggers. It has been used in production systems, under a variety of names, since 1981. The Firebird Project is a commercially independent project of C and C++ programmers, technical advisors and supporters developing and enhancing a multi-platform relational database management system based on the source code released by Inprise Corp (now known as Borland Software Corp) on 25 July, 2000. http://www.firebirdsql.org/ ===== SGBD NoSQL ===== voir aussi [[/informatique/nosql|/informatique/NoSql]] ==== Aerospike ==== Aerospike is a distributed, scalable NoSQL database. It is architected with three key objectives: * To create a high-performance, scalable platform that would meet the needs of today's web-scale applications * To provide the robustness and reliability (i.e., ACID) expected from traditional databases. * To provide operational efficiency (minimal manual involvement) * [[https://www.aerospike.com/products/product-matrix|product matrix]] * [[https://github.com/aerospike/aerospike-server|source code]] @github ==== Cassandra ==== Cassandra is a highly scalable, eventually consistent, distributed, structured key-value store. Cassandra brings together the distributed systems technologies from Dynamo and the data model from Google's BigTable. Like Dynamo, Cassandra is eventually consistent. Like BigTable, Cassandra provides a ColumnFamily-based data model richer than typical key/value systems. Cassandra was open sourced by Facebook in 2008, where it was designed by one of the authors of Amazon's Dynamo. In a lot of ways you can think of Cassandra as Dynamo 2.0. Cassandra is in production use at Facebook but is still under heavy development. > Les plus gros acteurs du web (Facebook, Google, Amazon, Microsoft) ont été amenés à développer une base de données dédiées à la problématique du web car les bases de données relationnelles ne répondaient pas entièrement à leurs besoins. Facebook vient de livrer en opensource le code de son implémentation. Le nom du projet est Cassandra. Le langage utilisé pour développer est java. * http://cassandra.apache.org * http://www.25hoursaday.com/weblog/2008/07/14/ProjectCassandraFacebooksOpenSourceAlternativeToGoogleBigTable.aspx ==== Amazon's Dynamo ==== * http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf * http://en.wikipedia.org/wiki/Dynamo_(storage_system) ==== Google's BigTable ==== * http://labs.google.com/papers/bigtable.html * http://labs.google.com/papers/bigtable-osdi06.pdf * http://en.wikipedia.org/wiki/BigTable ==== HBase ==== [[http://hbase.apache.org]] HBase is the [[http://hadoop.apache.org/|Hadoop]] database. Use it when you need random, realtime read/write access to your Big Data. This project's goal is the hosting of very large tables -- billions of rows X millions of columns -- atop clusters of commodity hardware. HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable: A Distributed Storage System for Structured by Chang et al. Just as Bigtable leverages the distributed data storage provided by the Google File System, HBase provides Bigtable-like capabilities on top of Hadoop. HBase includes: * Convenient base classes for backing Hadoop MapReduce jobs with HBase tables including cascading, hive and pig source and sink modules * Query predicate push down via server side scan and get filters * Optimizations for real time queries * A Thrift gateway and a REST-ful Web service that supports XML, Protobuf, and binary data encoding options * Extensible jruby-based (JIRB) shell * Support for exporting metrics via the Hadoop metrics subsystem to files or Ganglia; or via JMX ==== CouchDB ==== [[/informatique/sgdb/couchdb|/informatique/sgdb/couchdb]] CouchDB est un projet de l'ASF (Apache Software Foundation).\\ Il s'agit d'une base de données avec une interface RestFul - JSON. Comme j'adore tout ce qui exploite pleinement HTTP, je me penche depuis quelques temps sur couchDB, notamment pour la participation à la création d'un frontEnd PHP pour Zend Framework : Zend_Couch (nom temporaire) What CouchDB is: * A document database server, accessible via a RESTful JSON API. * Ad-hoc and schema-free with a flat address space. * Distributed, featuring robust, incremental replication with bi-directional conflict detection and management. * Query-able and index-able, featuring a table oriented reporting engine that uses Javascript as a query language. What it is Not: * A relational database. * A replacement for relational databases. * An object-oriented database. Or more specifically, meant to function as a seamless persistence layer for an OO programming language. Le livre libre et en français: [[http://guide.couchdb.org/editions/1/fr/index.html]] * [[http://couchdb.apache.org/docs/intro.html|What CouchDB is]] sur le [[http://couchdb.apache.org/|site du projet]] * [[http://blog.developpez.com/julienpauli/p7864/dev-web-generaliste/vous-connaissez-couchdb/|Article par Julien Pauli]] Doc tech: * [[http://wiki.apache.org/couchdb/HTTP_Document_API|HTTP Document API]] Le clip [[http://vimeo.com/11852209|I Use Couch DB]] de [[http://vimeo.co/user3158377|Couchio]] sur [[http://vimeo.com|Vimeo]] : \\ echo ' '; D'autres clips : [[http://vimeo.com/13941628|CouchSpice — the Database YOUR Database Could Replicate Like]], [[http://vimeo.com/11062756|Couch DB Music Video]], [[http://vimeo.com/20499717|So You Wanna Learn About CouchDB ?]] ==== MongoDB ==== http://www.mongodb.org MongoDB is a very interesting document-oriented database implementation for several reasons: * It uses JSON, instead of XML * It is fast, as it is written in C++ * Supports index definitions * Provides an easy to use query interface, very similar to some database abstraction layers * Supports operations with sub-documents * Provides a native PHP extension * Supports auto-sharding * Supports map-reduce for data transformation Articles: * [[http://www.phpclasses.org/blog/post/118-Developing-scalable-PHP-applications-using-MongoDB.html|Developing scalable PHP applications using MongoDB]] === Tools === http://robomongo.org {{http://robomongo.org/images/mac-main-screen.png?200}} $collection = $db->selectCollection('people'); // or simply $collection = $db->people; ==== Redis ==== https://redis.io/ * [https://redis.io/topics/benchmarks|How fast is Redis?] * [https://www.percona.com/blog/2009/08/27/looking-at-redis/|Looking at Redis]