Database Introduction

Databases are a transactional and persistent way of storing data on either a computer filesystem for small or distributed clusters of machines. We use databases to ensure user and system data can generally, but not always, be persisted for a longer period of time without building our own solutions in order to do so.

Databases are generally broken up into 2 categories: SQL and noSQL. NoSQL can further be broken into graph DB’s, document DB’s, Key-Value DB’s, and columns DB’s. SQL vs. NoSQL will be discussed later, but one of the main differences is how they scale vertically vs. horizontally, but they have many more distinguishing features.

Most SQL databases are written in a language, to no one's surprise, called SQL which supports CRUD operations (CREATE, READ, UPDATE, DELETE). Generally these languages between databases, and database providers, are very similar, but may have slight syntax and notation differences. NoSQL databases generally have very different syntax and query structures and sometimes are only used in one specific database.

In more recent years governments have required certain retention policies, meaning data needs to be kept either for a certain period of time or purged after a certain amount of time. GDPR is a good example where certain hiring, payment, and user data must either be retained for a certain amount of time until deletion or be deleted upon user request depending on the circumstances. Database and service design should take this into consideration when building applications that serve within certain legal municipalities.

Checksum
Indexing