Awesome
<div align="center"> <!--<div> <a href="https://github.com/agarcialeon/awesome-database/"> <img width="500" src="awesome-unity.png" alt="Awesome Database"> </a> </div>--> <br> <div> <h1>Awesome Database</h1> <a href="https://github.com/sindresorhus/awesome"> <img src="https://awesome.re/badge-flat.svg" alt="Awesome"> </a> <p> A categorized community-driven collection of amazingly awesome database resources. <br><br> Free assets and resources are prioritized over paid when possible. <br><br> Suggestions and contributions are always welcome! <br> Make sure to read the <a href="https://github.com/agarcialeon/awesome-database/blob/master/CONTRIBUTING.md"> contribution guidelines </a> for more information before submitting a pull request. <!--[![forthebadge](https://forthebadge.com/images/badges/built-by-developers.svg)](https://forthebadge.com)--> <!--[![forthebadge](https://forthebadge.com/images/badges/made-with-c-sharp.svg)](https://forthebadge.com) --> </div>:bookmark_tabs: Contents
- Motivation
- Considerations
- Legend
- Categories
- Learning Resources
- Recommended
- Projects
- Communities
- Frequently Asked Questions (FAQ)
- Contributors to this repository
- Contributing
- Code of Conduct
- To be done
Motivation <a name="motivation"></a>
:construction:
Considerations <a name="considerations"></a>
<!-- There is always a posibility that this repository becomes outdated, mostly because new packages from the asset store and repositories appear in the future. This is because of the nature of technlogy and this can be avoided, so in order to keep this project as updated as possible with what other users know, please create a new issue to include or remove what you think is necessary. Another point is the categorization of the resources provided here. Since some of them can be included in different categories at the same time a cross reference will be created in the form of a hastag to notify you (the visitor) that maybe you need to look in a different place of this repository or in other external site to find more info. Finally, you need to know that this is not the only repository on Github that gathers Unity related repositories. This is just another try to get the best of all the existing content out there for Unity developers. So please, be grateful with all the other developers that put effort collection their respective lists of resources by visiting their repositories (they will be listed below). I hope all of you find this helpful. Let's go with the contents. -->Legend <a name="legend"></a>
Icons <a name="icons"></a>
Free resource: :free:
Paid resource: :moneybag:
Interesting resource: :cool:
<!-- :new: -->Tags <a name="tags"></a>
(UNMAINTAINED) - The repository hasn't been updated for a long time.
(DEPRECATED) - Another solution or package has been released that does the same and it's more recent.
(ARCHIVED) - The repository is read only for learning purposes.
#[CATEGORY] - Where [CATEGORY] represents a category of the document. Means that the resource is related with another category too.
:bookmark: Categories <a name="categories"></a>
Databases <a name="databases"></a>
Search more databases.
Relational Databases <a name="relational-databases"></a>
Oracle <a name="oracle"></a>
- SQL Developer - Oracle's Free IDE for PL/SQL development and administration of Oracle databases.
- SQL Tools for Oracle - Lightweight frontend for Oracle DB development.
- Oracle Database 11g Express Edition - Free entry level database to develop and deploy applications.
- Alexandria PL/SQL Utility Library - Collection of utility packages for PL/SQL
- PLSQL-JSON - PL/SQL library to encode/decode JSON
- utPLSQL - Unit testing framework for PL/SQL.
SQL Server <a name="sqlserver"></a>
- SQL Server Express Edition - Free SQL Server Database to develop and deploy applications.
- SQL Server Data Tools - Integrated environment for developers to design and build database and other business intelligence solutions for MS SQL Server stack.
- tSQLt - Unit testing framework for SQL Server.
Monitoring
- Monitor CPU Usage
- Monitor Memory Usage
- Monitor Disk Usage
- Session Monitoring
- Blocking, Deadlock Monitoring
- IO Monitoring
- Wait stat Monitoring
MariaDB <a name="mariadb"></a>
An enhanced, drop-in replacement for MySQL.
MySQL <a name="mysql"></a>
MySQL is the world's most popular open source database.
- Facebook/MySQL-5.6 - Facebook's branch of the Oracle MySQL v5.6 database. (#C/C++)
- Twitter/MySQL - MySQL fork maintained and used at Twitter. See its wiki. (#C/C++)
- Percona Server - Enhanced, drop-in MySQL replacement.
- TokuDB Engine - TokuDB is a high-performance, write optimized, compressing, transactional storage engine for MySQL and MariaDB. (#C/C++) (#MARIADB)
- Galera - Galera Cluster for MySQL is an easy-to-use high-availability solution with high system up-time, no data loss, and scalability for future growth.
SQLite <a name="sqlite"></a>
A completely embedded, full-featured relational database in a few 100k that you can include right into your project.
- Awesome SQLite - All things around SQLite.
DB2 <a name="db2"></a>
Database management products developed by IBM
- Awesome DB2 - A curated list of awesome Db2 resources, tools and documentation to develop in that database.
Other Databases <a name="other-relational-databases"></a>
- Firebird - True universal open source database.
- VoltDB - VoltDB is a horizontally-scalable, in-memory SQL RDBMS designed for applications that have extremely high read and write throughput requirements.
- YugabyteDB - PostgreSQL-compatible, Cassandra-compatible, horizontally scalable, fault tolerant database server.
Object-Relational Databases
PostgreSQL <a name="postgresql"></a>
A powerful, open source object-relational database system.
- PostgreSQL - Mirror of the official PostgreSQL Git repository. (#C/C++)
- PostgreSQL-XL - Scalable Open Source PostgreSQL-based database cluster.
- Cstore FDW - Fast columnar store for analytics with PostgreSQL. Website. (#C/C++)
- Barman - Backup and Recovery Manager for disaster recovery of PostgreSQL servers.
NoSQL Databases <a name="nosql-databases"></a>
See list of databases.
Key-Value Cache <a name="key-value-cache"></a>
- Coherence
- eXtreme Scale
- GigaSpaces
- GemFire
- Hazelcast
- Infinispan
- JBoss Cache
- Memcached
- Repcached
- Terracotta
- Velocity
- Go Cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications. (#GO-LANG)
Key-Value Store <a name="key-value-store"></a>
- Flare
- Keyspace
- RAMCloud
- SchemaFree
- Hyperdex
- Aerospike - Flash-optimized, in-memory, noSQL database. Previously AlchemyDB. See more.
- Bolt - A low-level key/value database for Go. (#GO-LANG)
- Diskv - A home-grown disk-backed key-value store. (#GO-LANG)
- LevelDB - High performance key-value storage library written at Google. See more.
- Go LevelDB - An implementation of the LevelDB key/value database in the Go. (#GO-LANG)
Key-Value Store (Eventually-Consistent) <a name="key-value-store-consistent"></a>
- DovetailDB
- Oracle NoSQL Database
- Dynamo
- Voldemort - An open source clone of Amazon's Dynamo. Website (#JAVA)
- Riak - Another fault-tolerant key-value NoSQL database.
- Dynomite
- MotionDb
- Voldemort
- SubRecord
Key-Value Store (Ordered) <a name="key-value-store-ordered"></a>
- Actord
- FoundationDB
- Lightcloud
- LMDB - Very fast embedded key/value store with full ACID semantics. (#C/C++)
- Luxio
- Memcached - Free & open source, high-performance, distributed memory object caching system. (#C/C++)
- Groupcache - Groupcache is a caching and cache-filling library, intended as a replacement for memcached in many cases. (#GO-LANG)
- MemcacheDB
- NMDB
- Scalaris
- TokyoTyrant
Data-Structures server <a name="data-structures-server"></a>
- Redis - Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes.Website. (#C/C++)
- Redis NDS - This is a version of Redis patched to implement NDS (the Naive Disk Store). (#C/C++)
- SSDB - A fast NoSQL database, an alternative to Redis. Website. (#C/C++)
- LedisDB - Ledisdb is a high performance NoSQL like Redis based on LevelDB. (#GO-LANG)
Tuple Store <a name="tuple-store"></a>
- Apache River
- Coord
- GigaSpaces
Object Database <a name="object-database"></a>
- DB4O
- Objectivity/DB
- Perst
- Shoal
- ZopeDB
Document Store <a name="document-store"></a>
- Clusterpoint
- Couchbase - In-memory, replicated, peristent key/value datastore.
- MongoDB - MongoDB is a document database that provides high performance, high availability, and easy scalability. Documents (objects) map nicely to programming language data types. Embedded documents and arrays reduce need for joins. Dynamic schema makes polymorphism easier. [Website] (https://www.mongodb.org/). (#JAVASCRIPT)
- TokuMX - TokuMX is a high-performance, concurrent, compressing, drop-in replacement engine for MongoDB. (#C/C++)
- Apache CouchDB - A database that uses JSON for documents, JavaScript for MapReduce indexes, and regular HTTP for its API [Website] (http://couchdb.apache.org/). (#JAVASCRIPT)
- PouchDB - PouchDB is a pocket-sized database. (#JAVASCRIPT). Inspired by CouchDB.
- RethinkDB - An open-source distributed JSON document database with a pleasant and powerful query language. For building realtime web applications. Website. (#C/C++)
- ElasticSearch - Popular with log aggregation, and email archiving projects. (#JAVA)
- DocumentDB
- RavenDB - Document based database with ACID/Transactional features. Website (#.NET)
- Lotus Notes
- MarkLogic
- Qizx
- XML-databases
Wide Columnar Store <a name="wide-columnar-store"></a>
- BigTable
- Cassandra - A partitioned row store. Rows are organized into tables with a required primary key. Website (#JAVA)
- Druid
- Apache HBase - Hadoop database, a distributed, big data store.
- Hypertable - C++ based BigTable-like DBMS, communicates through Thrift and runs either as stand-alone or on distributed FS such as Hadoop.
- KAI
- KDI
- OpenNeptune
- Qbase
Graph Databases <a name="graph-databases"></a>
- Neo4j - The world’s leading Graph Database. Website. (#JAVA)
- FlockDB - Twitter's distributed, fault-tolerant graph database.
- Titan - Distributed Graph Database. (#JAVA)
- OrientDB - OrientDB is an Open Source NoSQL DBMS with the features of both Document and Graph DBMSs. (#JAVA) (#DOCUMENT-STORE)
- ArangoDB - ArangoDB is a multi-purpose, open-source database with flexible data models for documents, graphs, and key-values. Build high performance applications using a convenient SQL-like query language or JavaScript/Ruby extensions. Use ACID transaction if you require them. Scale horizontally and vertically with a few mouse clicks.
- ArcadeDB - ArcadeDB is a Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. (#JAVA)
Others
- Memstate - Previously named OrigoDB. An in-memory embedded database engine for NET/Mono. See more. (#.NET)
- MonetDB - A high-performance database kernel for query-intensive applications. The MonetDB kernel works together with an SQL frontend that is in a separate CVS module. Website. (#C/C++)
- Tiedot - Your NoSQL database powered by Golang. (#GO-LANG)
- InfluxDB - Scalable datastore for metrics, events, and real-time analytics. (#GO-LANG)
- Roshi - Roshi is a large-scale CRDT set implementation for timestamped events. (#GO-LANG)
- SkyDB.io - Sky is an open source database used for flexible, high performance analysis of behavioral data. (#GO-LANG)
- CrateDB - An open source database for Time Series, Documents, and Vectors with native SQL query interface - written in Java.
Embeddable engines <a name="embeddable-engines"></a>
- Derby - Open source relational database implemented entirely in Java.
- H2 - An embeddable RDBMS written in Java.
- PalDB - Embeddable write-once key-value store written in Java.
- RocksDB - Embedded key-value store for fast storage. Website. (#C/C++)
- MapDB - MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine. Website. (#JAVA)
- Xodus - JetBrains Xodus is a Java transactional schema-less embedded database.
Clojure
Erlang
- Riak - Riak is a decentralized datastore from Basho Technologies.
- PulseDB - PulseDB is a time series database server and library.
Java
- Elasticsearch - Open Source, Distributed, RESTful Search Engine Website. (#JAVA)
- Lmdbjni - LMDB for Java, which is a very fast embedded key/value store with full ACID semantics. (#JAVA)
Scala
- BlinkDB - BlinkDB: Sub-Second Approximate Queries on Very Large Data [Website] (http://blinkdb.cs.berkeley.edu/). (#SCALA)
- VerdictDB - Interactive-Speed Analytics: 200x Faster, 200x Fewer Cluster Resources, Approximate Query Processing.
Frameworks <a name="frameworks"></a>
:construction:
Services <a name="services"></a>
:construction:
:pencil2: Scripting <a name="scripting"></a>
SQL Languages <a name="sql-languages"></a>
- SQL (Structured Query Language)
- T-SQL (Transact SQL)
Sublanguages <a name="sql-sublanguages"></a>
Take picture from here
- Data Definition Language (DDL)
- Data Manipulation Language (DML)
- Data Control Language (DCL)
- Transaction Control Language(TCL)
- DQL (Data Query Language)
Versions
Take table from here
Dialects
:chart_with_upwards_trend: Algorithms <a name="algorithms"></a>
:construction:
:straight_ruler: Patterns <a name="patterns"></a>
:construction:
:orange_book: Libraries <a name="libraries"></a>
:construction:
:nut_and_bolt: Utilities <a name="utilities"></a>
:construction:
:wrench: Tools <a name="tools"></a>
- PixQL - Command-line image processing tool in SQL.
- SQL Fiddle - Easly test and share database problems and their solutions. Can use different backend DBMS's (MySQL, PostgreSQL, MS SQL Server, Oracle, and SQLite).
- SqlPad - A web app for running SQL queries and visualizing the results.
- ERAlchemy - ERAlchemy generates Entity Relation (ER) diagram from databases.
- BigBash - Open-source converter that generates a bash one-liner from an SQL Select query, no database necessary.
- Flyway - Database migration tool.
- Liquibase - Source Control for your database.
- Awesome DB Tools - a community driven list of database tools (ide, cli, managing, monitoring, migrations, modelers, visualization etc)
- 10 Database tools for sys admins
- Wikipedia Database Tools Comparison
Formatters <a name="formatters"></a>
- SQL Format - Instant SQL Formatter.
- Poor SQL - A small free .Net and JS library (with demo UI, command-line bulk formatter, SSMS/VS add-in, notepad++ plugin, winmerge plugin, and demo webpage) for reformatting and coloring T-SQL code to the user's preferences. See more on Github.
- T-SQL Tidy - Online T-SQL formatting with Webservice and Plugins for SSMS.
:electric_plug: Plugins <a name="plugins"></a>
:construction:
Snippets & Gists <a name="snippets-&-gists"></a>
:construction:
Dynamic SQL <a name="dynamic-sql"></a>
:construction:
Integrated Development Environment (IDE) <a name="ide"></a>
:construction:
VCS (Version Control Systems) <a name="vcs"></a>
:construction:
Continuous Integration <a name="continuous-integration"></a>
:construction:
Testing <a name="testing"></a>
:construction:
Documentation <a name="documentation"></a>
:construction:
Database Development <a name="db-development"></a>
- Awesome DB Dev - Awesome materials about database development.
Benchmarks <a name="benchmarks"></a>
- Awesome DB Benchmarks - Community driven list of database benchmarks.
:sunglasses: Customization <a name="customization"></a>
:construction:
Extensibility <a name="extensibility"></a>
:construction:
Misc. <a name="miscellaneous"></a>
:construction:
:mortar_board: Learning Resources <a name="learning-resources"></a>
:rocket: Tips and Tricks <a name="tips-tricks"></a>
:construction:
:books: Books <a name="books"></a>
:construction:
Research Papers
- db-readings - A list of papers essential to understanding databases and building new data systems.
:newspaper: Blogs <a name="blogs"></a>
:construction:
:tv: Videos <a name="videos"></a>
:vhs: Youtube Channels <a name="youtube-channels"></a>
:construction:
:beginner: Tutorials <a name="tutorials"></a>
- Curated SQL Learning Resources on Hackr.io - Programming Community Curated Resources for learning SQL.
:star: Best Practices <a name="best-practices"></a>
:abcd: Coding Practices <a name="coding-practices"></a>
:construction:
:capital_abcd: Organizational Practices <a name="organizational-practices"></a>
:construction:
:triangular_ruler: Style Guide <a name="style-guide"></a>
:construction:
:key: Shortcuts <a name="shortcuts"></a>
:construction:
:paperclip: Other references <a name="other-references"></a>
- Awesome DB Tools - A community driven list of database tools (ide, cli, managing, monitoring, migrations, modelers, visualization, etc...).
- Awesome SQL - List of tools and techniques for working with relational databases.
- Awesome Databases - A curated list of awesome databases.
- Awesome DB - A curated list of awesome DBs.
- Awesome SQL Server - A big collection of SQL Server Queries and documeantations to fix your SQL Server's bottle neck.
- Awesome MySQL - A curated list of awesome MySQL software, libraries, tools and resources.
- Awesome MariaDB - A curated list of awesome MariaDB resources.
- Awesome SQLite - A collection of awesome sqlite tools, scripts, books, etc.
- Awesome PostgresSQL - A curated list of awesome PostgreSQL software, libraries, tools and resources, inspired by awesome-mysql.
- Awesome DB2 - A curated list of awesome Db2 resources, libraries, tools and applications.
- Awesome BigData - A curated list of awesome big data frameworks, resources and other awesomeness.
:trophy: Recommended <a name="recommended"></a>
:construction:
Projects <a name="projects"></a>
:construction:
:busts_in_silhouette: Communities <a name="communities"></a>
:speech_balloon: Chat Servers <a name="chat-servers"></a>
:construction:
Forums <a name="forums"></a>
:construction:
Groups <a name="groups"></a>
:construction:
:name_badge: People to follow <a name="people-to-follow"></a>
:construction:
:question: Frequently Asked Questions (FAQ) <a name="faq"></a>
:construction:
:clap: :tada: Contributors to this repository <a name="contributors"></a>
:guardsman: @agarcialeon - Owner of the repository
Contributing <a name="contributing"></a>
Please see CONTRIBUTING for details.
Thanks to all the contributors, this wouldn't be possible without you!
<!--<a href="https://github.com/agarcialeon/awesome-unity/graphs/contributors"> <img src="https://opencollective.com/vuejs/contributors.svg?width=890" /> </a>-->Code of Conduct <a name="code-of-conduct"></a>
See Code of Conduct.
:memo: To be done <a name="to-do"></a>
:warning: NOTE: Following list of tasks is written without any order of preference.
- Fill Open Issue template file to help providing new resources.
- Add license file.
- Add awesome sqlite repository resources. (not commercial ones)
- Add awesome postgres repository resources.
- Add repository logo.
- Add contributing file.
- Move language-related resources to its category and add language tags to filter them.
- The logo image should be high-DPI. Set it to maximum half the width of the original image.
- Wait 30 days from first commit to make the pull request to awesome lists topic.
- Add tags for free and paid resources.
- Add better icons for sections.
- Use tags to classify a resource instead of using a category.
- Reorder category resources by most well known resources if possible.
- Starter kit section with all the things needed or recommended for beginners.
- Include resources for recommended packages section (well tested, most voted and so on).
- Fill up continuous integration section.
- Fill up people to follow.
- Fill up communities section.
- Fill snippets and gists under scripting section.
- Create more categories for specific resources that don't combine well.
- Add category for error reporting, logging and debugging.
- Mark deprecated packages (:x:).
- Change introduction at the beginning ot the readme file to indicate better the visitors how its organized.
- Do shortcut png image with IDE shortcuts.
- Create open collective to show the image with the contributors if necessary.
- Review items by category to select one between similar ones in order to select the most complete. Reference the others in another section or repository.
And many more...