数据安全 课件 第1讲1-2 数据库安全性控制-索引_第1页
数据安全 课件 第1讲1-2 数据库安全性控制-索引_第2页
数据安全 课件 第1讲1-2 数据库安全性控制-索引_第3页
数据安全 课件 第1讲1-2 数据库安全性控制-索引_第4页
数据安全 课件 第1讲1-2 数据库安全性控制-索引_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库安全性控制(索引)《大数据安全与隐私保护》【第一章数据库安全】上讲内容回顾1.数据库完整性1.1完整性1.2约束上讲内容提问1.数据完整性有哪三种类型?2.约束有哪几类?实体完整性、用户自定义完整性、参照完整性primarykey约束foreignkey约束unique约束check约束default约束第1讲数据库安全性控制--索引2.索引2.1索引概述2.2创建索引2.3管理索引★2.索引2

索引2.1索引概述2.2创建索引2.3管理索引2.1索引概述2.1

索引概述在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。

而采用索引来加快数据处理速度通常是最普遍采用的优化方法。2.1

索引概述数据库中的索引与书籍中的目录类似。在一本书中,利用索引可以快速查找所需信息,无须阅读整本书。书中的目录是一个词语列表,其中注明了包含各个词的页码。在数据库中,索引使数据库程序无须对整个表进行扫描,就可以在其中找到所需数据。而数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的行所在的存储位置。2.1

索引概述

索引的作用通过创建唯一索引,可以增强数据记录的唯一性。可以大大加快数据检索速度。可以加速表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。在使用ORDERBY和GROUPBY子句中进行检索数据时,可以显著减少查询中分组和排序的时间。使用索引可以在检索数据的过程中使用优化隐藏器,提高系统性能。2.1

索引概述

索引的注意事项不过,索引为性能所带来的好处却是有代价的。带索引的表在数据库中会占据更多的空间。另外,为了维护索引,对数据进行插入、更新、删除操作的命令所花费的时间会更长。创建索引所需的工作空间约为数据库表的1.2倍,在建立索引时,数据被复制以便建立索引。索引建立后,旧的未加索引的表被删除,创建索引时使用的硬盘空间由系统自动收回。在设计和创建索引时,应确保对性能的提高程度大于在存储空间和处理资源方面的代价。2.1

索引概述因创建索引要耗一定的系统性能,因此要考察对某列创建索引的必要性。定义有主关键字和外部关键字的列需在指定范围中快速或频繁查询的列需要按排序顺序快速或频繁检索的列在集合过程中需要快速或频繁组合到一起的列这些情况要考虑创建索引2.1

索引概述在查询中几乎不涉及的列很少有唯一值的列由text,ntext或image数据类型定义的列只有较少行数的表没必要建索引这些情况可不考虑创建索引2.1

索引概述SQLServer根据存储索引和数据的物理行的方式的不同,索引分为3种类型。即聚集索引(CLUSTEREDINDEX)、非聚集索引(NONCLUSTEREDINDEX),以及主XML索引和辅助XML索引。聚集索引非聚集索引2.1

索引概述1.聚集索引聚集索引将数据行的键值在表内排序并存储对应的数据记录,使得数据表物理顺序与索引顺序一致。当以某字段作为关键字建立聚集索引时,表中数据以该字段作为排序根据。因此,一个表只能建立一个聚集索引,但该索引可以包含多个列(组合索引)。2.1

索引概述2.非聚集索引非聚集索引完全独立于数据行的结构。数据存储在一个地方,索引存储在另一个地方。非聚集索引中的数据排列顺序并不是表格中数据的排列顺序。SQLServer默认情况下建立的索引是非聚集索引。一个表可以拥有多个非聚集索引,每个非聚集索引提供访问数据的不同排序顺序。2.1

索引概述聚集型索引和非聚集型索引的比较关于非聚集索引非聚簇索引提高的存取速度,但降低了表的更新的速度如果硬盘和内存空间有限,应限制非聚簇索引的使用修改一个表的数据时,同时要维护索引索引存取速度索引的数量所需空间聚集索引快一表一个少非聚集索引慢一表可以多个多2.1

索引概述建立聚集索引的必要性查询命令的回传结果是以该字段为排序条件需要回传局部范围的大量数据表格中某字段内容的重复性比较大要考虑建非聚集索引的情况查询所获数据量较少时某字段中的数据的唯一性比较高时2.2创建索引2.2

创建索引1.利用对象资源管理器创建索引2.利用T-SQL语句创建索引

2.2

创建索引1.利用对象资源管理器创建索引2.2

创建索引2.利用T-SQL语句创建索引Create[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nameONTABLE(column[ASC|DESC][,…n])[with{ignore_dup_key|drop_existing|sort_in_tempdb}][ONFILEGROUP]参数说明如下:unique:该选项用于通知SQLServer索引中列出的列的值是每行唯一的。index_name:索引名。建议使用了“idx_表名_列名"的这种命名方法。ONtable:这是同索引相关联的表的名称。只能是一个表的名称。利用T-SQL语句可以创建索引,该命令的基本语法如下:2.2

创建索引2.利用T-SQL语句创建索引【例1】使用CREATEINDEX语句为“学生表”创建一个非聚集索引,索引字段为“姓名”,索引名为idx_name。create

index

idx_nameon

学生表(姓名)2.2

创建索引2.利用T-SQL语句创建索引【例2】根据“学生表”的学号和姓名列创建索引idx_xhxm。create

index

idx_xhxmon

学生表(学号,姓名)2.2

创建索引2.利用T-SQL语句创建索引【例3】根据“选课表”的学号列创建唯一聚集索引。如果输入重复键值,将忽略该insert或update语句。create

unique

clustered

index

idx_学号_unique

on

选课表(学号)注意:有重复的键值是无法创建唯一聚集索引的,所以该题可以用(学号,课程号)两列作为唯一聚集索引。×create

unique

clustered

index

idx_学号_unique

on

选课表(学号,课程号)2.2

创建索引2.利用T-SQL语句创建索引【例4】根据“选课表”的学号创建索引,使用降序排列,填满率为60%。create

index

idx_snoon

选课表(学号

desc)with

fillfactor

=60上机实验任务一实验1第一题:【索引管理】1、对产品名称表上的产品编号列建立唯一非聚集索引ix_pid(要求用T-sql语句实现)。2、在员工表上的所属部门列和性别列建立复合索引ix_2(要求用sql语句实现)。15分钟2.3管理索引2.3

管理索引重命名索引删除索引2.3

管理索引1.重命名索引可以通过存储过程sp_rename可以对索引名进行重命名。【例5】将“学生表”的索引idx_xhxm重命名为idx_text。exec

sp_rename

'学生表.idx_xhxm','idx_text'goexec

sp_rename

‘表名.旧名’,‘新名'go2.3

管理索引2.删除索引【例6】删除“学生表”中的idx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论