《数据库系统概论》平时作业第一章概述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)、DBS就是DB,也就是DBMS4.数据库系统的数据独立性体现在(B)(A)、不会因为数据的变化而影响到应用程序(B)、不会因为系统数据存储结构和数据逻辑结构的变化而影响应用程序(C)、不会因为存储策略的变化而影响存储结构(D)、不会因为某些存储结构的变化而影响其他的存储结构5.要保证数据库的数据独立性,需要修改的是( A )(A)、模式与外模式(B)、模式与内模式(C)、三层之间的两种映射(D)、三层模式6.下述( D )不是DBA(数据库管理员)的职责。
(A)、完整性约束说明(B)、定义数据库模式(C)、数据库安全(D)、数据库管理系统设计7.( B )是按照一定的数据模型组织的,长期储存在计算机内,可为多个用户共享的数据的集合。
(A)、数据库系统(B)、数据库(C)、关系数据库(D)、数据库管理系统8.数据模型的三要素是( D )。
(A)、外模式、模式、内模式(B)、关系模型、层次模型、网状模型(C)、实体、联系、属性(D)、数据结构、数据操作、完整性约束9.简述数据库系统的主要特点。
(1)、数据结构化数据库系统实现整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
(2)数据的共享性高,冗余度低,易扩充数据库的数据不再面向某个应用而是面向整个系统,(3)数据独立性高数据独立性包括数据的物理独立性和数据的逻辑独立性。
(4)数据由DBMS统一管理和控制数据库的共享是并发的共享,即多个用户可以同时存取数据库中的数据甚至可以同时存取数据库中同一个数据。
10.简述数据库系统的三级模式和两级映像。
答:数据库系统的三级模式结构是指数据库系统是由外模式、模式和内模式三级构成。
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
模式实际上是数据库数据在逻辑级上的视图,一个数据库只有一个模式,数据库模式以某一种数据模型为基础,统一综合地考虑了所有用户的需求,并将这些需求有机地结合成一个逻辑整体。
外模式也称子模式或用户模式,它是数据库用户(包括应用程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据购逻辑表示。
外模式通常是模式的子集。
一个数据库可以有多个外模式。
内模式也称存储模式,一个数据库只有一个内模式,它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。
第二章 关系数据库1. 设有如下图所示的关系R ,W 和D :计算下列代数表达式的结果: (1)R 1=πY,T(R)(2)R 2=бp>5^T=’e’(R) (3)R 3=(RW)(4)R 4=R ÷DR22、 设有如下图所示的关系S ,SC ,C :请用关系代数表达式表示下列查询语句:(1)检索“程军”老师所授课程的课程号(C#)和课程名(CNAME)。
(2)检索“李强”同学不学课程的课程号。
(3)检索既选修了K1课程,也选修了K5课程的学生学号(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(S⋈ΠS#(SC⋈ (σCNAME=’C语言’(C))) )3.在关系中,“元数”(arity)是指( 列数)(A).行数(B).元组个数(C).关系个数(D).属性个数4.在关系中,“基数”(cardinality)是指( 行数)(A).列数(B).元组个数(C).关系个数(D).属性个数S,且W、R、S的元组个数分别为p、m、n,那么三者之间5.设W = R满足(D)(A).p<(m+n)(B).p≤(m+n)(C).p<(m×n)(D).p≤(m×n)6.下列式子中,不正确的是( D)(A).R-S=R-(R∩S)(B).R=(R-S)∪(R∩S)(C).R∩S=S-(S-R)(D).R∩S = S-(R-S)7.如果两个关系没有公共属性,那么其自然联接操作( A) (A).转化为笛卡尔积操作(B).转化为联接操作(C).转化为外部并操作(D).结果为空关系8.一个关系只有一个(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;该SQL语句实现了以下哪个功能?( C)(A).统计职工的总人数(B).统计每一部门的职工人数(C).统计职工服务的部门数目(D).统计每一职工服务的部门数目2.有一个SQL语句:SELECT ENO,ENAMEFROM EMPWHERE DNO NOT IN(SELECT DNOFROM DEPTWHERE DNAME='金工车间';其等价的关系代数表达式是:( C)(A).πENO,ENAME(бDNAME ≠ '金工车间'(EMP⋈DEPT))(B).πENO,ENAME(EMP ⋈DEPT)DNAME≠'金工车间'(C).πENO,ENAME(EMP)-πENO,ENAME(бDNAME='金工车间'(EMP⋈DEPT))(D).πENO,ENAME(EMP)-πENO,ENAME(бDNAME≠'金工车间'(EMP⋈DEPT))3.有一个SQL语句:UPDATE EMPSET SALARY=SALARY*1.05WHERE DNO='D6'AND SALARY<(SELECT A VG(SALARY)FROM EMP);其等价的修改语句为( C)(A).为工资低于D6部门平均工资的所有职工加薪5%(B).为工资低于整个企业平均工资的职工加薪5%(C).为在D6部门工作、工资低于整个企业平均工资的职工加薪5%(D).为在D6部门工作、工资低于本部门平均工资的职工加薪5% 4.SQL中,谓词EXISTS可用来测试一个集合是否( C )(A).有重复元组(B).有重复的列名(C).为非空集合(D).有空值5.SQL中,与“NOT IN”等价的操作符是( B )(A).=SOME (B).< >SOME(C).=ALL (D).< >ALL6. 下列关于索引的叙述,正确的是( A )。
(A)、可以根据需要在基本表上建立一个或多个索引,从而提高系统的查询效率。
(B)、一个基本表最多只能有一个索引。
(C)、建立索引的目的是为了给数据表中的元素指定别名,从而使别的表也可以引用这个元素。
(D)、一个基本表至少要存在一个索引。
7. 下面列出的关于视图的条目中,不.正确的是(C)。
(A)、视图是外模式(B)、视图是虚表(C)、使用视图可以加快查询语句的执行速度(D)、使用视图可以简化查询语句的编写8. 设数据库中有三个关系:职工表EMP(E#,ENAME,AGE,SEX,ECITY),其属性分别表示职工工号、姓名、年龄、性别和籍贯。
工作表WORKS(E#,C#,SALARY),其属性分别表示职工工号、工作的公司编号和工资。
公司表COMP(C#,CNAME,CITY),其属性分别表示公司编号、公司名称和公司所在城市。
请写出完成下列操作的SQL语句:①用CREATE TABLE语句创建上述三个表,需定义出各表的主键和外键。
②检索超过50岁的男职工的工号和姓名。
③假设每个职工只能在一个公司工作,检索工资超过1000元的男性职工工号和姓名。
④假设每个职工可在多个公司工作,检索在编号为C4和C8公司兼职的职工工号和姓名。
⑤检索在“联华公司”工作、工资超过1000元的男性职工的工号和姓名。
⑥假设每个职工可在多个公司工作,检索每个职工的兼职公司数目和工资总数,查询结果显示为(E#,NUM,SUM_SALARY),分别表示工号、兼职的公司数目和工资总数。
⑦工号为E6的职工在多个公司工作,试检索至少在E6职工兼职的所有公司工作的职工工号。
⑧检索联华公司中低于本公司平均工资的职工工号和姓名。
⑨在每一公司中为50岁以上职工加薪100元(若职工为多个公司工作,可重复加)。
⑩在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,SALARYSMALLINT,PRIMARYKEY(E#,C#),FOREIGNKEY(E#)REFERENCESEMP(E#),FOREIGNKEY(C#)REFERENCESCOMP(C#));②SELECTE#,ENAMEFROMEMP WHEREAGE>50ANDSEX='M';③SELECTEMP.E#,ENAMEFROMEMP,WORKSWHEREEMP.E#=WORKS.E#ANDSALARY>1000;④SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,WORKSCWHEREA.E#=B.E#ANDB.E#=C.E#ANDB.C#='C4'ANDC.C#='C8';⑤SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C# ANDCNAME='联华公司'ANDSALARY>1000ANDSEX='M';⑥SELECTE#,COUNT(C#)ASNUM,SUM(SALARY)ASSUM_SALARYFROMWORKSGROUPBYE#;⑦SELECTX.E#FROMWORKSXWHERENOTEXISTS(SELECT*FROMWORKSYWHEREE#='E6'ANDNOTEXISTS(SELECT*FROMWORKSZWHEREZ.E#=X.E#ANDZ.C#=Y.C#));⑧SELECTA.E#,A.ENAMEFROMEMPA,WORKSB,COMPCWHEREA.E#=B.E#ANDB.C#=C.C#ANDCNAME='联华公司' ANDSALARY<(SELECTA VG(SALARY)FROMWORKS,COMP WHEREWORKS.C#=COMP.C#ANDCNAME='联华公司');⑨UPDA TEWORKS SETSALARY=SALARY+100WHEREE#IN(SELECTE#FROMEMPWHEREAGE>50);⑩DELETEFROMWORKS WHEREE#IN(SELECTE#FROMEMPWHEREAGE>60);DELETEFROMEMPWHEREAGE>60;1.以下( D )不属于实现数据库安全性的主要技术和方法。