数据库

Data Engineering 入门

Vincent Vankrunkelsven

Data Engineer, DataCamp

什么是数据库?

 

Image of a database

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

 

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

数据库与文件存储

数据库

 

Image of a database

  • 结构严谨
  • 提供搜索、复制等功能

文件系统

 

Image of file

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

结构化与非结构化数据

结构化:数据库模式

  • 关系型数据库

 

半结构化

  • JSON

 

非结构化:无模式,更像文件

  • 视频、照片

Image of a database

 

{ "key": "value"}

 

Image of file

Data Engineering 入门

SQL 与 NoSQL

SQL

  • 数据库模式
  • 关系型数据库

 

MySQL Image

PostgreSQL Image

NoSQL

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

 

Redis/MongoDB Image

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

Database Schema for Customer and 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
Data Engineering 入门

SQL:星型模式

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

Star Schema Diagram of Customers and Orders

  • 事实(Facts):实际发生的事件(如商品订单)
  • 维度(Dimensions):描述环境的信息(如客户信息)
1 https://en.wikipedia.org/wiki/Star_schema
Data Engineering 入门

让我们一起练习吧!

Data Engineering 入门

Preparing Video For Download...