《数据库设计过程-大学论文.doc》由会员分享,可在线阅读,更多相关《数据库设计过程-大学论文.doc(244页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库设计过程数据库设计概述什么是数据库设计0 数据库设计是指对于一个给定的应用环境,构造最优 的数据库模式,建立数据库及其应用系统,使之能够 有效地存储数据,满足各种用户的应用需求(信息要 求和处理要求) 0 在数据库领域内,常常把使用数据库的各类系统统称 为数据库应用系统。 0 特点:数据量大、保存时间长,数据关联复杂, 用户要求多样化。 2数据库设计准则0 数据库必须正确反映现实世界,能为某个DBMS 所接受 0 应用系统有良好的性能,有利于实施和维护 0 数据库能满足当前和今后相当长时期内的数据 需求,使数据库有较长的使用寿命 0 当软件和硬件环境发生变化时容易修改和移植 0 能满足安
2、全性要求,当系统发生故障时,容易 恢复数据库 0 数据库存取效率、查询效率要高 3数据库设计方法手工与经验相结合方法z 设计质量与设计人员的经验和水平有直接关系缺乏科学理论和工程方法的支持,工程的质量难以保z证0 数据库运行一段时间后常常不同程度地发现各种问题, 增加了维护代价 规范设计法 0 手工设计方法 0 基本思想:过程迭代和逐步求精 4数据库设计方法(续)新奥尔良(New Orleans)方法0 将数据库设计分为若干阶段和步骤 基于E-R模型的数据库设计方法 0 概念设计阶段广泛采用 3NF(第三范式)的设计方法 0 逻辑阶段可采用的有效方法 ODL(Object Definition
3、 Language)方法 z 面向对象的数据库设计方法5数据库设计方法(续)计算机辅助设计z ORACLE Designerz SYBASE PowerDesigner6数据库设计的基本步骤数据库设计分6个阶段0 需求分析 0 概念结构设计 0 逻辑结构设计 0 物理结构设计 0 数据库实施 0 数据库运行和维护 需求分析和概念设计独立于任何数据库管理系统 逻辑设计和物理设计与选用的DBMS密切相关 7 数据库设计的基本步骤数据库设计的过程(六个阶段)需求分析阶段0 准确了解与分析用户需求(包括数据与处 理) 0 最困难、最耗费时间的一步 8数据库设计的基本步骤(续)概念结构设计阶段0 整个数
4、据库设计的关键 0 通过对用户需求进行综合、归纳与抽象, 形成一个独立于具体DBMS的概念模型 9数据库设计的基本步骤(续)逻辑结构设计阶段0 将概念结构转换为某个DBMS所支持的数据 模型 0 对其进行优化 10数据库设计的基本步骤(续)数据库物理设计阶段0 为逻辑数据模型选取一个最适合应用环境 的物理结构(包括存储结构和存取方法) 11数据库设计的基本步骤(续)数据库实施阶段0 运用DBMS提供的数据库语言(如SQL)及宿 主语言,根据逻辑设计和物理设计的结果 0 建立数据库 0 编制与调试应用程序 0 组织数据入库 0 进行试运行 12数据库设计的基本步骤(续)数据库运行和维护阶段0 数
5、据库应用系统经过试运行后即可投入正 式运行 0 在数据库系统运行过程中必须不断地对其 进行评价、调整与修改 13需求分析需求分析就是确定所要开发的应用系统的目标,收集 和分析用户对数据库的要求,了解用户需要什么样的 数据库,做什么样的数据库。对用户需求分析的描述 是数据库概念设计的基础。 需求分析主要是考虑“做什么”的问题,而不是考虑 “怎么做”的问题。 需求分析的结果是产生用户和设计者都能接受的需求 说明书。需求分析简单地说就是分析用户的要求。需 求分析是设计数据库的起点,需求分析的结果是否准 确的反映了用户的实际要求,将直接影响到后面各个 阶段的设计,并影响到设计结果是否合理和实用。 14
6、1. 收集资料,了解用户需求 (1) 信息需求,用户要从数据库获得的信息内容 (2) 处理需求,完成什么处理功能及处理方式 (3) 安全性和完整性要求 2. 分析数据对收集到的数据进行抽象,即对实际事物或事件的人为处理,抽取共同的本质特性,并用各种概念精确地加以描述.15进一步分析和表达用户需求(续)1首先把任何一个系统都抽象为:数据存储 信息要求数据流数据流数据处理数据处理要求来源输出16进一步分析和表达用户需求(续)2分解处理功能和数据(1)分解处理功能 将处理功能的具体内容分解为若干子功能(2)分解数据处理功能逐步分解同时,逐级分解所用数据,形成若干层次的数据流图(3)表达方法0 处理逻
7、辑:用判定表或判定树来描述 0 数据:用数据字典来描述 3将分析结果再次提交给用户,征得用户的认可17例学 生 数 据 图书借阅管 理系统1图 书 数 据图书 库存 数 据18例还书信息学生数据借书信息还书处理系统图1 . 2书借书处数存库理系统据1.119例修改库存状 态借 书(出)还书信息 数 据1.2.2检 查1.1.2学生数据学 生 数学 生 数修改库据 检 查据 存状态1.1.1(入)1 . 1 . 3借书信息图书库现 有 库 存 数 据存量检查1.2.1数书图出借数存库书图据据20数据字典用来说明或描述系统中数据的静态组成结构的0 数据库系统中所有数据的详尽描述,是各类数据属 性的
8、清单 0 包括: 数据项:数据的最小单位 数据结构:若干数据项有意义的集合 数据流:表示某一处理过程的输入或输出 数据存储:处理过程中存取的数据 处理过程:该过程的功能等 0 数据字典在需求分析阶段建立,在数据库设计过程 中不断修改、充实、完善 210 数据项 数据项是不可再分的数据单位 对数据项的描述 数据项描述 数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系 220 数据结构 数据结构反映了数据之间的组合关系。 一个数据结构可以由若干个数据项组成,也可以 由若干个数据结构组成,或由若干个数据项和数据 结构混合组成。对数据结构的描
9、述数据结构描述数据结构名,含义说明,组成:数据项或数据结构230 数据流 数据流是数据结构在系统内传输的路径。 对数据流的描述 数据流描述 数据流名,说明,数据流来源,数据流去向,组成:数据结构, 平均流量,高峰期流量240 数据存储 数据存储是数据结构停留或保存的地方,也 是数据流的来源和去向之一。 对数据存储的描述 数据存储描述数据存储名,说明,编号,输入的数据流 ,输出的数据流 ,组成:数据结构,数据量,存取频度,存取方式250 处理过程 具体处理逻辑一般用判定表或判定树来描述 处理过程说明性信息的描述 处理过程描述处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明26数据字典
10、举例例:学生学籍管理子系统的数据字典。 数据项,以“学号”为例:数据项: 学号含义说明:唯一标识每个学生 别名: 学生编号类型: 字符型 长度: 8取值范围:00000000至99999999取值含义:前两位标别该学生所在年级,后六位按顺序编号27与其他数据项的逻辑关系:处理过程(续)数据结构,以“学生”为例“学生”是该系统中的一个核心数据结构: 数据结构:学生含义说明:是学籍管理子系统的主体数据结构,定 义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级28处理过程(续)数据流,“体检结果”可如下描述:数据流: 体检结果说明: 学生参加体格检查的最终结果数据流来源:体检数据流去
11、向:批准组成: 平均流量: 高峰期流量:29处理过程(续)数据存储,“学生登记表”可如下描述:数据存储: 学生登记表说明: 记录学生的基本情况流入数据流:流出数据流:组成: 数据量: 每年3000张存取方式: 随机存取30处理过程(续)处理过程“分配宿舍”可如下描述:处理过程:分配宿舍说明: 为所有新生分配学生宿舍输入: 学生,宿舍输出: 宿舍安排处理: 在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。31需求分析小结设计人员应充分考虑到可能的扩充和改变,使设
12、计易于更改,系统易于扩充 必须强调用户的参与 32概念结构设计什么是概念结构设计0 将需求分析得到的用户需求抽象为信息结构 即概念模型的过程就是概念结构设计 0 概念结构是各种数据模型的共同基础,它比 数据模型更独立于机器、更抽象,从而更加 稳定 0 概念结构设计是整个数据库设计的关键 33概念结构(续)概念结构设计的特点(1) 能真实、充分地反映现实世界(2) 易于理解(3) 易于更改(4) 易于向关系、网状、层次等各种数据模型转换34概念结构(续)描述概念模型的工具z E-R模型35概念结构设计的方法与步骤设计概念结构的四类方法0 自顶向下 0 首先定义全局概念结构的框架,然后逐步细化 自
13、顶向下策略36概念结构设计的方法与步骤0 自底向上 0 首先定义各局部应用的概念结构,然后将它们集成 起来,得到全局概念结构 自底向上策略37概念结构设计的方法与步骤(续)逐步扩张z 首先定义最重要的核心概念结构,然后向外扩充, 以滚雪球的方式逐步生成其他概念结构,直至总体 概念结构逐步扩张策略38概念结构设计的方法与步骤(续)0 混合策略 0 将自顶向下和自底向上相结合,用自顶向下策 略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。39概念结构设计的方法与步骤(续)常用策略0 自顶向下地进行需求分析 0 自底向上地设计概念结构 40Database Syst
14、em Concepts, 5th Ed.17.40Silberschatz, Korth and Sudarshan概念结构设计的方法与步骤(续)自底向上设计概念结构的步骤第1步:抽象数据并设计局部视图 第2步:集成局部视图,得到全局概念结构41局部视图设计设计分E-R图的步骤:选择局部应用逐一设计分E-R图42设计过程中如何区分实体和属性0 实体与属性是相对而言的。同一事物,在一种 应用环境中作为“属性”,在另一种应用环境 中就必须作为“实体”。 例:学校中的系,在某种应用环境中,它只是 作为“学生”实体的一个属性,表明一个学生 属于哪个系;而在另一种环境中,由于需要考 虑一个系的系主任、教
15、师人数、学生人数、办 公地点等,这时它就需要作为实体了。 43逐一设计分E-R图(续)两条准则:0 (1)属性不能再具有需要描述的性质。即属性必须 是不可分的数据项,不能再由另一些属性组成 0 (2)属性不能与其他实体具有联系。联系只发生在 实体之间 符合上述两条特性的事物一般作为属性对待。 为了简化E-R图的处置,现实世界中的事物凡能 够作为属性对待的,应尽量作为属性。 44逐一设计分E-R图(续)职称作为一个实体45视图的集成各个局部视图即分E-R图建立好后,还需 要对它们进行合并,集成为一个整体的 数据概念结构即总E-R图。 46视图集成的两种方式多个分E-R图一次集成 0 一次集成多个
16、分E-R图 0 通常用于局部视图比较简单时 47视图的集成(续)逐步集成z 用累加的方式一次集成两个分E-R图48视图的集成(续)集成局部E-R图的步骤1. 合并2. 修改与重构49视图的集成(续)视图集成50合并分E-R图,生成初步E-R图各分图存在冲突0 各个局部应用所面向的问题不同 由不同的设计人员进行设计 各个分E-R图之间必定会存在许多不一致的 地方 0 合并分E-R图的主要工作与关键所在:合理 消除各分E-R图的冲突 51合并分E-R图,生成初步E-R图(续)冲突的种类 0 属性冲突 0 命名冲突 0 结构冲突 52 属性冲突两类属性冲突0 属性域冲突 0 属性值的类型 0 取值范
17、围 0 取值集合不同 例1, 由于学号是数字,因此某些部门(即局部应用)将学号定义为整数形式,而由于学号不用参与运算,因此另一些部门(即局 部应用)将学号定义为字符型形式。例2, 某些部门(即局部应用)以出生日期形式表示学生的年龄,而另一些部门(即局部应用)用整数形式表示学生的年龄。z 属性取值单位冲突例:学生的身高,有的以米为单位,有的以厘米为单 位,有的以尺为单位。53属性冲突(续)属性冲突的解决方法0 通常用讨论、协商等行政手段加以解 决。 0 满足整体需求基础上的方便原则 54 命名冲突两类命名冲突0 同名异义:不同意义的对象在不同的局部应用 中具有相同的名字 例,局部应用A中将教室称
18、为房间 局部应用B中将学生宿舍称为房间0 异名同义(一义多名):同一意义的对象在不 同的局部应用中具有不同的名字 例,有的部门把教科书称为课本有的部门则把教科书称为教材55命名冲突(续)命名冲突可能发生在属性级、实体级、 联系级上。其中属性的命名冲突更为常 见。 命名冲突的解决方法 z通过讨论、协商等行政手段加以解决56 结构冲突三类结构冲突z 同一对象在不同应用中具有不同的抽象例,“课程”在某一局部应用中被当作实体在另一局部应用中则被当作属性解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。57 结构冲突三类结构冲突0 同一实体在不同分E-R图中所包含的属性个数和
19、属性排 列次序不完全相同 产生原因:不同的局部应用关心的是该实体的不同 侧面。解决方法:使该实体的属性取各分E-R图中属性的并集,再适当设计属性的次序。58结构冲突(续)学生学号姓名 性别 平均成绩(a)在局部应用A中59结构冲突(续)学生姓名 学号 出生日期 所在系 年级(b)在局部应用B中60结构冲突(续)学生姓名政治面貌 学号(c)在局部应用C中61结构冲突(续)学生学号姓名出生政治所在系 年级 性别平均日期面貌成绩(d)合并后62 结构冲突三类结构冲突z 实体之间的联系在不同局部视图中呈现不同的类型例1, 实体E1与E2在局部应用A中是多对多联系,而在局部应用B中是一对多联系例2, 在
20、局部应用X中E1与E2发生联系,而在局部应用Y中E1、E2、E3三者之间有联系。z 解决方法:根据应用语义对实体联系的类型进行综合或调整。63消除不必要的冗余,设计基本E-R图基本任务z 消除不必要的冗余,设计生成基本E-R图分E-R图 合并初步E-R图 可能存在冗余的数据和冗余的实体间联系 消除不必要的冗余基本E-R图64消除冗余的方法(续)例,教师工资单中包括该教师的基本工资、各种补贴、应扣除的房租水电费以及实发工资。由于实发工资可以由前面各项推算出来,因此可 以去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。65消除冗余的方法(续)0 如果是为了提高效率
21、,人为地保留了 一些冗余数据,则应把数据字典中数 据关联的说明作为完整性约束条件。 0 更好的方法是把冗余数据定义在视图 中 66消除冗余的方法(续)规范化理论0 函数依赖的概念提供了消除冗余联系的形 式化工具 确定函数依赖求FL的最小覆盖GL67验证整体概念结构视图集成后形成一个整体的数据库概念结构,对该 整体概念结构还必须进行进一步验证,确保它能够 满足下列条件: 0 整体概念结构内部必须具有一致性,不存在互相矛 盾的表达 0 整体概念结构能准确地反映原来的每个视图结构, 包括属性、实体及实体间的联系 0 整体概念结构能满足需要分析阶段所确定的所有要 求68验证整体概念结构(续)整体概念结
22、构最终还应该提交给用户,征求用 户和有关人员的意见,进行评审、修改和优化, 然后把它确定下来,作为数据库的概念结构, 作为进一步设计数据库的依据。 69逻辑结构设计逻辑结构设计的任务0 把概念结构设计阶段设计好的基本E-R图转换为与选用 DBMS产品所支持的数据模型相符合的逻辑结构 逻辑结构设计的步骤 0 将概念结构转化为一般的关系、网状、层次模型 0 将转换来的关系、网状、层次模型向特定DBMS支持下 的数据模型转换 0 对数据模型进行优化 70逻辑结构设计(续)逻辑结构设转化为一转化为特优化模型般数据模定DBMS型支持下的概念结据模型构设计数据库物理设计基本E-R图优化方逻辑转换规特定法如
23、规模型则DBMS的范化理特点与限论制71数据模型的优化得到初步数据模型后,还应该适当地修改、调 整数据模型的结构,以进一步提高数据库应用 系统的性能,这就是数据模型的优化 关系数据模型的优化通常以规范化理论为指导 72数据模型的优化(续)优化数据模型的方法1. 确定数据依赖按需求分析阶段所得到的语义,分别写出每个关系模式内部各属性之间的数据依赖以及不同关系模式属性之间数据依赖2. 消除 冗余的联系对于各个关系模式之间的数据依赖进行极小化处理,消 除冗余的联系。3. 确定所属范式 0 按照数据依赖的理论对关系模式逐一进行分析 0 考查是否存在部分函数依赖、传递函数依赖、多值 依赖等 0 确定各关
24、系模式分别属于第几范式 73数据模型的优化(续)4. 按照需求分析阶段得到的各种应用对数据处 理的要求,分析对于这样的应用环境这些模 式是否合适,确定是否要对它们进行合并或 分解。 注意:并不是规范化程度越高的关系就越优,一般说来,第三范式就足够了74数据模型的优化(续)5. 按照需求分析阶段得到的各种应用对数据处 理的要求,对关系模式进行必要的分解,以 提高数据操作的效率和存储空间的利用率 0 常用分解方法 0 水平分解 0 垂直分解 75数据模型的优化(续)水平分解z0 什么是水平分解 把(基本)关系的元组分为若干子集合,定义每个子 集合为一个子关系,以提高系统的效率 0 水平分解的适用范
25、围 满足“80/20原则”的应用 并发事务经常存取不相交的数据 76数据模型的优化(续)0 垂直分解 0 什么是垂直分解 把关系模式R的属性分解为若干子集合,形成若干 子关系模式 0 垂直分解的适用范围 取决于分解后R上的所有事务的总效率是否得到了 提高 77设计用户子模式定义用户外模式时应该注重的问题包括三个方面:(1) 使用更符合用户习惯的别名 (2) 针对不同级别的用户定义不同的View , 以满足系统对安全性的要求。 (3) 简化用户对系统的使用 78数据库的物理设计数据库的物理设计0 数据库在物理设备上的存储结构与存取方法称 为数据库的物理结构,它依赖于选定的数据库 管理系统 0 为
26、一个给定的逻辑数据模型选取一个最适合应 用环境的物理结构的过程,就是数据库的物理设计79数据库的物理设计(续)数据库物理设计的步骤0 确定数据库的物理结构,在关系数据库中主要指 存取方法和存储结构 0 对物理结构进行评价,评价的重点是时间和空间 效率 如果评价结果满足原设计要求,则可进入到物理 实施阶段,否则,就需要重新设计或修改物理结 构,有时甚至要返回逻辑设计阶段修改数据模型 80数据库的物理设计(续)数据库物理设计确定数据评价数据库的物理库的物理逻辑结结构结构构设计数据库实施逻辑 模型 物理模型81数据库物理设计的内容和方法设计物理数据库结构的准备工作0 对要运行的事务进行详细分析,获得
27、选择 物理数据库设计所需参数 0 充分了解所用RDBMS的内部特征,特别是系 统提供的存取方法和存储结构 82数据库的物理设计的内容和方法(续)选择物理数据库设计所需参数0 数据库查询事务 0 查询的关系 0 查询条件所涉及的属性 0 连接条件所涉及的属性 0 查询的投影属性 83数据库的物理设计的内容和方法(续)选择物理数据库设计所需参数(续)0 数据更新事务 0 被更新的关系 0 每个关系上的更新操作条件所涉及的属性 0 修改操作要改变的属性值 0 每个事务在各关系上运行的频率和性能要 求 84数据库的物理设计的内容和方法(续)关系数据库物理设计的内容0 为关系模式选择存取方法(建立存取路
28、径) 0 设计关系、索引等数据库文件的物理存储 结构85一、索引存取方法的选择根据应用要求确定0 对哪些属性列建立索引 0 对哪些属性列建立组合索引 0 对哪些索引要设计为唯一索引 86索引存取方法的选择(续)选择索引存取方法的一般规则0 如果一个(或一组)属性经常在查询条件中出现,则考虑在这 个(或这组)属性上建立索引(或组合索引) 0 如果一个属性经常作为最大值和最小值等聚集函数的参数, 则考虑在这个属性上建立索引 0 如果一个(或一组)属性经常在连接操作的连接条件中出现, 则考虑在这个(或这组)属性上建立索引 关系上定义的索引数过多会带来较多的额外开销 0 维护索引的开销 z 查找索引的开销87二、聚簇存取方法的选择什么是聚簇