This repository is a collection of all-things database. It includes some fundamental concepts of databases, code samples, interview questions and more.
Index:
DBMS | Model | Description | Runtime | Link |
---|---|---|---|---|
MySQL | Relational | Mysql basic commands | Shell | link |
MongoDB | Document | MongoDB basic commands | Shell | link |
This section contains sample codes for database operations. For python, there are several options like mysql-connector, pymysql, MySQLdb, SqlAlchemy, etc.
DBMS | Model | Description | Runtime | Sample Code | Docs |
---|---|---|---|---|---|
MySQL | Relational | Python mysql connector code sample | Python | link | docs |
MySQL | Relational | PyMySQL code sample | Python | link | docs |
PostgreSQL | Relational | PostgreSQL using psycopg2 code sample | Python | link | docs |
MongoDB | Document | MongoDB NoSQL database code sample | Python | link | docs |
SQS | Queue | AWS Simple Queue Service operations | Python | link | docs |
ActiveMQ | Queue | MQ Producer and MQ Consumer | Python | link, link | docs |
ActiveMQ | Queue | MQ Producer and MQ Consumer | Java | link, link | docs |
OracleDB | Relational | OracleDB sample code | Python | link | docs |
Kinesis | Stream | AWS Kinesis stream sample code. | Python | link, link | docs |
Redis | In-memory | Redis code sample in python. | Python | link | docs |
Neo4j | Graph | Graph database using neo4j-driver | Python | link | docs |
DynamoDB | Document | DynamoDB basic operations | Python | link | docs |
ElasticSearch | Search | ElasticSearch basic operations | Python | link | docs |
AWS Neptune | Graph | Connecting to AWS Neptune with Gremlin | Python | link | docs |
Cassandra | Wide-column | Cassandra basic operations | Python | link | docs |
Amazon Aurora | MySQL | Basic Operations for Aurora DB | Python | link | docs |
This section some characteristics and comparison points between different database technologies.
Property | Relational DB | NoSQL DB | Document DB | In-memory DB | Graph DB | Search DB | Time-series DB | Ledger DB | Queues | Streams |
---|---|---|---|---|---|---|---|---|---|---|
Type | Relational | Non-Relational | Non-Relational | Non-Relational | Relational | Non-Relational | Relational | Non-Relational | Non-Relational | Non-Relational |
Data | Structured | Un-structured | Un-structured | Un-structured | Un-structured | Semi-structured | Structured | Chain | Un-structured | Un-structured |
Data format | Records, tuples | JSON | JSON | JSON | N/A | JSON | JSON | JSON | Objects | Objects |
Scalability | Vertical | Horizontal | Horizontal | Horizontal | Horizontal | Horizontal | Horizontal | Horizontal | Horizontal | Horizontal |
Record type | Flat | Hierarchical | Hierarchical | Hierarchical | Hierarchical | Hierarchical | Flat, Hierarchical | Hierarchical | Objects | Objects |
Applications | CRM, Finance | Shopping cart | Content Management | Leaderboards | Social media | Product catalog | IoT applications | Cryptocurrency | Queuing tasks | Weather data |
Complex queries | Yes | No | No | No | No | No | No | No | N/A | N/A |
Property | ACID | CAP theorem | CAP theorem | CAP theorem | CAP theorem | CAP theorem | ACID | N/A | N/A | N/A |
Engine(s) | MySQL, PostgresSQL | Cassandra, DynamoDB | MongoDB, DocumentDB | Redis, Memcached | Neo4j | Elasticsearch | InfluxDB | AWS QLDB | ActiveMQ, AWS SQS | Apache Kafka, AWS Kinesis |
Anyone is welcomed to contribute to this repository. If you would like to make a change, open a pull request. For issues and discussion visit the Issue Tracker. Additional articles and workshops can be found on website.
The contents of this repository is merely for educational purpose. The content may not be accurate or up-to-date.