数据库题库(二)

第四章

PG应用(上)

(1)B/S结构的软件需要针对不同的操作系统开发不同版本的软件,每台客户机需要安装专门的客户端,而且当系统升级时,每一台客户机都需要重新安装客户端新版本(×)

这是C/S结构的特点

(2)SQL语言和C/C++/Java/C#等高级语言混合编程时,可以将静态或动态SQL语句嵌入高级语言,也可以让高级语言通过ODBC、JDBC、ADO等调用SQL(√)
(3)C/S系统利用SQL语言和C/C++/Java/C#等高级语言的各自优势,SQL语言访问数据库,C/C++/Java/C#等高级语言进行数据处理和表示(√)
(4)C/S结构通常包括多层:浏览器层、Web服务器、应用服务器、数据库服务器和数据库(×)

这是B/S结构的特点

(5)从HTML到SQL需要两个桥梁,HTML与高级语言之间的JDBC、ODBC、ADO等桥梁;高级语言与数据库之间的CGI、ASP、JSP等桥梁(×)

(5.5)从HTML到SQL需要两个桥梁,HTML与高级语言之间的CGI、ASP、JSP等桥梁;高级语言与数据库之间的JDBC、ODBC、ADO等桥梁(√)

(6)游标(Cursor)用来解决宿主语言一次只能处理一个元组,而pgSQL语言一次处理多个元组的矛盾(√)
(7)对于SELECT语句,没有使用游标,加上前缀和结束标志后,就直接嵌入在主程序中。这样一定是错误的(×)
(8)ABSOLUTE 6是指把游标移向查询结果的倒数第6行(×)

NEXT表示把游标从当前位置推进一行
PRIOR表示把游标从当前位置返回一行
FIRST表示把游标移向查询结果的第一行
LAST表示把游标移向查询结果的最后一行。
RELATIVE3把游标从当前位置推进3行
RELATIVE-3把游标从当前位置返回3行
ABSOLUTE3把游标移向查询结果的第3行
ABSOLUTE-3把游标移向查询结果的倒数第3行。

(9)PG提供的SQL语言可以作为子语言嵌入在宿主语言中使用,这里所说的宿主语言就是指SQL语言(×)

pgSQL不仅可以作为独立的数据语言直接以交互的方式使用,还可以作为子语言嵌人在宿主语言中使用,这里所说的宿主语言是指常见的高级程序设计语言,如C、Java,C++语言等。

(10)预处理程序ECPG对.c文件进行预处理,主要就是把其中的pgSQL语句转换成主语言能够识别的SQL函数调用的形式,结果是同名.pgc文件(×)
数据库题库(二)_第1张图片
(11)把pgSQL嵌入到宿主语言中使用还必须要解决以下四个方面的问题:连接数据库、嵌入识别问题、宿主语言与pgSQL语言的数据交互问题、宿主语言的单记录与pgSQL的多元组的协调问题(√)
(11.5)把pgSQL嵌入到宿主语言中使用还必须要解决以下四个方面的问题是连接数据库、嵌入识别、数据交互、单记录 与多元组的协调(√)
数据库题库(二)_第2张图片
(12)宿主语言连接数据库,通常需要给出数据库服务器地址、端口号、数据库名、用户名、口令等,必要时可能还需要安装和加载数据库驱动程序(√)

(13)为了区分宿主语言和pgSQL语句,为pgSQL语句加一个识别前缀标识“EXEC SQL” ,和结束标志:分号“;”(√)
(14)解决宿主语言和pgSQL语言的数据交换问题的答案是,引入共享变量的概念。在pgSQL语句中使用共享变量时,变量名前需加一个引号(×)

数据库题库(二)_第3张图片

(15)解决宿主语言一次只能处理一个记录,而pgSQL语言一次处理多个元组的矛盾,方法是使用共享变量(×)
在这里插入图片描述
(16)当无法确定SELECT语句查询结果至多是一个元组时,需要用游标机制把多个元组一次一个地传送给宿主语言程序进行处理。另外,在游标处于活动状态时,也可以更新或删除游标指向的元组(√)
(17)SQLSTATE是一个特殊变量,用于连接pgSQL执行系统和宿主语言,它是一个五字符的数组,每次调用pgSQL的库函数,向SQLSTATE变量中存放一个代码,以反应调用中出现的问题,比如〞02000〞表示没有产生任何错误,〞00000〞表示没有找到结果元组(×)

00000:操作执行成功,并且未产生任何类型的警告或异常情况。
类代码 01 警告
类代码 02 无数据
类代码 07 动态 SQL 错误
类代码 08 连接异常

(18)如果实际应用中有时SQL语句只能在实际运行时才能完全确定,这时就需要动态pgSQL语句。动态pgSQL语句需要先准备再执行(√)

(19)Web服务器接收从浏览器发来的请求,然后根据情况有两种处理方式:①直接返回HTML格式Web页面;②调用应用服务器中的应用程序,并接收从应用服务器返回的数据,整合成HTML格式页面发送给浏览器(√)

(20)浏览器通过互联网向Web服务器提出访问Web页面的请求,并接受从Web服务器返回的页面(√)
(21)‎应用服务器接收Web服务器的调用请求,访问互联网上的数据库服务器,并将结果返回Web服务器(√)
(22)为了区分宿主语言和pgSQL语句,需要给pgSQL语句加一个识别前缀标识为BEGIN(×)
数据库题库(二)_第4张图片
(23)B/S结构,包括客户机、服务器两层,数据存储由服务器负责,数据处理任务可以在客户机和服务器之间灵活分配,数据表示由客户机负责,客户机需要时向服务器发出请求,服务器响应这些请求并把结果或状态信息返回给客户机(×)

这个是C/S的特点。C/S两层,B/S多层

PG应用(下)

(1)JDBC是一种用于执行SQL语句的Java API,它定义了用来访问PG数据库的标准Java类库,只能是PG的SQL语句,而不包括其它关系数据库系统(×)

(2)JDBC定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问各种关系数据库,包括pgSQL(√)

(2.5)​ODBC定义了用来访问数据库的标准Java类库,使用这个类库可以以一种标准的方法、方便地访问各种关系数据库,包括pgSQL(×)

这是JDBC的特点
C、C++也有连接访问数据库的标准API叫ODBC

(3)Java通过JDBC来访问数据库,这些包含了JDBC连接访问数据库语句的Java程序就是普通Java程序,需要导入相应的包,即import Java.sql.*,用Java语言编译器编译成字节码,就可以在Java虚拟机上运行了(√)
(4)用 Class.forName (“org.postgresql.Driver”);加载JDBC驱动程序后就可以访问各种关系数据库系统,比如ORACLE等(×)
(5)JDBC还提供了查询结果集模式和数据库模式的机制(√)

(6)JSP是一种使用Java开发Web应用程序的服务器端脚本技术,它把Java代码嵌入在html文档中,用<% 和 %>括起来的部分是html代码(×)

用 “<%” 和 “%>” 括起来的是Java代码

(7)用JSP编写的动态Web页面中,会出现用<% 和 %>括起来的Java代码,包括通过JDBC访问数据库的加载驱动程序、建立数据库连接、创建Statement对象,执行pgSQL语句以及善后处理,以及输出等(√)

(8)当打开结果集对象时,游标指向结果集第一行的前面(√)
(9)用 Connection 的 getMetaData 方法,可以返回程序当前连接数据库的元数据到 DatabaseMetaData对象(√)

(10)PG允许使用各种不同的程序设计语言来编写函数,特别是内建了PL/pgSQL(√)
(11)存储函数的主要优势之一是运行效率高(√)

(12)PL/pgSQL提供了流程控制语句,有条件控制语句和循环控制语句。这些语句的语法、语义和一般的高级语言,比如C语言完全不同(×)
在这里插入图片描述

(13)使用JDBC可以以一种标准的方法、方便地访问各种关系数据库(√)

第五章

PG数据保护(上)

(1)数据库系统的特点之一就是由数据库管理系统提供统一的机制保护数据安全(√)
(1.1)‍数据安全的含义包括数据保密性、数据完整性、数据可用性(√)
(1.2)‎数据保密性涉及数据值的保密和数据存在性的保密(√)

(2)数据完整性指对数据的期望使用能力,保护数据可用性通常指减少数据库系统停工时间,保持数据持续可访问(×)

数据保密性是指对数据资源的隐藏,数据完整性指的是数据的可信度,数据可用性是对数据的期望使用能力,

(2.1)‏数据可用性是指对数据资源的隐藏(×)
(2.2)数据保密性指的是数据的可信度(×)

(3)数据完整性包括数据值的完整性和数据来源的完整性(√)
(4)数据库管理系统中的故障恢复机制不仅维护故障情况下的数据完整性,并且由于故障恢复机制对故障的有效处理,它也是保护数据可用性的重要手段(√)

(5)定义了完整性约束,就可以保证数据始终真实正确(×)

软件系统无法保证数据的真实正确性,但可以保证数据符合可明确定义的约束。这种约束通常称为完整性约束

(6)数据库中存储视图的定义和数据(×)

在创建一个视图时,只是把其视图的定义存放在数据字典中,而不存储视图对应的数据,在用户使用视图时才去查询对应的数据

(6.5)数据库中只存储视图的定义,不存储视图的数据,视图中的数据是在使用视图时按照视图定义中的查询临时计算的。(√)

(7)视图可以对数据存在性方面的保密性提供保护(√)
(7.1)‏视图提供了数据存在性的保护(√)
(7.2)视图能够简化用户的操作;适当的利用视图可以更清晰的表达查询(√)

(8)可以使用视图定义视图(√)
(8.5)‎不能使用视图定义视图(×)

视图是从若干基本表和(或)其他试图构造出来的“虚表”。

(9)数据库只存储表的定义,不存储相应的数据(×)

(10)视图支持实现数据的逻辑独立性(√)。

(11)一旦组角色已经存在了,那么就可以用 GRANT和REVOKE命令添加和撤消权限,也可以建立循环的成员关系(×)

不可以建立循环的成员关系。

(12)PG使用角色来统一管理用户(√)
(12.5)​PG使用用户来统一管理角色(×)

(13)PG 提供 GRANT 语句来给角色撤销数据库操作权限(×)
(13.5)PG提供REVOKE 语句来给角色授予数据库操作权限(×)

使用GRANT命令给用户授予角色,使用REVOKE给用户撤销角色

(14)CREATE ROLE nini SUPERUSER; 的功能:创建“数据库超级用户”角色nini
(14.1)创建可创建角色的组角色lichen用语句:CREATE ROLE lichen CREATEROLE;(√)
(14.2)​删除组角色yangni用语句:DROP ROLE yangni; (√)
(14.3)​CREATE ROLE yanni 该语句的功能是创建组角色yanni(√)
(14.4)修改组角色名yanni为newyanni用语句:ALTER ROLE yangchen CREATEROLE CREATEDB;(×)

应该是 RENAME USER yanni TO newyanni

(15)数据库管理系统中的并发控制机制维护并发访问情况下的数据完整性(√)

(16)组角色就是作为组使用的角色,一般不应当具有 LOGIN 属(√)
(17)‍PG中,默认情况下,新建立的数据库总是包含一个“超级用户”角色,并且默认这个组角色名为postgres(√)

(18)
数据库题库(二)_第5张图片
应该是修改考官号和查询examiner表。

(19)
数据库题库(二)_第6张图片

PG数据保护(下)

完整性约束

(1)将一个表的一个或几个属性定义为外键后,引用表插入元组或对外键列进行修改操作时,系统自动检查是否将会导致违背外键约束,如果将会违背外键约束,则拒绝插入或修改(√)

(2)主键约束意味着各元组主键值不能重复,且不能为空(√)
(2.1)‏候选键约束意味着各元组主键值不能重复,且不能为空(×)
(2.2)eeexam表的主键由eeid,eid属性组成,此时主键由两个属性一起组成,可以同时在eeid、eid属性声明的后面分别写上PRIMARY KEY就可以了(×)

应该写成 primary key(eeid, eid)

(2.3)将一个表的一个或几个属性定义为候选键后,插入元组或对主键列进行修改操作时,系统自动检查主键的各个属性是否为空,只要有一个为空就拒绝插入或修改;并且检查候选键值是否唯一,如果不唯一则拒绝插入或修改(×)

将一个表的一个或几个属性定义为主键后,插入元组或对主键列进行修改操作时,系统自动检查主键的各个属性是否为空,只要有一个为空就拒绝插入或修改;并且检查候主键是否唯一,如果不唯一则拒绝插入或修改.

(2.4)删除操作不会检验主键约束(√)

删除操作不会导致违背主键约束,只有对关系进行插入或修改时系统才检验主键约束

(3)将一个表的一个或几个属性定义为外键后,被引用表删除或修改时,系统不会自动检查是否将会违背外键约束(×)

被引用表删除或修改时,系统也会自动检查是否违背外键约束.

(4)非空约束意味着每个元组对应列值不能为空(√)
(5)每当插入元组或者修改表中元组时, 就对基于元组的CHECK约束中的条件进行检验(√)

(6)唯一值约束意味着相应的属性(或属性组)为候选键(√)
(7)‎主键约束声明一个字段(或者一组字段)的数值必须匹配另外一个表中出现的数值(×)

外键

(8)‏典型的完整性约束包括主键约束、外键约束、值非空、值唯一等(√)

触发器

(1)语句级before触发器返回N非NULL则返回的行将成为被插入的行或者更新的行(×)

触发器函数必须返回一个NULL或者一个元组类型的变量;
语句级触发器应返回NULL;
行级after触发器的值总是被忽略,可以返回NULL;
行级before触发器的返回值不同,对触发器操作的影响也不同,如果返回NULL则忽略该触发器的行级别操作,其后的触发器也不会被执行;如果非NULL则返回的行将称为被插入或更新的行.

(2.1)触发器比CHECK约束更灵活,可以实施各种复杂的检查和操作,具有更精细和更强大的数据保护能力(√)
(2.2)触发器是用户定义在关系表上的由事件驱动调用的函数(√)

(3)触发器可以定义在触发事件之前或之后,即分为BEFORE和AFTER触发器,分别在操作完成前和操作完成后触发,执行触发器函数(√)

(4)行级触发器的触发器函数为每条触发语句执行一次(×)

行级触发器的触发器函数为触发语句影响的每一行执行一次;语句级触发器的触发器函数为每条触发语句执行一次.

(5)通常,用行级before触发器检查或修改将要插入或者更新的数据(√)
(5.1)通常,用行的after触发器更新其它表,或进行一致性检查(√)

用行级before触发器检查或修改将要插入或者更新的数据,用行级的after触发器更新其他表,或进行一致性检查。

(6)语句级before触发器在触发语句开始之前触发(√)
(6.1)行级after触发器在修改由触发SQL语句影响的每一行记录之后触发(√)

语句级before触发器在触发语句开始之前触发;
语句级after触发器在触发语句结束时触发;
行级before触发器对特定行进行操作之前触发;
行级after触发器在修改由触发SQL语句影响的每一行记录之后触发;

数据库题库(二)_第7张图片

(7)触发器只能定义在触发事件之后,在事件发生后触发,执行触发器函数(×)

也可以在之前

事务

(1)事务隔离性指应用程序所定义的事务,其单独成功的执行,必定是使数据库从一个一致性状态变到另一个一致性状态(×)
(1.1)事务一致性指事务中包含的所有操作要么都做,要么都不做(×)

事务一致性指应用程序所定义的事务,如果其单独执行,应使数据库从一个一致性状态变为另一个一致性状态。
事务隔离性指一个事务的执行不会被其他事务干扰。
事务原子性指事务中包含的所有操作要么都做,要么都不做。
事务持久性指一个事务一旦被提交,它对数据库中的数据的改变就是持久性的,接下来其他操作或故障不会对其执行结果有任何影响。

(2)PG用BEGIN和COMMIT(或ROLLBACK)将数据库访问操作指令序列包围以声明一个事务(√)

(3)PG提供三种独立的事务隔离级别,分别是读已提交READ COMMITTED、REPEATABLE READ和可串行化SERIALIZABLE(√)

MySQL提供四种独立的事务隔离级别,分别是读未提交READ UNCOMMITTED,读已提交READ COMMITTED,可重复读REPEATABLE READ,可串行化SERIALIZABLE.

(4)可串行化事务中的语句看到的是该事务开始时的快照(√)
(5)可串行化级别提供最严格的事务隔离,因为事务是一个接着一个串行执行的(×)

可串行化(Serializable) 提供最严格的事务隔离。这个级别模拟串行的事务执行,就好像事务将被一个接着一个那样串行的,而不是并行的执行。不过,使用这个级别的应用必须准备在串行化失败的时候重新发动事务。

(6)如果一个事务需要连续做若干个命令,而这几个命令必须看到完全相同的数据库视图,隔离级别就需要用读已提交(×)

如果一个事务需要连续做若干个命令,而这几个命令必须看到完全相同的数据库视图,那么就需要可串行化隔离级别

(7)如果没有显式BEGIN命令,PG把每个SQL语句当做一个事务来看待(√)

加密

(1)数据被加密后的结果称为密文,把密文还原为明文的过程称为解密(√)
(2)加密体系中最核心的是用于加密解密的算法和密钥(√)

(3)现代加密体系中算法通常是公开的,密钥是保密的并且需要向可信权威机构申请,安全性完全取决于密钥的保密性(√)
(3.1)现代加密体系中密钥和算法都是保密的,安全性完全取决于它们的保密性(×)

(4)‏数据被称为明文,用某种方法伪装数据以隐藏它的内容的过程称为加密(√)

(5)加密算法一般可分为加密解密密钥相同的对称加密、加密解密密钥不同的非对称加密和单向加密三类(√)

第六章

数据库设计方法和生命周期

(1)概念模式与具体DBMS有关(×)

概念模式与具体的DBMS无关

(2)数据库设计方法主要包括实体-联系方法和属性-联系方法两种(√)
(3)实体-联系设计方法围绕实体展开,从软件工程角度来看,数据库生命周期经历需求分析、概念设计、逻辑设计、物理设计、数据库实现以及运行维护等阶段(√)
(4)概念模式通常使用实体-联系图表示(√)
(4.1)‎逻辑模式通常使用实体-联系图表示(×)

(5)属性-联系数据库设计方法围绕属性展开(√)
(5.1)实体联系方法,以实体的属性为中心,着重于属性之间的依赖关系(×)

实体联系方法以实体为中心,着重于一个关系模式,基本对应一个实体或者联系,即关系模式与实体或联系之间基本是一一对应的;
属性联系方法以属性为中心,着重于属性之间的依赖关系.

(6)属性-联系设计方法,是在需求分析的基础上直接采用属性-联系方法进行逻辑设计,也就是把数据库保存的所有属性放在一张关系表中,进而通过属性之间的联系,来不断的优化这个关系表的模式,得到期望的结果模式(√)
(7)实体联系方法,以实体为中心,着重于一个关系模式,基本对应一个实体或联系,即关系模式与实体或联系之间基本是一一对应的(√)
(8)属性联系方法,以属性为中心,着重于属性之间的依赖关系(√)
(9)实际当中的数据库设计,通常将两种方法相结合,宏观上采用实体-联系方法,微观上采用属性-联系方法,也就是对由概念模式转换而来的关系表运用属性-联系方法进行分析优化(√)

E-R模型元素

(1)联系不可能有属性(×)
(1.1)联系可能会有属性(√)

(2)E-R图主要包括实体和联系以及它们各自的属性(√)
(3)像这样能够并且用来区分一个实体集中不同的一个个实体的最小的属性集或者是属性组(一组属性),称为实体标识符,(简称标识符)也称为实体主键(简称主键)(√)
(4)联系关联的实体个数称为该联系的元数或度数(√)
(5)同类实体集内部实体与实体之间的联系,称为一元联系(√)
(6)两个不同实体集中实体之间的联系,称为二元联系(√)
(7)如果实体集E1中,每个实体可以与实体集E2中任意个(零个或多个)实体之间具有联系,并且E2中每个实体至多和E1中一个实体有联系,那么我们就把E1对E2的联系称为“一对多联系”(√)
(7.1)‏如果实体集E1中每个实体至多和实体集当中的一个实体有联系,那么实体集E1和E2的联系称为“一对一联系”(×)
(7.1)三个不同实体集中实体之间的联系,称为三元联系(√)
数据库题库(二)_第8张图片
数据库题库(二)_第9张图片

基本E-R图设计

(1)一个人会喜欢另一个人,人与人之间的联系“喜欢”是一个一元联系(√)
(2)一个辅导员只辅导一个班级,一个班级只由一个辅导员来管理,辅导员和班级之间的联系,是一个一对一的联系(√)
(3)一个辅导员只辅导一个班级,一个班级有多个学生,辅导员和班级之间的联系,是一个一对多的联系(×)

基本E-R图转换为关系模式

(1)由联系转换来的表的主键与任一端实体主键相同(×)

描述过于简单

(2)当把一个实体转换为一个关系模式时,实体的一个属性对应为该表的一个列,实体的主键就是表的主键(√)
(3)一个联系转换为一个关系模式,联系的属性对应表的属性,并上所有参与联系的各实体主键的并集(√)
(4)一个1:1联系转换的表可与任一端实体对应的表合并在一起(√)
(5)一个1:n联系转换的表可以与1端对应的表合并在一起(×)

一个 1 : N 联系转换的表可以与 N 端对应的表合并在一起

(6.1)

应该是关系模式个数=实体集的数量+多对多联系数量
数据库题库(二)_第10张图片
(6.2)
数据库题库(二)_第11张图片
(6.3)
数据库题库(二)_第12张图片

扩展E-R图及其转换

(1)所有属性都不足以形成主键的实体称为弱实体(√)
(2)其属性可形成主键的实体集称为弱实体集(×)

所有属性都不足以形成主键的实体称为弱实体,其属性可形成主键的实体集称为强实体集

(3)含弱实体E-R图向关系模式转换时,一个关联弱实体的联系和弱实体一起转换为一个关系模式,主键是参与联系的强实体的主键(×)

描述过于简单

(4)根据实体间的区别在实体集内部进行分组的过程称为特殊化(√)
(5)一般化从单一的实体集出发,通过创建不同的低层实体集来强调同一实体集中不同实体间的差异(×)

特殊化从单一的实体集出发,通过创建不同的低层实体集来强调同一实体集中不同实体间的差异
一般化是在多个不同实体集的共性基础上将它们综合成一个高层实体集

(6)低层实体集继承参与其高层实体集所参与的那些联系(√)
(7)低层实体集所特有的联系也适用于其高层实体集(×)

低层实体集所特有的属性和联系仅适用于某个特定的低层实体集

(8)用表表示父子实体集时,只需为每个低层实体集创建表(×)

描述过于简单

(9)一般化是一种自底向上的方法(√)

一般化是一种自底向上的方法。还有一种自顶向下的方法,叫特殊化

数据库题库(二)_第13张图片

大数据E-R图及其转换

(1)视频中的图书馆数据库设计,只有第四种方案是正确的,完美的,任何情况下都只能采取这种方案(×)

你可能感兴趣的