




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理及应用课后答案第一章选择题1、A。从数据库管理系统的角度看,数据库系统的结构通常分为三级模式的总体结构,在这种模式下,形成了二级映像,实现了数据的独立性。其中三级模式结构指的是外模式、模式和内模式,二级映像指的是外模式/模式映像、模式/内模式映像。对于外模式/模式映像,当模式改变时,相应的外模式/模式映像作相应的改变,以使外模式保持不变,而应用程序是依据数据的外模式来编写的,外模式不变,应用程序就没必要修改,这保证了数据与程序的逻辑独立性。对于模式/内模式映像,当数据库的存储结构变了,模式/内模式映像会作相应的改变,以使模式保持不变,而模式不变,与模式没有直接联系的应用程序也不会改变,这保证了数据与程序的物理独立性。数据逻辑独立性指的就是当模式改变时,外模式和应用程序不需要改变,所以选项A正确。C选项的内模式改变,模式不变指的是数据的物理独立性,所以C选项不正确,B选项中前后两句与C选项相比顺序不符,所以B选项不正确。D选项中,应为“模式和应用程序不变”,不应为“外模式”,所以D选项不正确。2、B。DB指的是数据库(DataBase),DBMS指的是数据库管理系统(DataBase Management System),DBS指的是数据库系统(DataBase System),DBA指的是数据库管理员(Database Administrator),Data指的是数据。由书中概念易得DBS(数据库系统)包括DBMS(数据库管理系统),DBMS管理和控制DB(数据库),而DB载入、存储、重组与恢复Data(数据)。所以B选项正确。3、C。数据库系统的特点有:、实现数据共享;、减少数据冗余度;、保持数据的一致性;、数据的独立性;、安全保密性;、并发控制;、故障恢复由以上可得C选项错误,应改为数据冗余度“低”。4、C。DB是长期储存在计算机内、有组织的、可共享的大量数据集合;DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问计算机软件、硬件和数据资源组成的系统;DBMS是把用户对数据的操作转化为对系统存储文件的操作,有效地实现数据库三级(外模式、模式和内模式)之间的转化;MIS指的是管理信息系统(Management Information System),是一个以人为主导,利用计算机硬件、软件及其他办公设备进行信息的收集、传递、存贮、加工、维护和使用的系统。由以上概念可知,位于用户和数据库之间的一层数据管理软件是DBMS。所以C选项正确。5、C。书中图1.6明确指出模式/内模式映像把概念数据库与物理数据库联系起来,所以C选项正确。6、C。数据库有这样三层关系,第一层和第三层不能直接发生关系,所以D选项不正确,内模式与外模式没有直接关系,应改为“模式与应用程序不变”。由数据库的三级模式、两级映像概念可知,数据的物理独立性指的是内模式改变,模式(即概念模式)不变,所以C选项正确,而B选项先后顺序不正确。A选项指的是数据的逻辑独立性,与题意不符,故不正确。7、D。模式也称逻辑模式和概念模式,是数据库中全体数据逻辑结构和特征的描述,描述现实世界中的实体及其性质与联系,是所有用户的公共数据视图;外模式也称子模式或用户模式,它是用以描述用户看到或使用的数据的局部逻辑结构和特性的,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据;内模式也称存储模式,是整个数据库的最底层表示,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。由以上概念可知,D选项正确。8、A。同第7题答案概念相同,故A选项正确。9、C。同第7题答案概念相同,故C选项正确。10、D。数据库系统的三级模式提供了两级映像,而两级映像实现了二级独立性,从而达到了数据独立性。简答题1、简述数据管理技术的发展历程。答:数据管理技术的发展共经历了三个阶段。、人工管理阶段20世纪50年代的计算机主要用于科学计算,数据处理都是通过手工方式进行的。当时外存没有磁盘等直接存取的存储设备,数据只能存放在卡片或纸带上;软件方面只有汇编语言,没有操作系统,数据的处理是批处理,程序运行结束后数据不保存。这些决定了当时的数据管理主要依赖于人工。、文件系统阶段20世纪50年代年代末到60年代中期,计算机技术有了很大的发展,计算机的应用也从科学计算发展到了文档、工程管理。这时计算机在硬件上有了大容量的磁盘、磁鼓等外存设备;软件上有了操作系统、高级语言,出现了专门管理数据的文件系统;处理方式上不仅有批处理,还增加了联机处理方式。、数据库管理阶段20世纪60年代后期,随着计算机应用越来越广泛,需要管理的数据规模也日益增长。这时硬件上已有大容量的硬盘出现,处理数据的方式上联机实时处理的需求也越来越多。在这种背景下,原先的以文件系统管理数据的方式已经不再适应发展的需要,于是人们对文件系统进行了扩充,研制了一种结构化的数据组织和处理方式,才出现了真正的数据库系统。数据库为统一管理与共享数据提供了有力支撑,这个时期数据库系统蓬勃发展形成了有名的“数据库时代”。数据库系统建立了数据与数据之间的有机联系,实现了统一、集中、独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据的共享。2、简述数据、数据库、数据库管理关系、数据库系统的概念。答:、数据(Data):描述事物的符号记录,是数据库的处理对象、数据库(DataBase,简称 DB):长期存放在计算机存储设备上有组织的、可共享的、相关的数据集合。是数据库系统DBS的核心,是被管理的对象。、数据库管理系统(DataBase Management System,简称DBMS):把用户对数据的操作转化为对系统存储文件的操作,有效地实现数据库三级(外模式、模式和内模式)之间的转化,负责对DB进行管理与维护。、数据库系统(DataBase System,简称DBS):实现有组织地、动态地存储大量关联数据,方便多用户访问计算机软件、硬件和数据资源组成的系统,即具有管理和控制数据库功能的计算机系统。3、简述数据库系统的三级模式和两级映像的含义。答:从数据库管理系统的角度看,数据库系统的结构通常分为三级模式的总体结构,在这种模式下,形成了二级映像,实现了数据的独立性。其中三级模式结构指的是外模式、模式和内模式,二级映像指的是外模式/模式映像、模式/内模式映像。模式也称逻辑模式和概念模式,是数据库中全体数据逻辑结构和特征的描述,描述现实世界中的实体及其性质与联系,是所有用户的公共数据视图;外模式也称子模式或用户模式,它是用以描述用户看到或使用的数据的局部逻辑结构和特性的,用户根据外模式用数据操作语句或应用程序去操作数据库中的数据;内模式也称存储模式,是整个数据库的最底层表示,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。对于外模式/模式映像,当模式改变时,相应的外模式/模式映像作相应的改变,以使外模式保持不变,而应用程序是依据数据的外模式来编写的,外模式不变,应用程序就没必要修改,这保证了数据与程序的逻辑独立性。对于模式/内模式映像,当数据库的存储结构变了,模式/内模式映像会作相应的改变,以使模式保持不变,而模式不变,与模式没有直接联系的应用程序也不会改变,这保证了数据与程序的物理独立性。4、什么是数据独立性?简述数据库系统如何实现数据独立性。答:、数据独立性包括两个方面:数据的物理独立性和数据的逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变;逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。综上所述,数据独立性是由DBMS通过用户程序与数据的全局逻辑结构及数据的存储结构之间二级映像得到的。、数据库系统的二级独立性是指物理独立性和逻辑独立性。三个抽象级间通过两级映像进行相互转换,使得数据库的三级形成一个统一的整体,使得数据库系统实现了数据的独立性。5、数据库管理系统的主要功能有哪些?答:、数据定义功能;、数据操纵功能;、数据组织、存取功能;、数据库运行管理功能;、数据库建立与维护功能第二章选择题1、B。两个实体间的联系集可分为3中。、一对一关系(1:1):实体集A中的每个实体有且仅和实体集B中的一个实体有联系;、一对多联系(1:n):实体集A中的每个实体与实体集B中任意多个(含零个或多个)实体有联系,而实体集B中每个实体至多和实体集A中的一个实体有联系;、多对多联系(m:n):实体集A中的每个实体与实体集B中任意多个(含零个或多个)实体有联系,而实体集B中每个实体也与实体集A中任意多个(含零个或多个)实体有联系由题意可得,对于班级和学生两个实体而言,一个班级可以有多个学生,而每个学生只能属于一个班级,所以班级和学生之间的联系类型属于1:n。故B选项正确。2、A。实体:是现实世界中客观存在并可相互区别的事物。实体集:是具有相同特征或能用相同特征描述的实体的集合。字段:标记实体属性的命名单位。记录:字段的有序集合。由以上概念可知,A选项正确。3、C。在信息世界中,数据库技术用到以下一些术语:、实体:客观存在的、可以相互区别的事物。、实体集:性质相同的同类实体的集合。、属性:实体有很多特性,每一个特性称为一个属性。、码:能唯一标识每个实体的属性或属性集。由以上概念可知,C选项正确。4、C。每个教研室可以有多个教师,而每个教师只属于一个教研室,故教研室对教师的联系是1:n,所以A选项不正确;每个父亲可以有多个孩子,而每个孩子只有一个父亲,故父亲对孩子的联系是1:n,所以B选项不正确;每个省对应着一个省会,而每一个省会只属于一个省,故省对省会的联系是1:1,所以C选项正确;每个供应商可以给多个工程项目供应货品,而每个工程项目也可以由多个供应商供应货品,故供应商与工程项目的联系是m:n,所以D选项不正确。5、A。由题意可得,对于学生和课程两个实体而言,每个学生可以学多门课程,而每个课程也可以有多个学生学习,故学生与课程的联系是m:n,故选项A正确。6、A。由第三章关系数据库中关系的性质一节可知,关系是一种规范化了的二维表格,所以A选项正确。7、A。请注意题目中“分别”两字,课程号和学号一起作为“选课”关系的主键,但是课程号、学号分别为“选课”关系的外键。所以A选项正确。8、A。主键:有时一个关系中有多个候选码,这时可以选择其中一个候选码作为主键,每个关系中都有一个并且只有一个主键。所以A选项正确。主键不可以去空值,所以C选项不正确。如第7题中,学号为“学生”关系的主键,但为“选课”关系的外键,所以B选项不正确。如第7题中,课程号和学号一起作为“选课”关系的主键,所以D选项不正确。9、C。UML语言有如下几种关系。、泛化关系:泛化是一般类别事物(称为父类或超类)和该类别事物的较为特殊的种类(称为子类或儿子)之间的关系,一般特殊类别间接地具备了一般类别的各种特征。泛化关系是用来表示类与类之间的继承关系。、依赖关系:依赖关系是一种使用关系,它表示一个模型元素需要另一个模型元素来达到某种目的,供应方的修改会影响客户方的执行结果。、关联关系:关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。关联关系反应了对象之间相互依赖、相互作用的关系。、聚合关系:聚合关系是关联关系的一种,是强的关联关系,它构成了一个层次结构。聚合关系中一个类由几部分类组成,部分类和由它们组成的类之间是一种整体与局部的关系。学生与课程之间存在选课关系,这既不是继承关系,也不是使用关系,也不存在整体与局部的关系,只有相互依赖、相互作用的关系,所以C选项正确。10、D。聚合关系是一种特殊形式的关联关系,它表示类之间的关系是整体与部分的关系。一辆轿车包含四个车轮、一个方向盘、一个发动机和一个底盘,这是聚合的一个例子。在需求分析中,“包含”、“组成”、“分为部分”等经常设计成聚合关系。简答题1、什么是E-R图?构成E-R图的基本元素是什么?答:、E-R图也称实体-联系图,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型,以及描述现实世界中客观数据对象及其特征、数据对象之间的关联关系。、基本元素有:实体集、属性和联系。2、简述E-R图的设计步骤。答:、确定所有的实体集合 。、选择实体集应包含的属性 。、确定实体集之间的联系。 、确定实体集的关键字,用下划线在属性上表明关键字的属性组合 。、确定联系的类型,用线将表示联系的菱形框联系到实体集时,在线旁注明1或n来表示联系的类型。3、解释类的含义,并简述类的组成元素。答:类是任何面向对象系统的最重要的构造块。类是对一组具有相同属性、操作、关系和语义的对象描述。一个类是对作为词汇表一部分的一些事物的抽象。类不是个体对象,而是描述一些对象的一个完整集合。类的组成元素有类名、属性和操作。4、简述类之间的各种关系。答:类之间最重要的有三种关系:、泛化关系:泛化是一般类别事物(称为父类或超类)和该类别事物的较为特殊的种类(称为子类或儿子)之间的关系,一般特殊类别间接地具备了一般类别的各种特征。泛化关系是用来表示类与类之间的继承关系。、依赖关系:依赖关系是一种使用关系,它表示一个模型元素需要另一个模型元素来达到某种目的,供应方的修改会影响客户方的执行结果。、关联关系:关联关系是一种结构关系,它指明一个事物的对象与另一个事物的对象之间的联系。关联关系反应了对象之间相互依赖、相互作用的关系。5、用E-R图和UML语言分别描述学生、课程、教师之间的关系:学生 属性:学号、姓名、性别、专业 方法:选课课程 属性:课号、课名教师 属性:工号、姓名、性别、部门 方法:授课答:E-R图:UML语言:教师通过课程来达到教育学生的目的,则教师和课程之间为依赖关系;同理,学生通过课程来达到学习的目的,则学生和课程之间为以来关系。教师与学生之间有授课与被授课的关系,则教师和学生之间为关联关系综合题1、2、3、E-R图如下所示,每个实体联系的属性即每个“菱形”的属性第三章选择题1、D。全码的定义:若关系中只有一个候选码,且这个候选码中包含全部属性,则该候选码为全码。所以D选项正确。2、C。关系有如下几条性质:、关系中的每一个属性值都是不可分解的、关系中不允许出现重复行、行列无序、列是同质的,即这一列具有相同的数据类型由以上四点性质可知,C选项正确。3、A。关系的完整性有以下几条规则:、实体完整性规则:若属性是基本关系的主码所包含的属性,则属性不能取空值。(注:主码不能为空,且主码整体取值也不空)、参照完整性规则:如果属性集K是关系模式R1的外键,同时K也是关系模式R2的属性,但不是R2的主键,那么K为R2的外键。在R2关系中,K的取值只允许有两种可能:、空值;、不为空时,等于R1关系中某个主键值。、用户自定义的完整性规则:用户针对具体的数据约束,设置完整性规则。同第二章数据模型课后练习选择题第八题答案相同,所以A选项正确。4、A。关系数据库系统是支持关系模型的数据库系统,故关系数据库用关系实现数据之间的联系,所以A选项正确。5、C。在关系中,列是同质的,所以每一列的分量必须是相同的数据类型,故A选项不正确;在关系中,行、列无序,所以列的顺序改变,关系的含义不会发生变化,故B选项不正确;在关系中,不允许出现重复行,所以任意两个元祖的对应属性不允许相同,故C选项正确;关系的性质中不包含“关系来自笛卡尔积的全部元祖”这条性质,故D选项不正确。6、D。关系代数的操作分为两类:、传统的集合操作:并、交、差、笛卡尔积、专门的关系运算:投影、选择、连接、除法交:假设有关系R和S,R和S的交记为RS,由于RS=R-(R-S),因此交操作不是一个独立的操作,所以交操作不是一个基本操作。除法:设关系R和S分别为r元和s元关系(设rs0),、T=1,2,r-s(R);、W=(TS)-R;、V=1,2,r-s(W);、RS=T-V所以除法也不是一个独立的操作,即不是一个基本操作。故把交操作和除运算排除,D选项正确。7、B。组合操作即专门的关系运算,即投影、选择、连接、除法。故B选项正确。8、C。投影:对一个关系进行垂直分割,消去某些列和重复行,并重新安排列的顺序的操作A,C(R)为取属性值为A,C的两列组成,并消去重复行,所以A选项不正确。1,3(R)等价于A,C(R),所以B,D选项不正确,C选项正确。9、C。笛卡尔积:设关系R和S的元数分别为r和s,则RS是一个(r+s)元的集合,共有rs个元祖。因为4+3=7,所以C选项正确。10、B。自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。设关系R和S的公共属性是A1,A2,AK,则R和S的自然连接步骤为:、计算RS;、挑选R和S中满足R.A1=S.A1,R. AK=S. AK的那些元祖;、去掉S. A1, S. A2,S. AK这些列;题目中已明确指出这两个关系没有公共属性,若进行自然连接首先进行笛卡尔积的运算,而运算后不能删除具有相同属性的列,所以实际上就是进行笛卡尔积运算,故B选项正确。综合题1、a、如果关系U和V具有不相同的属性列时,UV的最小和最大元组数量为0;b、如果关系U和V具有相同的属性列时,若mn,则UV的最小元组数量为0,UV的最大元组数量为n;若mn,则UV的最小元组数量为m,UV的最大元组数量为m+n;若m500(Orders)Pid (Price=0.50 (Products) Customers)、Cname-Cname(Cid,Pid(Pid=P01(Orders) Customers)S、Cid,Cname,Aid,Aname,City(CustomersAgents) Orders)令Q=CustomersAgents,则S为Q.Cid=Orders.CidQ.Aid=Orders.Aid、Pid (Cid(city=南京(Customers)(Aid(city=北京(Agents)Orders)、Cid,Pid(Orders)Price=1.00 (Products)第四章选择题1、A。运算符对应的是投影操作,而投影操作是对一个关系进行垂直分割,消去某些列,并重新按排列的操作。则由定义可知,例如2,4(S)表示关系S中的第二列和第四列组成了一个新的关系,新关系的第一列为S中的第二列,新关系的第二列为S中的第四列,由此可知,运算最初的作用就是一个选择的作用,选择出被需要的列来组成一个新的关系,故答案A正确。FROM言下之意即为“从来”,与运算语义不符,故答案B不正确。WHERE代表的是条件,与选择无关,故答案C不正确。GROUPE BY代表将结果按一定规则进行分组,与运算无任何关系,故答案D不正确。2、C。运算符对应的是选择操作,而选择操作是对一个关系进行水平切割,选取符合条件的元组的操作。则由定义可知,运算只选取符合条件的元组,即与WHERE代表的条件相符合,故答案C正确。3、C当我们使用SQL Server Management Studio时可知,当我们输入一个正确的SELECT语句时,输出出来的是一个我们需要的表格,所以答案C正确。4、C。在课本4.5.1这节中可知,RDBMS执行CREATE VIEW语句的结果只是把视图的定义存入数据字典,并不执行其中的SELECT语句。故答案C正确。5、C。定义视图:SQL语言用CREATE VIEW 命令建立视图故答案C正确。 6、B。由书4.3.4一节可知,集合操作主要包括并操作、交操作和差操作结果表的列数必须相同,对应项的数据类型也必须相同,所以当两个子查询的结果结构完全一致时,才可以执行并、交、差操作,故答案B正确。7、C。HAVING必须和GROUP BY连用,一般结构为:SELECT FROM GROUP BY HAVING当存在HAVING语句时,GROUP BY语句必须存在,故答案C正确。8、B。由4.3.1中第2项第(4)条字符匹配的查询可知,“%”代表任意长度(长度可以为0)的字符串,“-”代表任意单个字符。故答案B正确。9、D。已知BETWEENAND是闭区间,所以数据是60100的闭区间,故答案D正确。10、A。删除数据的一般格式:DELETE FROM WHERE 由4.4.3可知,DELETE语句的功能是从指定表中删除满足WHERE子句条件的所有元祖。如果省略WHERE子句,表示删除表中全部元组,但表的定义仍在数据字典中,即DELETE语句删除的是表中的数据,而不是关于表的定义。故答案A正确。综合题1、创建客户表CustomersCreate table Customers(Cid char(6) primary key,Cname varchar(20) not null,City varchar(20) not null)、创建代理人表AgentsCreate table Agents(Aid char(4) primary key,Aname varchar(20) not null,City varchar(20) not null)、创建产品表ProductsCreate table Products(Pid char(4) primary key,Pname varchar(20) not null,Quantity int,Price float(2)、创建订单表OrdersCreate table Orders(Ord_no char(4) primary key,Months smallint not null,Cid char(5) foreign key references Customers(Cid),Aid char(4) foreign key references Agents(Aid),Pid char(4) foreign key references Products(Pid),Qty int,Amount float(2)2、select c#,cname from C where teacher=LIU、select s#,sname from Swhere sex=男 and age23、select cname,teacher from Cwhere c# in(select c# from SCwhere s#=S3)、select sname from Swhere sex=女 and s# not in(select distinct s# from SCwhere c# not in(select c# from Cwhere teacher=LIU)、select distinct c# from SC where s# not in(select s# from Swhere sname=WANG)、select distinct a.s# from SC as a,SC as bwhere a.s#=b.s# and a.c#!=b.c#、select c#,cname from cwhere not exists(select * from s where not exists(select * from sc where s#=s.s# and c#=c.c#)、select distinct s# from sc as awhere not exists(select * from c where teacher=LIU and not exists(select * from sc as bwhere b.s#=a.s# and b.c#=a.c#)3、select * from Orders where Cid=C006、select distinct Cname from Customers c,Orders owhere c. Cid=o. Cid and Pid=P01、select Cname from Customers c,Orders o,Products pwhere c. Cid=o. Cid and p. Cid=o. Cid and Price=0.50Group by Cnamehaving SUM(Qty) 500、select distinct Cname from Customers c,Orders owhere c. Cid=o.cid and c. Cid not in(select Cid from Orderswhere Pid=P01)、select distinct c. Cid, Cname,a.Aid,Aname,c.Cityfrom Customers c,Agent a,Orders owhere c.Cid=o.Cid and a.Aid=o.Aid and c.City=a.City、select distinct Pid from Orders o,Customers c, Agents awhere o.Aid=a.Aid and c.Cid=o.Cid and c.City=南京 and a.City=北京、select distinct c.Cid from Orders o,Customers c,Agents awhere p.Pid=o.Pid and c.Cid=o.Cid and p.Pid in(select Pid from Productswhere Price=1.00)4、select * from Orders where Qty between 500 and 800、select Pname 产品名称,Price 单价 from Productswhere Pname like %水%、select * from Orderswhere Cid=(select Cid from Customerswhere Cname=王_) and Months=1Order by Qty desc、select Months 月份,count(*) 订单数,sum(Qty) 总订货数量,sum(Amount)总金额from OrdersGroup by MonthsOrder by Months desc、select Months from Orderswhere Cid in(select Cid from Customerswhere City=上海)Group by Monthshaving sum(Qty)200、select sum(Qty) 总订货数量,sum(Amount) 总金额from Orderswhere Pid=(select Pid from Productswhere Pname=橡皮)、select distinct o.Cid,Cname from Orders o,Customers cwhere o.Cid=c.Cid and Aid not in(select Aid from Agentswhere City=北京) and Pid not in (select Pid not in (select Pid from Productswhere Pname=笔袋)、select Ord_no from Orderswhere QtyAll(select Qty from Orderswhere Months=3)、insert into Productsvalues(P20,粉笔,25000,1.50)、update Productsset Price=Price+0.50where Price=1.00、update Orders set Qty=200where Aid=(select Aid from Agentswhere City=上海) and Pid=(select Pid from Products where Pname=笔袋)、update Ordersset Aid=A05where Aid=A06 and Pid=P01 and Cid=C006、delete from Customerswhere Cid=C006、delete from Orderswhere Pid=(select Pid from Productswhere Pname=尺子) and Months=3、create view Agentasselect Aid,Pid,Pricefrom Agents,Products、create view productasselect Pname 产品名称,sum(Qty) 总订货数量,sun (Amount) 总金额from Products p,Orders owhere p.Pid=o.Pid and Price1.00group by Pname第五章简答题1、什么是存储过程?为什么要使用存储过程?答:、存储过程的定义:存储过程是存储在数据库服务器中的一组编译成单个执行计划的SQL语句。原因:存储过程可以包含程序控制流、查询子句、操作字句,还可以接受参数、输出参数、返回单个值或多个结果集,使用存储过程有如下优点:、由于存储过程不像解释执行的SQL语句那样在提出操作请求时才进行语法分析和优化,因而运行效率高,它提供了在服务器端快速执行SQL语句的有效途径;、存储过程降低了客户机和服务器之间的通信量。客户机上的应用程序只要通过网络向服务器发出存储过程的名字和参数,就可以让RDBMS执行多条SQL语句,并执行数据处理,只将最终处理结果返回客户端;、方便企业实施规则。可以吧企业规则的运算程序写成存储过程放入数据库服务器,由RDBMS管理,既有利于集中控制,又方便维护。当用户规则发生变化时只要修改存储过程,无需修改其他应用程序。2、试述触发器的概念和作用答:概念:触发器是用户定义在关系表上的一类由事件驱动的特殊过程,也是一种保证数据完整性的方法。触发器也可以看做是一类特殊的存储过程,一旦定义,无须用户调用,任何对表的修改操作均由服务器自动激活相应的触发器。作用:能够实现主键和外键所不能保证的复杂的参照完整性和数据的一致性。3、什么是INSERTED表和DELETED表?试说明这两张表的结构。INSERTED表:用于存储INSERT和UPDATE语句所影响的行的复本,执行INSERT和UPDATE语句时,新的数据行被添加到基本表中,同时这些数据行的备份被复制到INSERTED临时表中。DELETED表:用于存储DELETE和UPDATE语句所影响的行的复本,执行DELETE或UPDATE语句时,行从触发器表中删除,并传输到DELETED表中,DELETED表和元数据表通常没有相同的行。两张表的结构:、这两个表都是逻辑表,并且是由系统管理的,存储在内存中,不是存储在数据库中。因此,不允许用户直接对其操作。 、这两个表的结构与被该触发器作用的表有相同的表结构。它们是动态驻留在内存中,当触发器工作完成,它们也被删除。 、这两个表主要保存因用户操作而被影响到的原数据值或新数据值,且是只读的,可以引用表中的数据,但不能向其写入内容。4、什么是默认对象和默认值?他们有什么区别?默认对象: 需要用create default语句进行定义,作为一种单独存储的数据库对象,它是独立于表的,删除表并不能删除默认对象,需要使用drop default语句删除默认对象。默认值:是一种数据库对象,可以绑定到表的一列或多列上,也可以绑定到用户自定义的数据类型上,其作用类似于DEFAULT约束,当向表中插入数据,且没有为列输入值时,系统自动给列附一个默认值。与DEFAULT不同的是它的使用规则,通过一次定义,可以多次使用。在create table或alter table语句中定义后,被嵌入到定义的表结构中。也就是说,在删除表的时候默认约束也将随之被删除。区别:默认值是用create table语句创建表时,使用default子句为表中的列提供默认值; 默认值对象是用create default语句来创建时,使用时须将它绑定到列上。5、什么是规则?规则和CHECK约束有什么区别?答:、规则是数据库对存储在表中的列或用户自定义数据类型中的值的规定和限制,是单独存储的独立的数据库对象。、区别:、CHECK约束是在使用CREATE TABLE语句建表时指定的,而规则是作为独立于表的数据库对象,通过与指定表或数据类型绑定来实现完整性约束。、在一列上只能使用一个规则,但可以使用多个CHECK约束、规则可以应用于多个列,还可以应用于用户自定义的数据类型,而CHECK约束只能应用于它定义的列。综合题1、create procedure addPrice Pid char(4) as update Products set Price=Price+0.5 where Pid=Pid exec addPrice Pid=P01(执行过程自定义)、create procedure newRecordPid char(4),Pname varchar(20),Quantity int,Price realasinsert into Productsvalues(Pid,Pname,Quantity,Price)exec newRecordPid=P09,Pname=笔记本,Quantity=20,Price=4.50、create procedure totalQtyCid char(5),Aid char(5)asselect sum(Qty) from Orderswhere Cid=Cid and Aid=Aidexec totalQty Cid=C001,Aid=A012、create trigger insertNew on Products instead of insert as declare Pid char(4),Pname varchar(20),Quantity int,Price real select Pid=Pid,Pname=Pname,Quantity=Quantity,Price=Price from inserted if Price0.50 begin set Price=0.50 0.50不用加上单引号,因为Price为real类型 print 产品单价不得低于0.50元! end insert into Products values (Pid,Pname,Quantity,Price)、当订货数量发生变化时,需要用inserted表找到相应的唯一的Pid,因为修改了一个数量,所以inserted表中只有一个Pid,通过这个Pid就能找到相应的Pricecreate trigger changeQtyon Ordersafter updateasdeclare Qty int,Pid char(4)select Qty=Qty,Pid=Pidfrom insertedbegin transactionif update(Qty)beginupdate Ordersset Amount=Qty*(select Price from Productswhere Pid=pid)endcommit transaction第六章选择题1、A。二元关系二维表,满足二元关系的一定为BCNF,而不论任何一张表,最少要满足的是1NF,故答案A正确。2、C。由书6.3一节可知,答案C正确。3、B。由2NF的定义可知,1NF消除了非主属性对候选码的部分函数依赖成为了2NF,故答案B正确。4、A。由书6.3.一节可知,规范化的目的是要设计“好的”关系数据库模式,其基本思想是消除关系模式中的数据冗余,消除数据依赖中的不合适的部分,以解决数据插入、删除时发生的异常现象,故答案A正确。5、D。已知不论任何一张表,表中的候选键可以有1个或多个,但是主键必须只有且仅有1个,故答案D正确。6、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区重阳节工作总结模版
- 小学数学教师教育教学工作总结模版
- 统编人教版三年级语文下册《口语交际:春游去哪儿玩》示范公开课教学课件
- 苏少版四年级音乐下册第一单元四季放歌教学设计
- 灾害急救护理体系构建
- 员工心态培训总结模版
- 陕西省2025届七下数学期末经典模拟试题含解析
- 新员工入职工作心得体会模版
- 级长工作总结大班级级长工作总结模版
- 大学生职业规划大赛《经济统计学专业》生涯发展展示
- 31小动物本领大-课件
- 初三数学总复习教学策略课件
- 一年级语文下册识字表(可打印最全版本)
- 结晶葡萄糖生产工艺简介课件
- 危大工程验收记录表(模板工程)
- 中班科学活动:风车转转转课件-2
- 医院职能部门监管及持续改进记录表(DOC57)
- 质量整改通知单(样板)
- 2022年教学教材《石油裂解与乙烯》精品优秀教案
- 八年级地理上册《第一章中国的疆域与人口》教案湘教
- 品质异常8D改善报告(杂项)
评论
0/150
提交评论