Coursera 笔记

Module 02 · Introduction to Relational Databases and Tables

Relational Database Concepts数据库概念导论:数据模型与关系型数据库映射

Coursera ↗

欢迎来到数据库概念课程。本视频将介绍不同类型的数据模型、如何使用模型将数据映射到表以及如何定义表之间的关系。


学习目标

完成本课程后,您将能够:

  • 解释关系模型的优势。
  • 解释实体名称和属性如何映射到关系数据库表。
  • 描述实体与属性之间的区别。
  • 识别一些常用的数据类型。
  • 描述主键的功能。

数据模型与关系模型

关系模型 (Relational Model)

  • 特点: 关系模型是数据库中最常用的数据模型,因为它允许数据独立性。
  • 数据存储: 数据存储在一个简单的数据结构中:表(Tables)。
  • 优势: 它提供了:
    • 逻辑数据独立性
    • 物理数据独立性
    • 物理存储独立性

实体关系数据模型 (Entity Relationship Data Model, ER Model)

  • 替代方案: 实体关系数据模型(ER 数据模型)是关系数据模型的替代方案。
  • 用途: ER 模型本身不作为独立模型使用,而是作为设计关系数据库的工具。
  • 核心思想: 提议将数据库视为实体的集合。

实体关系图 (ERD) 示例与构建块

以一个简化的图书馆数据库为例,实体关系图(ERD)用于表示实体(即表)及其关系。

📖 图书馆示例中的关系:

  • 一本书 (Book) 可以由一个或多个作者 (Author) 撰写。
  • 图书馆可以有同一本书的一个或多个副本 (Copy)。
  • 每个副本在同一时间只能被一个借阅者 (Borrower) 借阅。

ER 图的构建块

  1. 实体 (Entity)
  • 定义: 独立于数据库中任何其他实体而存在的对象。
  • 表示: 可以是名词:人 (Person)、地点 (Place) 或事物 (Thing)。
  • 图示: 在 ER 图中,实体被绘制成矩形。
  1. 属性 (Attribute)
  • 定义: 描述实体的数据元素或特性,提供关于实体的更多信息。
  • 图示: 在 ER 图中,属性被绘制成椭圆形。
  • 连接: 每个属性只连接到一个实体。

📚 示例:Book 实体及其属性

  • 实体: Book(书)
  • 属性 (Properties/Characteristics):
    • 书名 (Book Title)
    • 版本 (Edition)
    • 写作年份 (Year)
    • ISBN
    • ...等等


从 ER 模型到关系数据库的映射

实体与表的映射

在映射过程中:

  • 实体 →\rightarrow 转化为数据库中的表 (Table)。
  • 表最初只是实体名称的代表,尚未形成行和列的结构。

属性与列的映射

  • 属性 →\rightarrow 转化为表中的列 (Column)。
  • 属性转化为列后,表才具备行和列的实际形式。
  • 随后,向每个列添加数据值,从而完成表的结构。

数据类型

每个属性(列)存储不同格式的数据值,常用的数据类型包括:

数据类型 描述 示例列
字符 (Character) 用于存储字符数据 Title
数字 (Numeric) 用于存储数字值 Edition, Year
日期/时间 (Timestamp) 用于存储日期和时间信息 Date, Time
货币 (Currency) 用于存储货币值 -
等 ... ...

📝 数据类型示例

  • Title** 列:** 由字符组成,长度可变,因此可设置为可变字符型 (VARCHAR)。
  • 固定长度字符型: 对于长度不变的字符列,使用字符型 (CHAR)。
  • Edition** 和 Year 列:** 属于数字型。
  • ISBN** 列:** 包含数字和破折号,因此应被视为字符型 (CHAR)。

其他实体映射

参照 Book 实体映射的例子,简化图书馆示例中的其余实体也将创建对应的表,它们的属性将成为表的列:

  • Author
  • Author_List
  • Borrower
  • Loan
  • Copy


主键与外键

主键 (Primary Key)

  • 功能: 关系表的主键唯一地标识表中的每个元组(行)。
  • 作用:
    • 防止数据重复(Duplication of Data)。
    • 提供定义表之间关系的方法。
  • 分配: 每个表都会被分配一个主键。

外键 (Foreign Key)

  • 功能: 表中可以包含外键,外键是定义在其他表中的主键。
  • 作用: 通过将一个表的主键包含在另一个表中,创建表之间的链接。


总结要点:关系模型的优势与映射

  • 核心优势: 关系模型的主要优势在于逻辑和物理数据独立性以及存储独立性。
  • 实体与属性: 实体是独立的对象,可以拥有多个称为属性的特征。
  • 映射结果: 在映射到关系数据库时,实体表示为表,属性映射为列。
  • 常用数据类型: 包括字符型(如 CHAR 和 VARCHAR)、数字型(如 Integer 和 Decimal)以及时间戳(如 Date 和 Time)。
  • 主键的作用: 主键唯一标识表中的特定行,并防止数据重复。