第三章 管理信息系统的技术基础第三章 管理信息系统的技术基础
信息系统的技术基础包括计算机软件、
硬件、通信技术;
数据处理技术:即数据的收集、存贮、
加工、检索、输出等。数据处理从简单应用到文件系统最后到数据库系统,使数据应用的方便性、共享性、一致性大大提高。
本章主要内容:数据库设计技术
§ 3.1 数据库设计步骤第一节 数据库设计步骤
§ 3.1 数据库设计步骤需求分析 → 概念设计 → 逻辑设计物理设计 实施与运行→ →
数据库设计步骤
(调研分析) ( E-R模型) (转换成某种 DBMS支持的数据模型)
(在存储设备上选定存储结构和方法)
关系数据库设计中使用规范化理论,指导我们设计规范的数据库模式。按属性间依赖情况来区分,关系规范化的程度为第一范式,第二范式,第三范式和第四范式等。
§ 3.1 数据库设计步骤
⒈ 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
§ 3.1 数据库设计步骤
⒉ 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体 DBMS
的概念模型,可以用 E-R图表示。
§ 3.1 数据库设计步骤
⒊ 逻辑结构设计阶段
将概念结构转换为某个 DBMS所支持的数据模型(例如关系模型),
并对其进行优化。
§ 3.1 数据库设计步骤
⒋ 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
§ 3.1 数据库设计步骤
⒌ 数据库实施阶段
运用 DBMS提供的数据语言(例如
SQL)及其宿主语言(例如 C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
§ 3.1 数据库设计步骤
⒍ 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、
调整与修改。
§ 3.1 数据库设计步骤
§ 3.2 数据库概念设计
§ 3.2 数据库概念设计一,设计概念结构通常使用物工具
E-R模型
§ 3.2 数据库概念设计二,设计概念结构通常有四类方法:
·自顶向下
·自底向上
·逐步扩张
·混合策略一,E-R模型的设计方法图符及含义:
1,实体
2,联系
3,属性
§ 3.2 数据库概念设计一对一( 1,1)
一对多 (1,n)
多对多( m,n)
学生学习课程学号姓名 性别学时课号 课名 类别 内容为了清晰起见,在 E-R
图中通常省略属性一,E-R模型的设计方法图符及含义:
1,实体
2,联系
3,属性
§ 3.2 数据库概念设计一对一( 1,1)
一对多 (1,n)
多对多( m,n)
学生学习课程为了清晰起见,在 E-R
图中通常省略属性学生学习课程供应商工程 零件供应n
m
1
§ 3.2 数据库概念设计销售订单
1
n
签订
n
1
开票
1
n
组成
1
n
组成
1
n
组成
1
n
订货提货单客 户发票明细发 票提货单明细订单明细销售计划销售合同合同明细
n m信息
1 1对应
n m提货
n m配货
n m组成
1
n
信息商品报价企业销售管理 E— R关系图
§ 3.2 数据库概念设计
§ 3.2 数据库概念设计
·自顶向下即首先定义全局概念结构的框架,然后逐步细化。
二、设计概念结构的四类方法:
·自底向上即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。
这是最经常采用的策略是自底向上方法。
即自顶向下地进行需求分析,然后再自底向上地设计概念结构。
§ 3.2 数据库概念设计
·逐步扩张首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。
§ 3.2 数据库概念设计
·混合策略即将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,
以它为骨架集成由自底向上策略中设计的各局部概念结构。
无论采用哪种设计方法,一般都以 E-R模型为工具来描述概念结构 。
§ 3.2 数据库概念设计三,数据抽象与局部视图设计以自底向上设计概念结构的方法为例,它通常分为两步:
第一步,首先要根据需求分析的结果 ( 数据流图,数据字典等 ) 对现实世界的数据进行抽象,设计各个局部视图即分 E-R图 。
第二步,集成局部视图 。
§ 3.2 数据库概念设计
1,设计分 E-R图的步骤是:
( 1) 选择局部应用在需求分析阶段,通过对应用环境和要求进行详尽的调查分析,用多层数据流图和数据字典描述了整个系统 。 设计分 E-R图的第一步,就是要根据系统的具体情况,在多层的数据流图中选择一个适当层次的 ( 经验很重要 ) 数据流图,
让这组图中每一部分对应一个局部应用,我们即可以这一层次的数据流图为出发点,设计分
E-R图 。
§ 3.2 数据库概念设计
( 2) 逐一设计分 E-R图每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了 。 现在就是要将这些数据从数据字典中抽取出来,参照数据流图,标定局部应用中的实体,实体的属性,标识实体的码,确定实体之间的联系及其类型 ( 1:1,1:n,m:n) 。
§ 3.2 数据库概念设计例:设计学籍管理局部应用的分 E-R图:
§ 3.2 数据库概念设计
E-R 图 中 实 体 的 属 性 分 别 为,
学 生,{ 学号,姓名,出 生 日 期,}
档 案 材 料,{ 档案号,…… }
班 级,{ 班 级 号,学 生 人 数 }
班主任,{ 职工号,姓名,性别,优秀班主任 }
宿舍,{ 宿 舍 编 号,地址,人数 }
教 室,{ 教 室 编 号,地址,容量 }
其中有下划线的属性为实体的码 。
§ 3.2 数据库概念设计我们用同样的方法得到课程管理局部应用的分 E-
R图:
§ 3.2 数据库概念设计各实体的属性分别为:
学生,{ 姓名,学号,性别,年龄,所在系,年级,
平均成绩 }
课程,{ 课程号,课程名,学分 }
教师,{ 职工号,姓名,性别,职称 }
教科书,{ 书号,书名,价钱 }
教室,{ 教室编号,地址,容量 }
§ 3.2 数据库概念设计
2,集成视图 ( E-R图 )
集成局部 E-R图时都需要两步:
1)合并;
2)修改与重构 。
§ 3.2 数据库概念设计
1) 合并分 E-R图,生成初步 E-R图 。
各分 E-R图之间的冲突主要有三类:
1属性冲突
(1) 属性域冲突,即属性值的类型,取值范围或取值集合不同 。
(2) 属性取值单位冲突 。
2、命名冲突
(1) 同名异义。
(2) 异名同义(一义多名)。
§ 3.2 数据库概念设计
3,结构冲突
(1) 同一对象在不同应用中具有不同的抽象 。 例如,课程,在某一局部应用中被当作实体,而在另一局部应用中则被当作属性 。
(2) 同一实体在不同局部视图中所包含的属性不完全相同,
或者属性的排列次序不完全相同 。
(3) 实体之间的联系在不同局部视图中呈现不同的类型 。 例如实体 E1与 E2在局部应用 A中是多对多联系,而在局部应用 B中是一对多联系;又如在局部应用 X中 E1与 E2发生联系,而在局部应用 Y中 E1,E2,E3三者之间有联系 。
解决方法是根据应用的语义对实体联系的类型进行综合或调整 。
§ 3.2 数据库概念设计例,下面我们来看看如何生成学校管理系统的初步 E-R图 。 我们着重介绍学籍管理局部视图与课程管理局部视图的合并 。 这两个分 E-R图存在着多方面的冲突:
§ 3.2 数据库概念设计
(1) 班主任实际上也属于教师,也就是说学籍管理中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义,应将学籍管理中的班主任实体与课程管理中的教师实体统一称为教师,统 一 后 教 师 实 体 的 属 性 构 成 为,
教师,{ 职工号,姓名,性别,职称,是否为优秀班主任 }
§ 3.2 数据库概念设计
(2) 将班主任改为教师后,教师与学生之间的联系在两个局部视图中呈现两种不同的类型,一种是学籍管理中教师与学生之间的指导联系,一种是课程管理中教师与学生之间的教学联系,由于指导联系实际上可以包含在教学联系之中,因此可以将这两种联系综合为教学联系 。
§ 3.2 数据库概念设计
(3) 在两个局部 E-R图中,学生实体属性组成及次序都存在差异,应将所有属性综合,并重新调整 次 序 。 假 设 调 整 结 果 为,
学生,{ 学号,姓名,出生日期,年龄,
所在系,年级,平均成绩 }
解决上述冲突后,学籍管理分 E-R图与课程管理分 E-R图合并为初步 E-R图 。
§ 3.2 数据库概念设计
2) 修改与重构,生成基本 E-R图分 E-R图经过合并生成初步 E-R图,其中可能存在冗余的数据和冗余的实体间联系 。 冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,因此得到初步 E-R图后,还应当进一步检查 E-R图中是否存在冗余,消除冗余 。
修改,重构初步 E-R图以消除冗余主要采用分析方法 。
除分析方法外,还可以用规范化理论来消除冗余。
§ 3.2 数据库概念设计在前面初步 E-R图中存在着冗余数据和冗余联系:
(1) 学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉 。 这样不仅可以节省存储空间,而且当某个学生的出生日期有误,进行修改后,无须相应修改年龄,减少了 产 生 数 据 不 一 致 的 机 会 。
学生,{ 学号,姓名,出生日期,所在系,
年级,平均成绩 }

§ 3.2 数据库概念设计
(2) 教室实体与班级实体之间的上课联系可以由教室与课程之间的开设联系,课程与学生之间的选修联系,学生与班级之间的组成联系三者推导出来,因此属于冗余联系,可以消去 。
§ 3.2 数据库概念设计
(3) 学生实体中的平均成绩可以从选修联系中的成绩属性中推算出来,但如果应用中需要经常查询某个学生的平均成绩,每次都进行这种计算效率就会太低,因此为提高效率,可以考虑保留该冗余数据,但是为了维护数据一致性应该定义一个触发器来保证学生的平均成绩等于该学生各科成绩的平均值 。 任何一科成绩修改后,
或该学生学了新的科目并有成绩后,就要触发该触发器去修改该学生的平均成绩属性值 。 否则会出现数据的不
§ 3.2 数据库概念设计
§ 3.2 数据库概念设计例:进行修改和重构后生成的基本 E-R图,
§ 3.2 数据库概念设计学生管理子系统的基本 E-R图还必须进一步和教师管理子系统以及后勤管理子系统的基本 E-R图合并,生成整个学校管理系统的基本 E-R图 。
§ 3.2 数据库概念设计
§ 3.2 数据库概念设计
整体概念结构内部必须具有一致性,即不能存在互相矛盾的表达。
整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系。
整体概念结构能满足需要分析阶段所确定的所有要求。
视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须进行进一步验证,确保它能够满足下列条件:
§ 3.2 数据库概念设计整体概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和优化,然后把它确定下来,
作为数据库的概念结构,作为进一步设计数据库的依据。
逻辑设计是 将概念结构转换为某个
DBMS所支持的数据模型 ( 例如关系模型 ),并对其进行优化 。
§ 3.3 数据库逻辑设计
§ 3.3 数据库逻辑设计逻辑设计是 将概念结构转换为某个 DBMS
所支持的数据模型 ( 例如关系模型 ),
并对其进行优化 。
§ 3.3 数据库逻辑设计关系的规范化方法是逻辑设计的一种方法,
它将一组数据合理构造成关系数据库模型。
例:进行修改和重构后生成的基本 E-R图,
§ 3.2 数据库概念设计将 E-R图转换成关系模型的方法:
1、将每个实体的属性写出来形成一个关系;
2、每个多对多的联系转换成一个关系;
3、将一对多的联系所对应的“多方”实体
(关系)中加入“少方”的主码作为关键字;
4、对于一对一的联系来说,可以在任一方加入另一方的主码作为关键字。
§ 3.2 数据库概念设计将学生管理的 E-R转换成关系模型:
1、首先将教师、学生等 8个实体转换成 8个关系学生:{ 学号,姓名,性别,出生日期,班级号,宿舍号 }
课程:{ 课号,课程名,学分}
教师:{ 职工号,姓名,性别,优秀班主任,职称,课号 }
教科书:{ 书号,书名,价钱}
教室:{ 教室号,地址,容量}
档案材料:{ 档案号,…… }
班级:{ 班级号,学生人数}
宿舍:{ 宿舍号,地址,人数}
2、将多对多的联系也转换成关系教学 {职工号,学号 }
选修 {课程号,学号,成绩 }