- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章节数据库的设计
An Introduction to Database System 学习目标 掌握数据库的物理设计 了解数据库的实施 理解数据库运行与维护 6.5 数据库的物理设计 数据库物理设计的概念:数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程,就是数据库的物理设计。 数据库物理设计的步骤 确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构。 对物理结构进行评价,评价的重点是时间和空间效率。 如果评价结果满足原设计要求,则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。 数据库物理设计的内容和方法 设计数据库物理结构的准备工作 充分了解应用环境,详细分析要运行的事务,以获得选择数据库物理设计所需的参数。 充分了解所用RDBMS的内部特征,特别是系统提供的存取方法和存储结构。 选择数据库物理设计所需的参数 数据查询事务:查询的关系、查询条件所涉及的属性、连接条件所涉及的属性、查询的投影属性等。 数据更新事务:被更新的关系、每个关系上的更新操作条件所涉及的属性、修改操作要改变的属性值、每个事务在各关系上运行的频率和性能要求。 关系数据库物理设计的内容:为关系模式选择存取方法(建立存取路径);设计关系、索引等数据库文件的物理存储结构。 关系模式存取方法选择:数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。物理设计的第一个任务就是要确定选择哪些存取方法,即建立哪些存取路径。 DBMS常用的存取方法有: 索引(主要是B+树索引)存取:是使用最普遍的存取方法,选择索引存取方法的一般规则是: 如果一个(或一组)属性经常在查询条件中出现,则考虑在这个(或这组)属性上建立索引(或组合索引)。 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。 如果一个(或一组)属性经常在连接操作的连接条件中出现,则考虑在这个(或这组)属性上建立索引。 但关系上定义的索引数过多会增加维护索引和查找索引的开销 聚簇存取:为了提高某个属性(或属性组)的查询速度,把这个或这些属性(称为聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇。许多关系型DBMS都提供了聚簇功能。建立聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放,即聚簇索引的索引项顺序与表中元组的物理顺序一致。例CREATE CLUSTER INDEX Stusname ON Student(Sname);在Student表的Sname列上建立一个聚簇索引,表中的记录将按Sname值的升序存放。一个数据库可以建立多个聚簇,但一个基本表上最多只能建立一个聚簇索引。 聚簇的用途:大大提高按聚簇属性进行查询的效率。例:假设学生关系按所在系建有索引,现在要查询信息系的所有学生名单。信息系的500名学生分布在500个不同的物理块上时,至少要执行500次I/O操作。如果将同一系的学生元组集中存放,则每读一个物理块可得到多个满足查询条件的元组,从而显著地减少了访问磁盘的次数。 另外,聚簇后聚簇码相同的元组集中在一起了,因而聚簇码值不必在每个元组中重复存储,只要在一组中存一次就行了,节省了存储空间。 聚簇的局限性:聚簇只能提高某些特定应用的性能,而且建立与维护聚簇的开销是相当大的。对已有关系建立聚簇,将导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建。当一个元组的聚簇码改变时,该元组的存储位置也要做相应移动。 聚簇的适用范围 既适用于单个关系独立聚簇,也适用于多个关系组合聚簇。例如,假设用户经常要按系别查询学生成绩单,这一查询涉及学生关系和选修关系的连接操作,即需要按学号连接这两个关系,为提高连接操作的效率,可以把具有相同学号值的学生元组和选修元组在物理上聚簇在一起。这就相当于把多个关系按“预连接”的形式存放,从而大大提高连接操作的效率。 当通过聚簇码进行访问或连接是该关系的主要应用,与聚簇码无关的其他访问很少或是次要时,可以使用聚簇。尤其当SQL语句中包含有与聚簇码有关的ORDER BY,GROUP BY,UNION,DISTINCT等子句或短语时,使用聚簇特别有利,可以省去对结果集的排序操作。 设计候选聚簇:对经常在一起进行连接操作的关系可以建立组合聚簇;如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚簇;如果一个关系的一个(或一组)属性上的值重复率很高,则此单个关系可建立聚簇。即对应每个聚簇码值的平均元组数不太少,否则聚簇效果不明显。 检查候选聚簇中的关系,取消其中不必要的关系:从聚簇中删除经常进行全表扫
文档评论(0)