《数据库设计研》PPT课件.ppt

上传人:小飞机 文档编号:5584099 上传时间:2023-07-30 格式:PPT 页数:69 大小:294.99KB
返回 下载 相关 举报
《数据库设计研》PPT课件.ppt_第1页
第1页 / 共69页
《数据库设计研》PPT课件.ppt_第2页
第2页 / 共69页
《数据库设计研》PPT课件.ppt_第3页
第3页 / 共69页
《数据库设计研》PPT课件.ppt_第4页
第4页 / 共69页
《数据库设计研》PPT课件.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《《数据库设计研》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库设计研》PPT课件.ppt(69页珍藏版)》请在三一办公上搜索。

1、数据库设计,Southwest Forestry College,数据库设计考虑事项,数据库的用途及该用途将如何影响设计。应创建符合用途的数据库计划。数据库规范化规则,防止数据库设计中出现错误。对数据完整性的保护。,数据库设计考虑事项,数据库和用户权限的安全要求。应用程序的性能需求。维护。估计数据库大小。,创建数据库计划,创建数据库的第一步是制订计划,该计划可在实现数据库时用作指南;也可以在数据库实现完成后,用作数据库的功能说明。数据库设计的复杂性和细节由数据库应用程序的复杂性和大小及用户数确定。,创建数据库计划,数据库应用程序的性质和复杂性以及对其进行计划的过程可以变化很大。数据库可以相对简

2、单,如为单人使用设计的数据库;它也可以很大、很复杂,如为处理数百万顾客的所有银行事务而设计的数据库。,创建数据库计划,对于前一种情况,数据库设计可能只需要在一些草稿纸上写几个备注即可。对于后一种情况,设计可能是数百页的正式文档,其中包含有关数据库的各种可能细节。,创建数据库计划,在计划数据库时,不管其大小和复杂性如何,都要经过下列基本步骤:收集信息标识对象建立对象模型(ER图)标识每个对象的信息类型标识对象之间的关系,收集信息,在创建数据库之前,必须对期望数据库执行的工作有一个透彻的理解。如果数据库用于替换基于纸张或手工执行的信息系统,则现有的系统能为您提供所需的大多数信息。与系统中所涉及的每

3、个人进行交流,以找出他们所做的工作以及他们需要从数据库中获得的内容是很重要的。了解他们希望新系统完成的工作,以及找出现有系统的问题、限制和瓶颈也很重要。收集客户结算、库存列表、管理报表以及属于现有系统的任何其它文档的复本,因为这些对于设计数据库和界面非常有用。,标识对象,在收集信息的过程中,必须标识将由数据库管理的主要对象或实体。对象可以是一个有形的实体(如一个人或一个产品),也可以是一个无形的项目(如某项业务事务、公司中的某个部门或某个付薪周期)。通常会有几个主要对象,标识了这些对象之后,相关的项目就会变得清晰。数据库中每个不同的项目都应有一个对应的表。,建立对象模型,标识了系统中的对象后,

4、使用该系统的一种直观表示方式对这些对象进行记录是很重要的。在数据库实现期间,可以使用数据库模型作为参考。,建立对象模型(ER图),数据库开发人员使用各种工具进行数据库设计,在技术复杂性方面,这些工具可以是简单的铅笔和草稿纸,也可以是字处理或电子表格程序,甚至可以是专门为数据库建模工作设计的软件程序。不管决定要使用哪一种工具,总保持使用最新的工具是很重要的。,CASE Tools,Microsoft VisioRational Rose,标识每个对象的信息类型,将数据库中的主要对象标识为候选表后,下一步是标识必须为各对象存储的信息类型。这些信息是对象的表中的列。数据库表中的列包含几个常见的信息类

5、型:,标识每个对象的信息类型,原始数据列 这些列存储有形信息(如名称),由数据库外部的源确定。分类列 这些列对数据进行分类或分组,并存储有限选择范围的数据,标识每个对象的信息类型,标识符列 这些列提供对存储在表中的每个项目进行标识的机制。这些列的名称中有一个 id 或 number。标识符列是用户和内部数据库处理访问表中的一行数据时所用的主要组件。有时,可以在表中使用对象的有形 ID(如社会保险号),但在大多数情况下,定义表时可以为行创建可靠的人工 ID。,标识每个对象的信息类型,关系或引用列 这些列建立一个表中的信息和另一个表中相关信息的链接。例如,跟踪销售事务的表通常与 customers

6、 表有链接,以便可以将完整的客户信息与销售事务关联。,标识对象间的关系,关系数据库的一种优势是联系或关联数据库中各种项目的有关信息的能力。可以单独地存储独立的信息类型,但数据库引擎可以在必要时组合数据。在设计过程中,标识对象间的关系需要查看各种表,确定它们逻辑相关的方式,以及添加关系列以建立一个表与另一个表间的链接。,联机事务处理与决策支持,许多应用程序属于数据库应用程序的两种主要类型:联机事务处理(OLTP)决策支持 这两种应用程序类型的特征对数据库的设计考虑事项有很大的影响。,联机事务处理,联机事务处理数据库应用程序最适合于管理变化的数据,通常,这种应用程序有大量的用户同时执行更改实时数据

7、的事务。尽管用户对数据的单个请求一般只引用少量记录,但是,这些请求有许多是同时发生的。这些类型的数据库的常见例子是航空订票系统和银行事务系统。在这种类型的应用程序中,主要关心的是并发性和原子性。,联机事务处理,数据库系统中的并发性控制确保两个用户不能更改同一数据,或者一个用户不能在另一个用户对数据操作完成之前对其进行更改。原子性确保事务中包括的所有步骤都作为一个组成功地完成。如果一个步骤失败,则不应完成其它步骤。,联机事务处理设计注意事项,很好的数据放置 对于 OLTP 系统,输入/输出瓶颈是一个尤为关心的问题,原因在于修改整个数据库中数据的用户很多。确定数据的可能访问模式,并将经常访问的数据

8、放在一起。,联机事务处理设计注意事项,缩短事务以将长期锁减至最少,提高并发性 在事务期间,避免用户交互。无论何时,只要有可能,就通过执行单个存储过程来处理整个事务。在事务内对表的引用顺序可能会影响并发性。将对经常访问的表的引用置于事务的末尾,以便将控制锁的持续时间减至最短。,联机事务处理设计注意事项,联机备份 OLTP 系统通常的特征是连续操作(一天 24 小时,一周 7 天),为达到此目的,停工时间要保持绝对最短。,联机事务处理设计注意事项,数据库的高度规范化 尽可能减少冗余信息以提高更新的速度,从而提高并发性。ER图 第三范式,联机事务处理设计注意事项,很少或没有历史或聚合数据 可以将很少

9、引用的数据归档到单独的数据库中,或者从经常更新的表中移出,并置于仅含历史数据的表中。这将保持表尽可能地小,从而缩短备份时间,改善查询性能。,联机事务处理设计注意事项,小心使用索引每次添加或修改行时,必须更新索引。若要避免对经常更新的表进行过多的索引,索引范围应保持较窄。,联机事务处理设计注意事项,OLTP 系统需要最佳的硬件配置以处理较大并发用户数目和快速响应时间,决策支持,决策支持数据库应用程序最适合于不更改数据的数据查询。例如,公司可以定期地按日期、销售地区或产品汇总其销售数据,并将该信息存储在单独的数据库中以供高级管理人员进行分析。若要作出业务决策,用户必须能够根据各种准则,通过查询数据

10、快速地确定销售趋势。然而,他们不必更改这些数据。,决策支持,决策支持数据库中的表建立了大量索引,原始数据通常要进行预处理,并对其进行组织以支持将要使用的各种类型的查询。因为用户并不更改数据,并发性和原子性问题不必考虑;数据仅定期更改,在非工作时间和低流量时间对数据库进行大容量更新。,决策支持设计注意事项,大量索引 决策支持系统只需要很少的更新,但数据量很大。可使用大量索引提高查询性能。数据库的非规范化引入预聚合或汇总数据以满足常见的查询要求,缩短查询响应时间。使用星型架构或雪花架构来组织数据库内的数据。,规范化,数据库的逻辑设计(包括各种表和表间关系)是优化关系数据库的核心。设计好逻辑数据库,

11、可以为优化数据库和应用程序性能打下基础。逻辑数据库设计不好,会损害整个系统的性能。,规范化,规范化逻辑数据库设计包括使用正规的方法来将数据分为多个相关的表。拥有大量窄表(列较少的表)是规范化数据库的特征。而拥有少量宽表(列较多的表)是非规范化数据库的特征。,规范化,规范化的一些益处包括:排序和索引创建更快。索引更窄、更精简。每个表的索引更少,这样将提高 INSERT、UPDATE 和 DELETE 语句的性能。空值更少,出现不一致性的机会更少,从而提高数据库紧凑性。,获得设计良好的数据库,在关系数据库设计理论中,规范化规则指出了在设计良好的数据库中必须出现或不出现的某些特性。有几个可帮助获得合

12、理的数据库设计的规则:,获得设计良好的数据库,表应该有一个标识符数据库设计理论的基本原理是:每个表都应有一个唯一的行标识符,可以使用列或列集将任何单个记录同表中的所有其它记录区别开来。每个表都应有一个 ID 列,任何两个记录都不可以共享同一 ID 值。作为表的唯一行标识符的一列或多列是表的主键。,获得设计良好的数据库,表应只能存储单一类型实体的数据试图在表中存储过多的信息会妨碍对表的数据进行有效、可靠的管理。,获得设计良好的数据库,表应避免可为空的列 表中的列可定义为允许空值。空值表示没有值。尽管在个别情况下,允许空值有用,但是最好少用空值,因为空值需要进行特殊的处理,这样会增加数据操作的复杂

13、性。如果某一表中有几个可为空的列,并且列中的几行有空值,则应考虑将这些列置于链接到主表的其它表中。将数据存储在两个独立的表中使主表的设计更为简单,但能够满足存储空值信息的偶尔需要。,获得设计良好的数据库,表不应有重复的值或列,数据完整性,实体完整性域完整性引用完整性用户定义完整性,实体完整性,实体完整性将行定义为特定表的唯一实体。实体完整性强制表的标识符列或主键的完整性(通过索引、UNIQUE 约束、PRIMARY KEY 约束或 IDENTITY 属性)。,域完整性,域完整性是指给定列的输入有效性。强制域有效性的方法有:限制类型(通过数据类型)、格式(通过 CHECK 约束和规则)或可能值的

14、范围(通过 FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。,引用完整性,在输入或删除记录时,引用完整性保持表之间已定义的关系。这样的一致性要求不能引用不存在的值,如果键值更改了,那么在整个数据库中,对该键值的所有引用要进行一致的更改。,用户定义完整性,用户定义完整性使您得以定义不属于其它任何完整性分类的特定业务规则。,数据安全性,数据库有一种功能是保护数据,防止某些用户查看或更改高度敏感的数据,以及防止所有用户产生代价高昂的错误。,数据库性能,在设计数据库时,必须确保数据库正确地、快速地执行所有重要的功能。有些性能问题可以在数据库进入生成

15、过程后解决,但另外一些性能问题则可能是数据库设计不良造成的,而且只有通过更改数据库的结构和设计才能加以解决。,数据库性能,在设计和实现数据库时,应找出数据库中的大表和数据库要执行的较复杂处理,在设计这些表时,对性能应特别注意。还要考虑访问数据库的用户数增加对性能的影响。,数据库性能,提高性能的设计更改实例包括:如果必须对包含成千上万行的表进行汇总以供每日报表使用,可以向该表添加包含预聚合数据的一列或多列,以仅供报表使用。,数据库性能,提高性能的设计更改实例包括:数据库可能过度规范化,即使用了大量的、小的、相互关联的表来定义数据库。在数据库对这些表中的数据进行处理时,必须执行大量的额外工作以组合

16、相关的数据。这种额外处理可能降低数据库的性能。在这种情况下,适当降低数据库规范化程度以简化复杂处理可以提高性能。,数据库逻辑组件,约束表默认值触发器索引,数据库逻辑组件,用户定义的数据类型键用户定义函数存储过程视图,数据库各组成部分,数据库由存储特定结构化数据集的表集合组成。表中包含行(有时称作记录或元组)和列(有时称作特性)的集合。表中的每一列都设计为存储某种类型的信息(例如,日期、名称、美元金额或数字)。,数据库各组成部分,表上有几种控制(约束、规则、触发器、默认值和自定义用户数据类型)用于确保数据的有效性。表上可以有索引(与书中的索引非常相似),利用索引可以快速地找到行。,数据库各组成部

17、分,可将声明引用完整性(DRI)约束添加到表上,以确保不同表中相互关联的数据保持一致。数据库还可以存储过程,这些过程使用 Transact-SQL 编程代码对数据库中的数据执行操作,如存储对表数据提供自定义访问的视图。,文件和文件组,数据库使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在操作系统文件中,文件和文件组,主要 该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。,文件和文件组,次要 这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能

18、足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。,文件和文件组,事务日志 这些文件包含用于恢复数据库的日志信息。每个数据库都必须至少有一个日志文件。,文件和文件组,例如,创建简单的数据库 sales 时,可以只使用一个包含所有数据和对象的主文件和一个包含事务日志信息的日志文件。另一种情况是,创建更复杂的数据库 orders 时,可以使用一个主文件和五个辅助文件,数据库内的数据和对象扩展到所有的六个文件中,另外有四个日志文件包含事务日志信息。,文件和文件组的设计规则,文件或文件组不能由一个以上的数据库使用。文件只能是一个文件组的成员。数据和事务日志信息不能属于同一文件或文件组。事务日志文件不能属于任何文件组。,页和扩展盘区,数据存储的基本单位是页。在 SQL Server 2000 中,页的大小是 8 KB。这意味着 SQL Server 2000 数据库每兆字节有 128 页每页的开始部分是 96 字节的页首,用于存储系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 等。,页类型,数据页,堆集结构,聚集索引,非聚集索引,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号