《第六章数据库设计.ppt》由会员分享,可在线阅读,更多相关《第六章数据库设计.ppt(68页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第6章 数据库设计6.1 数据库设计的步骤如何利用数据库管理系统、系统软件和相关的硬件系统,将用户的要求转化成有效的数据结构,并使数据库结构易于适应用户新的要求的过程,这个过程称为数据库设计。数据库设计分为以下6个阶段。1(1)用户需求分析阶段(充分了解用户的需求,编写需求分析报告)通过调查,要从中获得每个用户对数据库的如下要求。1)信息要求。用户将从数据库中获得信息的内容、性质。由信息要求导出数据库要求,即在数据库中存储哪些数据。2)处理要求。用户要完成什么处理功能,对某种处理要求的响应时间,处理的方式是批处理还是联机处理。3)安全性和完整性要求。2(2)概念设计阶段(设计反映企业组织信息需
2、求的概念模型ER模型)概念设计是把用户的信息要求统一到一个整体逻辑结构中。概念结构能表达用户的要求,且独立于支持数据库的DBMS和硬件结构。(3)逻辑设计阶段(把ER模型转换成关系模型)逻辑结构设计是将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。3(4)物理设计阶段(设计DB的物理结构存储结构和存储方法)数据库物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构。通常关系数据库物理设计的内容包括以下几点:确定数据库的存储安排;存取路径的选择与调整;确定系统配置。4(5)数据库实施阶段(建立DB结构;输入原始数据;调试应用程序;DBS试运行;验收)完成数据库的物理设计之后,设
3、计人员就要用DBMS提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果严格描述出来,成为DBMS可以接受的源代码,再经过调试产生目标模式,然后就可以组织数据库了。5(6)数据库运行和维护阶段(安全性、完整性的维护;性能监督与改进;功能扩充;修正错误)这一阶段主要是收集和记录系统实际运行的数据。数据库运行的记录将用来提高用户要求的有效性信息,用来评价数据库系统的性能,更进一步用于对系统的修正。在运行中,必须保持数据库的完整性,必须有效地处理数据故障和进行数据库恢复。6 数据库设计的步骤需求分析需求分析数据库运行和维护数据库运行和维护设计局部视图设计局部视图集成视图集成视图概念结概念结
4、构设计构设计优化逻辑结构优化逻辑结构设计逻辑结构设计逻辑结构逻辑结逻辑结构设计构设计设计物理结构设计物理结构评价物理结构评价物理结构数据库物数据库物理设计理设计数据库系统数据库系统的物理实现的物理实现试验性运行试验性运行数据库数据库实施实施76.2 需求分析6.2.1 需求分析的任务确定数据库系统做什么,具备哪些功能。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确的表达出来,也不知道怎样用计算机解决他们的问题。数据库开发人员知道怎样用软件实现人们提出的各种功能要求,但是对用户的具体业务和需求不完全清楚。86.2 需求分析6.2.1 需求分析的任务需求分析的任务是通过详细调查现实
5、世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。96.2 需求分析软件开发人员要和用户密切配合,相互交流,充分理解用户的业务流程,完整、全面的收集用户业务中的信息和处理方法,从中分析出用户要求的功能和性能,完整、准确的表达出来。10首先调查组织机构情况然后调查各部门的业务活动情况在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求。最后对前面调查的结果进行初步分析,确定新系统的边界,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。6.2.2 需求分析的方法(1)调查与初步分析用户
6、需求的步骤:11(2)常用调查方法 跟班作业 开调查会 请专人介绍 询问 设计调查表请用户填写 查阅记录(3)需求信息的分析整理1)业务流程分析业务流程分析业务流程分析的目的是获得业务流程及业务与数据联系的形式描述。一般采用数据流分析法,分析结果以数据流图(data flowed drawing,DFD)表示。12在众多分析和表达用户需求的方法中,自顶向下逐步细化是一种简单实用的方法。DFD可作为自顶向下逐步细化时描述对象的工具。顶层的每一个加工处理都可以迸一步细化为第二层;第二层的每一个加工都可以进一步细化为第三层;直到最底层的每一个加工已表示一个最基本的处理动作为止。DFD可可以以形形象象
7、地地表表示示数数据据流流与与各各业业务务活活动动的的关关系系,它它是是需需求求分分析析的工具和分析结果的描述手段。的工具和分析结果的描述手段。13用于确定所开发的数据库系统的功能模块用于确定所开发的数据库系统的功能模块的个数及各模块之间的边界。的个数及各模块之间的边界。较为客观的一种方法(相对于传统的会议、较为客观的一种方法(相对于传统的会议、讨论)。讨论)。系统总体结构的确定系统总体结构的确定 U/C矩阵法矩阵法141516成品库保管员按车间送来的入库单登记库存台帐。发货时,发货员根据销售科送来的发货通知单将成品出库,并发货,同时填写三份出库单,其中一份交给成品库保管员,由他按此出库单登记库
8、存台帐,出库单的另外两份分别销售科和会计科。数据流程图的绘制(例一)数据流程图的绘制(例一)17某企业的产品库存管理业务主要涉及审核员、登记员主要涉及审核员、登记员和统计员三人和统计员三人,其业务过程如下:审核员对车间送来的成品入库单和销售科送来的成品出库单进行审核(对于入库单,看上面填写的数据与产品实际入库量是否一致;对于出库单,看上面填写的出库数量是否不超过库存台帐上的产品实际库存量);不合格的单据分别返回车间和销售科,合格的单据转给登记员。登记员将合格入库单及合格出库单上的数据登入库存台帐。而统计员则根据库存台帐进行统计,做出报表并上报厂办。数据流程图的绘制(例二)数据流程图的绘制(例二
9、)18库存台帐统 计厂办车间入库单审核入 库销售出库单审核出 库不不合格出库单单 不出库单单 不合格出库单单 不不合格入库单单 不入库单单 不合格入库单单 查询入库数据出库数据报表19某银行储蓄所存(取)款过程如下:储户将填好的存(取)款单及存折送交出纳员,出纳员按照两种不同情况进行处理:如果是存款业务,则收取现金并查询底账,将底帐更新后再把打印好的存折返还储户。如是取款业务,则查询底账,看取款数额是否不超过底帐上的实际存款;如不是,则将不合格的单据和存折返回储户重新填写;如是,则提出现金并更新底账,再打印存折返还储户。数据流程图的绘制(例三)数据流程图的绘制(例三)20某银行储蓄所存(取)款
10、过程如下:储户将填好的存(取)款单及存折送交出纳员,出纳员按照两种不同情况进行处理:如果是存款业务,则收取现金并查询底账,将底帐更新后再把打印好的存折返还储户。如是取款业务,则查询底账,看取款数额是否不超过底帐上的实际存款;如不是,则将不合格的单据和存折返回储户重新填写;如是,则提出现金并更新底账,再打印存折返还储户。数据流程图的绘制(例四)数据流程图的绘制(例四)216.2.3 数据字典数据流图表达了数据与处理的关系,数据字典(data dictidnary,DD)则是对系统中数据的详尽描述,它提供对数据库数据描述的集中管理。它的处理功能是存储和检索元数据(metadata),如叙述性的数据
11、定义等,并且为数据库管理员提供有关的报告。对数据库设计来说,数据字典是进行详细的数据收集和数据分析所获得的主要成果。通常包括:数据项、数据结构、数据流、数据存储和处理过程5个部分。22A.数据项:用来给出数据项的定义,如名称、编号、数据项:用来给出数据项的定义,如名称、编号、类型、长度、取值范围、别名、简述等内容类型、长度、取值范围、别名、简述等内容数据项编号:I001数据项名:材料代码别名:材料编号简 述:赋予材料的具有唯一标识的代码类型及宽度:字符型,7位(由数字组成的字符串)取值范围:00000001999999 意义:X XX XX XX组成:材料代码“0”“1”其中:数字“0”“9”
12、零件序号小类序号大类序号进口/国产标志23B.数据结构:反映了数据之间的组合关系。数据结构:反映了数据之间的组合关系。数据结构名称:学生含义说明:是学籍管理子系统的主体数据结构,定义 了一个学生的有关信息组成:学号+姓名+性别+年龄+所在系+年级24数据流编号:F0308数据流名:领料单别名:无简 述:职工到材料仓库领料时需填写的单据数据流来源:职工或车间数据流去向:数据处理“编辑领料单”数据流量:10份/时高峰流量:20份/时,每天上午9:00-11:00组成:领料单=领料单号+领料部门领料日期 材料代码+材料名称+规格+计量单位+单价+领料数量C.数据流数据流:由一个或一组固定的数据项组成
13、。定由一个或一组固定的数据项组成。定义时不仅要说明数据流的名称、组成等,还应指义时不仅要说明数据流的名称、组成等,还应指明它的来源、去向和数据流量等。明它的来源、去向和数据流量等。25D.处理过程:仅对数据流图中最底层的处理逻辑处理过程:仅对数据流图中最底层的处理逻辑加以说明,处理过程的具体处理逻辑一般用判定加以说明,处理过程的具体处理逻辑一般用判定表或判定树来描述。表或判定树来描述。处理过程名:分配宿舍处理逻辑编号:P1.6说明:为所有新生分配学生宿舍输入:学生、宿舍输出:宿舍安排处理:在新生报到后,为所有新生分配宿舍。要求同一间 宿舍只能安排同一性别的学生,同一个学生只能安 排在一个宿舍中
14、。每个学生的居住面积不小于3平方 米。安排新生宿舍其处理时间应不超过15分钟。26描述处理逻辑的工具描述处理逻辑的工具1.判断树判断树欠款时间欠款时间30天天30天天100天天100天天需求量需求量库存量库存量库存量库存量立即发货立即发货先按先按库存发库存发货,进货后货,进货后再补发再补发需求量需求量库存量库存量库存量库存量先先付款,付款,再发货再发货不不发货发货通知先付欠通知先付欠款款27描述处理逻辑的工具描述处理逻辑的工具2.判断表(决策表)判断表(决策表)决策规则号决策规则号123456条条件件欠款时间欠款时间30天天YYNNNN欠款时间欠款时间100天天NNYYNN需求量需求量库存量库
15、存量YNYNYN应应采采取取的的行行动动立即发货立即发货先按库存量发货,进货先按库存量发货,进货后再补发后再补发先付款,再发货先付款,再发货不发货不发货要求先付欠款要求先付欠款28E.数据存储:只描述数据的逻辑存储结构,数据存储:只描述数据的逻辑存储结构,不涉及它的物理组织。不涉及它的物理组织。数据存储名称:人事档案数据存储编号:D1.09组成:职工号姓名出生时间参加工作时间职称工作部门工资婚否结构:以职工号为关键字、索引存取相关联的处理:P1.5注释:今后还将增加数据项29集中所有存储和数据流,生成原始关系,集中所有存储和数据流,生成原始关系,并进行必要的数据项增、删并进行必要的数据项增、删
16、合并主码相同的关系合并主码相同的关系对关系模式进行规范化对关系模式进行规范化数据流程图向库文件的转化数据流程图向库文件的转化306.3 概念结构设计 在需求分析阶段数据库设计人员充分调查并描述了用户的应用需求,将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。316.3 概念结构设计 概念设计的必要性(1)各阶段的任务相对单一化,设计复杂程度大大降低,便于组织管理。(2)不受特定的DBMS的限制,也独立于存储安排和效率方面的考虑,因而比逻辑模式更为稳定。(3)概念模式不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而才有可能准确地反映用户的信息需求。32数据库的
17、各级模式数据库的各级模式33对概念模型的要求:(1)概念模型是对现实世界的抽象和概括,它应真实、充分地反映现实世界中事物和事物之间的联系,有丰富的语义表达能力,能表达用户的各种需求。(2)概念模型应简洁、明晰、独立于机器、容易理解,方便数据库设计人员与应用人员交换意见,使用户能积极参与数据库的设计工作。(3)概念模型应易于变动。(4)概念模型应很容易向关系、层次或网状等各种数据模型转换。34概念模型与数据模型的关系概念模型与数据模型的关系356.3.1 概念结构设计的方法与步骤(1)方法:自顶向下自底向上逐步扩张混合策略(2)自底向上方法设计概念结构的工作步骤:抽象数据并设计局部视图集成局部视
18、图366.3.2 数据抽象与局部视图设计抽象是对实际的人、物、事或概念的人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。37数据抽象在数据库设计过程中的作用:在数据库设计的概念设计中,利用抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体,实体的属性,构成实体的键,确定实体之间的联系类型(1:1,1:N,或M:N)。设计分E-R图,从个别用户的需求出发,为每个用户或每个对数据的观点与使用方式相似的用户建立一个相应的局部概念结构。设计分E-R图的步骤如下:38(1)选择局部应用(2)逐一设计分E-R图1)实体定义
19、:现实世界 中一组具有某些共同特性 和行为的对象可以抽象为 一个实体。2)联系定义3)属性分配:对象类型 的组成成分可以抽象为实 体的属性属性不能与其他实体具有联系注意:属性不能再具有需要描述的性质。39姓名教师性别评定职称住房分配n111教师姓名性别职称姓名性别职称40某生产部门查询系统的数据流程图某生产部门查询系统的数据流程图产品产品产品名称产品名称主要性能主要性能零件零件零件号零件号零件名零件名材料名材料名材料用量材料用量组成组成零件数量零件数量mn某生产部门的局部某生产部门的局部E-R模型模型P2查询查询产品性能产品性能P3查询查询零件用料零件用料P4查询产品查询产品零件一览表零件一览
20、表P1判断查询判断查询项目项目产品性能表产品性能表零件用料表零件用料表产品零件一览表产品零件一览表生产查生产查询请求询请求产品零件产品零件一览表一览表零件用料零件用料产品性能产品性能41P2查询查询产品价格产品价格P3查询查询产品用料产品用料P4查询材料价查询材料价格格或库存量或库存量P1判断查询判断查询项目项目产品价格表产品价格表产品用料表产品用料表材料价格或库存表材料价格或库存表供应查供应查询请求询请求材料价格材料价格或库存量或库存量产品用料产品用料产品价格产品价格某供应部门查询系统的数据流程图某供应部门查询系统的数据流程图产品产品产品名产品名价格价格材料材料库存量库存量价格价格材料名材料
21、名使用使用用量用量mn某供应部门的局部某供应部门的局部E-R模型模型426.3.3视图的集成视图的集成(1)合并分E-R图,生成初步E-R图(2)修改与重构,生成基本E-R图1)实体类型的合并2)冗余属性的消除3)冗余联系的消除43设计全局E-R模式局部局部E-R图图初步初步E-R图图合并合并(消除冲突)(消除冲突)修改与重构修改与重构(消除不必要(消除不必要的冗余)的冗余)全局全局E-R图图分析分析E-R图的合成一般采用逐步累积的方式,即首先集成两个图的合成一般采用逐步累积的方式,即首先集成两个局部图(通常是比较关键的两个局部图),以后每次将一局部图(通常是比较关键的两个局部图),以后每次将
22、一个新的局部图集成进来。个新的局部图集成进来。44学生学生姓名姓名学号学号性别性别平均成绩平均成绩在应用在应用A中中学生学生姓名姓名学号学号所在系所在系年级年级出生年月出生年月在应用在应用B中中学生学生姓名姓名学号学号政治面貌政治面貌在应用在应用C中中学生学生姓名姓名学号学号所在系所在系年级年级出生年月出生年月政治面貌政治面貌平均成绩平均成绩性别性别合并后合并后45产品产品产品名产品名主要性能主要性能零件零件零件号零件号零件名零件名组成组成零件数量零件数量mn价格价格材料材料库存量库存量价格价格材料名材料名使用使用用量用量mn消耗消耗mn定额定额初步初步E-R图图46v各局部各局部E-R图之间
23、的冲突主要有三类:属性冲突、图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。命名冲突和结构冲突。v属性冲突属性冲突A.属性域冲突:即属性值的类型、取值范围或属性域冲突:即属性值的类型、取值范围或取值集合不同。取值集合不同。B.属性取值单位冲突。属性取值单位冲突。通常用讨论、协商等行政手段加以解决v命名冲突命名冲突A.同名异义,即不同意义的对象在不同的局部应同名异义,即不同意义的对象在不同的局部应用中具有相同的名字用中具有相同的名字B.异名同义,即同一意义的对象在不同的局部应异名同义,即同一意义的对象在不同的局部应用中具有不同的名字。用中具有不同的名字。用讨论、协商等行政手段加以解决47v
24、结构冲突结构冲突A.同一对象在不同应用中具有不同的抽象。同一对象在不同应用中具有不同的抽象。解决办法:通常把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。B.同一实体在不同局部视图中所包含的属性不同一实体在不同局部视图中所包含的属性不完全相同。完全相同。解决办法:使该实体的属性取各分解决办法:使该实体的属性取各分E-R图中属性图中属性的并集。的并集。C.实体之间的联系在不同局部视图呈现不同的实体之间的联系在不同局部视图呈现不同的类型。类型。解决办法:根据应用的语义对实体联系的类型进行综合或调整。48产品产品产品名产品名主要性能主要性能零件零件零件号零件号零件名零件名组成组成零件数
25、量零件数量mn价格价格材料材料库存量库存量价格价格材料名材料名使用使用用量用量mn消耗消耗mn定额定额初步初步E-R图图49消除冗余数据和冗余联系。消除冗余数据和冗余联系。产品产品产品名产品名主要性能主要性能零件零件零件号零件号零件名零件名组成组成零件数量零件数量mn价格价格材料材料库存量库存量价格价格材料名材料名消耗消耗mn定额定额506.4 逻辑设计概念设计的结果是得到一个与DBMS无关的概念模式。逻辑设计的目的是把概念设计阶段设计好的基本E-R图转换为与选用的具体机器上的DBMS所支持的数据模型相符合的逻辑结构(包括数据库模式和外模式)。这些模式在功能上、完整性和一致性约束及数据库的可扩
26、充性等方面均应满足用户的各种要求。51 逻辑设计的步骤基本基本E-R图图转化为一转化为一般数据模型般数据模型转化为特定转化为特定DBMS支持支持下的数据模型下的数据模型概念结构设计概念结构设计逻辑结构设计逻辑结构设计转换转换规则规则优化方法,优化方法,如规范化理如规范化理论论优化模型优化模型特定特定DBMS的特点与限的特点与限制制逻辑模型逻辑模型数据库数据库物理设计物理设计526.4.1 E-R 图向关系数据模型的转换(1)E-R图中每一个实体,都相应地转换为一个关系,该关系应包括对应实体的全部属性,并确定出主键。(2)如果两实体间是mn联系,则需要对联系单独建立一个关系,用来联系双方实体,该
27、关系的属性中至少要包括被它所联系的双方实体的主键,如果联系有属性,也要归入这个关系中。(3)若实体间的联系是1:N的,可将联系转换为一个独立关系模式,也可在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型的属性。53(4)若实体间的联系是1:1的,可将联系转换为一个独立关系模式,也可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。(5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的主键以及联系本身的属性均转换为关系的属性。(6)同一实体集的实体间的联系,即自联系,也可按上述1:1
28、,1:n和m:n三种情况分别处理。(7)具有相同主键的关系模式可合并。5455学生(学生(学号学号,姓名,性别,出生年月,班级号),姓名,性别,出生年月,班级号)班级(班级(班级号班级号)组成组成1n学生学生学号学号姓名姓名性别性别出生年月出生年月班级号班级号班级班级班级号班级号学生(学生(学号学号,姓名,性别,出生年月),姓名,性别,出生年月)班级(班级(班级号班级号,学号),学号)班级号班级号学号学号机机95019501机机95029543机机95039565学生号学生号班级号班级号9501机机95019508机机95019543机机95029565机机95035657外键的选择外键的选择
29、职员(职员(职员号职员号,姓名,出生年月,汽车号),姓名,出生年月,汽车号)使用使用11职员职员职员号职员号姓名姓名出生年月出生年月汽车汽车汽车号汽车号汽车型号汽车型号生产日期生产日期汽车(汽车(汽车号汽车号,汽车型号,生产日期),汽车型号,生产日期)职员号职员号汽车号汽车号1001100501100407100303100910090610081008汽车号汽车号01070306职员(职员(职员号职员号,姓名,出生年月),姓名,出生年月)汽车(汽车(汽车号汽车号,汽车型号,生产日期,职员号),汽车型号,生产日期,职员号)职员号职员号100110051004100310091009100810
30、08汽车号汽车号职员号职员号011005071004031003061009586.4.2 数据模型的优化(1)确定数据依赖(2)对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。(3)按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递依赖、多值依赖等,确定各关系模式分别属于第几范式。59(4)按照需要分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。(5)对关系模式进行必要的分解或合并。606.5 数据库物理设计对一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,称为数据库的物理设计。
31、所谓数据库的物理结构,主要指数据库在物理设备上的存储结构和存取方法。它当然是完全依赖于给定的计算机系统的。在 物 理 结 构 中,数 据 的 基 本 单 位 是 存 储 记 录 (storedrecords)。存储记录是相关数据项的集合,一个存储记录可以与一个或多个逻辑记录对应。在存储记录中,还应包括必要的指针、记录长度及描述特性的编码模式。也就是说,为了包含实际的存储格式,存储记录扩充了逻辑记录的概念。61文件是某一类型的所有存储记录的集合。文件的存储记录可以定长,也可以是变长的。物理数据库是存储在一起的一个或多个互相关联的数据的集合。因此,文件可看成是物理数据库的一个特例,即存储记录类型只
32、有一个。一般我们用 文件表示单记录类型的物理数据库。62确定数据库确定数据库的物理结构的物理结构评价数据库评价数据库的物理结构的物理结构数据库物理设计数据库物理设计逻辑逻辑模型模型逻辑结构设计逻辑结构设计物理物理模型模型数据库实施数据库实施数据库物理设计数据库物理设计636.5.1 物理设计的步骤确定数据库的物理结构步骤为:(1)确定数据的存储结构(2)设计数据的存取路径(3)确定数据的存放位置(4)确定系统配置646.5.2 评价物理结构在数据库系统生存期中,生存期的总开销回表示为下列几项:规划开销;设计开销;实现与测试开销;操作开销;维护开销。数据库设计者在设计数据库时应该知道物理数据库在实现时,用户的使用和计算机资源的操作开销是多少,这些是评价数据库设计优劣的重要标准之一。65操作开销主要有以下六种:(1)查询响应时间(2)更新事务的开销(3)报告生成的开销(4)改组频率和开销(5)主存储空间(6)辅助存储空间 666.6 数据库实施数据库的实施主要包括以下工作:(1)定义数据库结构(2)数据装载(3)编制与调试应用程序(4)数据库试运行 67在数据库运行阶段,对数据库的维护工作主要是由DBA完成的,它包括以下内容:(1)数据库的转储和恢复(2)数据库的安全性、完整性控制(3)数据库性能的监督、分和改进(4)数据库的重组织和重构造6.7 数据库运行与维护68