数据库

Data Engineering 入门

Vincent Vankrunkelsven

Data Engineer @ DataCamp

什么是数据库?

 

数据库图像

通常是为快速搜索与检索而组织的大型数据集合。

 

  • 存储数据
  • 组织数据
  • 通过 DBMS 检索/搜索
Data Engineering 入门

数据库与文件存储

数据库

 

数据库图像

  • 组织性强
  • 支持搜索、复制等功能

文件系统

 

文件图像

  • 组织性较弱
  • 简单,附加功能较少
Data Engineering 入门

结构化与非结构化数据

结构化:数据库架构

  • 关系型数据库

 

半结构化

  • JSON

 

非结构化:无架构,类似文件

  • 视频、照片

数据库图像

 

{ "key": "value"}

 

文件图像

Data Engineering 入门

SQL 与 NoSQL

SQL

  • 数据库架构
  • 关系型数据库

 

MySQL 图像

PostgreSQL 图像

NoSQL

  • 非关系型数据库
  • 结构化或非结构化
  • 键值存储(如缓存)
  • 文档数据库(如 JSON 对象)

 

Redis/MongoDB 图像

Data Engineering 入门

SQL:数据库架构

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

客户与订单的数据库架构

-- 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
Data Engineering 入门

SQL:星型架构

星型架构由一个或多个事实表引用任意数量的维度表组成。

客户与订单的星型架构图

  • 事实:已发生的事件(如产品订单)
  • 维度:关于业务的属性(如客户信息)
1 维基百科: https://en.wikipedia.org/wiki/Star_schema
Data Engineering 入门

Passons à la pratique !

Data Engineering 入门

Preparing Video For Download...