课程内容提要
数据库设计过程
蓝线是每个过程的产物
ER模型
实体间联系类型
E-R图向关系模型转换
ER模型是概念模型,强调语义表达,用于数据库设计,是用户和数据库设计人员交流语言。在解决实际应用问题时,通常先设计一个E-R模型, 然后再把其转换成计算机能接受的数据模型。
E-R图中的主要构件
答题技巧
试题1
解:
问题一:
菱形构件表示联系集,分析的时候就用这个联系来分析
员工 : 部门 = n:1 (一个员工所属一个部门,一个部分有多个员工所属)
客户 :客房 = n:m (一个客户可以预定多个客房,一个客房可以被多个客户预定)
上面前半句很好理解,关键是后半句“一个客房可以被多个客户预定”比较令人疑惑。从题干可知,一条预定信息对应一个客户,一条预定信息也对应一个客房,能不能说一个客房对应一个客户呢?
答案是不能的,因为一个客房可以对应多条预定信息,一个客户可以对应多条预定信息,因此这里是还是m: n的联系。客房和客户的锁定需要以支付情况为标准,而且是在规定时间内才锁定的,因此这里还是用常识推断而来。
问题二:
两个不同的实体集之间存在以下3种联系类型:
1:1
1:n
m:n
员工:权限 = m:1 (一个员工对应一个权限,一个权限可以对应多个员工)
(课程中补全图的时候没有补上联系集,所以这里不补上可能好些,防止错误。)
问题三:
(4)员工号,部门号
这里员工号可以直接看出来,但是要得到关系模式需要注意实体的联系。这里《员工》和《权限》以及《部门》存在联系,员工与权限的联系是通过岗位关联的,这个模式中已经存在了。员工与部门是通过部门号关联的。故这里应填 员工号,部门号
(5)客房号
(6)身份证号
(7)岗位
(8)身份证号,客房号
问题四:
缺点:数据冗余
优点:进行查询时减少了连接操作,可以加快查询的速度。
总结:空间换时间
试题2
问题一:
根据题干2,3,4:每个商场包含不同的部门 1:n
(包含 – 被包含 — 组成
)
每个部门雇佣多名员工,每名员工只能隶属
一个部门 1:n
每个部门有一名经理,每个经理只能管理
一个部门 1:1
如此看来,联系名一般取“多”那一方和“少”的那一方的联系。这里题目没有要求写出联系名,故可以用题目中说的联系1,2,3,4代替。
这里感觉少了一个联系,即员工和经理的联系 ,个人感觉是 员工中有一个是经理, 故
n:1
问题二:
商场(商场编号,商场名称,地址,联系电话)
部门(部门编号,部门名称,位置分布,联系电话,商场编号
)主键:部门编号 外键:商场编号
员工(员工编号,员工姓名,岗位,电话号码,工资,部门编号
)主键:员工编号 外键:部门编号
经理(员工编号
,任职时间)主键:员工编号 外键:员工编号
值得注意的是,外键也可以作为主键,如经理这个关系模式
另外,说到这里需要提下主键的一个容易理解错误的点,就是当主键是联合主键时(即存在多个关键字),这时候主键的唯一性针对的是这个联合主键。也就是说,当一个表有多个主键时,此时是多个主键一起做为主键,即联合主键,多个主键只要有一个不同,就算作不同的。但当多个主键完全一样时,才会报错,说主键不能重复。
问题三:
联系类型分为1:1, 1:n, m:n
关系模式是数据库设计使用的,可以认为是数据库的字段需要设计哪些。
紧急联系人:员工 = 1:n
紧急联系人(员工编号,姓名,电话)
本文链接: http://www.ionluo.cn/blog/posts/6b19164f.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!