720 likes | 902 Views
第六章. 关系数据库设计. 6.1 设计方法概述. 数据库设计定义:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能有效地存储数据,满足各种用户的应用需求。. 数据库设计的目标. 能够满足数据存储需求 便于最终用户访问 具有良好的安全机制 数据准确并易于管理 数据库整体性能良好. 数据库设计的特点. 涉及多学科的综合技术 硬件、软件和干件的结合 庞大的工程项目。 三分技术,七分管理与经验,十二分基础数据。 涉及结构设计和行为设计二方面。. 典型的数据库设计方法. 1 、 NEW ORLEANS 框架法
E N D
第六章 关系数据库设计
6.1 设计方法概述 数据库设计定义:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能有效地存储数据,满足各种用户的应用需求。
数据库设计的目标 能够满足数据存储需求 便于最终用户访问 具有良好的安全机制 数据准确并易于管理 数据库整体性能良好
数据库设计的特点 涉及多学科的综合技术 硬件、软件和干件的结合 庞大的工程项目。 三分技术,七分管理与经验,十二分基础数据。 涉及结构设计和行为设计二方面。
典型的数据库设计方法 1、NEW ORLEANS框架法 2、基于3NF的方法 3、基于ER模型的方法 4、语义对象模型的方法 5、Barker方法 6、计算机辅助设计方法 ORACLE :DESIGNER 2000 SYBASE : POWERDESIGNER
1、New Orleans框架法 美国新奥尔良数据库设计讨论会上,三十多个欧美国家的主要数据库专家讨论得到的方法--数据库设计生命周期(New Orleans DBD框架) 法: (1):公司要求分析(分析用户要求) (2):信息分析和定义(建立概念性数据模型) (3):设计实现(逻辑设计) (4):物理数据库设计(物理设计)
2、基于3NF的数据库设计 由S.Atre提出。 分五个阶段进行。 每个阶段又分为若干步。 在企业模式设计阶段(第一阶段)利用关系数据库规范化理论指导设计。
设计企业模式 研究应用环境,并设定环境中所使用的资料。 决定每一种报表里各自包含的数据元素 决定数据元素之间的关系,确定主关键字的数据元素和普通数据元素。 对每一组数据元素推导第三范式关系。 基于得到的第三范式关系给出数据库企业模式。
3、Barker方法 以oracle的董事Richard Barker命名。 Barker负责设计了Oracle Designer的最初工作。关系数据库设计和开发的自动化工具。 Barker方法是传统的设计方法的实时版, 它提出了更好的组织数据库设计工作的详细步骤。
Barker方法包括七个阶段: 制定策略:安排设计工作。 分析阶段:开发小组与关键人员进行交流,收集所有的业务需求。 设计阶段:在确定逻辑模型的基础上进行物理模型的设计。 构建阶段:创建数据库,应用程序。 编写文档:技术文档,系统文档和用户文档。 转换阶段:将准备好的数据转换到产品环境中。使用真实的数据对最终用户应用软件和数据库进行测试,确保应用软件的各个功能模块工作正常,以及存储在数据库中的数据是一致的。 产品阶段:数据库必须在产品环境下运行,并可供最终用户的日常使用。
6.2 E-R方法 P.P.S. Chen 于1976年提出,基本思想是:首先设计一个企业模式,该模式是现实世界的反映,与存储组织、存取方法、效率等无关。然后将企业模式变换为某个DBMS上的数据模式。 E-R图所描述的模式叫企业模式。
企业模式是面向问题的、概念性的模型,与DBMS无关,是高级概念模型。与DBMS有关的模式称为逻辑模式或用户模式企业模式是面向问题的、概念性的模型,与DBMS无关,是高级概念模型。与DBMS有关的模式称为逻辑模式或用户模式
E-R方法简单易懂,企业模式比较稳定,不受DBMS改变的影响,在优化系统性能时,只需修改用户模式。因此,E-R方法是使用最广泛的方法之一。E-R方法简单易懂,企业模式比较稳定,不受DBMS改变的影响,在优化系统性能时,只需修改用户模式。因此,E-R方法是使用最广泛的方法之一。 1981年M. Flavin 对E-R方法进行了改进并称之为信息建模法, 信息建模=实体(对象)+属性+关系+父类型/子类型+关联对象。 1988年又由S.Shlaer和S.Mellor发展为语义数据建模方法,并因此有了许多面向对象的特点。
基于ER方法的设计一般步骤 1 .需求分析 2 .概念设计 3 .逻辑设计 4 .物理设计 5.实现设计
需求分析 需求收集和分析 1 .信息要求 2 .处理要求 3 .功能要求 4.环境特征 结果:数据字典(通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分 )
需求分析 (1)信息要求,用户对即将建立的数据库有些什么要求?保存什么信息?要从数据库中得到什么信息?提供的数据与取得的信息是什么形式?等等。 (2)处理要求,如何使用数据?对各种数据的使用频率如何?检索方式如何?要输出那些表格?被存取的数据量与运行限制等。
需求分析 3 .功能要求,对将要建立的信息系统应具有那些功能?能给组织解决那些处理问题?功能要求包括规划的、现存的、人工的或自动的等各方面。 4.环境特征,企业的规模与结构、部门的地理分布、现有系统资源、数据库的安全性、完整性限制以及DBMS与运行环境约束等。
学生学籍管理子系统数据字典 数据结构: 学生 含义说明: 是学籍管理子系统的主体数据结构,定义了一个学生的有关信息 组成: 学号,姓名,性别,年龄,所在系,年级
学生学籍管理子系统数据字典 数据项: 学号 含义说明:唯一标识每个学生 别名: 学生编号 类型: 字符型 长度: 8 取值范围:00000000至99999999 取值含义:前两位标别该学生所在年级,后六位按顺序编号
学生学籍管理子系统数据字典 数据流: 体检结果 说明: 学生参加体格检查的最终结果 数据流来源:体检 数据流去向:批准 组成: ……
学生学籍管理子系统数据字典 数据存储: 学生登记表 说明: 记录学生的基本情况 组成: …… 数据量: 每年3000张 存取方式: 随机存取
学生学籍管理子系统数据字典 处理过程:分配宿舍 说明: 为所有新生分配学生宿舍 输入: 学生,宿舍, 输出: 宿舍安排 处理: 在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于3平方米。安排新生宿舍其处理时间应不超过15分钟。
概念设计 对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。 结果:E-R图 概念设计常用方法: (1)自底向上:首先根据需求分析的结果设计各个局部E-R图;然后集成并优化局部视图。 (2)逐步扩张 :首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。
画E-R图的基本步骤: (1)确定实体类型; (2)确定联系类型; (3)画出E-R图; (4)确定属性;
集成局部E-R图 集成时注意三类冲突: 属性冲突 (1) 属性域冲突,即属性值的类型、取值范围或取值集合不同。 (2) 属性取值单位冲突。 命名冲突 (1) 同名异义。 (2) 异名同义(一义多名)。
集成局部E-R图 结构冲突 (1) 同一对象在不同应用中具有不同的抽象。(实体/属性) (2) 同一实体在不同局部视图中所包含的属性不完全相同。 (3) 实体之间的联系在不同局部视图中呈现不同的类型。 优化:消除冗余数据和冗余联系
逻辑设计 将概念设计转换为关系模型 E-R图转换为关系模式的原则: (1)一个实体集转换为一个关系模式。 (2)一个m:n联系转换为一个关系模式。 (3)一个1:n联系可以与n端对应的关系模式合并(1的关键字放入N的关系中)。 (4)一个1:1联系可以与任意一端对应的关系模式合并。 (5)三个或三个以上实体间的多元联系转换为一个关系模式 (6)同一实体集间的联系(自联系),可按上述1:1、1:n和m:n三种情况分别处理。
逻辑设计—关系模型的优化 以规范化理论为指导,进行优化。 确定数据依赖。对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。 对关系模式逐一进行分析,确定各关系模式分别属于第几范式。考查是否存在部分依赖、传递依赖、多值依赖等,对关系模式进行必要的分解。 按照需求分析阶段得到的各种应用对数据处理的要求,分析得到的模式是否合适,确定是否需要对它们进行合并或分解。
物理设计 为逻辑数据模型选取一个最适合应用环境的物理结构。 确定数据库物理结构的内容 1. 确定数据的存储结构 2. 设计数据的存取路径 3. 确定数据的存放位置 4. 确定系统配置
1. 确定数据的存储结构 确定数据存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素 许多DBMS提供聚簇功能,提高某个属性或属性组的查询速度
确定数据的存储结构(续) 聚簇功能可以大大提高按聚簇码进行查询的效率 例如:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单,设信息系有120个学生,在极端情况下,这120个学生所对应的元组分布在120个不同的物理块上,由于每访问一个物理块需要执行一次I/O操作,因此查询即使不考虑访问索引的I/O次数,也要执行120次I/O操作。如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数
确定数据的存储结构(续) 聚簇以后可以节省存储空间 聚簇功能不但适用于单个关系,也适用于多个关系 聚簇只能提高某些特定应用的性能,而且建立和维护聚簇的开销是很大的
2. 设计数据的存取路径 在关系数据库中,选择存取路径主要是指确定如何建立索引
3. 确定数据的存放位置 影响数据存放位置和存储结构的因素 硬件环境 应用需求 存取时间 存储空间利用率 维护代价 这三个方面常常是相互矛盾的 例:消除一切冗余数据虽能够节约存储空间和减少维护代价,但往往会导致检索代价的增加
确定数据的存放位置(续) 基本原则 根据应用情况将 易变部分与稳定部分 存取频率较高部分与存取频率较低部分 分开存放,以提高系统性能
确定数据的存放位置(续) 例: 数据库数据备份、日志文件备份等由于只在故障恢复时才使用,而且数据量很大,可以考虑存放在磁带上。 如果计算机有多个磁盘,可以考虑将表和索引分别放在不同的磁盘上,在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。 可以将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能。
4. 确定系统配置 DBMS产品一般都提供了一些存储分配参数 同时使用数据库的用户数 同时打开的数据库对象数 使用的缓冲区大小、个数 时间片大小 数据库的大小 装填因子 等等
确定系统配置(续) 系统都为这些变量赋予了合理的缺省值。但是这些值不一定适合每一种应用环境,在进行物理设计时,需要根据应用环境确定这些参数值,以使系统性能最优。 在物理设计时对系统配置变量的调整只是初步的,在系统运行时还要根据系统实际运行情况做进一步的调整,以期切实改进系统性能。
实现设计 运用DBMS提供的数据语言(例如SQL)开发工具,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
数据库实施 数据 装载 定义数据库结构 数据库试运行 数据库物 理设计 数据库运 行和维护 编制与调试应用程序 物理 模型 数据库 系统 new
一、定义数据库结构 确定了数据库的逻辑结构与物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格描述数据库结构。 new
定义数据库结构(续) 例,可以用SQL语句如下定义表结构: CREATE TABLE 学生 (学号 CHAR(8), …………… ); CREATE TABLE 课程 ( …………… ); …………… new
定义数据库结构(续) 在这些基本表上定义视图: CREATE VIEW .... ( …………… ); …………… 如果需要使用聚簇,在建基本表之前,应先用CREATE CLUSTER语句定义聚族。 new
二、数据装载 数据库结构建立好后,就可以向数据库中装载数据了。组织数据入库是数据库实施阶段最主要的工作。 数据装载方法 人工方法 计算机辅助数据入库 new
数据装载(续) 人工方法:适用于小型系统 步骤 1) 筛选数据。需要装入数据库中的数据通常都分散在各个部门的数据文件或原始凭证中,所以首先必须把需要入库的数据筛选出来。 2) 转换数据格式。筛选出来的需要入库的数据,其格式往往不符合数据库要求,还需要进行转换。这种转换有时可能很复杂。 3) 输入数据。将转换好的数据输入计算机中。 4) 校验数据。检查输入的数据是否有误。 new