1、数据库设计 1 数据库设计概述 2 数据库需求分析 3 数据库结构设计 4 数据库行为设计 5 数据库实施1 数据库设计概述 1.1 1.1 数据库设计的特点数据库设计的特点 1.2 1.2 数据库设计方法概述数据库设计方法概述 1.3 1.3 数据库设计的基本步骤数据库设计的基本步骤 1.1数数据库设计库设计的特点(1 1)综合性)综合性 涉及面广,需包含计算机专业知识及业务系涉及面广,需包含计算机专业知识及业务系统专业知识;统专业知识; 要解决技术及非技术两方面的问题;要解决技术及非技术两方面的问题; (2 2)静态结构设计与动态行为设计是分离的)静态结构设计与动态行为设计是分离的 静态结
2、构设计是指数据库的模式框架设计(包静态结构设计是指数据库的模式框架设计(包括语义结构(概念)、数据结构(逻辑)、存括语义结构(概念)、数据结构(逻辑)、存储结构(物理);储结构(物理); 动态行为设计是指应用程序设计(动作操纵:动态行为设计是指应用程序设计(动作操纵:功能组织、流程控制)功能组织、流程控制)数据库设计的特点 数据库的结构设计在模式或外模式中定义。数据库的结构设计在模式或外模式中定义。 数据库的行为设计在存取数据库的应用程数据库的行为设计在存取数据库的应用程序中设计和实现。序中设计和实现。 程序和数据不易结合。程序和数据不易结合。 数据库设计较为复杂。数据库设计较为复杂。 结构设
3、计和行为设计是分离进行的。结构设计和行为设计是分离进行的。 1.2 数数据库设计库设计方法概概述 新奥尔良(New Orleans)方法 需求说明需求说明需求需求分析分析概念结构概念结构概念结概念结构设计构设计逻辑结构逻辑结构逻辑结逻辑结构设计构设计物 理 结 构物 理 结 构结构结构物理物理设计设计 数据库设计方法从本质上看仍然是手工设计方法,其基本思想是过程迭代和逐步求精。 1.3 数据库设计的基本步骤 需求分析 结构设计 行为设计 数据库实施 数据库运行和维护数数据库设计库设计全过过程 运行和维护运行和维护 需求分析需求分析数据分析数据分析功能分析功能分析概念结构设计概念结构设计逻辑结构
4、设计逻辑结构设计物理结构设计物理结构设计加载数据加载数据功能设计功能设计事务设计事务设计程序设计程序设计调试运行调试运行2 数数据库库需求分析 2.1 需求分析的任务 2.2 需求调查2.1需求分析的任务 需求分析阶段的主要任务是对现实世界要处需求分析阶段的主要任务是对现实世界要处理的对象(公司,部门,企业)进行详细调理的对象(公司,部门,企业)进行详细调查,在了解现行系统的概况、确定新系统功查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据能的过程中,收集支持系统目标的基础数据及其处理方法。及其处理方法。 需求分析是在用户调查的基础上,通过分析,需求分析是在用户调查
5、的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。和围绕这些数据的业务处理需求。 2.2 需求调查 用户调查的重点是用户调查的重点是“数据数据”和和“处理处理”。 信息需求信息需求 定义未来数据库系统用到的所有信息,明确用户将定义未来数据库系统用到的所有信息,明确用户将向数据库中输入什么样的数据,从数据库中要求获得哪些内向数据库中输入什么样的数据,从数据库中要求获得哪些内容,将要输出哪些信息。同时还要描述数据间的联系等。容,将要输出哪些信息。同时还要描述数据间的联系等。 处理需求处理需求 定义了系统数据处理的操作功能,
6、描述操作的优先定义了系统数据处理的操作功能,描述操作的优先次序,包括操作的执行频率和场合,操作与数据间的联系。次序,包括操作的执行频率和场合,操作与数据间的联系。处理需求还要明确用户要完成哪些处理功能,每种处理的执处理需求还要明确用户要完成哪些处理功能,每种处理的执行频度,用户需求的响应时间以及处理的方式,比如是联机行频度,用户需求的响应时间以及处理的方式,比如是联机处理还是批处理,等等。处理还是批处理,等等。 安全性与完整性要求安全性与完整性要求 描述了系统中不同用户对数据库的使用描述了系统中不同用户对数据库的使用和操作情况,完整性要求描述了数据之间的关联关系以及数和操作情况,完整性要求描述
7、了数据之间的关联关系以及数据的取值范围要求。据的取值范围要求。 数据处理流图 数据存储数据源数据输出处理在需求分析中,通过自顶向下、逐步分解的在需求分析中,通过自顶向下、逐步分解的方法分析系统。任何一个系统都可以抽象为方法分析系统。任何一个系统都可以抽象为数据流图的形式。数据流图的形式。 3 数数据库结构设计库结构设计 3.1 概念结构设计 3.2 逻辑结构设计 3.3 物理结构设计数数据库设计库设计分类类 数据库设计分为:数据库结构设计和数据库设计分为:数据库结构设计和数据库行为设计。数据库行为设计。 结构设计结构设计包括设计数据库的概念结构、包括设计数据库的概念结构、逻辑结构和存储结构。逻
8、辑结构和存储结构。 行为设计行为设计包括设计数据库的功能组织包括设计数据库的功能组织和流程控制。和流程控制。 数据库结构设计过程逻辑映象逻辑映象综合与抽象综合与抽象应用需求1应用需求2应用需求n概念设计逻辑设计外模式1外模式2外模式m内模式表示转换表示转换数据库结构设计包含内容 概念结构设计:形成DB概念模式,用语义层模型描述,如ER图 。 逻辑结构设计:形成DB逻辑模式与外模式,用结构层模型描述,例基本表、视图等。 物理结构设计:形成DB内模式,用文件级术语描述。例DB文件或目录、索引。3.1 概概念结构设计结构设计 概念结构设计的任务是产生反映企业组织信息需求的数据库概念结构,即概念模型。
9、概念模型的特点 有丰富的语义表达能力。 易于交流和理解。 易于更改。 易于向各种数据模型转换,易于导出与DBMS有关的逻辑模型 。概念结构设计的策略 自底向上。先定义局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。 自顶向下:先定义全局概念模型,然后再逐步细化。 由里向外:先定义最重要的核心结构,然后再逐步向外扩展。 混合策略。将自顶向下和自底向上结合起来使用。 采用采用E-R模型方法的概念结构设计模型方法的概念结构设计 设计局部E-R模型 E-R模型的设计内容包括确定局部E-R模型的范围、定义实体、联系以及它们的属性。 设计全局E-R模型 将所有局部E-R图集成为一
10、个全局E-R图,即全局E-R模型。 优化全局E-R模型设计局部E-R模型 概念结构是对现实世界的一种抽象。 所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质细节,并把这些特性用各种概念准确的加以描述。 一般有三种抽象方法: 分类 概括 聚集分类(1)在相似的个个体之间间提取共性,建立“类类”的概概念(集合)。 个个体与个与个体之间间:具有相似的状态与状态与行为为,有相同的描述结构结构,相互用主码值区码值区分。 个个体与类与类之间间:个个体Is a member of 类类(子类类有且仅仅有一个个超类类)。学生学生张三张三李四李四王五王五classIs a mem
11、ber of概括学生学生本科生本科生研究生研究生超类超类子类子类Is a subset of聚集学生学生实体型实体型属性属性学号学号姓名姓名性别性别Is a part of设计全局E-R模型 将局部将局部E-R图集成为全局图集成为全局E-R图;图; 需消除各分需消除各分E-R图合并时产生的冲突;图合并时产生的冲突; 解决冲突是合并解决冲突是合并E-R图的主要工作和关键所图的主要工作和关键所在。在。 冲突主要有三类:冲突主要有三类: 属性冲突:属性冲突:属性域冲突、属性取值单位冲突属性域冲突、属性取值单位冲突 命名冲突:命名冲突:同名异义和异名同义同名异义和异名同义 结构冲突:结构冲突:同一对象
12、在不同应用中具有不同的同一对象在不同应用中具有不同的抽象、同一实体在不同的局部抽象、同一实体在不同的局部E-R图中所包含图中所包含的属性个数和属性的排列次序不完全相同。的属性个数和属性的排列次序不完全相同。 优化全局E-R模型 实体个数尽可能少; 实体所包含的属性尽可能少; 实体间联系无冗余。局部E-R图nm产品产品产品号产品号性能参数性能参数零件零件零件号零件号价格价格组成组成零件个数零件个数nm材料材料材料号材料号材料材料类类型型产品产品零件号零件号规格规格使用使用使用量使用量库存量库存量合并示例nnm产品产品产品号产品号性能参数性能参数零件零件零件号零件号规格规格组成组成零件个数零件个数
13、价格价格使用使用使用量使用量材料号材料号材料类型材料类型库存量库存量材料材料3.2 逻辑结构设计逻辑结构设计 把概念结构设计阶段设计好的基本把概念结构设计阶段设计好的基本E-RE-R模型模型转换为具体的数据库管理系统支持的数据模转换为具体的数据库管理系统支持的数据模型,也就是导出特定的型,也就是导出特定的DBMSDBMS可以处理的数据可以处理的数据库逻辑结构(数据库的模式和外模式),这库逻辑结构(数据库的模式和外模式),这些模式在功能、性能、完整性和一致性约束些模式在功能、性能、完整性和一致性约束方面满足应用要求。方面满足应用要求。 步骤:步骤: 将概念模型转换为某种组织层数据模型;将概念模型
14、转换为某种组织层数据模型; 对数据模型进行优化。对数据模型进行优化。E-R模型向关关系模型的转换转换 一个实体转换为一个关系模式一个实体转换为一个关系模式。实体的属性就是关。实体的属性就是关系的属性,实体的标识符就是关系的码。系的属性,实体的标识符就是关系的码。对于实体间的联系有以下不同的情况对于实体间的联系有以下不同的情况: 一个一个1:1联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与任意一端所对应的关系模式合并。也可以与任意一端所对应的关系模式合并。 一个一个1:n联系可以转换为一个独立的关系模式,联系可以转换为一个独立的关系模式,也可以与也可以与n端所对应的
15、关系模式合并。端所对应的关系模式合并。 一个一个m:n联系转换为一个关系模式。联系转换为一个关系模式。 三个或三个以上实体间的一个多元联系可以转换三个或三个以上实体间的一个多元联系可以转换为一个关系模式。为一个关系模式。 具有相同码的关系模式可以合并。具有相同码的关系模式可以合并。 1:1转换示例 部门表部门表(部门号部门号,部门名,部门名,经经理号理号) 经理表经理表(经理号经理号,经理名,电,经理名,电话)话)或者:或者: 部门表部门表(部门号部门号,部门名),部门名) 经理表经理表(经理号经理号,部门号部门号,经,经理名,电话)理名,电话)11经理经理部门部门管理管理部门名部门名部门号部
16、门号经理号经理号经理名经理名电话电话1:n转换示例 部门表部门表(部门号,部门名) 职工表职工表(职工号,部门号,职工名,工资) n1职工职工部门部门工工作作部门名部门名部门号部门号职工号职工号职工名职工名工资工资m:n转换示例 教师表教师表(教师号,教师名,职称) 课程表课程表(课程号,课程名,学分) 授课表授课表(教师号,课程号,授课时数)nm课程课程教师教师授课授课教师名教师名教师号教师号课程号课程号课程名课程名学分学分职称职称授课时数授课时数 数据模型的优化数据模型的优化 关系数据模型的优化通常以规范化理论为指关系数据模型的优化通常以规范化理论为指导,并考虑系统的性能。具体方法为:导,
17、并考虑系统的性能。具体方法为: 确定各属性间的数据依赖。确定各属性间的数据依赖。 消除冗余的联系。消除冗余的联系。 确定最合适的范式。确定最合适的范式。 确定是否要对某些模式进行分解或合并确定是否要对某些模式进行分解或合并 。 对关系模式进行必要的分解,以提高数据的对关系模式进行必要的分解,以提高数据的操作效率和存储空间的利用率。操作效率和存储空间的利用率。 水平分解 以时间、空间、类型等范畴属性取值为条件,以时间、空间、类型等范畴属性取值为条件,满足相同条件的数据行为一个子表。满足相同条件的数据行为一个子表。 分解的依据一般以范畴属性取值范围划分数分解的依据一般以范畴属性取值范围划分数据行。
18、这样在操作同表数据时,时空范围相据行。这样在操作同表数据时,时空范围相对集中,便于管理。对集中,便于管理。 K# A1 Am K# A1 Am K# A1 Am垂直分解 以非主属性所描述的应用对象生命历程的先后为条以非主属性所描述的应用对象生命历程的先后为条件,对应相同历程的属性为一个子表。件,对应相同历程的属性为一个子表。 分解的依据是将非主属性按其数据生成的时间段划分解的依据是将非主属性按其数据生成的时间段划分,描述相同时间段的属性划分在一个组中。分,描述相同时间段的属性划分在一个组中。 使操作同表数据时时空范围相对集中,便于管理。使操作同表数据时时空范围相对集中,便于管理。 K# A11
19、 A1m A21 A2nK# A11 A1m K# A21 A2n 设计外模式设计外模式 将概念模型转换为逻辑数据模型之后,还应将概念模型转换为逻辑数据模型之后,还应该根据局部应用需求,并结合具体的数据库该根据局部应用需求,并结合具体的数据库管理系统的特点,设计用户的外模式。管理系统的特点,设计用户的外模式。 外模式概念对应关系数据库的视图概念,设外模式概念对应关系数据库的视图概念,设计外模式是为了更好地满足局部用户的需求。计外模式是为了更好地满足局部用户的需求。 定义数据库的模式主要是从系统的时间效率、定义数据库的模式主要是从系统的时间效率、空间效率、易维护等角度出发。空间效率、易维护等角度
20、出发。定义外模式考虑事项 使用更符合用户习惯的别名。使用更符合用户习惯的别名。 对不同级别的用户定义不同的视图,以对不同级别的用户定义不同的视图,以保证数据的安全。保证数据的安全。 简化用户对系统的使用。简化用户对系统的使用。 3.3 物理结构设计结构设计 对已确定的逻辑数据结构,利用对已确定的逻辑数据结构,利用DBMSDBMS提供的提供的方法、技术,以较优的存储结构、数据存取方法、技术,以较优的存储结构、数据存取路径、合理的数据存储位置以及存储分配,路径、合理的数据存储位置以及存储分配,设计出一个高效的、可实现的物理数据库结设计出一个高效的、可实现的物理数据库结构。构。 数据库的物理设计通常
21、分为两步:数据库的物理设计通常分为两步: 确定数据库的物理结构;确定数据库的物理结构; 对物理结构进行时间和空间效率的评价。对物理结构进行时间和空间效率的评价。物理结构设计的内容和方法物理结构设计的内容和方法 对于数据查询,需要得到如下信息:对于数据查询,需要得到如下信息: 查询所涉及的关系;查询所涉及的关系; 查询条件所涉及的属性;查询条件所涉及的属性; 连接条件所涉及的属性;连接条件所涉及的属性; 查询列表中涉及的属性。查询列表中涉及的属性。 对于更新数据的事务,需要得到如下信息:对于更新数据的事务,需要得到如下信息: 更新所涉及的关系;更新所涉及的关系; 每个关系上的更新条件所涉及的属性
22、;每个关系上的更新条件所涉及的属性; 更新操作所涉及的属性。更新操作所涉及的属性。 确定存取方法 一般用户可以通过建立索引的方法来加快数一般用户可以通过建立索引的方法来加快数据的查询效率。据的查询效率。 建立索引的一般原则为:建立索引的一般原则为: 在经常作为查询条件的属性上建立索引。在经常作为查询条件的属性上建立索引。 在经常作为连接条件的属性上建立索引。在经常作为连接条件的属性上建立索引。 在经常作为分组依据列的属性上建立索引。在经常作为分组依据列的属性上建立索引。 对经常进行连接操作的表可以建立索引。对经常进行连接操作的表可以建立索引。 一个表可以建立多个索引,但只能建立一个一个表可以建
23、立多个索引,但只能建立一个聚簇索引。聚簇索引。 确定存储结构 一般的存储方式有: 顺序存储 散列存储 聚簇存储 一般情况下系统都会为数据选择一种最合适的存储方式。 物理结构设计的评价物理结构设计的评价 评价物理结构设计的方法完全依赖于具体的评价物理结构设计的方法完全依赖于具体的DBMSDBMS,主要考虑的是操作开销,即为使用户,主要考虑的是操作开销,即为使用户获得及时、准确的数据所需的开销和计算机获得及时、准确的数据所需的开销和计算机的资源的开销。具体可分为如下几类:的资源的开销。具体可分为如下几类: 查询和响应时间查询和响应时间 更新事务的开销更新事务的开销 生成报告的开销生成报告的开销 主
24、存储空间的开销主存储空间的开销 辅助存储空间的开销辅助存储空间的开销 4 数数据库库行为设计为设计 4.1 功能需求分析 4.2 功能设计 4.3 事务设计4.1 功能需求分析 在进行需求分析时,实际上进行了两项工作: “数据流”的调查分析, “事务处理”过程的调查分析。 数据流的调查分析为数据库的信息结构提供了最原始的依据, 事务处理的调查分析是行为设计的基础。 对行为特性要进行的分析标识所有的查询、报表、事务及动态特性,指出对标识所有的查询、报表、事务及动态特性,指出对数据库所要进行的各种处理;数据库所要进行的各种处理;指出对每个实体所进行的操作(增、删、改、查);指出对每个实体所进行的操
25、作(增、删、改、查);给出每个操作的语义,包括结构约束和操作约束;给出每个操作的语义,包括结构约束和操作约束; 给出每个操作(针对某一对象)的频率;给出每个操作(针对某一对象)的频率;给出每个操作(针对某一应用)的响应时间;给出每个操作(针对某一应用)的响应时间;给出该系统总的目标。给出该系统总的目标。示例 教师退休行为的操作特征为: 该教师没有未教授完的课程。 删除此教师记录。 此教师记录不再在当前教师表中。 4.2 功能设计设计 目标功能2功能n功能1功能22功能23功能21系统目标的实现是通过系统的各功能模块来达到的。系统目标的实现是通过系统的各功能模块来达到的。由于每个系统功能又可以划
26、分为若干个更具体的功能由于每个系统功能又可以划分为若干个更具体的功能模块,因此,可以从目标开始,一层一层分解下去,模块,因此,可以从目标开始,一层一层分解下去,直到每个子功能模块只执行一个具体的任务。直到每个子功能模块只执行一个具体的任务。 例:“学籍管理”的功能结构图 学籍管理录取分班入学报到录入修改查询修课管理4.3事务设计务设计 事务处理是计算机模拟人处理事务的过程,包括: 输入设计 输出设计 功能设计 等等 输入设计 原始单据的设计格式 制成输入一览表 制作输入数据描述文档 输出设计 用途。区分输出结果是给客户的还是用于内部或报送上级领导的。 输出设备的选择。是仅仅显示出来,还是要打印
27、出来或需要永久保存。 输出量。 输出格式。 5 数数据库实库实施 加载数据 调试和运行应用程序加载数据 在数据库系统中,一般数据量都很大,各应在数据库系统中,一般数据量都很大,各应用环境差异也很大用环境差异也很大 。 为了保证数据库中的数据正确、无误,必须为了保证数据库中的数据正确、无误,必须十分重视数据的校验工作。十分重视数据的校验工作。 在将数据输入系统进行数据转换过程中,应在将数据输入系统进行数据转换过程中,应该进行多次的校验。该进行多次的校验。 对于重要的数据的校验更应该反复多次,确对于重要的数据的校验更应该反复多次,确认无误后再进入到数据库中。认无误后再进入到数据库中。 调试和运行应
28、用程序 在有一部分数据加载到数据库之后,就可以开始在有一部分数据加载到数据库之后,就可以开始对数据库系统进行联合调试了,这个过程又称为对数据库系统进行联合调试了,这个过程又称为数据库试运行数据库试运行。 这一阶段要实际运行数据库应用程序,执行对数这一阶段要实际运行数据库应用程序,执行对数据库的各种操作,测试应用程序的功能是否满足据库的各种操作,测试应用程序的功能是否满足设计要求。如果不满足,则要对应用程序进行修设计要求。如果不满足,则要对应用程序进行修改、调整,直到达到设计要求为止。改、调整,直到达到设计要求为止。 在数据库试运行阶段,还要对系统的性能指标进在数据库试运行阶段,还要对系统的性能
29、指标进行测试,分析其是否达到设计目标。行测试,分析其是否达到设计目标。 6 数数据库库的运运行和维护维护 数据库投入运行标志着开发工作的基本完成数据库投入运行标志着开发工作的基本完成和维护工作的开始,数据库只要存在一天,和维护工作的开始,数据库只要存在一天,就需要不断地对它进行评价、调整和维护。就需要不断地对它进行评价、调整和维护。 在数据库运行阶段,对数据库的经常性的维在数据库运行阶段,对数据库的经常性的维护工作主要由数据库系统管理员完成,其主护工作主要由数据库系统管理员完成,其主要工作包括:要工作包括: 数据库的备份和恢复数据库的备份和恢复 数据库的安全性和完整性控制数据库的安全性和完整性
30、控制 监视、分析、调整数据库性能监视、分析、调整数据库性能 数据库的重组数据库的重组 数据库的备份和恢复 要对数据库进行定期的备份,一旦出现故障,要对数据库进行定期的备份,一旦出现故障,要能及时地将数据库恢复到尽可能的正确状要能及时地将数据库恢复到尽可能的正确状态,以减少数据库损失。态,以减少数据库损失。数据库的安全性和完整性控制 随着数据库应用环境的变化,对数据库的安随着数据库应用环境的变化,对数据库的安全性和完整性要求也会发生变化。如全性和完整性要求也会发生变化。如: 收回某些用户的权限,收回某些用户的权限, 增加、修改某些用户的权限,增加、修改某些用户的权限, 增加、删除用户,增加、删除
31、用户, 数据的取值范围发生变化等数据的取值范围发生变化等。 这都需要系统管理员对数据库进行适当的调这都需要系统管理员对数据库进行适当的调整,以反映这些新的变化。整,以反映这些新的变化。监视、分析、调整数据库性能 监视数据库的运行情况,并对检测数据进行监视数据库的运行情况,并对检测数据进行分析,找出能够提高性能的可行性,并适当分析,找出能够提高性能的可行性,并适当地对数据库进行调整。地对数据库进行调整。 目前有些目前有些DBMSDBMS产品提供了性能检测工具,数产品提供了性能检测工具,数据库系统管理员可以利用这些工具很方便地据库系统管理员可以利用这些工具很方便地监视数据库。监视数据库。数据库的重组 数据库经过一段时间的运行后,随着数据的数据库经过一段时间的运行后,随着数据的不断添加、删除和修改,会使数据库的存取不断添加、删除和修改,会使数据库的存取效率降低,数据库管理员可以改变数据库数效率降低,数据库管理员可以改变数据库数据的组织方式,据的组织方式, 通过增加、删除或调整部分索引等方法,改通过增加、删除或调整部分索引等方法,改善系统的性能。善系统的性能。 数据库的重组并不改变数据库的逻辑结构数据库的重组并不改变数据库的逻辑结构。