数据库设计和物理存储结构

上传人:大米 文档编号:570966318 上传时间:2024-08-07 格式:PPT 页数:61 大小:230.02KB
返回 下载 相关 举报
数据库设计和物理存储结构_第1页
第1页 / 共61页
数据库设计和物理存储结构_第2页
第2页 / 共61页
数据库设计和物理存储结构_第3页
第3页 / 共61页
数据库设计和物理存储结构_第4页
第4页 / 共61页
数据库设计和物理存储结构_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《数据库设计和物理存储结构》由会员分享,可在线阅读,更多相关《数据库设计和物理存储结构(61页珍藏版)》请在金锄头文库上搜索。

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

2、程序的复杂性和大小及用户数确定。创建数据库计划创建数据库计划n n数据库应用程序的性质和复杂性以及对其进行计划的过程可以变化很大。数据库可以相对简单,如为单人使用设计的数据库;它也可以很大、很复杂,如为处理数百万顾客的所有银行事务而设计的数据库。创建数据库计划创建数据库计划n n对于前一种情况,数据库设计可能只需要在一些草稿纸上写几个备注即可。对于后一种情况,设计可能是数百页的正式文档,其中包含有关数据库的各种可能细节。创建数据库计划创建数据库计划n n在计划数据库时,不管其大小和复杂性如何,都要经过下列基本步骤: 收集信息收集信息标识对象标识对象建立对象模型建立对象模型标识每个对象的信息类型

3、标识每个对象的信息类型标识对象之间的关系标识对象之间的关系收集信息n n在创建数据库之前,必须对期望数据库执行的工作有在创建数据库之前,必须对期望数据库执行的工作有一个透彻的理解。如果数据库用于替换基于纸张或手一个透彻的理解。如果数据库用于替换基于纸张或手工执行的信息系统,则现有的系统能为您提供所需的工执行的信息系统,则现有的系统能为您提供所需的大多数信息。大多数信息。n n与系统中所涉及的每个人进行交流,以找出他们所做与系统中所涉及的每个人进行交流,以找出他们所做的工作以及他们需要从数据库中获得的内容是很重要的工作以及他们需要从数据库中获得的内容是很重要的。了解他们希望新系统完成的工作,以及

4、找出现有的。了解他们希望新系统完成的工作,以及找出现有系统的问题、限制和瓶颈也很重要。系统的问题、限制和瓶颈也很重要。n n收集客户结算、库存列表、管理报表以及属于现有系收集客户结算、库存列表、管理报表以及属于现有系统的任何其它文档的复本,因为这些对于设计数据库统的任何其它文档的复本,因为这些对于设计数据库和界面非常有用。和界面非常有用。标识对象n n在收集信息的过程中,必须标识将由数据库在收集信息的过程中,必须标识将由数据库管理的主要对象或实体。对象可以是一个有管理的主要对象或实体。对象可以是一个有形的实体(如一个人或一个产品),也可以形的实体(如一个人或一个产品),也可以是一个无形的项目(

5、如某项业务事务、公司是一个无形的项目(如某项业务事务、公司中的某个部门或某个付薪周期)。中的某个部门或某个付薪周期)。n n通常会有几个主要对象,标识了这些对象之通常会有几个主要对象,标识了这些对象之后,相关的项目就会变得清晰。数据库中每后,相关的项目就会变得清晰。数据库中每个不同的项目都应有一个对应的表。个不同的项目都应有一个对应的表。建立对象模型n n标识了系统中的对象后,使用该系统的一种直观表示方式对这些对象进行记录是很重要的。在数据库实现期间,可以使用数据库模型作为参考。建立对象模型n n数据库开发人员使用各种工具进行数据库设计,在技术复杂性方面,这些工具可以是简单的铅笔和草稿纸,也可

6、以是字处理或电子表格程序,甚至可以是专门为数据库建模工作设计的软件程序。n n不管决定要使用哪一种工具,总保持使用最新的工具是很重要的。 CASE ToolsnVisionRose标识每个对象的信息类型标识每个对象的信息类型 n n将数据库中的主要对象标识为候选表后,下一步是标识必须为各对象存储的信息类型。这些信息是对象的表中的列。数据库表中的列包含几个常见的信息类型: 标识每个对象的信息类型标识每个对象的信息类型n n原始数据列 这些列存储有形信息(如名称),由数据库外部的源确定。 n n分类列 这些列对数据进行分类或分组,并存储有限选择范围的数据标识每个对象的信息类型标识每个对象的信息类型

7、n n标识符列标识符列 这些列提供对存储在表中的每个项目进行标这些列提供对存储在表中的每个项目进行标识的机制。这些列的名称中有一个识的机制。这些列的名称中有一个 id id 或或 numbernumber。标识符列是用户和内部数据库处理访问表中标识符列是用户和内部数据库处理访问表中的一行数据时所用的主要组件。有时,可以的一行数据时所用的主要组件。有时,可以在表中使用对象的有形在表中使用对象的有形 IDID(如社会保险号),(如社会保险号),但在大多数情况下,定义表时可以为行创建但在大多数情况下,定义表时可以为行创建可靠的人工可靠的人工 IDID。标识每个对象的信息类型标识每个对象的信息类型n

8、n关系或引用列 这些列建立一个表中的信息和另一个表中相关信息的链接。例如,跟踪销售事务的表通常与 customers 表有链接,以便可以将完整的客户信息与销售事务关联。标识对象间的关系标识对象间的关系n n关系数据库的一种优势是联系或关联数据库中各种项目的有关信息的能力。可以单独地存储独立的信息类型,但数据库引擎可以在必要时组合数据。n n在设计过程中,标识对象间的关系需要查看各种表,确定它们逻辑相关的方式,以及添加关系列以建立一个表与另一个表间的链接。联机事务处理与决策支持联机事务处理与决策支持n n许多应用程序属于数据库应用程序的两种主要类型: 联机事务处理联机事务处理 (OLTP)(OL

9、TP)决策支持决策支持 n n这两种应用程序类型的特征对数据库的设计考虑事项有很大的影响。 联机事务处理联机事务处理 n n联机事务处理数据库应用程序最适合于管理联机事务处理数据库应用程序最适合于管理变化的数据,通常,这种应用程序有大量的变化的数据,通常,这种应用程序有大量的用户同时执行更改实时数据的事务。尽管用用户同时执行更改实时数据的事务。尽管用户对数据的单个请求一般只引用少量记录,户对数据的单个请求一般只引用少量记录,但是,这些请求有许多是同时发生的。但是,这些请求有许多是同时发生的。n n这些类型的数据库的常见例子是航空订票系这些类型的数据库的常见例子是航空订票系统和银行事务系统。在这

10、种类型的应用程序统和银行事务系统。在这种类型的应用程序中,主要关心的是并发性和原子性。中,主要关心的是并发性和原子性。联机事务处理联机事务处理n n数据库系统中的并发性控制确保两个用户不能更改同一数据,或者一个用户不能在另一个用户对数据操作完成之前对其进行更改。 n n原子性确保事务中包括的所有步骤都作为一个组成功地完成。如果一个步骤失败,则不应完成其它步骤。 联机事务处理设计注意事项联机事务处理设计注意事项n n很好的数据放置 对于 OLTP 系统,输入/输出瓶颈是一个尤为关心的问题,原因在于修改整个数据库中数据的用户很多。确定数据的可能访问模式,并将经常访问的数据放在一起。在此过程中,可辅

11、以文件组和 RAID(独立磁盘冗余阵列)系统。 联机事务处理设计注意事项联机事务处理设计注意事项n n缩短事务以将长期锁减至最少,提高并发性 在事务期间,避免用户交互。无论何时,只要有可能,就通过执行单个存储过程来处理整个事务。在事务内对表的引用顺序可能会影响并发性。将对经常访问的表的引用置于事务的末尾,以便将控制锁的持续时间减至最短。联机事务处理设计注意事项联机事务处理设计注意事项n n联机备份 OLTP 系统通常的特征是连续操作(一天 24 小时,一周 7 天),为达到此目的,停工时间要保持绝对最短。 联机事务处理设计注意事项联机事务处理设计注意事项n n数据库的高度规范化 尽可能减少冗余

12、信息以提高更新的速度,从而提高并发性。 联机事务处理设计注意事项联机事务处理设计注意事项n n很少或没有历史或聚合数据 可以将很少引用的数据归档到单独的数据库中,或者从经常更新的表中移出,并置于仅含历史数据的表中。这将保持表尽可能地小,从而缩短备份时间,改善查询性能。联机事务处理设计注意事项联机事务处理设计注意事项n n小心使用索引每次添加或修改行时,必须更新索引。若要避免对经常更新的表进行过多的索引,索引范围应保持较窄。 联机事务处理设计注意事项联机事务处理设计注意事项n nOLTP 系统需要最佳的硬件配置以处理较大并发用户数目和快速响应时间 决策支持决策支持 n n决策支持数据库应用程序最

13、适合于不更改数决策支持数据库应用程序最适合于不更改数据的数据查询。例如,公司可以定期地按日据的数据查询。例如,公司可以定期地按日期、销售地区或产品汇总其销售数据,并将期、销售地区或产品汇总其销售数据,并将该信息存储在单独的数据库中以供高级管理该信息存储在单独的数据库中以供高级管理人员进行分析。人员进行分析。n n若要作出业务决策,用户必须能够根据各种若要作出业务决策,用户必须能够根据各种准则,通过查询数据快速地确定销售趋势。准则,通过查询数据快速地确定销售趋势。然而,他们不必更改这些数据。然而,他们不必更改这些数据。决策支持决策支持n n决策支持数据库中的表建立了大量索引,原始数据通常要进行预

14、处理,并对其进行组织以支持将要使用的各种类型的查询。因为用户并不更改数据,并发性和原子性问题不必考虑;数据仅定期更改,在非工作时间和低流量时间对数据库进行大容量更新。决策支持设计注意事项决策支持设计注意事项n n大量索引大量索引 决策支持系统只需要很少的更新,但数据量决策支持系统只需要很少的更新,但数据量很大。可使用大量索引提高查询性能。很大。可使用大量索引提高查询性能。n n数据库的非规范化数据库的非规范化引入预聚合或汇总数据以满足常见的查询要引入预聚合或汇总数据以满足常见的查询要求,缩短查询响应时间。求,缩短查询响应时间。n n使用星型架构或雪花架构来组织数据库内的使用星型架构或雪花架构来

15、组织数据库内的数据。数据。 规范化规范化 n n数据库的逻辑设计(包括各种表和表间关系)是优化关系数据库的核心。设计好逻辑数据库,可以为优化数据库和应用程序性能打下基础。逻辑数据库设计不好,会损害整个系统的性能。规范化规范化n n规范化逻辑数据库设计包括使用正规的方法来将数据分为多个相关的表。拥有大量窄表(列较少的表)是规范化数据库的特征。而拥有少量宽表(列较多的表)是非规范化数据库的特征。 规范化规范化n n规范化的一些益处包括:排序和索引创建更快。排序和索引创建更快。聚集索引的数目更大。聚集索引的数目更大。索引更窄、更精简。索引更窄、更精简。每个表的索引更少,这样将提高每个表的索引更少,这

16、样将提高 INSERTINSERT、UPDATE UPDATE 和和 DELETE DELETE 语句的性能。语句的性能。空值更少,出现不一致性的机会更少,从空值更少,出现不一致性的机会更少,从而提高数据库紧凑性。而提高数据库紧凑性。获得设计良好的数据库获得设计良好的数据库 n n在关系数据库设计理论中,规范化规则指出了在设计良好的数据库中必须出现或不出现的某些特性。 n n有几个可帮助获得合理的数据库设计的规则: 获得设计良好的数据库获得设计良好的数据库n n表应该有一个标识符数据库设计理论的基本原理是:每个表都应有一个唯一的行标识符,可以使用列或列集将任何单个记录同表中的所有其它记录区别开

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

18、。如果处理,这样会增加数据操作的复杂性。如果某一表中有几个可为空的列,并且列中的几某一表中有几个可为空的列,并且列中的几行有空值,则应考虑将这些列置于链接到主行有空值,则应考虑将这些列置于链接到主表的其它表中。将数据存储在两个独立的表表的其它表中。将数据存储在两个独立的表中使主表的设计更为简单,但能够满足存储中使主表的设计更为简单,但能够满足存储空值信息的偶尔需要。空值信息的偶尔需要。 获得设计良好的数据库获得设计良好的数据库n n表不应有重复的值或列 数据完整性数据完整性 n n实体完整性n n域完整性n n引用完整性n n用户定义完整性 数据安全性数据安全性 n n数据库有一种功能是保护数

19、据,防止某些用户查看或更改高度敏感的数据,以及防止所有用户产生代价高昂的错误。 数据库性能数据库性能 n n在设计数据库时,必须确保数据库正确地、快速地执行所有重要的功能。有些性能问题可以在数据库进入生成过程后解决,但另外一些性能问题则可能是数据库设计不良造成的,而且只有通过更改数据库的结构和设计才能加以解决。数据库性能数据库性能n n在设计和实现数据库时,应找出数据库中的大表和数据库要执行的较复杂处理,在设计这些表时,对性能应特别注意。还要考虑访问数据库的用户数增加对性能的影响。数据库性能数据库性能n n提高性能的设计更改实例包括:如果必须对包含成千上万行的表进行汇总以供每日报表使用,可以向

20、该表添加包含预聚合数据的一列或多列,以仅供报表使用。 数据库性能数据库性能n n提高性能的设计更改实例包括:数据库可能过度规范化,即使用了大量的、小的、相互关联的表来定义数据库。在数据库对这些表中的数据进行处理时,必须执行大量的额外工作以组合相关的数据。这种额外处理可能降低数据库的性能。在这种情况下,适当降低数据库规范化程度以简化复杂处理可以提高性能。 数据库逻辑组件数据库逻辑组件 n n约束n n表n n默认值n n触发器n n索引数据库逻辑组件数据库逻辑组件n n用户定义的数据类型n n 键n n用户定义函数n n存储过程n n视图数据库各组成部分数据库各组成部分 n n数据库由存储特定结

21、构化数据集的表集合组成。表中包含行(有时称作记录或元组)和列(有时称作特性)的集合。表中的每一列都设计为存储某种类型的信息(例如,日期、名称、美元金额或数字)。 数据库各组成部分数据库各组成部分n n表上有几种控制(约束、规则、触发器、默认值和自定义用户数据类型)用于确保数据的有效性。表上可以有索引(与书中的索引非常相似),利用索引可以快速地找到行。 数据库各组成部分数据库各组成部分n n可将声明引用完整性 (DRI) 约束添加到表上,以确保不同表中相互关联的数据保持一致。数据库还可以存储过程,这些过程使用 Transact-SQL 编程代码对数据库中的数据执行操作,如存储对表数据提供自定义访

22、问的视图。 文件和文件组文件和文件组 n n数据库使用一组操作系统文件映射数据库。数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在操作系统文件中文件和文件组文件和文件组n n主要 该文件包含数据库的启动信息,并用于存储数据。每个数据库都有一个主要数据文件。文件和文件组文件和文件组n n次要 这些文件含有不能置于主要数据文件中的所有数据。如果主文件可以包含数据库中的所有数据,那么数据库就不需要次要数据文件。有些数据库可能足够大故需要多个次要数据文件,或使用位于不同磁盘驱动器上的辅助文件将数据扩展到多个磁盘。文件和文件组文件和文件组n n事务日志 这些文件包含用于恢复数据库的日志信

23、息。每个数据库都必须至少有一个日志文件。文件和文件组文件和文件组n n例如,创建简单的数据库例如,创建简单的数据库 sales sales 时,可以只时,可以只使用一个包含所有数据和对象的主文件和一使用一个包含所有数据和对象的主文件和一个包含事务日志信息的日志文件。个包含事务日志信息的日志文件。n n另一种情况是,创建更复杂的数据库另一种情况是,创建更复杂的数据库 orders orders 时,可以使用一个主文件和五个辅助文件,时,可以使用一个主文件和五个辅助文件,数据库内的数据和对象扩展到所有的六个文数据库内的数据和对象扩展到所有的六个文件中,另外有四个日志文件包含事务日志信件中,另外有四

24、个日志文件包含事务日志信息。息。文件和文件组的设计规则文件和文件组的设计规则 n n文件或文件组不能由一个以上的数据库使用。 n n文件只能是一个文件组的成员。n n数据和事务日志信息不能属于同一文件或文件组。n n事务日志文件不能属于任何文件组。 页和扩展盘区页和扩展盘区 n n数据存储的基本单位是页。在 SQL Server 2000 中,页的大小是 8 KB。这意味着 SQL Server 2000 数据库每兆字节有 128 页n n每页的开始部分是 96 字节的页首,用于存储系统信息,如页的类型、页的可用空间量、拥有页的对象的对象 ID 等。 页类型页类型页类型页类型内容内容数据包含数据行中除 text、ntext 和 image 数据外的所有数据。索引索引项。文本/图像text、ntext 和 image 数据。全局分配映射表、辅助全局分配映射表有关已分配的扩展盘区的信息。页的可用空间有关页上可用空间的信息。索引分配映射表有关表或索引所使用的扩展盘区的信息。大容量更改映射表有关自上次执行 BACKUP LOG 语句后大容量操作所修改的扩展盘区的信息。差异更改映射表有关自上次执行 BACKUP DATABASE 语句后更改的扩展盘区的信息。数据页数据页 堆集结构堆集结构 聚集索引聚集索引 非聚集索引非聚集索引

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号