第5章数据库管理Word下载.docx
《第5章数据库管理Word下载.docx》由会员分享,可在线阅读,更多相关《第5章数据库管理Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
CREATEVIEW语句的执行结果是在DBMS的数据字典中保存了视图名和SELECT语句。
2)删除视图
当不再需要一个视图时,可以删除它,语句格式为:
DROPVIEW<
3)查询视图
对视图进行查询时,DBMS要进行视图消解工作,把对视图的查询转换为对基本表(定义视图时涉及的表)的查询,就是把对视图查询的一个SQL语句,转换为对基本表查询的SQL语句。
4)更新视图
更新视图是指在视图中插入(INSERT)、删除(DELETE)和更新(UPDATE)数据。
像查询视图那样,对视图的更新操作也要通过视图消解转换为对表的更新操作。
5)视图的作用
●视图能够简化用户的操作。
●视图可以减少冗余数据。
●视图对重构数据库提供了一定程度的逻辑独立性。
●视图能够对机密数据提供安全保护。
(2)索引
在数据库中,往往根据应用环境的需要,在表上建立一个或多个类似于图书目录的索引,以提供多种存取路径,加快查找速度。
1)索引的基本概念
索引是一个独立的、物理的数据库结构,基于表的一列或多列而建立,按照列值从小到大或从大到小排序,提供了一个新存取路径。
2)索引的分类
●按照表中建立索引的那一列(或列组合)中的数据是否各不相同,可以将索引分为唯一索引(UNIQUE)和非唯一索引(NOTUNIQUE)。
●按照索引的结构,可以将其划分为两大类,聚簇索引(Clusteredindex)和非聚簇索引(Nonclusteredindex)。
3)建立索引的原则
要不要建索引以及如何建索引,属于内模式的概念,这是数据库设计中一个很重要的问题。
4)索引的建立和维护
a)建立索引
数据库管理员或表的所有者有权在表上建立索引。
在SQL语言中,建立索引使用CREATEINDEX语句,其一般格式为:
CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX<
索引名>
ON<
表名>
(<
[<
次序>
][,<
]]…);
b)删除索引
在SQL语言中,删除索引使用DROPINDEX语句,其一般格式为:
DROPINDEX<
表名.索引名>
删除索引时,系统从数据字典中删除有关该索引的描述,同时从数据区删除索引的数据。
(3)安全性
要使用数据库首先要成为数据库的用户,其次要对数据对象拥有相关的权限。
1)登录名/用户
用户要使用SQLServer,必须首先获得一个SQLServer的登录名,然后将登录名添加到一个数据库,获得数据库的用户名,才能正式使用数据库。
●增加登录名
●删除登录名
●增加数据库用户
●删除数据库用户
2)权限
数据库中的数据对象大体上可以分为数据库、视图、表和列,操纵不同的数据对象需要不同的权限。
3)授权
数据对象的所有者可以把其拥有的不可被剥夺的权限授予他人,使更多的人可以操纵数据对象。
4)收回权限
授予的权限可以由授予者用REVOKE语句收回。
5)角色
角色是一个DBMS用户的集合,该集合中的用户要操作相同的数据库对象,需要拥有相同的权限。
6)权限审核
7)完整性
关系模型有三类完整性约束:
实体完整性、参照完整性和用户定义的完整性。
8)空值的处理
SQL语言中允许不填写元组的某个属性的值,这时该属性的值为空值(NULL)。
空值有3种含义:
一种是该属性应该有一个值,但目前还不知道它的具体值;
第二种是该属性不应该有值;
第三种是由于某种原因不便于填写。
因此,空值是一个很特殊的值,含有不确定性,需要做特殊的处理。
(4)系统表
关系数据库系统使用表存放表名、列的定义、视图的定义、权限的管理、数据库用户等信息,用于系统管理,这些表叫做系统表或者系统目录。
2.难点分析
(1)视图概念的理解
首先理解数据库中关系与视图的对应关系,以及与数据库的三级模式的对应关系。
外模式定义了一个数据库应用程序要用到的数据,模式定义了一个组织内所有数据库应用程序要使用的数据,内模式定义了数据的物理组织结构。
在关系数据库中,与外模式、模式和内模式相对应的概念是视图、关系、物理存储文件和索引。
视图是从一个或多个表中导出的表,用户可以像对表一样对它进行查询,在SELECT语句中可以出现表的地方都可以使用视图。
视图是一个虚表,在数据库中只存储视图的定义(一条SELECT语句)而不存放视图的数据,这些数据仍存放在导出视图的基本表中,直到用户使用视图时才去执行视图的定义,求出数据。
因为视图是一个虚表,所以更新操作受到一些限制。
(2)索引的建立和维护
通过一些例子加深对索引部分内容的理解。
下面给出了两个索引实例。
图5.3建立在表Student的列Sno上的索引
图5.4B+树形式的索引结构
(3)完整性的相关内容
这部分内容比较抽象,可以通过一些例子理解3类完整性约束的含义。
二、教学目标(知识,技能,情感态度价值观)
1.知识目标:
通过本课时的学习,理解视图的概念和作用。
理解索引的概念和作用。
理解数据库的操作权限,掌握授权的方法。
理解参照完整性的概念以及对SQL语句的影响。
2.技能目标:
能建立视图,会使用视图实现数据的逻辑独立性。
掌握建立索引的一般规则,能利用索引改善查询性能。
理解角色的概念,能利用角色简化权限管理。
基本掌握用户定义完整性约束的方法
3.情感态度目标:
通过本课时的学习,从而使学生加深认识和理解数据库三级模式的认识,体验对于解决复杂问题的思维方法。
三、学习者特征分析
对于初等教育信息技术方向专业学生,只学习了计算机基础和程序设计初步两门专业课,对计算机的结构及处理问题的原理了解还不够深入,所以在本课程的学习时要通俗易懂,突出数据库技术的应用,所选教材在这方面较好,以此在教学中要把应用性体现出来。
要充分利用好机房进行实训,让学生以初步设计一个应用系统为导向,组织教学,培养学生应用数据库技术的能力和意识。
经过前面章节的学习,学生已对关系表有了初步认识,本章通过视图和索引的学习,加深对数据库三级模式的认识和和应用。
四、教学策略选择与设计
本课时的教学策略将采用“双主”模式;
具体操作体现为:
采用提出问题,引导学生思考解决办法,再应用和练习的策略。
五、教学环境及资源准备
1.教学环境:
主要借助与多媒体教室,利用PPT和电脑操作演示。
2.资源准备:
★数据库系统软件(SQLServer2000)
★PPT材料
六、教学过程
教学过程
教师活动
学生活动
设计意图及资源准备
第一、二课时
讲授:
5.1.1建立视图
5.1.2删除视图
5.1.3查询视图
5.1.4.更新视图
5.1.5视图的作用
1.讲解视图的基本概念,使学生理解视图的概念和作用。
2.介绍视图建立、删除、查询的方法,使会建立、使用视图实现数据的逻辑独立性。
学生听讲,了解数据技术中视图功能及创建、修改、查询的用法,并在课后练习,达到掌握用视图创建、修改、查询的方法。
1.准备教学用PPT
2.信息管理系统的实例。
第三、四课时:
讲授
5.2.1索引的基本概念
5.2.2索引的建立和维护
1.讲解索引的概念,并分析索引的作用。
2.讲解索引的建立和维护方法,使掌握建立索引的一般规则,能利用索引改善查询性能。
学生听讲,并进行思考,理解和认识索引的功能及建立方法。
要求学生基本掌握单表的方法;
1.准备教学用PPT
2.使学生比较好的理解查询
第五六课时
5.3.1登录名与用户
5.3.2权限
5.3.3授权
5.3.4收回权限
5.3.5角色
5.3.6权限审核
1.讲解数据库的登录名、用户、操作权限的概念。
2.讲解数据库中授权的方法,使学生能理解数据库的操作权限,掌握授权的方法。
3.讲解角色的概念,使学生能利用角色简化权限管理
学生听讲,积极思考,理解并掌握有关权限概念及操作方法。
2.有效培养了学生的用权限管理的的能力。
第七八课时
5.4.1实体完整性
5.4.2参照完整性
5.4.3属性值限制
5.4.4元组级限制
5.4.5完整性修改
5.4.6空值的处理
1.讲解数据库中实体完整性、参照完整性概念及实现。
2.讲解自定义完整性(属性值限制、元组级限制、完整性修改及空值的处理)等概念。
使学生基本掌握用户定义完整性约束的方法
听课,思考并阅读教材。
通过实验练习使学生数据库中完整性的处理。
锻炼学生理解能力和自主阅读,学习有效的表示信息的方法
七、作业与要求
P120习题:
一(1-10)、二(1-5)、三(1-9)、四(1-2)
要求:
认真完成,批阅后讲评。
3.5视图
3.5.1为什么要使用视图
(1)视图能减少SQL查询语句编写的工作量及对它进行合理的管理。
(2)视图使用户以不同的方式看待相同数据。
(3)视图对数据库的使用提供一定的逻辑独立性。
(4)视图能够对数据提供安全保护。
3.5.2创建视图
•CREATEVIEW语句可以创建视图,其一般语法格式为:
[,<
]…)]
SELECT语句>
[WITHCHECKOPTION];
•WITHCHECKOPTION可选项关键词表示在对视图进行UPDATE,INSERT和DELETE操作时需要保证更新、插入或删除的记录必须满足视图定义中的条件(即SELECT语句中的条件表达式)。
•在创建一个视图时要么指定视图的全部列名,要么全部都不指定。
如果缺省了视图的各个属性列名,则该视图就由查询中SELECT子句的目标列的列名组成。
但在下列三种情况下必须明确指定组成视图的所有列名:
Ø
第一种:
视图中包含了多个来自于不同表的相同列名。
第二种:
视图中定义的列是由集函数或列表达式所定义。
第三种:
视图中为了某些列定义新的列名。
数据库在创建视图时,将其定义存放到相应的系统表中,以供使用。
【例3.56】创建来自加州的作者信息(pubs数据库的authors表,只包含au_id,au_fname,au_lname,city)视图CA_Authors。
•语句如下:
CREATEVIEWCA_Authors
ASSELECTau_id,au_fname,au_lname,cityFROMauthors
WHERE(state='
CA'
)
•该例没有指定视图的列名,视图则沿用基本表的指定列的列名。
像CA_Authors视图这样,视图中的数据来自于一个基本表,且保留了该表的主键和筛选掉了一些列和一些行,称这样的视图为行列子集视图。
它等价于:
CREATEVIEWCA_Authors(au_id,au_fname,au_lname,city)
WHERE(state='
【例3.57】创建一个包含了书名和其出版社名称及所在城市的视图Title_Publishers。
CREATEVIEWTitle_Publishers
SELECTt.title,p.pub_name,p.city
FROMtitlesast,publishersasp
WHEREp.pub_id=t.pub_id
•说明:
除了可以在单个表上定义视图,还可以把视图定义在多个表上。
3.5.3更新视图
•对视图来进行更新、插入和删除操作实际上最终都会直接作用于基本表。
但是,在大部分数据库系统中,这些更新操作会受到基本表约束的限制(如视图中没有包含基本表中的非空值的列,对视图的插入操作就不能对该列添加数据,最终导致基本表的插入操作失败)。
3.5.4删除视图
•一般的语法格式为:
;
•与删除基本表不同,虽然视图的数据来自于基本表,但是对视图的删除仅仅对视图在系统数据库中的定义进行删除。
但是这种删除并不会级联删除引用了该视图的其他视图,所以必须手动将它们一一删除,这样才不会导致用户对它们操作时出错。
【例3.58】删除【例3.56】中创建的视图CA_Authors。
DROPVIEWCA_Authors;
3.6数据控制
3.6.1权限授予
•GRANT语句是授权语句,使用它可以向用户授予可以操作数据对象的权限,使用GRANT语句的一般语法格式为:
GRANT<
权限>
[,<
]…
[ON<
对象类型>
<
对象名>
]
TO<
用户>
[<
]…
[WITHGRANTOPTION];
•其含义为将指定对象上的权限授予指定用户。
WITHGRANTOPTION关键词表示被授予权限的用户可以把他获得的权限授予其他用户。
•对不同类型的操作对象有不同的操作权限,常见的操作权限如下:
对属性列和视图的操作权限(SELECT、INSERT、UPDATE、DELETE、ALLPRIVILEGES)。
对基本表的操作权限(SELECT、INSERT、UPDATE、DELETE、ALTER和INDEX、ALLPRIVILEGES)。
对数据库基本表的创建权限(CREATETAB)。
【例3.59】将authors表的更新权限授予用户frogst。
GRANTUPDATE
ONTABLEauthors
TOfrogst
【例3.60】将employee表的全部权限授予用户longman。
GRANTALLPRIVILEGES
ONTABLEemployee
TOlongman
说明:
使用ALLPRIVILEGES关键词在这里表示数据对象employee上的所有权限。
•有一些权限可以针对表或者视图中的单个字段。
这些权限如:
UPDATE、INSERT等。
这个时候就需要将需要授权的字段放在权限后面用括号括起来。
【例3.61】将对employee表的列job_lvl的修改权限授予用户frogst。
GRANTUPDATE(job_lvl)
WITHGRANTOPTION
3.6.2权限收回
•授予的权限可以由DBA或其他授权者用REVOKE语句收回,REVOKE语句的一般格式为:
REVOKE语句<
[,〈权限〉]…
FROM<
[,<
]…;
[CASCADE]
◆说明:
CASCADE关键词表示级联收回权限。
如果frogst将这个权限授予了其他用户,那么其他用户的这个权限也一并被系统收回。
SQL通过GRANT和REVOKE就提供了灵活的权限管理机制,使数据库管理员根据需要自主地分配权限,数据库管理员拥有所有的权限,因为他是超级用户。
除数据库管理员拥有超级权限以外,创建数据对象也相应地拥有此数据对象的所有权限,并且可以将这些权限授予他人。
【例3.62】收回【例3.59】中授予frogst的UPDATE权限。
REVOKEUPDATE
FROMfrogst
【例3.63】收回【例3.61】中授予frogst的权限。
REVOKEUPDATE(job_lvl)
CASCADE