数据库系统第5章数据库物理模型
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、弱实体的转换表示
前面描述的实体转换为表的过程适用于所有的实体类型, 但弱实体有时候需要特别的处理。弱实体在逻辑上依赖于 另一个实体。
非ID依赖弱实体
ID依赖弱实体的标识符应该含有它所依赖实体的标识符, 因此需要将被依赖实体的标识符放入ID依赖弱实体转换生 成的表中,和ID依赖弱实体的标识符共同转换成复合主键 。
实体继承关系的转换 当实体继承关系转换到物理数据模型时,首先父实体和子实体 都各自转换为表,其属性均转换为表的列。
在处理继承关系转换时,将父表中的主键放置到子表中, 既做主键又做外键。
实体递归关系的转换
对于1:N的实体递归关系转换,首先将递归实体转换为表,其属 性转换为列,标识符转换为主键,这些处理方式和前面描述的两 个实体间的转换时一致的。 实体递归关系处理的特殊性在于关系连接的是同一个实体,我们 可以理解为要在同一个表对象间去实现这种关系。 因此,在逻辑上将顾客表看做两张表,按照前面阐述的1:N实体 关系处理方法,将1侧表的主键放入N侧表中做外键。
将实体转换为表
首先,为每个实体定义一个表,表名与实体名相同。将实体的 标识符作为表的主键。然后,实体的属性转换为表中的列,实 体的标识符转换为表的主键
确定代理键 在关系数据库设计中,当数据表中的候选键都不适合当主键 时(例如,候选键的内容太大或者复合候选键包含的属性太 多),就会定义代理键作为主键。代理键由DBMS自动生成数 字键值,且永不改变。
定义列的特性 实体属性转换为表的列后,必须为每个列指定其特性,包括数据类 型、空值状态、默认值及数值的约束。
数据类型:每个DBMS都有自己的数据类型定义,对于每一列,应指 明在该列中存储何种类型的数据。 空值状态:在表中插入新行时,某些列必须有值,对于这样的列, 将其标注为NOT NULL;某些列允许不输入值,将其标注为NULL。 默认值:默认值是指当插入新行时,如果用户没有显式输入某个列 的值,则由DBMS自动设置为预先设定的值。 数值的约束:一些列中的数据值可能有限制,这些限制称为数据约 束。
第五章 数据库物理模型设计
【学习目标】
•学习概念数据模型或逻辑数据模型转换 为物理数据模型的方法。 •了解如何将实体的1:1、1:N和N:M关系 表示为表关系
•了解数据库设计范式和规范化
•通过实践案例学习从概念数据模型转换 物理数据模型的一般步骤
5.1数据库设计模型转换
一、数据库模型转换
数据库设计分为概念数据模型设计、逻辑数据模型设计、物理数据模 型设计三个层次。在常规的数据库设计中,将依次对这三种模型进行 转换设计。各个模型之间的元素对应关系如下表
M:N 实体关系的转换
N:M实体关系不能像1:1和1:N实体关系那样直接转换。将任一 个实体表的主键放置到另一个实体表中做外键都是无法实现 的。
必须要重新产生一张新表,用于表示两个实体之间的关系 。新表的名称通常有两种命名方法,一种是以N:M关系的名 称命名,一种是用下划线连接N:M关系两侧的实体名称作为 新表的名称。
2)将实体关系转化为表间的参照完整性约束,即通过设置外键来参 照主键。根据关系的不同类型,通过外键参照主键的方式有所不同
三、将实体转化为表
1. 表
表是数据库中用来保存信息的一种数据结构,由数据模 型中的实体转化而来。一个表中记录着关于实体的信息 ,它是数据库组织的基本对象。
2. 列
列是组成表的基本单位,由数据模型中的属性转化而来 。一个表由多个列组成,每个列都有一个数据类型。
ID依赖弱实体
五、实体关系的转换表示
1:1实体关系的转换
我们可以有两种转换方案,一种是将学生表的主键“学号”放 入助研金账号表中做外键;另一种是将助研金账号表的主键“ 账号”放入学生表中做外键。这两种方案均是可行的,由设计 者根据应用情况自主做出选择。
1:N 实体关系的转换 1:N实体关系的转换方法很简单,两个实体分别转换为 表,然后将父实体表的主键放入子实体表中做外键。将 图5-9所示的实体关系转换为表参照约束
3. 主键与候选键
主键是用来唯一标识表中每个记录的一个或多个列的集合,由 数据模型中的主标识符转化而来。在物理数据模型中,每张表 必须有一个主键。主键通常用pk表示. 候选键也是用来唯一标识表中记录的一个或多个列的集合,通 常由数据模型中的次标识符转化而来。候选键通常用ak表示
Baidu Nhomakorabea. 外键
外键是与其它表连接的公共列,这个列通常是其它表的主键。 外键一般是由数据模型中的实体关系产生。外键通常用fk表示 在系统物理数据模型设计中,对上述基本数据库对象进行设计 外,还包括数据库的存储过程、触发器、视图、索引、约束规 则等设计。
5.2 数据库表规范化设计
数据库表规范化设计是指在数据库中减少数据冗余和定义一个规范 的表间结构,实现数据完整性与一致性。 所谓数据冗余是指一组数据重复出现在数据库的多个表中。在数据 库设计中,尽量避免表间的重复数据列。
规范化数据库设计为数据库系统带来如下益处: 冗余数据被消除,同一数据在数据库中仅保存一份,有效降低维 护数据一致性的工作量。 设计合理的表间依赖关系和约束关系,便于实现数据完整性和一 致性。 设计合理的数据库结构,便于系统对数据高效访问处理。
二、数据模型转换方案
数据模型转换设计有两种方案
一种是由概念数据模型生成对应的逻辑数据模型,再从逻辑数据 模型转换生成物理数据模型;
另一种是从概念数据模型直接转换为对应的物理数据模型
数据模型转换
数据模型转换
当使用关系数据库时,物理数据模型即为关系模型,其基本转换原 理如下:
1)将每一个实体转换成一个表,实体的属性转换为表的列,实体的 标识符转换为表的主键
对于M:N的实体递归关系,是指在同一个实体间所发生的 多对多关系。例如,“医生”实体间的M:N实体递归关系
每个医生都可能会给其他医生看病,自己也可能接受其他医 生的治疗,这是一个多对多的实体递归关系。按照前面对N:M 实体关系的转换处理,将关系两侧的实体分别转换为表,还 要派生出一个新的关联表,其表名是关系的名称。