1、第六章关系数据库设计1谢谢观赏2019-5-246.1 设计方法概述数据库设计定义:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能有效地存储数据,满足各种用户的应用需求。2谢谢观赏2019-5-24数据库设计的目标能够满足数据存储需求便于最终用户访问具有良好的安全机制数据准确并易于管理数据库整体性能良好3谢谢观赏2019-5-24数据库设计的特点涉及多学科的综合技术硬件、软件和干件的结合庞大的工程项目。三分技术,七分管理与经验,十二分基础数据。涉及结构设计和行为设计二方面。4谢谢观赏2019-5-24典型的数据库设计方法1、NEW ORLEANS框架法2、基于3NF
2、的方法3、基于ER模型的方法4、语义对象模型的方法5、Barker方法6、计算机辅助设计方法 ORACLE:DESIGNER 2000 SYBASE:POWERDESIGNER5谢谢观赏2019-5-241、New Orleans框架法框架法美国新奥尔良数据库设计讨论会上,三十多个欧美国家的主要数据库专家讨论得到的方法-数据库设计生命周期(New Orleans DBD框架)法:(1):公司要求分析(分析用户要求)(2):信息分析和定义(建立概念性数据模型)(3):设计实现(逻辑设计)(4):物理数据库设计(物理设计)6谢谢观赏2019-5-242、基于、基于3NF的数据库设计的数据库设计由S
3、.Atre提出。分五个阶段进行。每个阶段又分为若干步。在企业模式设计阶段(第一阶段)利用关系数据库规范化理论指导设计。7谢谢观赏2019-5-24 数 据 分 析:收 集 基 本 数 据(实 体 与 实 体 之间 的 联 系)现 存 的 应 用:收 集 在 现 存 应 用 中 决 定 实 体及 它 们 之 间 的 联 系 的 有 关 信 息 潜 在 的 应 用:收 集 关 于 数 据 被 潜 在 应 用 的信 息 设 计 数 据库 的 企 业模 式 设 计 数 据 库 的 逻 辑 模 式 设 计 数 据 库 的 物 理 模 式 评 价 数 据 库 物 理 模 式 数 据 库 实 现 D B M
4、 S 要 求 以 及 指 定 D B M S 软 件 所 强 加 的 过 程 评 价 应 用 的 性 能,考 虑 使 用频 率 与 周 期 基于3NF的数据库设计过程 8谢谢观赏2019-5-24设计企业模式设计企业模式研究应用环境,并设定环境中所使用的资料。决定每一种报表里各自包含的数据元素决定数据元素之间的关系,确定主关键字的数据元素和普通数据元素。对每一组数据元素推导第三范式关系。基于得到的第三范式关系给出数据库企业模式。9谢谢观赏2019-5-243、Barker方法方法以oracle的董事Richard Barker命名。Barker负责设计了Oracle Designer的最初工作
5、。关系数据库设计和开发的自动化工具。Barker方法是传统的设计方法的实时版,它提出了更好的组织数据库设计工作的详细步骤。10谢谢观赏2019-5-24Barker方法包括七个阶段:制定策略制定策略:安排设计工作。分析阶段分析阶段:开发小组与关键人员进行交流,收集所有的业务需求。设计阶段设计阶段:在确定逻辑模型的基础上进行物理模型的设计。构建阶段构建阶段:创建数据库,应用程序。编写文档编写文档:技术文档,系统文档和用户文档。转换阶段转换阶段:将准备好的数据转换到产品环境中。使用真实的数据对最终用户应用软件和数据库进行测试,确保应用软件的各个功能模块工作正常,以及存储在数据库中的数据是一致的。产
6、品阶段:产品阶段:数据库必须在产品环境下运行,并可供最终用户的日常使用。11谢谢观赏2019-5-24 数据库设计 生成 DDL 运行 DDL(构建模式)策略 产品 分析 设计 移植 构建 文档 基本处理模型 基本 ERD 图 详细的 ERD 图 数据流程模型 业务实体 数据库表 视图 索引 逻辑模型转换为物理模型 数据库定义 创建EMP表(EID VARCHAR2 NOT NULL,NAME VARCHAR2,NOT NULL。)测试 数据库 应用软件设计 系统文档 终端用户/系统文档 测试 数据库 数据实例 产品 数据库 旧版本 数据终端用户群 数据库应用软件 产品 数据库 DEV 测试
7、访问 修改请求 Barker数据库设计方法过程 12谢谢观赏2019-5-246.2 E-R方法 P.P.S.Chen 于1976年提出,基本思想是:首先设计一个企业模式,该模式是现实世界的反映,与存储组织、存取方法、效率等无关。然后将企业模式变换为某个DBMS上的数据模式。E-R图所描述的模式叫企业模式。13谢谢观赏2019-5-24 企业模式是面向问题的、概念性的模型,与DBMS无关,是高级概念模型。与DBMS有关的模式称为逻辑模式或用户模式企业中的数据。实体。属性。联系现实世界层次的关系的网状的企业模式用户(逻辑)模式14谢谢观赏2019-5-24 E-R方法简单易懂,企业模式比较稳定,
8、不受DBMS改变的影响,在优化系统性能时,只需修改用户模式。因此,E-R方法是使用最广泛的方法之一。1981年M.Flavin 对E-R方法进行了改进并称之为信息建模法,信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象。1988年又由S.Shlaer和S.Mellor发展为语义数据建模方法,并因此有了许多面向对象的特点。15谢谢观赏2019-5-24基于ER方法的设计一般步骤 1.需求分析2.概念设计3.逻辑设计4.物理设计5实现设计16谢谢观赏2019-5-24需求分析 需求收集和分析1 1.信息要求信息要求2 2.处理要求处理要求3 3.功能要求功能要求4 .环境特征环境特征结
9、果:数据字典(通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分)17谢谢观赏2019-5-24需求分析(1)信息要求信息要求,用户对即将建立的数据库有些什么要求?保存什么信息?要从数据库中得到什么信息?提供的数据与取得的信息是什么形式?等等。(2)处理要求处理要求,如何使用数据?对各种数据的使用频率如何?检索方式如何?要输出那些表格?被存取的数据量与运行限制等。18谢谢观赏2019-5-24需求分析3.功能要求功能要求,对将要建立的信息系统应具有那些功能?能给组织解决那些处理问题?功能要求包括规划的、现存的、人工的或自动的等各方面。环境特征环境特征,企业的规模与结构、部门的地理分布
10、、现有系统资源、数据库的安全性、完整性限制以及与运行环境约束等。19谢谢观赏2019-5-24学生学籍管理子系统数据字典数据结构:学生 含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息 组成:学号,姓名,性别,年龄,所在系,年级 20谢谢观赏2019-5-24学生学籍管理子系统数据字典数据项:学号 含义说明:唯一标识每个学生 别名:学生编号 类型:字符型 长度:8 取值范围:00000000至99999999 取值含义:前两位标别该学生所在年级,后六位按顺序编号 v 21谢谢观赏2019-5-24学生学籍管理子系统数据字典数据流:体检结果 说明:学生参加体格检查的最终结果 数
11、据流来源:体检 数据流去向:批准 组成:22谢谢观赏2019-5-24学生学籍管理子系统数据字典数据存储:学生登记表 说明:记录学生的基本情况 组成:数据量:每年3000张 存取方式:随机存取 23谢谢观赏2019-5-24学生学籍管理子系统数据字典处理过程:分配宿舍 说明:为所有新生分配学生宿舍 输入:学生,宿舍,输出:宿舍安排 处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。24谢谢观赏2019-5-24概念设计对用户需求进行综合、归纳与抽象,形成一个
12、独立于具体DBMS的概念模型。结果:E-R图概念设计常用方法:(1)自底向上:首先根据需求分析的结果设计各个局部E-R图;然后集成并优化局部视图。(2)逐步扩张:首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。25谢谢观赏2019-5-24 画E-R图的基本步骤:(1)确定实体类型;(2)确定联系类型;(3)画出E-R图;(4)确定属性;26谢谢观赏2019-5-24集成局部E-R图集成时注意三类冲突:属性冲突属性冲突(1)属性域冲突,即属性值的类型、取值范围或取值集合不同。(2)属性取值单位冲突。命名冲突命名冲突(1)同名异义。(2)异名同义
13、(一义多名)。27谢谢观赏2019-5-24集成局部E-R图结构冲突结构冲突(1)同一对象在不同应用中具有不同的抽象。(实体/属性)(2)同一实体在不同局部视图中所包含的属性不完全相同。(3)实体之间的联系在不同局部视图中呈现不同的类型。优化优化:消除冗余数据和冗余联系 28谢谢观赏2019-5-24学生学籍管理局部E-R图29谢谢观赏2019-5-24课程管理局部E-R图30谢谢观赏2019-5-24学生管理集成E-R图31谢谢观赏2019-5-24逻辑设计将概念设计转换为关系模型E-R图转换为关系模式的原则:(1)一个实体集转换为一个关系模式。(2)一个m:n联系转换为一个关系模式。(3)
14、一个1:n联系可以与n端对应的关系模式合并(1的关键字放入N的关系中)。(4)一个1:1联系可以与任意一端对应的关系模式合并。(5)三个或三个以上实体间的多元联系转换为一个关系模式 (6)同一实体集间的联系(自联系),可按上述1:1、1:n和m:n三种情况分别处理。32谢谢观赏2019-5-24逻辑设计关系模型的优化以规范化理论为指导,进行优化。确定数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。对关系模式逐一进行分析,确定各关系模式分别属于第几范式。考查是否存在部分依赖、传递依赖、多值依赖等,对关系模式进行必要的分解。按照需求分析阶段得到的各种应用对数据处理的要求,分
15、析得到的模式是否合适,确定是否需要对它们进行合并或分解。33谢谢观赏2019-5-24物理设计为逻辑数据模型选取一个最适合应用环境的物理结构。确定数据库物理结构的内容1.确定数据的存储结构2.设计数据的存取路径3.确定数据的存放位置4.确定系统配置v 34谢谢观赏2019-5-241.确定数据的存储结构确定数据存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素许多DBMS提供聚簇功能,提高某个属性或属性组的查询速度35谢谢观赏2019-5-24确定数据的存储结构(续)聚簇功能可以大大提高按聚簇码进行查询的效率例如:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单,设
16、信息系有120个学生,在极端情况下,这120个学生所对应的元组分布在120个不同的物理块上,由于每访问一个物理块需要执行一次I/O操作,因此查询即使不考虑访问索引的I/O次数,也要执行120次I/O操作。如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数36谢谢观赏2019-5-24确定数据的存储结构(续)聚簇以后可以节省存储空间聚簇功能不但适用于单个关系,也适用于多个关系聚簇只能提高某些特定应用的性能,而且建立和维护聚簇的开销是很大的37谢谢观赏2019-5-242.设计数据的存取路径在关系数据库中,选择存取路径主要是指确定如何建立索
17、引38谢谢观赏2019-5-243.确定数据的存放位置影响数据存放位置和存储结构的因素硬件环境应用需求存取时间存储空间利用率维护代价 这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加 39谢谢观赏2019-5-24确定数据的存放位置(续)基本原则根据应用情况将易变部分与稳定部分存取频率较高部分与存取频率较低部分 分开存放,以提高系统性能40谢谢观赏2019-5-24确定数据的存放位置(续)例:数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。如果计算机有多个磁盘,可以考虑将表和索引分别放在不
18、同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。41谢谢观赏2019-5-244.确定系统配置DBMS产品一般都提供了一些存储分配参数 同时使用数据库的用户数 同时打开的数据库对象数 使用的缓冲区大小、个数 时间片大小 数据库的大小 装填因子等等42谢谢观赏2019-5-24确定系统配置(续)系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,以使系统性能最优。在物理设计时对系统配置变量的调整只是初步的,在系统运行时还
19、要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。43谢谢观赏2019-5-24实现设计 运用DBMS提供的数据语言(例如SQL)开发工具,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。44谢谢观赏2019-5-24数据库实施数据库实施定义数定义数据库结据库结构构数据数据装载装载 数据库数据库试运行试运行数据库物数据库物理设计理设计数据库运数据库运行和维护行和维护物理物理模型模型编制与编制与调试应调试应用程序用程序数据库数据库系统系统new45谢谢观赏2019-5-24一、定义数据库结构确定了数据库的逻辑结构与物理结构后,就可以用所选用的DB
20、MS提供的数据定义语言(DDL)来严格描述数据库结构。new46谢谢观赏2019-5-24定义数据库结构(续)例,可以用SQL语句如下定义表结构:CREATE TABLE 学生 (学号 CHAR(8),);CREATE TABLE 课程 ();new47谢谢观赏2019-5-24定义数据库结构(续)在这些基本表上定义视图:CREATE VIEW.();如果需要使用聚簇,在建基本表之前,应先用CREATE CLUSTER语句定义聚族。new48谢谢观赏2019-5-24二、数据装载数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。数据装载方法人工方法计算机
21、辅助数据入库new49谢谢观赏2019-5-24数据装载(续)人工方法:适用于小型系统步骤1)筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。2)转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。3)输入数据。将转换好的数据输入计算机中。4)校验数据。检查输入的数据是否有误。new50谢谢观赏2019-5-24数据装载(续)计算机辅助数据入库:适用于中大型系统步骤1)筛选数据2)输入数据。由录入员将原始数据直接输入计算机中。数据输入子系统应提供输入界面。3)校验数据。数据
22、输入子系统采用多种检验技术检查输入数据的正确性。new51谢谢观赏2019-5-24数据装载(续)4)转换数据。数据输入子系统根据数据库系统的要求,从录入的数据中抽取有用成分,对其进行分类,然后转换数据格式。抽取、分类和转换数据是数据输入子系统的主要工作,也是数据输入子系统的复杂性所在。5)综合数据。数据输入子系统对转换好的数据根据系统的要求进一步综合成最终数据。new52谢谢观赏2019-5-24数据装载(续)如果数据库是在老的文件系统或数据库系统的基础上设计的,则数据输入子系统只需要完成转换数据、综合数据两项工作,直接将老系统中的数据转换成新系统中需要的数据格式。为了保证数据能够及时入库,
23、应在数据库物理设计的同时编制数据输入子系统。new53谢谢观赏2019-5-24三、编制与调试应用程序数据库应用程序的设计应该与数据库设计并行进行。在数据库实施阶段,当数据库结构建立好后,就可以开始编制与调试数据库的应用程序。调试应用程序时由于数据入库尚未完成,可先使用模拟数据。new54谢谢观赏2019-5-24四、数据库试运行应用程序调试完成,并且已有一小部分数据入库后,就可以开始数据库的试运行。数据库试运行也称为联合调试,其主要工作包括:1)功能测试:实际运行应用程序,执行对数据库的各种操作,测试应用程序的各种功能。2)性能测试:测量系统的性能指标,分析是否符合设计目标。55谢谢观赏20
24、19-5-24数据库试运行(续)数据库试运行则是要实际测量系统的各种性能指标(不仅是时间、空间指标),如果结果不符合设计目标,则需要返回物理设计阶段,调整物理结构,修改参数;有时甚至需要返回逻辑设计阶段,调整逻辑结构。56谢谢观赏2019-5-24数据库试运行(续)数据的分期入库重新设计物理结构甚至逻辑结构,会导致数据重新入库。由于数据入库工作量实在太大,所以可以采用分期输入数据的方法先输入小批量数据供先期联合调试使用待试运行基本合格后再输入大批量数据逐步增加数据量,逐步完成运行评价57谢谢观赏2019-5-24数据库试运行(续)数据库的转储和恢复在数据库试运行阶段,系统还不稳定,硬、软件故障
25、随时都可能发生系统的操作人员对新系统还不熟悉,误操作也不可避免因此必须做好数据库的转储和恢复工作,尽量减少对数据库的破坏。58谢谢观赏2019-5-246.3 Oracle designerOracle Designer的功能:系统需求建模(Modelling System Requirements):用于策略和分析工作。生成初步设计(Generating Preliminary Designs):用于转换到预设计工作。设计和生成(Designing and Generating):用于设计和建造工作。实用程序(Utilities):用于整个生命周期的工作。59谢谢观赏2019-5-2460谢
26、谢观赏2019-5-24v有四种表示系统的数据和过程的工具:过程建模工具 (Process Modeller)功能层次图示化工具 (Function Hierarchy Diagrammer)实体关系图示化工具 (Entity Relationship Diagrammer)数据流图示化工具 (Dataflow Diagrammer)1.系统需求建模系统需求建模61谢谢观赏2019-5-2462谢谢观赏2019-5-2463谢谢观赏2019-5-2464谢谢观赏2019-5-2465谢谢观赏2019-5-2466谢谢观赏2019-5-24产生初步设计v从分析转向设计(从逻辑定义转换为物理定义)
27、,即实体转换为数据表、属性转换为列、联系转换为外部键列和约束、功能转换为模块。产生初步设计67谢谢观赏2019-5-24v数据库设计转换器 (Database Design Transformer)v应用设计转换器 (Application Design Transformer)v转换工作大大减少了转换中需要做的耗时、重复和易于出错工作产生初步设计产生初步设计68谢谢观赏2019-5-24Database Design Transformer(DDT)v复制实体和属性定义为设计中的数据库和列表v根据实体间关系创建外部键约束产生初步设计69谢谢观赏2019-5-24v设计编辑器(Designer
28、 Editor)v对象数据库设计器 (ObjectDatabase Designer)v生成数据库实用程序(Generate Database Utilities)v前端代码生成器 (Front-End Code Generator)v设计捕获实用程序 (Design Capture Utilities)设计和生成设计和生成70谢谢观赏2019-5-24实用程序vRepository Object Navigator 对象浏览器vMatrix Diagrammer阵列图示化工具vRepository Reports报表工具vRepository Administration Utility 管
29、理实用程序使用程序 71谢谢观赏2019-5-24v其他的辅助工具vPlatinum Wrwin:是一个关于事务和数据仓库的数据库设计工具,用于数据库的产生和维护,它支持逻辑和物理数据库设计以及企业模型化。vEasy CASE:是一个功能全面的AD工具,它支持超过12个CASE方法和6种符号集来产生结构、数据字典和几乎所有的SQL平台的报表,同时也支持结构的逆工程化(Reverse-engineering)。Starteam Enterprise Edition:提供过时跟踪、更改管理、版本控制、线程化会话、INTERNET透明性以及通过WEB浏览器的知识库访问,它的特色包括任务管理、MS工程集成和定制知识库。vData junction:是在数百个应用程序和结构化的数据格式之间快速地集成和转换数据的一个可视化的设计工具。72谢谢观赏2019-5-24