Databases

Introductie tot Data Engineering

Vincent Vankrunkelsven

Data Engineer, DataCamp

Wat zijn databases?

 

Afbeelding van een database

Een meestal grote verzameling data, speciaal georganiseerd voor snelle zoekactie en opvraging.

 

  • Slaat data op
  • Ordent data
  • Haal/zoek data op via een DBMS
Introductie tot Data Engineering

Databases en bestandsopslag

Databases

 

Afbeelding van een database

  • Zeer geordend
  • Functionaliteit zoals zoeken, replicatie, ...

Bestandssystemen

 

Afbeelding van bestand

  • Minder geordend
  • Eenvoudig, minder extra functionaliteit
Introductie tot Data Engineering

Gestructureerde en ongestructureerde data

Gestructureerd: databaseschema

  • Relationele database

 

Semigestructureerd

  • JSON

 

Ongestructureerd: schema-loos, meer als bestanden

  • Video's, foto's

Afbeelding van een database

 

{ "key": "value"}

 

Afbeelding van bestand

Introductie tot Data Engineering

SQL en NoSQL

SQL

  • Tabellen
  • Databaseschema
  • Relationele databases

 

MySQL-afbeelding

PostgreSQL-afbeelding

NoSQL

  • Niet-relationele databases
  • Gestructureerd of ongestructureerd
  • Sleutel-waarde-opslag (bijv. caching)
  • Document-DB (bijv. JSON-objecten)

 

Redis/MongoDB-afbeelding

Introductie tot Data Engineering

SQL: Het databaseschema

-- Create Customer Table 
CREATE TABLE "Customer" (
  "id" SERIAL NOT NULL,
  "first_name" varchar,
  "last_name" varchar,
  PRIMARY KEY ("id")
);

-- Create Order Table 
CREATE TABLE "Order" (
  "id" SERIAL NOT NULL,
  "customer_id" integer REFERENCES "Customer",
  "product_name" varchar,
  "product_price" integer,
  PRIMARY KEY ("id")
);

Databaseschema voor Customer en Order

-- Join beide tabellen op de foreign key
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
Introductie tot Data Engineering

SQL: Sterrenschema

Het sterrenschema bestaat uit een of meer feitentabellen die verwijzen naar een willekeurig aantal dimensietabellen.

Sterrenschema-diagram van Customers en Orders

  • Feiten: dingen die gebeurden (bijv. productorders)
  • Dimensies: informatie over de wereld (bijv. klantinformatie)
1 https://en.wikipedia.org/wiki/Star_schema
Introductie tot Data Engineering

Laten we oefenen!

Introductie tot Data Engineering

Preparing Video For Download...