数据库系统概论 - 数据库设计

数据库系统概论 - 数据库设计 数据库设计,广义的讲,即设计数据库及应用系统的设计,即设计整个数据库应用系统;狭义的讲,即设计数据库本身,即设计数据库的各级模式并建立数据库,是数据库应用系统设计的一部分
数据库设计是指对一个给定的应用环境,设计优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,是之能够有效的存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求
数据库设计的基本步骤

设计阶段 工具 大致工作
需求分析阶段 数据字典 了解分析用户的需求,如做的不好则会导致频繁的修改
概念结构阶段 概念模型、E-R 模型 对用户需求进行分析,形成一个独立于 DBMS 的概念模型
逻辑结构阶段 将概念结构转换为某个 DBMS 所支持的数据模型,并进行优化
物理结构阶段 为逻辑结构选择一个最适合应用环境的物理结构(存储结构和存储方法),也就是选择索引
数据库实施阶段 根据逻辑结构和物理结构建立具体数据库,增添数据
数据库维护和运行阶段 对数据库进行后续维护
常用的工具 数据字典
关于数据库中数据的描述,即元数据,而不是数据本身
数据字典包括:数据项、数据结构、数据流、数据存储和处理过程
  • 数据项:不可再分的数据单位
  • 数据结构:数据之间的组合关系,可以由若干数据项组成、若干数据结构组成、若干数据项和数据结构组成
  • 数据流:数据结构在系统内的传输路径
  • 数据存储:数据结构停留和存留的地方,数据的来源和去向
  • 处理过程:描述处理过程的说明性信息
E-R 模型
两个实体型之间的联系:
  • 一对一(1 : 1):实体集 A 中每一个实体,实体集 B 中至多有一个(可以无)实体与之对应,反之,实体集 B 中没一个实体,实体集 A 中至多有一个实体与之对应,如:一个班级只有一个班长,一个班长只在一个班任职
  • 一对多(1 : n):实体集 A 中每一个实体,实体集 B 中有 n 个实体(n >= 0)与之联系,反之,实体集 B 中每一个实体,实体集 A 中至多只有一个实体与之对应,如:一个班级有多个学生
  • 多对多(m : n):实体集 A 中没一个实体,实体集 B 中有 n 个实体(n >= 0)与之联系,反之,实体集 B 中每一个实体,实体集 A 中有 m 个实体(m >= 0)与之联系,如:一门课有多门学生选修,一个学生选修多门课
E-R 图提供了表示实体型(实体名和属性名集合描述实体)、属性和联系的方法,矩形表示实体型,椭圆形表示属性,菱形表示联系
E-R 图的集成 E-R 图集成步骤
  1. 合并 E-R 图,生成初步初步 E-R 图
  2. 消除不必要冗余,设计基本 E-R 图
各子系统的 E-R 图之间的冲突
1. 属性冲突
  1. 属性域冲突:属性值的类型、取值范围和取值集合不同,如:年龄可以用数值也可以用字符
  2. 属性取值冲突:属性的单位不同,如:有的单位用斤,有的用公斤
2. 命名冲突
  1. 同名异义:不同意义的对象在不同的局部应用中具有相同的名字
  2. 异名同义:相同意义的对象在不同的局部应用中具有不同的名字
3. 结构冲突
  1. 同一对象在不同应用中具有不同的抽象
  2. 同一实体在不同子系统的 E-R 图中所包含的属性个数和属性排列次序不完全相同
  3. 实体间的联系在不同 E-R 图为不同类型
E-R 向关系模式的转换 主要解决如何将实体型和实体间的联系转换为关系模式,一个实体型转化为一个关系模式,关系的属性就是实体的属性,关系的码就是实体的码
【数据库系统概论 - 数据库设计】实体型间的联系有以下不同的情况:
  • 一个 1 : 1 的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并
  • 一个 1 : n 的联系可以转换为一个独立的关系模式,也可以与 n 端对应的关系模式合并
  • 一个 m : n 的联系可以转换为一个关系模式
  • 三个或三个以上实体间的一个多元联系可以转换为一个关系模式
  • 具有相同码的关系模式可以合并

    推荐阅读