Databáze

Introduction to Data Engineering

Vincent Vankrunkelsven

Data Engineer @ DataCamp

Co jsou databáze?

 

Obrázek databáze

Zpravidla rozsáhlá kolekce dat organizovaná především pro rychlé vyhledávání a načítání.

 

  • Uchovává data
  • Organizuje data
  • Vyhledávání/načítání dat přes DBMS
Introduction to Data Engineering

Databáze a souborová úložiště

Databáze

 

Obrázek databáze

  • Velmi uspořádané
  • Funkce jako vyhledávání, replikace, ...

Souborové systémy

 

Obrázek souboru

  • Méně uspořádané
  • Jednoduché, omezená funkčnost
Introduction to Data Engineering

Strukturovaná a nestrukturovaná data

Strukturovaná: schéma databáze

  • Relační databáze

 

Polostrukturovaná

  • JSON

 

Nestrukturovaná: bez schématu, spíše soubory

  • Videa, fotografie

Obrázek databáze

 

{ "key": "value"}

 

Obrázek souboru

Introduction to Data Engineering

SQL a NoSQL

SQL

  • Tabulky
  • Schéma databáze
  • Relační databáze

 

Obrázek MySQL

Obrázek PostgreSQL

NoSQL

  • Nerelační databáze
  • Strukturovaná nebo nestrukturovaná data
  • Úložiště klíč–hodnota (např. cachování)
  • Dokumentové databáze (např. objekty JSON)

 

Obrázek Redis/MongoDB

Introduction to Data Engineering

SQL: Schéma databáze

-- 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")
);

Schéma databáze pro zákazníka a objednávku

-- Join both tables on foreign key
SELECT * FROM "Customer"
INNER JOIN "Order"
ON "customer_id" = "Customer"."id";
 id | first_name | ... | product_price
  1 | Vincent    | ... |            10
Introduction to Data Engineering

SQL: Hvězdicové schéma

Hvězdicové schéma se skládá z jedné nebo více tabulek faktů odkazujících na libovolný počet tabulek dimenzí.

Diagram hvězdicového schématu zákazníků a objednávek

  • Fakta: události (např. objednávky produktů)
  • Dimenze: kontextové informace (např. údaje o zákazníkovi)
1 Wikipedia: https://en.wikipedia.org/wiki/Star_schema
Introduction to Data Engineering

Pojďme procvičovat!

Introduction to Data Engineering

Preparing Video For Download...