Databases
Design of a Sample Food Delivery Application
- This is simplified version
- Lets just focus on Database
- The following questions on Database
- Which Type of Database should i use?
- Which Database Engine/Vendor?
- Setup and Configuration of Databases
- Disaster Recovery and Failure Handling
Which Type of Database should i use?
- On a broader note there are two types of Databases
- Relational:
- Data is stored in the form of Tables i.e. Rows and columns. Each Row represents a record for information
- Structure is referred as schema and it is extreemly strict on schema
- To interact with Databases we use SQL (Structured Query Language)
- Engines:
- Oracle
- Microsoft SQL Server
- mysql (mariadb)
- Postgres
- DB2
- NoSQL:
- Data is stored generally in the form of documents (other types) with no strict schema restrictions
- There is no SQL to query the data, rather they give an API and shells
- Engines:
- Mongo DB
- Couch DB
- Cassandra
- Gremlin
- Neo4j
- Relational:
Setup and Configuration
- We need a server and
- Install Databases
- Configure users
- Setup for Disaster Recovery, Backup etc
- Possible issues
- Sizing (undersize or oversize)
- Maintenance:
- Server
- OS
- Database
How cloud can help
- Here we get Database as a Service, so no installation required
- NO need to perform manual updates for os/datbase
- Replication setups are simplified and even cross location replications are possible
Terms
- Structured Data: Data which can be queried
- Failover