1、第三讲 数据库基础理论 关系数据库及其设计,本讲主要内容:关系代数基本知识数据库设计方法、步骤 重点内容:在数据库设计中每个阶段的设计方法 难点:概念模型向关系模型的转换 学习要求:基本掌握数据库设计的常用方法、步骤,一、关系代数的基本知识关系代数是用对关系的运算来表达查询的。运算的三要素:运算对象、 运算符、运算结果关系代数的运算对象:关系关系代数的运算结果:关系关系代数的运算符:集合运算符关系运算符算术比较符逻辑运算符关系代数按运算符分类: 1)、传统的集合操作:并、交、差、笛卡尔积 2)、扩充的关系操作:投影、选择、连接、除,关系相容 设关系R和关系S具有相同的度数n,且相应的属性取自同
2、一个域,则称关系R和关系S是关系相容的。设关系R和关系S是关系相容的,则可以定义以下基本操作: 1. 并 (Union )关系R和关系S的并记为: RS=t| tR tS,其结果仍为n度关系。由属于R或属于S的元组组成。 2. 差 ( Difference )关系R和关系S的差记为: R-S=t| tR tS,其结果仍为n目关系。由属于R而不属于S的元组组成。 3. 交 (Intersection )关系R和关系S的交记为:RS=t| tR tS,其结果仍为n目关系。由既属于R又属于S的元组组成。 关系的交可由关系的差表示,即 RS = R - (R-S),4、投影 (Projection)关
3、系R上的投影是从R中选择出若干属性列组成新的关系。记作:A1,A2(R) 其中A为R中的属性列。投影操作是从列的角度进行的运算。 5、.选择(Selection)选择又称为限制。它是在关系R中选择满足给定条件的诸元组,记作:F(R)= tR | 满足F其中F表示选择条件,t是新关系中的元组选择操作是从行的角度进行的运算。,7、连接运算:连接运算是在两个关系和S的笛卡尔积RS上的选择运算。 1)、自然连接: 2)、条件连接: 8、除运算:设关系和S,如果满足:1)R中的属性包含S中的属性;2)R中有些属性不出现在S中;则:R除以S记为:TR/S或RST的属性由R中那些不出现在S中的属性组成,T的
4、元组是S中所有元组在R中对应值相同的元组组成。,二、数据库设计概述数据库设计是在DBMS的支持下,按照应用的要求,为某一部门或组织设计一个结构合理、使用方便、效率较高的数据库及其应用系统。数据库设计应该与应用系统设计相结合。即数据库设计应包含两方面的内容:1、 结构(数据)设计:2、行为(处理)设计目前,数据库常见设计方法都以软件工程的思想与方法进行设计的,数据库设计大都采用需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施和数据库运行与维护6个阶段的设计步骤进行。,数据库经验设计中经常运用的原则 同一列(字段)的数据只能是单一的数据类型 一个关系只反映一个主题 同一实体只在数据库
5、中出现一次 能通过简单计算得到的数据不保存 信息量大,但取值固定的列应建立编号体系 保证每个表中的记录是唯一的 为方便用户操作,需要建立一些辅助的表 反映规则的数据可以考虑保存到一个辅助表中,三、需求分析 调查用户的需求通常分为四步: 1) 调查组织机构情况包括了解该组织的部门组成情况,各部门的职能等,弄清所设计的数据库系统与那些部门相关,为分析信息流程作准备。 2)调查各部门的业务活动情况包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么。 3)协助用户明确对新系统的各种要求在熟悉了业务活动的基础上,协助用户明确对该系统的各种要求,包
6、括信息要求、处理要求、完全性与完整性要求。 4)确定新系统的边界确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是该系统应该实现的功能。,以往本校新生入学报到时,全部是手工操作,流程为:,分析和表达用户需求常用的方法是结构化分析方法(Structure Analysis,简称SA方法)。SA方法的特点:自顶向下、逐层分解,新生入学管理系统,收费子系统,新生注册子系统,新生报到子系统,各系分班子系统,交费,统计,查询,补 交,提 交,交 费,交全 费用 学生,未交 费用 学生,非 财务 人员 查询,未 交全 费用 学生,财务 人员 查询,构造数据字典数据字
7、典,由五部分组成:数据项 数据项描述=数据项名,数据项含义,别名,类型,长度,取值范围,与其他数据项的逻辑关系 数据结构 数据结构描述=数据结构名,含义说明,组成:数据项或数据结构数据流数据流描述=数据流名,说明,数据流来源,数据流去向, 组成:数据结构,平均流量,高峰期流量数据存储 数据存储描述=数据存储名,说明,编号,流入的数据流,流出的数据流,组成:数据结构,数据量,存取方式处理过程处理过程描述=处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明,招录学生,各系学生,报到并交费学生,应交费用,报到,招录,分班,交费,四、概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模
8、型的过程就是概念结构设计。 概念结构设计的目标是产生反映全部组织信息需求的整体数据库概念结构,即概念模式。概念结构设计最常用的方法是自底向上的方法。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。这是最经常采用的策略是自底向上方法。即自顶向下地进行需求分析,然后再自底向上地设计概念结构。采取该方法进行概念结构设计主要分为两步:第一步是抽象数据并设计局部视图;第二步是集成局部视图,得到全局视图,即概念结构。,(1) 局部概念设计 如果系统十分庞大,涉及的部门又多,则首先进行局部设计 如招录学生表和报到学生被招录学生的属性为:编号、姓名、性别、省份、备注报到学生的属性为:编号
9、、专业号、姓名、性别、省份、备注、所交学费、所交住宿费、所交公物押金、所交杂费、是否已交全、是否注册,(2) 总体概念设计的任务及步骤任务:将局部概念设计合成为一个完整的概念设计步骤:总体概念设计即所谓视图的集成,一般分为两步。第一步是合并,第二部是修改与重构。,五、逻辑结构设计逻辑结构设计是指将概念结构转换为具体的DBMS支持的数据模型。一般分为三步:1、将概念模型转换为一般的关系、网状、层次模型 ;2、将转化来的关系、网状、层次模型向特定DBMS支持下的数据模型转换 ;3、对数据模型进行优化 。,概念模型向关系模型的转换 1、一个实体型转换为一个关系模式 2、一个m:n联系转换成一个关系模
10、式 3、一个1:n联系可以转换为一个独立的关系模式,也可与n端对应的关系模式合并 4、一个1:1联系可以转换为一个独立的关系模式,也可与任一端对应的关系模式合并 5、三个或三个以上实体间的一个多元联系转换为一个关系模式 6、同一实体集中实体间的联系也可做相同处理 7、具有相同码的关系模式可以合并,转换结果: 招录学生(编号、姓名、性别、省份、备注) 报到并交费学生(编号、专业号、姓名、性别、省份、备注、所交学费、所交住宿费、所交公物押金、所交杂费、是否已交全、是否注册) 应收款项(专业号、应交学费、应交住宿费、应交公物押金、应交杂费) 分班学生(编号、学号、姓名、性别、出生日期、民族、政治面貌
11、、专业、班级、宿舍、宿舍电话、家庭住址、邮编、电话),如果是m:n联系,如:学生(学号,姓名,性别,出生日期,所属系)课程(课程号,课程名,所属系)选课(学号,课程号,成绩)关系模式的优化是以规范化理论为指导进行优化的。,学生,课程,选课,学号,所属系,姓名,性别,出生日期,成绩,课程号,课程名,所属系,m,n,六、数据库物理设计()、 确定数据的存储结构确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。 (2)、设计数据的存储路径数
12、据库必须支持多个用户的多种应用,因此,必须提供对数据库的多个存取入口,即对同一数据存储要提供多条存取路径。(3)、 确定数据的存放位置一般地,应把数据的易变部分和稳定部分分开,把经常存取和不常存取的数据分开。 (4) 、确定系统配置 DBMS产品一般都提供了一些存储分配参数,供设计人员和DBA对数据库进行物理优化。初始情况下,系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要重新对这些变量赋值以改善系统的性能。,七、数据库实施即在物理数据库设计的基础上建立数据库。包括:定义数据库结构,向数据库中装载设计,编制和调试应用程序,数据库试运行。 八、数据库维护:经常性的维护工作主要由数据库管理员完成,主要包括:1、数据库的转储与恢复2、数据库的安全性和完整性控制3、数据库性能的监督、分析和改进4、数据库的重组织与重构造,作业:P20:2、3、6,