《关系数据库及其应用开发》由会员分享,可在线阅读,更多相关《关系数据库及其应用开发(26页珍藏版)》请在金锄头文库上搜索。
1、第四章 关系数据库设计,绍兴托普信息职业技术学院计算机系,4.1 数据库设计概述,数据库设计是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,依据此模型建立数据库中表的结构并以此为基础构建数据库信息管理应用系统。数据库设计主要考虑的问题:l 计算机软硬件环境l 数据库管理系统的能力l 用户的操作要求与信息要求l 完整性和安全性约束1设计前的准备工作(1)选定参加设计的人员:数据库分析设计人员、用户、程序员和操作员。(2)选用计算机辅助软件工程工具(CASE),简化数据库设计各阶段的工作量。,绍兴托普信息职业技术学院计算机系,2.设计方法的选择目前设计数据库系统主要采用的是以逻辑
2、数据库设计和物理数据库设计为核心的规范设计方法。如新奥尔良方法,数据库设计步骤划分为:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施阶段、数据库运行和维护六个步骤。,绍兴托普信息职业技术学院计算机系,4.2 需求分析,所谓的需求分析就是要知道用户想要做什么。较难:一方面用户缺少计算机知识,开始时无法确定计算机究竟能做什么,不能做什么,因此无法一下子准确地表达自己的需求或提出的需求计算根本无法实现。另一方面设计人员缺少用户的专业知识,不易理解用户的真正需求。此外,新的硬件、软件技术的出现也会使用户需求发生变化。1任务通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解
3、原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。即对数据库应用系统所要处理的对象进行全面的了解,收集用户对数据库的信息需求、处理需求、安全性和完整性需求。信息需求应指出未来系统用到的所有的信息及其联系。2需求分析方法(1)首先要调查清楚用户的实际需求并进行初步分析。(2)在初步调查分析基础上,进一步分析和表达用户的需求。,绍兴托普信息职业技术学院计算机系,就是将需求分析得到的用户需求抽象为反映用户观点的概念模型。概念结构独立于数据库逻辑结构,也独立于支持数据库的DBMS。在概念设计阶段一般都使用语义数据模型或概念数据模型。使用图形化表示,简单易懂。使
4、用E-R模型为概念设计的工具。下面着重介绍E-R模型的设计。1实体联系模型的基本要素ER模型基于对现实世界的这样一种认识:世界是由一组称为实体的基本对象及这些对象间的联系组成的。 (1)实体与实体集实体是指客观存在且可区别于其他对象的事物。可以是具体对象,也可以是抽象的事件。可以是有形的对象,也可以是无形的对象。实体集是具有相同类型和相同性质的实体的集合。实体集的范围可大可小,可以相交。,SQL的数据定义语句,4.3 概念结构设计,绍兴托普信息职业技术学院计算机系,(2)实体型和实体值实体有类型和值之分。用于描述和抽象同一实体集共同特征的实体名及其属性名的集合称为实体型。例如,学生(学号,姓名
5、,性别,出生日期,所属系)就是一个实体型。相应地,实体集中的某个实体的值即为实体值,如(“01010502”,“张三”,“男”,“1982-4-6”,“计算机系”)就是一个实体值。属于同一实体集的实体的实体型是相同的,但实体值是不同的。 (3)属性、属性的值域及键是实体集中的每个成员所具有的某一特性。如学生实体,具有特性:学号、姓名、年龄、性别和班级。这些就是学生实体的属性。属性的值为属性的具体取值。属性的取值范围称为该属性的域。例如,学号的域为8位整数,姓名的域为字符串集合,年龄的域为小于38的整数,性别的域为(男,女)。能唯一标识实体集中每个实体的属性或属性组称为实体集的键。例如学号是学生
6、实体的键。,绍兴托普信息职业技术学院计算机系,并:RS 交:RS 差:RS,(4)联系在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。两个实体型之间的联系可以分为三类:一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多只有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,学校里面,一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。一对多联
7、系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。,绍兴托普信息职业技术学院计算机系,多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。例如,一门课程同时有若干个学生选修,而一个学生可以同时选修
8、多门课程,则课程与学生之间具有多对多联系。实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。练习一:指出下列实体间的联系类型班级:班主任 n:1系:班级 1:n学生:学生证 1:1学生:图书 m:n注:联系的类型由语义决定,语义是根据现实世界中客观存在的事物抽象得到的。,绍兴托普信息职业技术学院计算机系,2E-R图 可以用图形来表示两个实体型之间的这三类联系,如图所示。,实体型:用矩形表示,矩形框内写明实体名。属性:用椭圆形表示,并用直线将其与相应的实体连接起来。联系:用菱形表示,菱形框内写明联系名,并用直线分别与有关实体连接起来,同时在直线旁标上联系的类型(1:1,1:
9、n或m:n)。,绍兴托普信息职业技术学院计算机系,例1:假设学生有属性学号、姓名、性别、出生日期和所属系,班级有属性班级号,所属专业,人数,则学生、班级及其联系可以用E-R图表示如下:,说明:根据语义不同,所绘制的E-R图不同,没有一个统一标准。,绍兴托普信息职业技术学院计算机系,例2:某工厂生产若干产品,每种产品由不同的零件组成,有的零件可用在不同的产品上。这些零件由不同的原材料制成,不同零件所用的材料可以相同。这些零件按所属的不同产品分别放在仓库中,原材料按照类别放在若干仓库中。请用E-R图画出此工厂产品、零件、材料、仓库的概念模型。,绍兴托普信息职业技术学院计算机系,3概念结构设计的方法
10、自顶向下:首先定义全局概念结构的框架,然后逐步细化。自底向上:定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。混合策略:将自顶向上和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成各局部概念结构。其中最常用的策略是自底向上方法。4步骤分两步: (1) 数据抽象与局部视图设计根据需求分析结果对现实世界的数据进行抽象,设计各个局部视图,即分E-R图。 (2) 局部视图的集成。将各个分E-R图集成为一个整体的数据概念结构,即总E-R图。,绍兴托普信息职业技术学院计算机系,5综合实例例3:根据需求调查,得知图书馆的日常业务描述如下:(1)每个出版社提供多种图书给
11、图书馆,每种图书只能由一个出版社提供。(2)图书经分类编号后成为馆藏图书。(3)每个读者可借阅多本馆藏图书,每本图书可由多个读者借阅。请设计图书管理系统的数据库概念结构,即E-R模型。由于此例业务较为简单,我们可以分成两个分E-R图,然后再集成形成总E-R图。具体结果如下:,绍兴托普信息职业技术学院计算机系,4.4 逻辑结构设计,4.4.1 任务根据E-R模型和需求分析所产生的文档,并综合考虑所选择的具体DBMS的特点,设计出整个数据库的逻辑结构。对于关系数据库逻辑结构设计指的是设计数据库中所应包含的各个关系模式的结构,包括各关系模式的名称、每一关系模式中各属性的名称、数据类型和取值范围等内容
12、。4.4.2 步骤1转换:将全局E-R模型转换成一个初始的关系模型,即将E-R图转换成对应的关系模式。实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式。,绍兴托普信息职业技术学院计算机系,规则:一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的键就是关系的键。一个m:n联系转换为一个关系模式。与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,此关系的键为各实体键的组合。一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,而关系的键为n端实体的
13、键。一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的键以及联系本身的属性均转换为关系的属性,每个实体的键均是该关系的候选键。如果与某一端对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的键和联系本身的属性。具有相同键的关系模式可合并。,绍兴托普信息职业技术学院计算机系,例4:根据例3中绘制的E-R图,设计完成相应的关系模式。实体转换:出版社(出版社号,出版社名,地址)图书(ISBN号,书名,页数)读者(读者号,姓名,联系方式)馆藏图书(条形码号,分类编目号,图书状态)联系转换:供应(出版社号,
14、ISBN号,数量)分类编号(ISBN号,条形码号)借阅(读者号,条形码号,借阅日期)归还(读者号,条形码号,归还日期)合并:图书与供应合并:图书(ISBN号,书名,页数,数量,出版社号)馆藏图书和分类编号合并:馆藏图书(条形码号,分类编目号,ISBN号,图书状态),绍兴托普信息职业技术学院计算机系,2优化:分析关系模式,判断是否存在不合理的关系模式,如有则将关系模式规范化。(1)问题提出插入异常、删除异常、冗余太大、更新异常原因:某些函数依赖引起的。使用规范化理论来改造、优化关系模式,通过模式分解来消除其中不合适的函数依赖。(2)函数依赖假设有如下关系模式:,绍兴托普信息职业技术学院计算机系,
15、定义属性之间的决定和依赖的关系就是函数依赖。在关系模式“学生管理”里,就存在如下的函数依赖:学号姓名、学号所在系、所在系系负责人、(学号,课程名)成绩注:(1)函数依赖是语义范畴的概念,根据语义确定。 (2)函数依赖不是指关系模式的某个或某些元组满足的约束条件,而是指关系模式的一切元组均要满足的约束条件。主关键字主关键字是可以决定元组中其它属性的属性或属性组合,即元组中的其它属性都函数依赖于主关键字。主属性、非主属性部分函数依赖和完全函数依赖有XY,若存在X的真子集X1,有X1Y,则Y部分函数依赖于X,否则是完全函数依赖。上例关系模式中,有(学号,课程名)所在系,是部分函数依赖。,绍兴托普信息
16、职业技术学院计算机系,传递函数依赖在关系模式R中,如果XY,YZ ,并且Y不是X的子集,不存在YX,则称Z对X传递函数依赖,或称Z传递函数依赖于X。例如,函数依赖学号所在系,所在系系负责人,所在系不是学号的子集,不存在所在系学号,所以系负责人传递函数依赖于学号。(3)范式和规范化满足不同程度要求的为不同范式。对于各种范式之间的联系有5NF4NFBCNF3NF2NF1NF成立1NF:关系模式R的所有属性都是不可分的基本数据项,则R1NF。2NF:若关系模式R属于第一范式,且每个非主属性都完全函数依赖于主关键字,则R2NF。3NF:若关系模式R属于第一范式,且每个非主属性都不传递函数依赖于主关键字,则R3NF。(4)模式分解原则:无损连接 数据等价原则;保持依赖 依赖等价原则方法:去除部分成为2NF去除传递3NF去除主属性间的传递BCNF,