单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,*,*,*,第6章 物理结构设计,●,讲授1学时,电子教案 版本6.6,数据库技术,●,内容概述,教学进程,6.1 物理结构设计的内容,,6.2 选取存取方法,,6.3 设计存储结构,,6.4 确定存储位置,,6.5 选取存储介质,,6.6 评价物理结构,,6.7 SQL Server 2005的索引机制,6.1 物理结构设计的内容,,物理结构:指数据库在存储介质上的存取方法、存储结构和存放位置物理结构设计:指根据逻辑结构设计的结果,设计逻辑结构的最佳存取方法、存储结构和存放位置以及合理选择存储介质等,从而设计出适合逻辑结构的最佳物理环境(即:存储模式)的过程物理结构设计的内容:,选取存取方法、设计存储结构、确定存放位置以及选择存储介质等,因素包括:访问类型、访问时间、插入时间、删除时间和空间开销等1,)存取方法:指用户存取数据库数据的方法和技术2,)存储结构:指根据逻辑结构的指标以及,DBMS,支持的数据类型,,,所确定的数据项的存储类型和长度以及元组的存储结构等,,即:数据文件及其数据项在介质上的具体存储结构。
3,)存放位置:指根数据库文件和索引文件等在介质上的具体存储位置4,)存储介质:指用于存储文件的物理存储设备包括:磁盘、磁带、光盘、,磁盘阵列、,磁带库,、光盘阵列等具体包括:介质的容量大小、存取速度与费用等物理结构设计的方法:,,(1)选择存取方法2)设计存储结构3)确定存放位置4)选取存储介质5)评价物理结构结论:,,通过存取方法、存储结构、存放位置以及存储介质的合理设计,最终为逻辑模式设计出满足应用需求的最佳存储模式6.2 选择存取方法,,实现数据库快速访问的最有效方法是使用索引机制索引机制是指对于数据库的数据表,根据数据表的查询需要,按照查询数据所对应的关键属性,为数据表建立相应的用于快速检索的索引文件,在执行查询操作时,先在索引文件中找到查询的元组在数据表中位置(地址),然后再根据这个地址,去数据表中直接取出元组数据这种先查询索引文件,再从数据表中取值的检索机制称为索引机制索引表是指把关键属性(例如:主键)的值按照升序(或者降序)排序后,与它对应的元组在数据表中的位置所组成的对照表即:索引表是索引属性值与元组地址的对照表索引文件用于存储索引表的文件温馨提示:索引文件需要配合数据文件一起使用,才能进行快速检索,因此索引文件单独使用没有意义。
6.2 选择存取方法,,例如:一本字典是由字典正文和字典索引连部分组成字典索引相当于索引表,字典正文相当于数据表字典索引和字典正文一起配合使用实现查询字的用法具体查询过程如下:,,(,1,)首先在字典索引中,查询字在字典中的页码2,)然后按照页码,字典正文中找到该字的用法思考题,1,:对于任意数据表,使用索引机制进行检索与不使用索引机制而直接对数据表进行检索相比,是否前者一定比后者快?,,思考题,2,:在什么情况下,使用索引机制可以进行快速检索?,,常用的存取方法括:,,平衡树(,Balance Tree,,,B,树)、聚簇(,Cluster,)和散列索引其中:,B,树索引是最常用的存取方法,具体操作见数据结构聚簇索引(了解),,聚簇:指根据索引关键属性的值直接找到数据的物理存储位置,从而达到快速检索数据的目的,提高检索的效率聚簇索引:指在按照关键属性对数据表建立索引时,同时按照索引顺序对数据表的相应元组的物理存储位置进行排序,使索引的顺序与数据表中相应元组的物理顺序始终保持一致的索引过程聚簇索引与非聚簇索引的区别:,,1,)聚簇索引的顺序与数据的物理存储顺序始终保持一致;非聚簇索引的顺序与数据物理排列顺序无关。
2,)聚簇索引,B+,树的叶节点就是数据节点;非聚簇索引,B+,树的叶节点仍然是索引节点,其指针指向对应的元组或者数据块3,)一个数据表只能有一个聚簇索引;非聚簇索引则可有多个4,)建立和维护非聚簇索引的开销相对较小,而聚簇索引的开销则相当大5,)聚簇索引适合于不需要更新或者更新比较少的应用,非聚簇索引则适合于更新比较多的应用6,)聚簇索引灵活性较差不建议经常适应,非聚簇索引性则相对比较灵活聚簇索引(了解),,使用聚簇索引注意:,,(1)经常进行连接操作的数据表建议使用聚簇索引2)对于属性组的利用率很高或者重复率很高的关系建议使用聚簇索引3)需要经常进行插入、删除或修改等更新操作,不建议使用聚簇索引4)对于更新操作远多于连接操作的关系不建议使用聚簇索引温馨提示:聚簇索引虽然可以提高某些应用的性能,但是会改变数据的物理存储位置,而且会导致数据表的原有索引无效,同时维护费用很大,因此需要谨慎使用6.3 设计存储结构,,存储结构设计的内容:存储的关系模式;关系模式的数据项;数据项的类型,宽度,是否主键,是否外键,是否索引键等例,6.8】,:,如果关系,R(R,1,,…,R,6,,,R,7,,…,R,20,),,包含,20,个属性,但是前,6,个属性的利用率非常高,而其它属性的利用率非常低,则存储时可以按照,R(R,1,,,…,,,R,6,),,,S(R,7,,,…,,,R,20,),两个关系进行存储(即:垂直分割),并通过逻辑模式,/,存储模式映像作相应的调整。
思考题:如果关系,R(R,1,,…,R,6,,,R,7,,…,R,20,),,包含,60,万个元组,但是前,6,万个元组的利用率非常高,而其它元组的利用率非常低,则应该如何设计存储结构温馨提示:建立两个同结构关系(即:水平分割)6.4 确定存储位置,,DBMS,提供了数据库、索引文件、聚日志文件、备份文件等文件的默认文件目录结构及其存储路径为提高系统性能,需要进一步设计存放例如:,SQL 2005,的数据库,可以设置数据库和日志文件的存储路径等存储位置设计的基本原则:,,1,)同一类文件存放在同一个目录2,)易变部分与稳定部分应该分开存放3,)存取频率高的部分和低的部分应该分别存放到快速和慢速设备例如:对于多磁盘计算机系统,为了提高系统性能,可以采用如下方案: 方案,1,:把数据表和索引文件放在不同的磁盘上,使多磁盘并行工作方案,2,:把大数据表分别放在不同的磁盘上,提高数据的存取速度方案,3,:把日志文件和数据库分别放在不同磁盘上,使多磁盘并行工作方案,4,:把数据库放在高速磁盘;把备份(即后备副本)放在磁带例如:例,6.8,的,R(R,1,,,…,,,R,6,),存入高速磁盘,,S(R,7,,,…,,,R,20,),存入光盘。
4,)根据应用系统的文件类型和应用需求,统一设计文件目录结构统一考虑存取时间、存储空间、维护费用等,对数据文件进行合里安排6.6 评价物理结构,,对设计的多种物理结构,通过评价,选择最佳的物理结构评价物理结构:包括评价内容、评价指标和评价方法评价内容:存取方法选取的正确性、存储结构设计的合理性、文件存放位置的规范性、存储介质选取的标准性评价指标:存储空间的利用率、存取数据的速度和维护费用等评价方法:根据物理结构的评价内容,统计存储空间的利用率、数据的存取速度和维护费用指标,,,结论:通过对比各项指标,选择适合应用的合理的最佳物理结构6.7 SQL Server 2005的索引机制,,建立索引,,修改索引,,删除索引,1 建立索引,,格式:,CREATE [UNIQUE] [CLUSTER] INDEX <,索引名,>,,ON <,表名,>(<,列名,>[<,次序,>][,<,列名,>[<,次序,>] ]…),,功能:对指定的数据表,按照指定的属性列以升序或者降序建立索引说明:,,1,),<,索引名,>,:索引的名称索引名必须符合标识符的规则2,),<,表名,>,:索引的基本表名称3,)索引可以建立在该表的一列或多列上,各列名之间用逗号分隔,,4,),<,次序,>,指索引值的排列次序,升序:,ASC,,降序:,DESC,。
缺省值:,ASC,5,),UNIQUE,:索引的每一,个索引值,只对应唯一的记录即:唯一索引6,),CLUSTER,:建立聚簇索引对数据表建立聚簇索引后,表中数据也需要按指定的聚簇属性值的升序或降序存放亦即:聚簇索引的索引项顺序与表中记录的物理顺序一致7,)索引的维护由,DBMS,自动完成8,)索引的使用由,DBMS,自动选择是否使用索引以及使用哪些索引例6.10】,StudentTestDB,中,给,Student,,,Course,,,StudentCourse,建立索引1,),Student,表按学号升序建唯一索引,,(,2,),Course,表按课程号升序建唯一索引,,(,3,),StudentCourse,表按学号升序和课程号降序建唯一索引SQL Server 2005,语句:,,CREATE UNIQUE,INDEXStudentSNo,ON,Student(SNo,),,CREATE UNIQUE,INDEXCourseCNo,ON,Course(CNo,),,CREATE UNIQUE,INDEXSCSNoCNo,ON,StudentCourse(SNo,ASC,,CNo,DESC),,温馨提示:已经包含重复值的属性列,不能建立,UNIQUE,索引。
对于建立,UNIQUE,索引的属性列,插入新记录时,DBMS,会自动检查新记录在该列上是否取了重复值相当于给属性列增加,UNIQUE,约束例6.11】,,在,Student,表的,SName,(姓名)列上建立一个聚簇索引,而且,Student,表中的记录将按照,SName,值的升序存放SQL Server 2005,语句如下:,,CREATE CLUSTERED INDEX,StudentSName,ON,Student(SName,),,温馨提示:在一个数据表上最多只能建立一个聚簇索引6.7.2 修改索引,,格式:,ALTER INDEX { <,索引名,> | ALL },,ON <,表名,> { REBUILD | DISABLE},,功能:修改现有的数据表索引或者视图索引说明:,,(,1,),<,索引名,>,:修改索引的名称2,),ALL,指定与表或视图相关联的所有索引3,),<,表名,>,:修改索引的基本表名称4,),REBUILD,:重新生成索引5,),DISABLE,:禁用索引任何索引均可被禁用例6.17】,重新生成索引Employee中重新生成单个索引SQL Server 2005,语句:,,USE,AdventureWorks,,ALTER INDEX,PK_Employee_EmployeeID,ON,HumanResources.Employee,,REBUILD,,【,例,6.18】,重新生成表的所有索引。
使用,ALL,关键字,重新生成与表相关联的所有索引SQL Server 2005,语句:,,USE,AdventureWorks,;,,ALTER INDEX ALL ON,Production.Product,,REBUILD,,【,例,6.19】,禁用索引禁用,Employee,的非聚集索引,IX_Employee_ManagerID,SQL Server 2005,语句:,,USE,AdventureWorks,,ALTER INDEX,IX_Employee_ManagerID,ON,HumanResources.Employee,,DISABLE,,【,例,6.20】,启用索引启用,Employee,的非聚集索引,IX_Employee_ManagerID,SQL Server 2005,语句:,,USE,AdventureWorks,,ALTER INDEX,IX_Employee_ManagerID,ON,HumanResources.Employee,,REBUILD,,3 删除索引,,格式:,DROP INDEX <,表名,>.<,索引名,>,,功能:从当前数据库中删除索引。
说明:,,(,1,)用,<,索引名,>,指定要删除索引的名称2,)用,<,表名,>,指定要删除索引的基本表名称温馨提示:删除索引时,系统会从数据字典中删去有关该索引的描述例,6.21】,删除,Student,的,SName,列上的聚簇索引,StudentSName,SQL Server 2005,语句:,,DROP INDEX,Student.StudentSName,【,例,6.22】,删除,ProductVendor,的索引,IX_ProductVendor_VendorID,SQL Server 2005,语句:,,USE,AdventureWorks,,DROP INDEX,IX_ProductVendor_VendorID,,ON,Purchasing.ProductVendor,,【,例,6.23】,删除多个索引删除单个事务中的两个索引SQL Server 2005,语句:,,USE,AdventureWorks,,DROP INDEX,,,IX_PurchaseOrderHeader_EmployeeID,ON,,,Purchasing.PurchaseOrderHeader,,,,,IX_VendorAddress_AddressID,ON,,,Purchasing.VendorAddress,6.8小结,,本章从,选择存取方法、设计存储结构、确定存放位置、选取存储介质和评价物理结构五个方面详细介绍了,物理结构设计的基本概念、基本内容和基本方法,其中重点介绍索引机制(特别是,B+,树)及其用法,最后利用,SQL,Servedr,2005,提供的索引机制,详细介绍了数据库索引的建立方法、修改方法和删除方法。
主要知识点如下:,,(,1,)物理结构设计的基本概念、基本内容和基本方法2,)索引机制(特别是,B+,树)及其用法3,),常用的存取方法,4,),逻辑模式的存储结构设计,5,)存储位置设计的基本原则6,)常用的存储介质及其选取原则7,)物理结构的评价方法8,)索引的建立方法、修改方法,和删除方法习题,,1.什么是,物理结构设计?简述物理结构设计的主要内容2.简述,物理结构设计的方法步骤,3.什么是索引机制、索引表、索引文件?简述索引机制的作用11.什么是聚簇索引,简述聚簇索引与非聚簇索引的区别12.简述聚簇索引的作用及其应用范围22.利用StudentTestDB.MDF,分别对三表建立默认所引、唯一索引和聚簇索引,具体要求自定24.利用StudentTestDB.MDF,分别对第22题建立的索引进行修改、禁用和启用操作,具体要求自定26.利用StudentTestDB.MDF,分别删除第22题建立的索引。