Databáze

Introduction to Data Engineering

Vincent Vankrunkelsven

Data Engineer, DataCamp

Co jsou databáze?

 

Obrázek databáze

Obvykle rozsáhlá sbírka dat uspořádaná zejména pro rychlé vyhledávání a získávání.

 

  • Uchovává data
  • Organizuje data
  • Umožňuje vyhledávání dat přes DBMS
Introduction to Data Engineering

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

Databáze

 

Obrázek databáze

  • Velmi organizované
  • Funkce jako vyhledávání, replikace atd.

Souborové systémy

 

Obrázek souboru

  • Méně organizované
  • Jednoduché, méně dodatečných funkcí
Introduction to Data Engineering

Strukturovaná a nestrukturovaná data

Strukturovaná: databázové schéma

  • Relační databáze

 

Polostrukturovaná

  • JSON

 

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

  • Videa, fotky

Obrázek databáze

 

{ "key": "value"}

 

Obrázek souboru

Introduction to Data Engineering

SQL a NoSQL

SQL

  • Tabulky
  • Databázové schéma
  • Relační databáze

 

Obrázek MySQL

Obrázek PostgreSQL

NoSQL

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

 

Obrázek Redis/MongoDB

Introduction to Data Engineering

SQL: Databázové schéma

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

Databázové schéma pro Customer a Order

-- 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: Schéma hvězdy

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

Diagram schématu hvězdy pro zákazníky a objednávky

  • Fakta: co se stalo (např. objednávky produktů)
  • Dimenze: informace o světě (např. informace o zákaznících)
1 https://en.wikipedia.org/wiki/Star_schema
Introduction to Data Engineering

Pojďme cvičit!

Introduction to Data Engineering

Preparing Video For Download...