设计过程
分三个阶段:
概念结构设计:设计 ER模型(与数据库无关)
逻辑结构设计:转换规则、规范化理论(关系规范化),设计二维表结构
物理设计SQL:
概念结构设计
集成的方法:
- 多个局部E-R图一次集成。
- 逐步集成,用累加的方式一次集成两个局部E-R。
集成产生的冲突及解决办法:
属性冲突:包括 属性域冲突 和 属性取值 冲突
属性域冲突:A模块的年龄范围是
18-25,B模块的年龄范围是0-65属性取值:A模块的性别是
男、女;B模块的性别是0、1
命名冲突:包括同名异义和异名同义。
同名异义:A模块的
name表示人名;B模块的name表示商品名异名同义:A模块的性别用
sex,B模块的用户数用gender
结构冲突:包括同一对象在不同应用中具有不同的抽象,以及同一实体在不同局部E-R图中所包含的 属性个数 和 属性排列次序 不完全相同。
销售部 的E-R图中,
Employee实体包含如下属性:emp_id,name,sales人事部的E-R图中,
Employee实体包含如下属性:emp_id,name,department,salary,hire_date
产物:E-R图
E-R图,实体关系图
实体:实体是现实世界中可以区别于其他对象的事件或事物。矩形表示
- 实体集:实体的集合
属性:属性是实体某方面的特性。椭圆形表示
实体间联系:实体的联系分为 实体内部 的联系和 实体与实体间 的联系,分三个情况:一对一、一对多、多对多。菱形表示
实体间联系类型
一对一:菱形上有
1:1,一个班级有一个班长一对多:菱形上有
1:*或1:n,一个班主任对多个学生多对多:菱形上有
*:*或m:n,多个任课老师对多个学生
属性分类
简单属性 和 复合属性
- 简单属性:是原子的,不可再分的;
- 复合属性:可以细分为更小的部分(即划分为别的属性)
单值属性 和 多值属性
定义的属性对于一个特定的实体都只有单独的一个值,称为单值属性;
在某些特定情况下,一个属性可能对应一组值,称为多值属性。
NULL属性
表示无意义或 不知道
派生属性
可以从 其他属性得来。如:年龄属性,是根据生日计算的
二元联系(实体内部)
同一个实体集内的二元联系,如上图:两个球队比赛,两侧都是球队,而且是多对多
三元联系(实体与实体间的联系)
两个以上不同实体集之间的联系(三元联系)多重度的确定(可根据语义直接转换)
以三元关系中的一个实体作为中心,假设另两个实体都只有一个实例:
若中心实体只有一个实例能与另两个实体的一个实例进行关联,则中心实体的连通数为
一若中心实体有多于一个实例能与另两个实体实例进行关联,则中心实体的连通数为
多
例子
P_D:表示一个病房有多个病人和多个医生,一个医生只负责一个病房,一个病人只属于一个病房。
SP_P:表示供应商为多个项目供应多种零件,每个项目可用多个供应商供应的零件,每种零件可由不同的供应商供应。
其他实体分类
弱实体:一个实体必须依赖另一个实体,如:家属与职工的联系,附件与邮件。
特殊化:实体一方面具有一些共性,另一方面还具有各自的特性,一个实体集可以按照某些特征区分为几个子实体。
经理、中层领导、基层员工,都具有员工的共性,还有各自的特性聚集:一个联系连接另一个联系。(如果存在多个实体和多个联系,结构会变得复杂,难以清晰表达某些现实世界的关系。此时就可以通过聚集来 简化模型)
逻辑结构设计
常见数据模型
- 层次模型
- 网状模型
- 关系模型(考)
- 面向对象模型
数据模型三要素
- 数据结构:数据类型
- 数据操作:增删改查
- 数据的约束条件:主键、唯一约束
关系表的3种类型
基本关系(通常又称为 基本表 或 基表):实际存在的表,实际存储数据的逻辑表示。
查询表:查询结果对应的表。
视图表(视图)(考):由基表或其他视图表导出的表,本身不独立存储,数据库只存放它的定义,常称为虚表。
其他概念
目/度:关系模式中 属性的个数。
候选码/候选键 (多组):唯一标识一个记录的字段(可以有多个),如:学号、身份证号
主码/主键(1组):从 候选码/候选键建 中选 一个
主属性与非主属性:组成候选码的属性 就是主属性,其它的就是非主属性。
外码/外键:表中某个字段,是另一个表的主键
全码/ALL-Key:由关系模式的所有属性组成,即:表中所有字段都是主属性
约束
- 实体完整性约束(主键:唯一且非空)
- 参照完整性约束(外键:其他关系主键或者为空)
- 用户自定义完整性约束 (自定义),如年龄是
0-120,不能是负数
扩展知识
- 视图:保证数据安全,用于查询。
- 触发器:CRUD操作时会自动执行,保证数据的正确。
- 存储过程:简化复杂的操作调用,常见操作什么都能做。
- 索引:提高查询效率。
实体型转换关系模式
一对一联系的转换有2种方式
独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系,该表主键:任一端主键
归并(任意一端):一个表增加一个字段,保存 另一个表 的主键
例子:
一对多联系的转换有2种方式
独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系。该表主键:多端主键
归并(多端):
多端的表增加一个字段,保存一端的主键
例子:
多对多联系的转换
只有1种方式
独立的关系模式:并入两端主键及联系自身属性,即:创建单独表,保存两个表的关系。该表主键:两端主键的组合键
例子:
学生:学号(主键),姓名,性别,年龄
课程:课程号(主键),课程名,授课老师
新建考试,保存两者关系:课程号,学号 主键,成绩
题
关系规范化在数据库设计的()阶段进行。
A、需求分析
B、概念设计
C、逻辑设计
D、物理设计
答案
C
题
某高校信息系统设计的分E-R图中,人力部门定义的职工实体具有属性:职工号、姓名、性别和出生日期;教学部门定义的教师实体具有属性:教师号、姓名和职称。这种情况属于(),在合并E-R图时,()解决这一冲突。
A、属性冲突 B、命名冲突
C、结构冲突 D、实体冲突
A、职工和教师实体保持各自属性不变
B、职工实体中加入职称属性,删除教师实体
C、教师也是学校的职工,故直接将教师实体删除
D、将教师实体所有属性并入职工实体,删除教师实体
分析第一问
没有 实体冲突
答案
C
B
题
数据库的安全机制中,通过提供共()供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方所获取。
A、触发器
B、存储过程
C、视图
D、索引
答案
B
因为题干中支持 共开发人员调用进行数据更新,所以不是视图










