ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:57.92KB ,
资源ID:21801135      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21801135.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机登记考试三级数据库技术Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机登记考试三级数据库技术Word格式文档下载.docx

1、用户如果想修改视图定义或索引定义,只能先将它们删除掉,然后再重建。(一)基本表1.创建基本表SQL语言使用CREATE TABLE语句创建基本表,其一般格式如下:CREATE TABLE表名(列名数据类型列级完整性约束 ,列名数据类型列级完整性约束 ,表级完整性约束 其他参数);2.修改基本表随着应用环境和应用需求的变化,有时需要修改已建立好的基本表,包括增加新列、增加新的完整性约束条件、修改原有的定义或删除已有的完整性约束条件等。SQL语言用ALTER TABLE语句修改基本表,其一般格式为:ALTER TABLE表名 ADD新列名数据类型完整性约束 DROP完整性约束名 MODIFY列名数

2、据类型;其中,表名为指定需要修改的基本表名,ADD子句用于增加新列和新的完整性约束,DROP子句用于删除指定的完整性约束,MODIFY子句用于修改原有的列定义。3.删除基本表当某个基本表不再需要时,可以使用SQL语句DROP TABLE进行删除,其一般格式为: DROP TABLE表名;(二)索引1.创建索引在SQL语言中,创建索引使用CREATE INDEX语句,其一般格式为:CREATEUNIQUECLUSTERINDEX索引名 ON表名(列名顺序,列名顺序);2.删除索引索引一经建立,就由系统使用和维护它,不需用户干预。创建索引是为了减少查询操作的时间,但如果数据增、删频繁,系统会花费许

3、多时间来维护索引。这时,可以删除一些不必要的索引。在SQL语言中,删除索引使用DROP INDEX语句,其一般格式为: DROP INDEX索引名;三、SQL的数据操纵(一)SQL的查询语句数据库查询是数据库操作的核心。SQL语言提供了SELECT语句进行数据库的查询,该语句的一般格式是:SELECT ALL|DISTINCT, FROM基本表(或视图),基本表(或视图) WHERE GROUP BYHAVING ORDER BYASC|DESC;1.简单查询简单查询仅涉及数据库中的一个表。(1)查询表中的若干列。(2)查询经过计算的值。(3)消除取值重复的行。(4)条件查询。通过WHERE子

4、句实现条件查询,WHERE子句常用的查询条件如下表所示。WHERE子句常用的查询条件 查询条件 谓词 比较 =,!=,!;NOT+上述比较运算符确定范围 BETWEEN AND,NOT BETWEEN AND确定集合 IN,NOT IN字符匹配 LIKE,NOT LIKE空值 IS NULL,IS NOT NULL多重条件 AND,OR WHERE子句中还可使用BETWEEN进行查询。(5)利用LIKE的查询。(6)涉及空值NULL的查询。(7)对查询结果排序。(8)使用集函数。SQL提供的集函数主要有:COUNT(DISTINCT|ALL*) 统计元组个数COUNT(DISTINCT|ALL

5、)统计一列中值的个数SUM(DISTINCT|ALL) 计算一列值的总和(此列必须是数值型)AVG(DISTINCT|ALL) 计算一列值的平均值(此列必须是数值型)MAX(DISTINCT|ALL) 求一列值中的最大值MIN(DISTINCT|ALL) 求一列值中的最小值如果指定DISTINCT短语,表示计算时取消指定列中的重复值。(9)对查询结果分组。GROUP BY子句将查询结果表按某一列或多列值分组,值相等的为一组。2.连接查询若查询同时涉及两个以上的表,则称之为连接查询。连接查询是关系数据库最主要的查询,包括等值连接、自然连接、非等值连接、自身连接、外连接和复合连接查询。(1)等值与

6、非等值连接查询。连接查询中连接条件的一般格式为:.列名1比较运算符表名2.列名2其中,比较运算符有:、=、=、=、!=。连接谓词还可以采用下面形式:.列名1BETWEEN 表名2.列名2AND表名2.列名3当连接运算符为“=”时,称为等值连接。使用其他运算符称为非等值连接。连接谓词中的列名称为连接字符。连接条件中的各连接字段类型必须是可比的。(2)自身连接。一个表与其本身进行连接。(3)外连接。外连接的表示方法:在连接谓词的某一边加上符号*(有的数据库系统中用+),它可以和另一边的表中所有不满足连接条件的元组进行连接。如果外连接符在连接条件的右边,称为右外连接,如果外连接符出现在连接条件的左边

7、,则称为左外连接。(4)复合条件连接。复合条件连接指WHERE子句有多个连接条件。3.嵌套查询嵌套查询亦称子查询。嵌套查询是指一个SELECT-FROM-WHERE查询块可以嵌入在另一个查询块之中。SQL中允许多层嵌套。每个子查询在上一级查询处理之前求解,即嵌套查询是由里向外处理的,这样外层查询可以利用内层查询的结果。查询涉及多个关系时用嵌套查询逐次求解层次分明,容易理解与容易书写,具有结构化程序设计的优点。(1)由谓词IN引导的子查询。在嵌套查询中,最常用的是谓词IN。(2)谓词是比较运算符的子查询。若能确切知道内层查询返回的是单值,则可以用比较运算符。(3)由NOTEXISITS谓词引导的

8、子查询。EXISTS代表存在量词,若内层查询结果非空,则外层查询的WHERE后面的条件为真,否则为假。一般地,要使EXISTS为真,当且仅当其后的SELECT语句查询结果非空。由NOTEXISTS引出的子查询,其目标列表达式通常都用*,因为带EXISTS的子查询只返回真值或假值,给出列名无实际意义。(4)集合查询。多个SELECT语句的结果可进行集合操作。集合操作中用得最多的是并操作UNION。(二)SQL的修改语句SQL的修改语句包括更新、删除和插入三类语句。1.更新(UPDATE)更新操作语句的一般格式为:UPDATESET=WHERE谓词;更新指定表中满足谓词的元组,把这些元组按SET子

9、句中的表达式修改相应字段上的值。2.删除(DELETE)删除语句的一般格式为ELETE FROM表名 WHERE谓词;从指定表中删除满足谓词的那些记录,没有WHERE子句时表示删去此表中的全部记录,但此表的定义仍在数据字典中。DELETE语句删除的是表中的数据,而不是关于表的定义。3.插入(INSERT)插入语句的一般格式有两种:(1)插入一个元组INSERT INTO表名(字段名,字段名) VALUES(常量,常量);(2)插入子查询结果INSERT INTO表名字段名,字段名) 子查询;第一种格式把一个新记录插入指定的表中;第二种格式把子查询的结果插入指定的表中。若表中有些字段在插入语句中

10、没有出现,则这些字段上的值取空值NULL。当然在表定义中说明了NOT NULL的字段在插入时不能取NULL。若插入语句中没有指出字段名,则新记录必须在每个字段上均有值。四、视图视图是关系数据库提供给用户以多种角度观察数据库中数据的重要机制。视图是从一个或几个基本表(或其他视图)导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。因此若基本表中的数据发生变化,从视图中查询得出的数据也就随之改变了。视图一经定义,就可以和基本表一样被查询和删除,也可以在一个视图之上再定义新的视图,但对视图的修改(插入、删除、更新)操作则有一定的限制

11、。(一)定义视图其一般格式为: CREATE VIEW () A1.创建视图SQL语言用CREATE VIEW命令创建视图,S WITH CHECK OPTION;其中:子查询通常是不含有ORDER BY子句和DISTNCT短语的任意的SELECT语句。可选择项WITH CHECK OPTION表示当对视图进行UPDATE、INSERT和DELETE操作时,保证更新、插入或删除的行满足视图定义中的谓词条件(即子查询中的条件表达式)。如果CREATE VIEW语句仅指定了视图名,省略了组成视图的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。但在下列3种情况下必须明确指

12、定组成视图的所有列名:(1)其中某个目标列不是单纯的属性名,而是集合函数或列表达式。(2)多表连接时选出了几个同名列作为视图的字段。(3)需要在视图中为某个列启用新的更合适的名字(重新命名列名)。需要说明的是,组成视图的属性列名必须依照上面的原则,或者全部省略或者全部指定。2.删除视图视图创建好后,若导出此视图的基本表被删除了,该视图将失效,但一般不会被自动删除。删除视图通常需要显式地使用DROP VIEW语句进行。该语句的格式为ROP VIEW一个视图被删除后,由该视图导出的其他视图也将失效,用户应该使用DROP VIEW语句将它们一一删除。(二)查询视图通过视图进行查询,首先要进行有效性检

13、查,检查查询涉及的表、视图等是否在数据库中存在,如果存在,则从数据字典中取出查询涉及的视图的定义,把定义中的子查询和用户对视图的查询结合起来,转换成对基本表的查询,然后再执行这个经过修正的查询。视图的消解(view resolution):把对视图的查询转换为对基本表的查询的过程称为视图的消解。(三)修改视图修改视图包括插入(INSERT)、删除(DELETE)和更新(UPDATE)三类操作。由于视图是虚表,因此对视图的更新,最终要转换为对基本表的更新。为防止用户通过视图对数据进行插入、删除和更新时,无意或故意操作不属于视图范围内的基本表数据,可在定义视图时加上WITH CHECK OPTIO

14、N子句,这样在视图上进行修改数据时DBMS会进一步检查视图定义中的条件,若不满足条件,则拒绝执行该操作。(四)视图的作用合适地定义和合理地使用视图的优点有:(1)视图能够简化用户的操作视图机制使用户可以将注意力集中在他所关心的数据上。如果这些数据不是直接来自基本表,则可以通过定义视图,使用户眼中的数据库结构简单、清晰,并且可以简化用户的数据查询操作。例如,对于那些经常要通过计算或要从若干张表连接来获得数据的查询,可将这类查询定义为一个视图,然后就可容易地对该视图进行操作。(2)视图使用户能以多种角度观察同一数据视图机制能使不同的用户以不同的方式观察同一数据,当许多不同种类的用户使用同一个数据库

15、时,这种灵活性是非常重要的。(3)视图对重构数据库提供了一定程度的逻辑独立性数据的逻辑独立性是指当数据库重构造时,如增加新的关系或对原有关系增加新的字段等,用户和用户程序不会受影响。在关系数据库中,数据库的重构造往往是不可避免的。(4)视图能够对机密数据提供安全保护有了视图机制,就可以在设计数据库应用系统时,对不同的用户定义不同的视图,使机密数据不出现在不应看到这些数据的用户视图上,这样就由视图的机制自动提供了对机密数据的安全保护功能。例如,student表涉及3个系的学生数据,可以在其上定3个视图,每个视图只包含1个系的学生数据,并只允许每个系的学生查询自己所在系的学生视图。五、SQL的数据

16、控制语句(一)授予权限SQL语言用GRANT语句向用户授予数据访问的权限,GRANT语句的一般格式为:GRANT ON对象名TO WITH GRANT OPTION;其语义为:将对指定操作对象的指定操作权限授予指定的用户。对不同类型的操作对象有不同的操作权限,常见的操作权限如下表所示。不同对象类型允许的操作权限 对象 对象类型操作权限 属性列TABLE SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES 视图 TABLE SELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES 基本表 TABLESELECT,INSERT,UPDA

17、TE,DELETE,ALTER,INDEX,ALL PRIVILEGES 数据库 DATABASECREATE TABLE (二)收回权限授予的权限可以由DBA或其他授权者用REVOKE语句收回,REVOKE语句的一般格式为:REVOKEFROM;六、嵌入式SQL SQL语言可以作为独立语言在终端交互式下使用,在这种方式下使用的SQL语言是面向集合的描述性语言,是非过程性的,即大多数语句都是独立执行,与上下文无关的。SQL语言还可以嵌入到某种高级语言中使用,利用高级语言的过程性结构来弥补SQL语言实现复杂应用方面的不足。这种方式下使用的SQL语言称为嵌入式SQL(Embedded SQL),能

18、嵌入SQL的高级语言称为主语言或宿主语言。把SQL嵌入主语言使用时必须解决3个问题:(1)区分SQL语句与主语言语句(2)数据库工作单元和程序工作单元之间的通信(3)一个SQL语句原则上可产生或处理一组记录,而主语言一次只能处理一个记录,为此必须协调两种处理方式。这是用游标(cursor)来解决的。第七章一、什么是“不好”的关系模式关系模式有如下“毛病”:(1)数据冗余。(2)更新异常(不一致性的危险)。(3)插入异常。如果某供应者没有供应任何货物,则我们无法记录他的名称和地址。(4)删除异常。如果一个供应者供应的所有货物都被删除,则我们无可奈何地丢失了该供应者的名称和地址。二、函数依赖(一)

19、函数依赖的定义设R(A1 ,A2 ,An )是一个关系模式,X和Y是A1 ,A2 ,An 的子集,若只要关系r是关系模式R的可能取值,则r中不可能有两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数决定Y”,或“Y函数依赖于X,记作XY。注意,函数依赖XY的定义要求关系模式R的任何可能的r都能满足上述条件。(二)函数依赖的逻辑蕴含设RU,F是一个关系模式,X,Y是U中属性组,若在RU,F的任何一个满足F函数依赖的关系r上,都有函数依赖XY成立,则称F逻辑蕴含XY。(三)码设K为关系模式R中的属性或属性组,若KU在F+中,而找不到K的任何一个真子集K,能使KU在F+中,则称K为关系模

20、式R的候选码。当候选码多于一个时,选定其中一个做主码。包含在任何一个候选码中的属性叫做主属性。不包含在任何候选码中的属性叫做非主属性。最简单的情况,单个属性是码。最极端的情况,整个属性组是码,称做全码。(四)函数依赖的公理系统设F是属性组U上的一组函数依赖,于是有如下推理规则:增广律:若XY为F所逻辑蕴含,且ZU,则XZYZ为F所逻辑蕴含。传递律:若XY及YZ为F所逻辑蕴含,则XZ为F所逻辑蕴含。注意:由自反律所得到的函数依赖均是平凡的函数依赖,事实上自反律的应用只依赖于U,不依赖于F。根据Armstrong公理系统的3条推理规则可以得到下面3条很有用的推理规则:(1)合并规则:由XY,XZ,

21、有XYZ。(2)伪传递规则:由XY,WYZ,有XWZ。三、1NF、2NF、3NF、BCNF(一)第一范式(1NF)及进一步规范化关系模式需要满足一定的条件,不同程度的条件称做不同的范式。最低要求的条件是元组的每个分量必须是不可分的数据项,这叫做第一范式,简称1NF,是最基本的规范化,在第一范式的基础上进一步增加一些条件,则为第二范式。以此类推,还有第三范式,Boyce-Codd范式,等等。函数依赖XY不仅给出了对关系的值的限制,而且给出了数据库中应该存储的某种联系:从X的值应该知道与之联系的惟一Y值。若X不含码,则有麻烦了。码是一个元组区别于其他元组的依据,同时也是一个元组赖以存在的条件。在一

22、个关系中,不可能存在两个不同的元组在码属性上取值相同,也不可能存在码或码的一部分为空值的元组。若某关系模式的属性间有函数依赖XY,而X又不包含码,那么在具有相同X值的所有元组中,某个特定的Y值就会重复出现,这是数据冗余,随之而来的是更新异常问题;某个X值与某个特定的Y值相联系,这是数据库中应存储的信息,但由于X不含码,这种X与Y相联系的信息可能因为码或码的一部分为空值而不能作为一个合法的元组在数据库中存在,这是插入异常或删除异常问题。第二范式、第三范式和Boyce-Codd范式就是不同程度地限制关系模式中X不包含码的函数依赖XY的存在。(二)第二范式(2NF)若关系模式R1NF,且每一个非主属

23、性完全函数依赖于码,则R2NF。2NF就是不允许关系模式的属性之间有这样的函数依赖XY,其中X是码的真子集,Y是非主属性。即不允许有非主属性对码的部分函数依赖。(三)第三范式(3NF)若关系模式R2NF,且每一个非主属性都不传递依赖于码,则R3NF。3NF就是不允许关系模式的属性之间有这样的非平凡函数依赖XY,其中X不包含码,Y是非主属性。X不包含码有两种情况,一种情况X是码的真子集,这是2NF不允许的,另一种情况X不是码的真子集,这是3NF不允许的。(四)Boyce-Codd范式(BCNF)若关系模式R1NF,且对于每一个非平凡的函数依赖XY,都有X包含码,则RBCNF。BCNF是3NF的进

24、一步规范化,即限制条件更严格。3NF不允许有X不包含码,Y是非主属性的非平凡函数依赖XY。BCNF则不管Y是主属性还是非主属性,只要X不包含码,就不允许有XY这样的非平凡函数依赖。因此,若RBCNF,则必然R3NF。然而,BCNF又是概念上更加简单的一种范式,判断一个关系模式是否属于BCNF,只要考察每个非平凡函数依赖XY的决定因素X是否包含码就行了。1NF,2NF,3NF,BCNF的相互关系是:BCNF3NF2NF1NF在函数依赖的范畴内,BCNF达到了最高的规范化程度。四、多值依赖和4NF 多值依赖多值依赖的定义是:设R是属性集U上的一个关系模式,X、Y是U的子集,Z=U-X-Y。若在R的

25、任一关系r中,只要存在元组t,s,使得tX=sX,就必然存在元组w,vr(w,v可以与s,t相同),使得wX=X=tX=sX,而wY=tY,wZ=sZ;Y=sY,Z=tZ,则称Y多值依赖于X,记做XY。若XY,而Z= ,则称XY为平凡的多值依赖。在关系模式WSC中,存在多值依赖WS。多值依赖具有以下性质:(1)若XY,则XZ,其中,Z=U-X-Y,即多值依赖具有对称性。(2)若XY,则XY,即函数依赖可以看作多值依赖的特殊情况。因为当XY时,对于X的每一个值x,都有Y的一个确定值y与之对应。(3)若XY在R(U)上成立,且YY,我们不能断言XY在R(U)上成立。这也是因为多值依赖的定义中涉及了

26、U中除X,Y之外的其余属性Z,考虑XY是否成立时涉及的其余属性Z=U-X-Y比确定XY成立时涉及的其余属性Z=U-X-Y包含的属性列多,因此XY不一定成立。五、关系模式的分解(一)模式分解的等价标准规范化过程中将一个关系模式分解为若干个关系模式,应该保证分解后产生的模式与原来的模式等价。常用的等价标准有要求分解是具有无损连接性的和要求分解是保持函数依赖的两种。将一个关系模式RU,F分解为若干个关系模式R1U1 ,F1 ,R2U2,F2 ,RmUn ,Fn (其中,U=U1U2Un ,Fi 为F在Ui上的投影),这意味着相应地将存在一个二维表r中的数据分散到若干个二维表r1,r2,rn中去(其中ri是r在属性组Ui上的投影)。我们当然希望这样的分解不丢失信息,也就是说,希望能通过对关系r1,r2 ,r n 的自然连接运算重新得到关系r中的所有信息。设关系模式RU,F分解为关系模式R1U1 ,F1 ,R 2U2 ,F2 ,RnUn ,Fn ,若F + =(F1F2Fn)+,即F所逻辑蕴含的函数依赖一定也由分解得到的各个关系模式中的函数依赖所逻辑蕴含,则称关系模式R的这个分解是保持函数依赖的。(二)关于模式分解的几个事实(1)分解具有无损连接性和分解保持函数依赖是两个互相独立的标准。具有

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1