关系型数据的键

Snowflake 中的数据建模入门

Nuno Rocha

Director of Engineering

关系型数据简介

包含大量产品而显得杂乱的实体

Snowflake 中的数据建模入门

关系型数据简介 (1)

  • 关系型数据:以独立实体和键组织的结构化数据,键用于建立实体间关系

将产品拆分为三个独立实体

Snowflake 中的数据建模入门

关系型数据中键的作用

  • 数据结构与完整性:键将数据组织为表并保持准确性
  • 现实世界关联:键促进有意义的链接,反映复杂交互
  • 高效访问:键简化检索与查询
  • 可扩展性:键确保随增长仍保持完整性
Snowflake 中的数据建模入门

主键与外键回顾

  • 主键(Primary Key):实体中每条记录的唯一标识
CREATE OR REPLACE TABLE products (
    id NUMBER(10,0) PRIMARY KEY,
    name VARCHAR(255)
);
Snowflake 中的数据建模入门

主键与外键回顾 (1)

  • 主键(Primary Key):实体中每条记录的唯一标识
  • 外键(Foreign Key):将一个实体关联到另一个实体
CREATE OR REPLACE TABLE products (
    product_id NUMBER(10,0) PRIMARY KEY,
    product_name VARCHAR(255)


);
Snowflake 中的数据建模入门

主键与外键回顾 (2)

  • 主键(Primary Key):实体中每条记录的唯一标识
  • 外键(Foreign Key):将一个实体关联到另一个实体
CREATE OR REPLACE TABLE products (
    product_id NUMBER(10,0) PRIMARY KEY,
    product_name VARCHAR(255),
    manufacturer_id NUMBER(10,0),
    FOREIGN KEY (manufacturer_id) REFERENCES manufacturers(manufacturer_id)
);
Snowflake 中的数据建模入门

数据模型中的关系

包含产品、制造商和产品明细实体的数据模型

Snowflake 中的数据建模入门

数据模型中的关系 (1)

新增"类别"实体

Snowflake 中的数据建模入门

调整数据模型

CREATE OR REPLACE TABLE categories (
  category_id NUMBER(10,0) PRIMARY KEY,
  category VARCHAR(255)
);

类别实体指向产品实体的基数

Snowflake 中的数据建模入门

调整数据模型 (1)

ALTER TABLE products
ADD COLUMN category_id NUMBER(10,0);
ALTER TABLE products
ADD FOREIGN KEY (category_id) REFERENCES categories(category_id);
Snowflake 中的数据建模入门

调整数据模型 (2)

产品的最终物理模型

Snowflake 中的数据建模入门

术语与功能概览

  • 关系型数据:以实体和键组织的结构化数据,键用于建立实体间关系
  • ALTER TABLE:用于修改现有实体结构的 SQL 命令
  • ADD:与 ALTER TABLE 配合,用于向实体添加新元素的 SQL 命令
ALTER TABLE table_name
ADD COLUMN column_name column_datatype;

ALTER TABLE table_name
ADD PRIMARY KEY (column_name);

ALTER TABLE table_name
ADD FOREIGN KEY (column_name) REFERENCES foreign_table(PK_from_foreign_table);
Snowflake 中的数据建模入门

让我们来练习!

Snowflake 中的数据建模入门

Preparing Video For Download...