1、第 1 页 共 17 页数据库系统概论作业第一章 概述1. 层次模型的数据结构是_ 树形_结构;网状模型的数据结构是 网状 结构;关系模型的数据结构是_ 二维表_ 结构。2数据库系统具有 “数据独立性”特点的原因是因为在数据库系统中( B )(A )、采用磁盘作为外存 (B)、采用三级模式结构(C)、使用 OS 来访问数据 (D)、用宿主语言编写应用程序3. 数据库 (DB)、数据库系统(DBS)和数据库管理系统(DBMS)三者之间的关系是( A )。(A )、 DBS 包括 DB 和 DBMS(B )、 DBMS 包括 DB 和 DBS(C)、 DB 包括 DBS 和 DBMS(D)、 DB
2、S 就是 DB,也就是 DBMS4数据库系统的数据独立性体现在( B )(A )、不会因为数据的变化而影响到应用程序(B )、不会因为系统数据存储结构和数据逻辑结构的变化而影响应用程序(C)、不会因为存储策略的变化而影响存储结构(D)、不会因为某些存储结构的变化而影响其他的存储结构5要保证数据库的数据独立性,需要修改的是( A )(A )、模式与外模式 (B )、模式与内模式(C)、三层之间的两种映射(D)、三层模式6下述( D )不是 DBA(数据库管理员)的职责。(A)、完整性约束说明 (B)、定义数据库模式(C)、数据库安全 (D)、数据库管理系统设计7( B )是按照一定的数据模型组织
3、的,长期储存在计算机内,可为多个用户共享的数据的集合。(A )、数据库系统 (B)、数据库 (C)、关系数据库 (D)、数据库管理系统 8数据模型的三要素是( D )。第 2 页 共 17 页(A)、外模式、模式、内模式 (B)、关系模型、层次模型、网状模型(C)、实体、联系、属性(D) 、数据结构、数据操作、完整性约束9. 简述数据库系统的主要特点。(1)、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统, (3)数据独立性高数据独立性包括数据的物理独立性
4、和数据的逻辑独立性。 (4)数据由 DBMS 统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。10.简述数据库系统的三级模式和两级映像。答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式,数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)
5、能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据购逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。内模式也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。第 3 页 共 17 页第二章 关系数据库1. 设有如下图所示的关系 R,W 和 D:计算下列代数表达式的结果:(1)R 1=Y,T(R) (2)R 2=p5T=e(R) (3)R 3=(R W)(4)R 4=RDR2R1Y TdfecedR3 R4P Q T Y B2277bbggccccddddmnmm2、 设有如下图所示的关
6、系 S,SC ,C:P Q T Y97ageeffP Q27bg第 4 页 共 17 页关系 SS# SNAME AGE SEX1 李强 23 男2 刘丽 22 女3 张友 22 男关系 CC# CNAME TEACHERK1 C 语言 王华K5 数据库原理 程军K8 编译原理 程军关系 SCS# C# GRADE1 K1 832 K1 853 K1 922 K5 903 K5 843 K8 80请用关系代数表达式表示下列查询语句:(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。(2)检索“李强”同学不学课程的课程号。(3)检索既选修了 K1 课程,也选修了 K5 课程的
7、学生学号(S#)。(4)检索选修了课程表中的全部课程的学生姓名(SNAME)。(5)检索选修课程名为“C 语言”的学生学号(S#)和姓名(SNAME )。(1) C#,CNAME(TEACHER-程军(C) )(2) C#(C)-C#(NAME-李强(S) SC)(3) S#,C#(SC)-C#(C#-k1vC#-k5(C)(4) SNAME(S (S#,C#(SC)-C#(C)(5) S#,SNAME(SS#(SC (CNAME=C 语言(C) ) 3在关系中, “元数”(arity)是指( 列数 )(A )行数 (B)元组个数 (C)关系个数 (D )属性个数第 5 页 共 17 页4在关
8、系中, “基数”(cardinality)是指( 行数 )(A )列数 (B)元组个数 (C)关系个数 (D )属性个数5设 W = R S,且 W、R、S 的元组个数分别为 p、m、n,那么三者之间满足( D )(A )p (m+n) (B)p(m+n)(C)p(mn) (D)p(mn)6下列式子中,不正确的是( D )(A )RS=R( RS) (B)R=(RS)(RS)(C)RS=S(S R) (D)RS = S(RS)7如果两个关系没有公共属性,那么其自然联接操作( A )(A )转化为笛卡尔积操作 (B)转化为联接操作(C)转化为外部并操作 (D)结果为空关系8.一个关系只有一个(
9、D )(A)、候选码 (B)、外码 (C)、超码 (D)、主码9.下面的选项不是关系的基本特征( A )(A)、不同的列有不同的数据类型 (B)、不同的列有不同的列名(C)、与行的次序无关 ( D)、与列的次序无关第三章 SQL 语言有两个基本表:表 EMP( ENO,ENAME,SALARY,DNO)其属性分别表示职工的工号、姓名、工资和所在部门的编号表 DEPT(DNO,DNAME)其属性分别表示部门的编号和部门名1. 有一 SQL 语句:SELECT DNO,COUNT(DISTINCT ENO)FROM EMPGROUP BY DNO;ij第 6 页 共 17 页该 SQL 语句实现了
10、以下哪个功能?( C )(A)统计职工的总人数(B )统计每一部门的职工人数(C)统计职工服务的部门数目(D)统计每一职工服务的部门数目2有一个 SQL 语句:SELECT ENO,ENAMEFROM EMPWHERE DNO NOT IN(SELECT DNOFROM DEPTWHERE DNAME=金工车间;其等价的关系代数表达式是:( C )(A) ENO,ENAME( DNAME 金工车间 (EMPDEPT)(B) ENO,ENAME(EMP DEPT)(C) ENO,ENAME(EMP) ENO,ENAME( DNAME=金工车间(EMPDEPT)(D) ENO,ENAME(EMP)
11、 ENO,ENAME( DNAME金工车间(EMP DEPT)3有一个 SQL 语句:UPDATE EMPSET SALARY=SALARY*1.05WHERE DNO=D6AND SALARYSOME (C) =ALL ( D)ALL6. 下列关于索引的叙述,正确的是( A )。(A)、可以根据需要在基本表上建立一个或多个索引,从而提高系统的查询效率。(B)、一个基本表最多只能有一个索引。(C)、建立索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素。(D)、一个基本表至少要存在一个索引。7. 下面列出的关于视图的条目中,不正确的是( C )。(A)、视图是外模式(B)
12、、视图是虚表(C)、使用视图可以加快查询语句的执行速度(D)、使用视图可以简化查询语句的编写8. 设数据库中有三个关系:职工表 EMP(E#,ENAME,AGE,SEX ,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。工作表 WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。公司表 COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。请写出完成下列操作的 SQL 语句: 用 CREATE TABLE 语句创建上述三个表,需定义出各表的主键和外键。 检索超过 50 岁的男职工的工号和姓名。 假设每个职工只能在
13、一个公司工作,检索工资超过 1000 元的男性职工工号和姓名。 假设每个职工可在多个公司工作,检索在编号为 C4 和 C8 公司兼职的职工工号和姓名。 检索在“联华公司” 工作、工资超过 1000 元的男性职工的工号和姓名。 假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总第 8 页 共 17 页数,查询结果显示为(E#,NUM,SUM_SALARY),分别表示工号、兼职的公司数目和工资总数。 工号为 E6 的职工在多个公司工作,试检索至少在 E6 职工兼职的所有公司工作的职工工号。 检索联华公司中低于本公司平均工资的职工工号和姓名。 在每一公司中为 50 岁以上职工加薪 10
14、0 元(若职工为多个公司工作,可重复加)。 在 EMP 表和 WORKS 表中删除年龄大于 60 岁的职工有关元组。CREATETABLEEMP (E#CHAR(4)NOTNULL,ENAMECHAR(8)NOTNULL,AGESMALLINT,SEXCHAR(1),ECITYCHAR(20),PRIMARYKEY(E#);CREATETABLECOMP(C#CHAR(4)NOTNULL, CNAMECHAR(20)NOTNULL,CITYCHAR(20),PRIMARYKEY(C#); CREATETABLEWORKS (E#CHAR(4)NOTNULL,C#CHAR(4)NOTNULL,S
15、ALARYSMALLINT,PRIMARYKEY(E#,C#),FOREIGNKEY(E#)REFERENCESEMP(E#),FOREIGNKEY(C#)REFERENCESCOMP(C#);SELECTE#,ENAMEFROMEMP WHEREAGE50ANDSEX=M;SELECTEMP.E#,ENAMEFROMEMP,WORKS WHEREEMP.E#=WORKS.E#ANDSALARY1000;SELECTA.E#,A.ENAME FROMEMPA,WORKSB,WORKSCWHEREA.E#=B.E#ANDB.E#=C.E#ANDB.C#=C4ANDC.C#=C8;SELECTA.
16、E#,A.ENAME FROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C# ANDCNAME=联华公司 ANDSALARY1000ANDSEX=M;SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARY FROMWORKSGROUPBYE#; SELECTX.E#FROMWORKSXWHERENOTEXISTS(SELECT* FROMWORKSYWHEREE#=E6ANDNOTEXISTS(SELECT* FROMWORKSZWHEREZ.E#=X.E#ANDZ.C#=Y.C#); SELECTA.E#,A.E
17、NAME FROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME=联华公司 ANDSALARY50); DELETEFROMWORKS WHEREE#IN(SELECTE#FROMEMPWHEREAGE60);DELETEFROMEMPWHEREAGE60;第 9 页 共 17 页第四章 数据库安全性1以下( D )不属于实现数据库安全性的主要技术和方法。(A )、存取控制技术 (B)、视图技术(C)、审计技术 (D)、出入机房登记和加锁2把对关系 SC 的 GRADE 属性的修改权授予用户 ZHAO 的 SQL 语句是( C )。(A
18、)、GRANT GRADE ON SC TO ZHAO(B )、GRANT UPDATE ON SC TO ZHAO(C)、GRANT UPDATE(GRADE) ON SC TO ZHAO(D)、GRANT UPDATE ON SC(GRADE) TO ZHAO3保护数据库、防止未经授权的或不合法的使用造成的数据泄露、更改破坏。这是数据库的( A )。(A)、安全性 (B)、完整性 (C) 、并发控制 (D)、恢复4今有两个关系模式:(1)职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码;(2)部门(部门号,名称,经理名,地址,电话),其中部门号是主码;请用 S
19、QL 语言的 GRANT 语句(加上视图机制)完成以下授权定义:用户杨兰具有 SELECT 每个部门的职工最高工资,最低工资,平均工资的权力,但他不能查看每个人的工资。CREATE VIEW 部门工资 AS SELECT 部门.名称,MAX(工资),MIN( 工资),AVG(工资) FROM 职工,部门 WHERE 职工.部门号=部门.部门号 GROUPBY 职工.部门号 GRANTSELECTON 部门工资 TO 杨兰;第 10 页 共 17 页第五章 数据库完整性1关于主码约束以下说法错误的是( C )A一个表中只能设置一个主码约束B允许空值的字段上不能定义主码约束C允许空值的字段上可以定
20、义主码约束D可以将包含多个字段的字段组合设置为主码2在 SQL Server 中,可以使用( C )语句创建存储过程。ACreate Trigger BInstall ProcedureCCreate Procedure DCreate View3SQL Server 为每个触发器创建了两个临时表,它们是( B )。AUpdated 和 Deleted BInserted 和 Deleted CInserted 和 Updated DSeleted 和 Inserted4设有供应商关系 S 和零件关系 P,如下图所示,S 和 P 的主码分别是“供应商号”和“零件号”,P 的外码是“供应商号 ”
21、。分析下列 4 个操作能否被正确执行,并说明理由。(1)在 P 中插入元组(P2,白,A2)(2)在 P 中插入元组(NULL,绿,A1)(3)在 P 中插入元组(P4,白,A5)(4)在 P 中插入元组(P4,绿,A2)答:(1)不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号”属性值“P2”,在 P 表中已经存在。 “零件号”作为主键,其值不能重复,必须唯一。 不能正确执行,插入操作破坏了实体完整性约束,待插入的元组的“零件号”属性值为空,“零件号”作为主属性,其值不能为空。不能正确执行,插入操作破坏参照完整性约束,待插入的元组的“供应商号”属性值“A5”,在 S 中找不
22、到没有相应的主键值。能正确执行,因为满足数据库的实体完整性和参照完整性。5假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码;部门号为外码。第 11 页 共 17 页部门(部门号,名称,经理名,电话),其中部门号为主码,经理名为外码请用 SQL 语言定义这两个关系模式,要求在关系模式中完成以下完整性约束条件的定义:(1)定义每个模式的主码;(2)定义参照完整性;职工关系模式中的部门号属性参照部门关系模式中的主码部门号;部门关系模式中的经理名属性参照职工关系模式中的姓名属性。(3)定义职工年龄不超过 60 岁。答: CREATE TABLE DEPT (De
23、ptnoNUMBER(2),DeptnameVARCHAR(10),ManagerVARCHAR(10),PhoneNumberChar(12), CONSTRAINTPK_SCRIMARYKEY(Deptno); CREATE TABLE EMP (EmpnoNUMBER(4),EnameVARCHAR(10),AgeNUMBER(2) CONSTRAINTC1CHECK(Age 日营业额职工编号 -部门编号部门名-部门经理 R 的关键码为(职工编号,日期)(2)R 中有两个这样的 FD: (职工编号,日期)-(部门名,部门经理)职工编号-(部门名,部门经理) 可见前一个 FD 是部分依赖,
24、关系模式中存在非主属性对码的部分函数依赖,所以 R 不是 2NF 模式。 R 应分解成 R1(职工编号,部门名,部门经理 ) R2(职工编号,日期,日营业额) 此处,R1 和 R2 都是 2NF。(3)R2 已是 3NF 模式。 在 R1 中,存在两个 FD:职工编号-部门名部门名-部门经理因此,“职工编号-部门经理”是一个传递依赖,R1 不是 3NF 模式。 R1 应分解成 R11(职工编号,部门名 )R12(部门名,部门经理) 这样,=(R11,R12,R2)是一个 3NF 模式集第 14 页 共 17 页第七章 数据库设计1. 数据库设计中,将 E-R 图转换成关系数据模型的过程属于(
25、B )(A )、需求分析阶段 (B)、逻辑设计阶段(C)、概念设计阶段 (D)、物理设计阶段2. 数据库设计的概念设计阶段,表示概念结构的常用方法和描述工具是( C )。(A )、层次分析法和层次结构图 (B )、数据流程分析法和数据流程图(C)、实体联系法和实体联系图(D)、结构分析法和模块结构图3. 在 E-R 模型向关系模型转换时,M:N 的联系转换为关系模式时,其关键字是( C )。(A )、M 端实体的关键字 (B)、N 端实体的关键字(C)、M,N 端实体的关键字组合 (D)、重新选取其他属性4. 在 E-R 模型中,如果有 3 个不同的实体集,3 个 M:N 联系,根据 E-R
26、模型转换为关系模型的规则,转换为关系的数目是( C )。(A )、4 (B)、5 (C)、6 (D)、75. 进行数据库系统需求分析时,数据字典的内容和作用是什么?答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括:(l)数据项;(2)数据结构;(3)数据流; (4)数据存储;(5)处理过程五个部分。其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过程中不断修改、充实、完盖。6设某商业
27、集团数据库中有三个实体集。一是“商店”实体集,属性有商店编号、商店名、地址等;二是“商品”实体集,属性有商品号、商品名、规格、单价等;三是“职工”实体集,属性有职工编号、姓名、性别、业绩等。商店与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,每个商店销售一种商品,有月销售量;商店与职工间存在着“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。(1) 试画出 E-R 图,并在图上注明属性、联系的类型。(2) 将 E-R 图转换成关系模型,并注明主键和外键。第 15 页 共 17 页解:(1)商品编号 商店名 地址商店月销售量M
28、 月薪销售 聘用聘期N 职工商品 职工编号 姓名 性别 业绩商品号 商品名 规格 单价(2)这个 ER 图可转换 4 个关系模式商店(商店编号,商店名,地址)职工(职工编号,姓名,性别,业绩,商品编号,聘期,月薪)商品(商品号,商品名,规格,单价)销售(商店编号,商品号,月销售量)第 16 页 共 17 页第八章 数据库编程1 SQL 的集合处理方式与宿主语言单记录处理方式之间如何协调?答:由于 SQL 语句处理的是 记录集合, 而宿主语言语句一次只能 处理一个记录,因此需要用游标(cousor)机制,把集合操作转换成单记录处理方式2 SQL 有两种使用方式:_ 交互式 SQL_和_ _嵌入式
29、 SQL_。3 SQL 语句嵌入在 C 语言程序中时,必须加上前缀标识_EXEC SQL_和结束标志_ _END EXEC_。4 有关嵌入式 SQL 的叙述,不正确的是( B )A宿主语言是指 C 一类高级程序设计语言B宿主语言是指 SQL 语言C在程序中要区分 SQL 语句和宿主语言语句DSQL 有交互式和嵌入式两种使用方式5 嵌入式 SQL 实现时,采用预处理方式是( C )A把 SQL 语句和主语言语句区分开来B为 SQL 语句加前缀标识和结束标志C识别出 SQL 语句,并处理成函数调用形式D把 SQL 语句编译成二进制码6 允许在嵌入的 SQL 语句中,引用宿主语言的程序变量,在引用时( C )A直接引用B这些变量前必须加符号“*”C这些变量前必须加符号“:”D这些变量前必须加符号“次序依次执行;在某一时刻只有一个事务在执行。 而可串行化调度是并发调度中的一个概念。在并发调度中,某一时刻有多个事务同时被处理。如果某事务集的一个并发调度的结果与某个串行调度等价,则称此并发调度是是可串行化调度。6 假设某航班某日有余票 50 张,甲预定 10 张,乙预定 20 张,现按如下顺序进行调度,请问会出现什么问题?如何来实现并发控制?第 23 页 共 17 页