南开《主干课2-数据库应用系统设计》2020秋主干课考试参考答案
主干课2-数据库应用系统设计2020秋主干课考试试卷总分:100 得分:100一、单选题 (共 10 道试题,共 20 分)1.以下关于二维表的论述,不正确的是( )。A.表中的每一个元组分量都是不可再分的B.表中行的次序不可以任意交换,否则会改变关系的意义C.表中每一列取自同一个域,且性质相同D.表中的第一行通常称为属性名答案:B2.表中的一行称为一个( )。A.元组B.属性C.主键D.数据类型答案:A3.对表进行记录的筛选,用的运算是( )。A.交B.投影C.选择D.连接答案:C4.在数据库管理系统中,通过( )语言向数据库中插入新的数据。A.数据定义B.数据操作C.数据控制D.数据管理答案:B5.以下关于DB、DBMS、DBS三者之间的关系的叙述中,正确的是( )。A.DB包括DBMS和DBSB.DBS包括了DBMS和DBC.DBMS包括DB和DBSD.DB、DBMS和DBS无关答案:B6.下列关于PHP字符串定界符的描述中,正确的是( )。A.字符串的定界符只能是双引号B.字符串的定界符只能是单引号C.以单引号作为定界符,则字符串中出现的“$变量名称”将被变量值所替代D.以双引号作为定界符,则字符串中出现的“$变量名称”将被变量值所替代答案:D7.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,部门和职员的联系类型是( )A.多对多B.一对一C.多对一D.一对多答案:D8.视图是一个“虚表”,视图的构造基于( )。A.基本表B.视图C.基本表或视图D.数据字典答案:C9.关系数据库中,实现主码标识元组的作用是通过( )来实现的。A.实体完整性规则B.参照完整性规则C.用户自定义的完整性D.属性的值域答案:A10.SQL语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句ALTER TABLE实现( )功能。A.数据查询B.数据操作C.数据定义D.数据控制答案:C二、多选题 (共 10 道试题,共 20 分)11.在现实世界中,某种产品的名称对应于数据库中的( )。A.文件B.实体C.数据项D.记录答案:C12.下面选项中,可以用于删除表中数据但不删除表结构的命令有( )。A.DROPB.TRUNCATEC.DELETED.REMOVE答案:BC13.数据模型可分为( )。A.层次模型B.星型模型C.网状模型D.关系模型答案:ACD14.在MySQL中,默认启动且无法禁止的日志是( )。A.二进制日志B.错误日志C.通用查询日志D.慢查询日志答案:B15.15.下列关于外模式的描述中,正确的是( )。A.面向用户B.通常是模式的一个子集,所以又称外模式C.是允许用户看到和使用的局部数据的逻辑结构和特征的描述D.由于用户可以不止一个,每个用户使用的数据可能不同,所以系统可以有多个外模式答案:ABCD16.SQL语言中,HAVING子句用于筛选满足条件的( )。A.列B.行C.分组D.元组答案:C17.通过( )映射,使得关系数据库具有高度物理独立性。A.模式/内模式B.外模式/模式C.外模式/内模式D.以上都不对答案:A18.若规定工资表中基本工资不得超过5000元,则这个规定属于( )。A.关系完整性约束B.实体完整性约束C.参照完整性约束D.用户定义完整性约束答案:D19.保证同一事务中先后执行的多次查询将返回同一结果,不受其他事务影响,不可能出现丢失更新、脏读、不可重复读,但可能出现幻读,则该事务的隔离级为( )。A.未提交读B.提交读C.可重复读D.序列化答案:C20.下列属于用户自定义完整性的约束包括( )。A.学号为学生表的主码,不能取空值B.学生的成绩必须在0100之间C.学生成绩表中出现的学号必须是学生表中存在的学号D.学生的性别只能是男或女答案:BD三、问答题 (共 2 道试题,共 30 分)21.SQL题,具体题目内容如下:图答案:<img src="http:/file.open.com.cn/ueditorupload/image/2020/10/13/6373820423532959821940048.png" title="数据库SQL答案_看图王.png" alt="数据库SQL答案_看图王.png">22.表2和表3是下列题目中用到的2个表,请根据题目要求写出对应的SQL语句。(1)查询哪些仓库有工资多于1210元的职工,将仓库号显示在查询结果中(若一个仓库中有多名职工工资多于1210元,则结果中只显示一次该仓库的仓库号)。(2)查询工资多于1230元的职工号和他们工作的仓库所在的城市。(3)查询在WH2仓库工作的职工的最高工资值。(4)查询至少有两名职工的仓库,在查询结果中按仓库号的升序顺序显示满足条件的仓库号和每个仓库职工的平均工资。(5)查询所有职工的工资都多于1210元的仓库的信息。图答案:<img src="http:/file.open.com.cn/ueditorupload/image/2020/03/12/6371962477169760512458452.png" title="2.png" alt="2.png">四、简答题 (共 5 道试题,共 30 分)23.请简述索引的缺点。答案:(1)创建索引和维护索引要耗费时间,且时间随着数据量的增加而增加;(2)索引需要占物理空间,除了数据表站数据空间之外,每一个索引还要占一定的物理空间;(3)当对表中的数据进行添加、删除和修改时,索引也要动态维护,这样就降低了数据的维护速度。24.请简述MySQL工作流程。答案:(1)操作系统用户启动MySQL服务。(2)将MySQL配置文件中的参数信息读入MySQL服务器内存。(3)生成一个MySQL服务实例进程。(4)MySQL服务实例进程派生出多个线程为多个MySQL客户机提供服务。(5)建立一条MySQL客户机与MySQL服务器之间的“通信链路”。(6)MySQL客户机向MySQL服务器发送请求。(7)MySQL服务器向MySQL客户机返回响应。(8)断开通信链路。25.请简述MyISAM、InnoDB和MEMORY三种存储引擎的适用情况。答案:(1)MyISAM:不需要事务支持,并发相对较低,数据修改相对较少、以读为主,数据一致性要求不是非常高。(2)InnoDB:需要事务支持,行级锁定对高并发有很好的适应能力、但需要确保查询是通过索引完成,数据更新较为频繁。(3)MEMORY:需要很快的读/写速度,对数据的安全性要求较低,不能是太大的表。26.请写出一个使用mysqli向数据表中插入记录的程序。答案:<?php<br>$mysqli = new mysqli("localhost","root","123456","teacherInfo",3306);<br>$sql = "INSERT INTO teachers(num,name,sex,birthday,address) VALUES<br>(201501,张永生,男,1994-11-08,北京市海淀区),<br> (201502,李二嘎,女,1970-01-21,北京市朝阳区),<br> (201503,王富贵,男,1976-10-30,北京市海淀区),<br> (201504,赵甜贵,男,1990-06-05,北京市顺义区)"<br>if ($mysqli->query($sql)<br><br> echo "<p>插入成功</p>"<br> echo "<p>插入的记录数:".$mysqli->affected_rows."</p>"<br><br>else<br> echo "<p>插入失败</p>"<br>$mysqli->close();<br>?><br><br>27.请简述数据模型的组成要素及各要素的含义。答案:(1)数据结构:对系统静态特征的描述,主要描述数据库的组成对象,以及对象之间的联系。(2)数据操作:描述系统的动态特征,包括数据的检索和更新(即增、删、改)两大类操作。(3)数据约束:给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。以下内容不需要的请自行删除试卷总分:100 得分:100一、单选题 (共 25 道试题,共 75 分)1.在Java中,表示换行符的转义字符是( )A.nB.fC.ddD.n答案:A2.下列构造方法的调用方式中,正确的是( )。A.被系统调用B.由用户直接调用C.按照一般方法调用D.只能通过 new 自动调用答案:D3.在调用函数并传递参数时,将变量对应的内存位置传递给函数,而函数会根据内存位置取得参数的值,是指哪种方式( )A.返回值B.地址传递调用C.值传递调用D.以上都不是答案:B4.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( )A.i+ - -j;B.i = i + 2C.a0 = 7;D.a(0) = 66;答案:C5.编译并且执行以下代码,会出现什么情况( )。?public?class?Q?public?static?void?main(String?argv)?int?anar=new?int1,2,3;?System.out.println(anar1);?A.有错误,数组的大小没有定义。B.有错误,数组anar在初始化以前不能正常输出C.2D.1答案:C6.设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )A.y x1;B.x x1=x();C.static x x1;D.public x x1=new x(int 123);答案:C7.执行完代码"intx=new int25;"后,以下( )说明是正确的。A.x25为0B.x24未定义C.x24为0D.x0为空答案:C8.关于Java中数据类型叙述正确的是( )A.整型数据在不同平台下长度不同B.数组属于简单数据类型C.boolean类型数据只有2个值,true和falseD.Java中的指针类型和C语言的一样答案:C9.下列语句序列执行后,i 的值是( )。 int i=8, j=16; if( i-1 > j ) i-; else j-;A.8B.7C.16D.15答案:A10."阅读下面程序 class ex