数据库系统原理
  • 数据库系统原理
  • 引言
    • 数据库系统概述
  • 关系模型介绍
    • 关系数据库结构
    • 数据库模式
    • 关系代数
      • 选择运算
      • 投影运算
      • 笛卡尔运算
      • 连接运算
      • 集合运算
      • 其他运算
  • SQL介绍
    • SQL语言分类
    • SQL数据类型
    • SQL数据库操作
    • SQL数据表操作
    • SQL数据操纵语言
    • SQL数据查询语言
    • 集合运算
    • 聚集函数
  • 中级SQL
    • 连接查询
    • 内连接
    • 外连接
    • 交叉连接和自连接
    • 视图
    • 完整性约束
    • SQL用户和授权
  • 高级SQL
    • 函数
    • 存储过程
    • 触发器
  • ER模式数据库设计
    • 数据库设计过程概览
    • 需求分析
    • 实体-联系模型
      • 复杂属性
      • 映射基数和弱实体集
    • 将E-R图转换为关系模式
    • E-R模型设计
  • 关系数据库设计
    • 数据库设计规范化
    • 函数依赖理论
    • 关系范式
  • 半结构化数据
    • 半结构化数据
  • 应用程序开发
    • ADO.NET访问数据库技术
    • 断开模式数据查询
    • 连接模式数据更新
  • 数据存储结构
    • 磁盘
    • 文件的存储
    • 文件的逻辑结构
    • 文件组织
  • 索引
    • 索引基本概念
    • B树索引
    • B+树索引
    • MySQL索引的基本语法
    • 联合索引
  • 查询处理
    • 查询处理概述
  • 查询优化
    • 查询优化概述
    • 查询树的启发式优化(代数优化算法)
  • 事务
    • 事务的概念
    • 事务的特性
    • MySQL事务处理
    • 可串行化
  • 并发控制
    • 并发控制概述
    • 封锁
    • 两阶段封锁协议封锁
    • 多粒度封锁
    • 活锁和死锁
    • 基于时间戳排序的并发控制
    • 乐观控制法
  • 恢复系统
    • 数据库恢复概述
    • 数据库恢复的实现技术
    • 基于检查点的数据库恢复
Powered by GitBook
On this page
  • 概念结构设计
  • 基本概念
  • 实体
  • 实体集
  • 属性
  • 联系(关系,relationship)
  • 联系集
  • 联系的描述性属性
  • 实体角色
  • 数据抽象
  • 联系集的度
  1. ER模式数据库设计

实体-联系模型

概念结构设计

概念结构设计任务:将用户需求抽象为概念模型(E-R图)。

概念结构设计的方法:自顶向下、自底向上、逐步扩张、混合策略

自底向上方法步骤:

数据抽象与局部视图设计:根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图,即分E-R图。

  • 选择局部应用:可利用机构职能关系进行局部处理

  • 逐一设计分E-R图:

实体与属性的划分原则:属性应是系统中最小的信息单位,不再具有描述性质;属性不能与其他实体有联系。

在设计数据库模式时,必须确保避免两个主要陷阱:

  • 冗余:错误的设计可能导致重复信息。错误的冗余表示可能导致各种信息副本之间的数据不一致。

  • 不完整性:糟糕的设计可能会使应用程序的某些方面难以或不可能建模。

基本概念

实体

现实世界中可区别其他对象的一个“事务”或者“对象”。

示例:特定人员、公司、事件、工厂

实体集

一组共享相同性质或属性的、具有相同类型的实体的集合。

示例:所有人员、公司、树木、假日的集合

实体集可以图形化表示:

  • 矩形表示实体集;

  • 实体矩形内列出的属性;

  • 下划线表示主键属性;

属性

实体集中每个成员所拥有的描述性性质,实体通过一组属性来表示

示例:讲师=(身份证,姓名,薪水);课程=(课程ID,标题,学分)

属性子集构成实体集的主键,唯一标识集合的每个成员。

联系(关系,relationship)

联系集

联系集是相同类型联系的集合,是n≥2个实体之间的数学联系。

联系的描述性属性

联系也可以具有描述性属性,联系集的属性在E-R图中通过未分割的矩形来表示。

实体角色

  • 实体在联系中扮演的角色

  • 一般来说,参与一个联系集的实体集通常是互异的,因此角色是隐含且不指定的。

  • 但同一实体集可以以不同的角色多次参与一个联系集(该联系集被称为递归联系集)

示例:课程信息之间存在一种“prereq前置课程”的联系,以表示不同课程之间的前置关系。

数据抽象

  • 聚集:定义了某一类型的组成成分,它抽象来对象内部类型和成分之间的“is part of”的语义。

  • 概括(概化,继承):定义类型之间的一种子集联系,它抽象了类型之间的“is subset of”的语义。

联系集的度

  • 参与联系的实体集数量

  • 二元联系集、三元联系集

  • 数据库系统中的大多数联系集都是二元联系集

Previous需求分析Next复杂属性

Last updated 4 months ago