Database introduction

What is a database?

  • Is a collection of organized data that can be easily accessed and managed

  • When it comes to databases we don't really interact with the database directly

  • Instead we have a Database management system (DBMS)

  • After which the DBMS will send the data over to the Database and return the results

  • So... we always have a piece of software that interacts with the database

Types of Databases

Relational Databases

  • MySQL

  • PostgreSQL

  • Oracle

  • SQL Server

Note: Fundamentally all the Relational databases are the same at the core, however there are small differences on how SQL is implemented in each of the above examples.

NoSQL

  • MongoDB

  • DynamoDB

  • Oracle

  • SQL Server

Relational Databases & SQL

  • Structured Query Language (SQL) is the language used to communicate with the DBMS

Database Schema and Tables

Tables

  • A table represents a subject or event in an application

What does this mean?

Let's say we are building a E-Commerce application

We are going to have a table representing each part of the application

  • Users - Table for all users that have registered

  • Products - Tables for all the products that we sell

  • Purchases - Table for all the purchases made

  • All these tables will form a Relationship (Hence Relational Database)

If you think about it, a user will purchase a product and they will all be linked

  • Every purchase order has to be associated with a user account

  • A purchase order also has a list of products that the user wants to buy

Columns vs Rows

  • A table is made up of columns and rows

  • Each Column represents a different attribute

  • Each Row represents a different entry in the table

DataTypes

  • Databases have datatypes just like any other programming language

  • In our case Postgres:

-

Why is this important?

  • When you create a Column within a table, you need to specify what kind of DataType you want to use

Primary Key

  • Is a column or group of columns that uniquely identifies each row in a table

  • Table can have one and only one primary key

  • The Primary key does not have to be the ID column always. It's up to you to decide which column uniquely defines each record

  • In the below example, since an email can only be registered once, the email column can also be used as the primary key

Unique Constraints

  • A UNIQUE constraint can be applied to any column to make sure every record has a unique value for that column

Primary Key has to be UNIQUE, but what happens when we have another row that needs to be unique?

  • That's where the Unique Constraints come in

  • In the above example we don't want duplicate names

  • Once we apply the Unique Constraint, SQL will check to make sure that the new name we are trying to enter doesn't already exist in the database

NULL Constraint

  • By default when adding a new entry to a database, any column can be left blank

  • When a column is left blank, it has a null value

  • If you need column to be properly filled in to create a new record, a NOT NULL constraint can be added to the column to ensure that the column is never left blank

Last updated