数据库原理及技术复习题及参考答案

上传人:痛*** 文档编号:101044832 上传时间:2022-06-04 格式:DOC 页数:13 大小:139KB
返回 下载 相关 举报
数据库原理及技术复习题及参考答案_第1页
第1页 / 共13页
数据库原理及技术复习题及参考答案_第2页
第2页 / 共13页
数据库原理及技术复习题及参考答案_第3页
第3页 / 共13页
点击查看更多>>
资源描述
-中南大学网络教育课程考试复习题及参考答案数据库原理与技术一、名词解释:1.数据管理2.DB3.DBMS4.DBS5.RDBMS6.DBA7.ORDBMS8.SQL9.关系10.关系模型11.关系系统12.完整性控制13.属性14.2NF15.候选码二、单项选择题:1.任何由二个属性组成的关系可能是 A.1NF B.2NF C.3NF D.不能判定2.数据冗余引起的问题主要是花费 A.时间 B.空间 C.时间与空间D.时间或空间3.在数据库中,存储冗余数据是 A.不应该的 B.应该且合理的 C.合理的但不能过度冗余 D.视情况而定4.在关系运算中,进展自然联接运算的两个关系 A.必有一样的列名 B.必有一样的关键字 C.没有要求 D.必有类型一样的列 5.在数据库系统中,DBMS与DB的关系是 A.DBMS包括DB B.DB包括DBMS C.不一定的 D.同级关系 6.在SQL的查询语句的WHERE子句中,以下哪个不能出现. A.sum B. != C. D.=20,各字段的类型长度可以根据需要自己确定。 用SQL与关系代数两者都要表示: a找出茸芳的*与年龄、性别试用SQL表示查询:找出平均年龄小于35的公司编号与名称、。建立视图表示关系公司名称、职工号、年龄、性别4.现有如下E-R图:1n学生院系有实体的主要属性如下,其中下划线局部为主码:院系编号、名称、学生*、年龄、性别、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以88开头且唯一,年龄=12,各字段的类型长度可以根据需要自己确定。用SQL与关系代数两者都要表示:a找出信息学院的与学生*、建立视图表示关系院系名称、*、年龄、性别5.现有如下E-R图:1n职工部门有实体的主要属性如下,其中下划线局部为主码:部门编号、名称、部门负责人号、职工职工号、年龄、性别、工资、津贴、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以0731-开头,年龄=18,工资+津贴 找出成品库II名的仓库号、面积、货位数。试用SQL表示查询:找出110110011号零件的所在的仓库号,仓库名,货位数。七、关系数据库设计综合应用。1.有一关系模式RA、B、C、D,满足的函数赖关系为F = AC,ACB, BD 1求关系模式的码,并写出求解过程。2.有一关系模式RA、B、C、D,满足的函数赖关系为F = ABC,ACB, ACD,DB 1试判断R的最高式,并说明理由。3.有一关系模式RA、B、C、D、E,满足的函数赖关系为F = ABC, ADE,BD 1求关系模式的码,并写出求解过程。4.有一关系模式RA、B、C、D、E,满足的函数赖关系为F = BA, AD, AE, ADC,BD 1试判断R的最高式,并说明理由。5.试证明:关系模式R为BCNF,则R一定为2NF。而关系模式R为2NF,则不一定为BCNF。6.有一关系模式RA、B、C、D,满足的函数赖关系为F = BC, BDA,DC 1求关系模式的码,并写出求解过程。八、SQL编程综合应用。1.编写程序:写程序表示产生以13907317位开头的11位手机号,后4位都为数字,其中第末位不为4。要求将结果存入数据库表中。2.编写程序:编写程序,表示如下要求:n个学生可以不用输入,固定一个数即可,如230,平均分成m个班多余的人尽量平均放到前面的班,请产生*,其中前四位为i305,第五位为班号如1,2分别表示1,2班,第6、7、8位表示序列号,第9位固定为5。要求将结果存入数据库表中。3.编写程序,并写出程序运行产生的最后一个结果。用PL/SQL编写程序,表示产生以i6081开头的第9位固定为3的6、7、8位不超过236的多个*。要求将结果存入数据库表中。4.试编写程序:用PL/SQL编写程序,表示产生以09011开头的第8位不为4而第9位固定为3的6、7、8位不超过136的多个*。要求将结果存入数据库表中。5.试编写程序:产生以湘A-0开头的两位字母、两位数字如湘A-0AA99,湘A-0BB66,湘A-0SS77,的不少于200个的车牌,其中要求尾数不为4,并要求存入数据库表v_number(l_number varchar(20),Memo varchar(32)。6.试编写程序:写程序表示产生以8883位开头的6位QQ号存入一个表中,表中字段除外,还有一个标注字段。后3位都为数字,其中末位一般不为4,但如果最后4位是444,则允许并标注为特别号,中尾数为6,7,8,9都需标注为幸运号。 要求将结果存入数据库表中。假设已有表 QQ_number,有字段qno char(11), spec char(8);. z.-参考答案一、名词解释:1.数据管理:对数据进展收集、存储、检索、维护、传播等活动的总和。是数据量开展到一定程度计算机管理的重点。2.DB:在DBMS的集成管理下,有较高的数据独立性,有较少的冗余,相互间有文件的集成.如答案为:存储数据的仓库,给一半分,答:相互间有联系的数据集成,给全分。3.DBMS:数据库管理系统,管理数据库的软件系统。是有数据库的计算机系统的中心管理软件,一般依赖于操作系统。4.DBS:DBS:数据库系统(1分),包括DB,DBMS与DBA的计算机系统。5.RDBMS:关系数据库管理系统,即以表来表示实体及其联系的数据库管理系统,如典型的ORACEL,SQL SERVER等,现在流行的大型数据库系统根本上都是RDBMS。6.DBA:数据库管理员,负责对数据库进展管理、监控、优化操作的人员。7.ORDBMS:对象关系数据库管理系统,即在关系数据库管理系统的根底上,支持面向对象的特点,支持类型的定义与对象的定义,支持组合、引用、继承等类型扩大规则。8.SQL:构造化查询语言,现已成为为关系数据库的标准查语言,有ANSI与ISO标准,还有SQL2 与SQL3两种标准。9.关系:一组集合的笛卡尔乘积的子集,满足*一特定地条件的集合。一般表示为表构造。10.关系模型:用表来表示实体与实体间联系的模型。11.关系系统:支持表构造、且支持选择、投影、联接等关系运算而不依赖于物理路径的系统。12.完整性控制:保证数据是正确有效相容的一种机制13.属性:实体的*一特性或特征,常用来描述实体。14.3NF:关系模式中所有非主属性都是非传递依赖于码的,或:关系模式R中不存在任何非主属性传递依赖于任意一个码,则称R为3NF。15.候选码:关系的属性或属性集,能唯一标识整个关系,但没有真子集比其小能标识关系。或者关系的属性或属性集能完全决定关系的全部属性。二、单项选择题:1.C2.C3.C4.D5.D 6.A 7.B8.C 9.C10.A 11.C 12.A 13.A 14.D 15.D 16.C 17.B18.A三、判断题:1.2.3.4.5.6.7.8.9.10.11.12. 13. 14.15.16.17.18.19.20.21.22.23.24.四、填空题:1.关系代数运算中,运算对象为两个关系的运算有并、_交_、_差_、_除_、_联接_等。2.常用的关系运算是_关系代数_与_关系演算_。3.SQL的标准库函数有_SUM_、_AVG_、_MA*_等,其中不允许直接出现在查询Where子句中的有_SUM_、_AVG_。4.数据模型包括数据构造、_数据操作_与_完整性约束条件_。5.数据库系统包括计算机硬件、_数据库管理系统等软件,数据库,DBA等人员_等。6.数据库的数据控制功能包括平安性、_完整性,并发_等控制功能。_等,用于数据库应用系统的开发工具主要有VB、_ PB, Delphi_等。7.数据库设计主要包括需求分析、_概念设计,逻辑设计,物理设计编码调试_、运行维护等步骤。8.数据库系统主要包括关系、_层次,网状面向对象_等类型的系统。五、简要答复以下问题:1.为什么说ORACLE10g是完备式关系系统.答:首先ORACLE是关系系统,因为ORACLE支持SQL,支持表构造,支持选择、投影、联接而不依赖于任务物理路径。其次,在ORACLE中,支持完整性操作如实体完整性用PRIMARY KEY来定义、参照完整性用外键来定义,用户自定义完整性用CHECK或TRIGGER来定义。2.试比较文件系统与数据库系统的区别与联系.联系:数据库系统也是文件系统,因为数据库最终是通过操作系统读取的,以文件为最终组织形式。区别:数据库是有组织的、冗余小的,相互有联系的文件的集合,而文件系统中,文件一般没有联系,冗余问题也较少考虑。六、关系代数与SQL综合应用。1.现有如下E-R图:1n员工单位有实体的主要属性如下,其中下划线局部为主码:单位编号、名称、地址、 、负责人员工号、员工员工号、年龄、性别、职称职务、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以026-开头且唯一,性别为男、女或其它,各字段的类型长度可以根据需要自己确定。答案:create table dept(dno char(6) primary key, dname varchar(32), tel char(12) check( substr(tel, 1,4) = 026-),add varchar2(32),post char(6); create table emp(eno char(7) primary key, ename char(8), age number(2), se* char(2) check(SE* in (男,女,其它), title varchar2(12),dno char(6) references dept (dno) alter table dept add manager_no char(7) references emp(eno)在上述定义的每个表中输入一个有代表性的记录,表达相互间的联系。insert into dept values(110011,新开区规划部,0,星沙开元路16号,410061,null);insert into emp values(1101101, 一通,26,男,科长,110011);用SQL与关系代数两者都要表示:找出新开区规划部的与职工号、select tel, eno, enamefrom dept, emp where dept.dno=emp.dno and dname=新开区规划部;tel,eno,ename (dname=新开区规划部(dept)|emp )试用SQL表示查询:找出为一通的员工编号与年龄select eno, agefrom emp where ename=一通;删除名称为空值的单位。Delete from dept where dname is null;2.现有如下E-R图, 1n教职工学校有实体的主要属性如下,其中下划线局部为主码:学校编号、名称、教职工职工号、年龄、性别、职称、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以0731-开头且唯一,性别为男或女,各字段的类型长度可以根据需要自己确定。create table university(uno char(6) primary key,uname varchar(32),tel char(12) check substr(tel,1,4)=0731-);create table emp(empno char(8) primary key, ename char(8), age number(2) check(age=20), se* char(2) check(se* in 男,女), title varchar2(8), uno char(6) references university(uno)在上述定义的每个表中输入一个有代表性的记录,表达相互间的联系。insert into university values(110101, 中南大学,0);insert into emp values(303111, 欧阳正菁,22, 女,讲师,110101);用SQL与关系代数两者都要表示:1找出中南大学的与职工号、select empno,ename from emp where uno in (select uno from university where uname =中南大学empno,age (uname=中南大学(university)|emp)试用SQL表示查询:找出平均年龄小于45的学校编号与名称、。Select uno, uname, tel from university where uno in (select uno from emp having avg(age)=20,各字段的类型长度可以根据需要自己确定。create table corporation(cno char(6) primary key,cname varchar(32),tel char(12) check substr(tel,1,4)=0731-);create table emp(empno char(8) primary key,ename char(8),age number(2) check(age=20), se* char(2),cno char(6) references corporation(cno)用SQL与关系代数两者都要表示: 找出柟芳的*与年龄、性别select empno,age,se* from emp where ename= 柟芳empsno,age,se* (ename=柟芳(emp) )试用SQL表示查询:找出平均学生年龄大于35的公司编号与名称、。Selecto,ame, tel from corporation whereo in (selecto from emp having avg(age)35 group byo, empno)建立视图表示关系公司名称、职工号、年龄、性别create view sd_stud(公司名称、职工号、年龄、性别)as selectame,tel,empno,ename,age,se*from corporation,emp where o=emp.empno)4.现有如下E-R图:1n学生院系有实体的主要属性如下,其中下划线局部为主码:院系编号、名称、学生*、年龄、性别、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以88开头且唯一,年龄=12,各字段的类型长度可以根据需要自己确定。create table school_dept(sdno char(4) primary key,sdname varchar(32),tel char(7) check substr(tel,1,2)=88);create table stud(sno char(8) primary key,sname char(8),age number(2) check(age=12), se* char(2),sdno char(4) references school_dept(cno)用SQL与关系代数两者都要表示:找出信息学院的与学生*、select sno,sname from stud where sdno in (select sdno from school_dept where sdname = 信息学院sno,age (sdname=信息学院(school_dept)|stud )试用SQL表示查询:找出平均学生年龄大于21的院系编号与名称、。Select sdno, sdname, tel from school_dept where sno in (select sno from stud having avg(age)21 group by sdno,sno)5.现有如下E-R图:1n职工部门有实体的主要属性如下,其中下划线局部为主码:部门编号、名称、部门负责人号、职工职工号、年龄、性别、工资、津贴、试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系一定要表示联系,其中以0731-开头,年龄=18,工资+津贴=18),se* char(2), sal number(10,2),comm. Number(10,2) , dno char(4) references dept (dno), check(sal+comm.)2000 group by dno);建立视图表示关系部门名称、职工号、年龄、性别create view dept_emp(部门名称、职工号、年龄、性别) as select dname,tel,eno,ename,age,se* from emp,dept where emp.dno=dept.dno6.现有如下E-R图:mp零件仓库库存库存量实体的主要属性如下,其中下划线局部为主码:仓库仓库号、仓库名、面积、货位数、保管员,零件零件号、零件名称、规格型号、计量单位、供货商号、价格、库存.,.,库存量试用SQL表示即定义上述E-R图所有的实体及联系,其中实体只需表示列出的主要属性,要求反映主码与联系外码,价格在0到10万之间,其中的类型长度可以根据需要确定。.,.处需要填上相应的属性。用SQL与关系代数表示查询:a 找出成品库II名的仓库号、面积、货位数。试用SQL表示查询: 找出110110011号零件的所在的仓库号,仓库名,货位数。解:1.处分别填仓库号,零件号Create table warehouse(wno char(4) primary key, wname varchar2(32), size number(8,2), l_num number(8),eno char(7) references emp(eno),emp_name char(8)Create table part(pno char(9) primary key, pname varchar2(32), p-size varchar2(32), cust_no char(7), p_price number(10,2) check(p_price between 0 and 100000)Create table store(wno char(4) references warehouse.wno, pno char(9) references part.pno, num number(12,2)用SQL与关系代数表示查询:a 找出成品库II号仓库的仓库号、面积、货位数。select wno, size, l_num from warehouse where wno=成品库IIwno,size_l_num(wname=成品库II(warehouse) )试用SQL表示查询: 找出110110011号零件的所在的仓库号,仓库名,货位数。Select wno, wname, sum(l_num) from warehouse where wno in (select wno from store where pno=110110011);七、关系数据库设计综合应用。1.由条件可知:函数关系的右属性不包含A,所以码中必包含A易知A能推出所有其它属性,所以A是码可知R的码有A2.因为不存在非主属性,所以R为3NF,但有DB,所以R不为BCNF。3.求关系模式的码, 并写出求解过程解:在F中的右边没有B,则R的码一定含有B,又BF+=B,A,D,E,C, 所以R的码为B且只有B4.因为有BC,而C为非主属性,则R不为2NF,即R的最高式为1NF.5.证明:第一局部,采用反证法,假定R不为2NF,则一定存在非主属性对码的局部依赖,即如码*,非主属性Y,则一定存在*真包含于*,有*Y,由于*不为码,Y为非主属性,Y*,所以R不为BCNF。第二局部,可以通过举例说明,R为2NF,而R不为BCNF。 6.解:在F中的右边没有B,所以R的码一定含有B,又:BF+=B,C,即B不为R的码考虑B与其它属性的组合, ABF+=A,B,C;BCF+=A,B,C; BDF+=B,C,D,A;知BD为码又ABCF+=A,B,C,所以R的码只有BD一个八、SQL编程综合应用。1.编写程序:编写程序产生以13907317位开头的11位手机号,要求末位不为4。提示:程序构造为:DECLARE 变量定义 BEGIN 程序体 END;DECLARE BH :NUMBER= 10000; PH CHAR(4);BEGIN while BH=19999 LOOPIf mod(BH,10)4) then INSERT INTO temp_table (BH)select 139073|to_char(BH) from dual;BH :=BH + 1;end loop;END;2.编写程序:编写程序,表示如下要求:n个学生可以不用输入,固定一个数即可,如230,平均分成m个班多余的人尽量平均放到前面的班,请产生*,其中前四位为i305,第五位为班号如,分别表示,班,第、8位表示序列号,第9位固定为5。要求将结果存入数据库表中。参考答案:/*首先需要有输入语句输入n与m ,也可以直接在程序中指定*/DECLARE BH,k,j,k1 number:= 1;BEGIN k:=int(n,m); /* 学生数除班数取整,即平均每个班多少人 */ j:=mod(n,m); /* 学生除班数取整后的余数,即平均到每个班后还剩下多少人 */For i=1.m loopIf i=j then k1:=k+1; /* 前面j个班都会多出一个学生 */elsek1:=k; /* 班号大于j的学生数为平均数k */End if;While BH=k1 LOOPIf BH =100 thenINSERT INTO temp_table (sno)select i305|to_char(i)|to_char(BH)|5 from dual;else INSERT INTO temp_table (sno)select i305|to_char(i)|0|to_char(BH)|5 from dual;end if;end if; BH :=BH + 1;end loop;end loop;END;3.编写程序,并写出程序运行产生的最后一个结果。用PL/SQL编写程序,表示产生以i6081开头的第9位固定为3的6、7、8位不超过236的多个*。答案DECLARE v_LCnumber:= 1;V_no number;BEGIN while v_LC=236 LOOPv_no:=1000+v_lc;INSERT INTO temp_table (sno)Select i608|to_char(v_no)|3 from dual; v_LC := v_LC + 1;end loop;END;最后一个结果是:i60812363。4.编程题:用PL/SQL编写程序,表示产生以09011开头的第8位不为4而第9位固定为3的6、7、8位不超过136的多个*。要求将结果存入数据库表中。DECLARE v_LCnumber:= 1;BEGIN while v_LC=136 LOOPif mod(v_LC,10)4 thenIf v_LC 10 then INSERT INTO temp_table (sno)select 0901100|to_char(v_LC)|3 from dual;Else if v_LC100 thenINSERT INTO temp_table (sno)Select 090110|to_char(v_LC)|3 from dual;ELSEINSERT INTO temp_table (sno)Select 09011|to_char(v_LC)|3 from dual;End if;End if;else v_LC := v_LC + 1;end if;end loop;END;5.试编写程序:产生以湘A-0开头的两位字母、两位数字如湘A-0AA99,湘A-0BB66的不少于100个的车牌,其中要求尾数不为4,并要求存入数据库表v_number(l_number varchar(20),Memo varchar(32)。 DECLARE car_code number:= 1;BEGIN while car_code100 LOOPIf car_code 10 and mod(car_code,10)4 then INSERT INTO v_number (l_number) select 湘A-0AA0|to_char(car_code) from dual;INSERT INTO v_number (l_number) select 湘A-0BB0|to_char(car_code) from dual;Else if mod(car_code,10)4 thenINSERT INTO v_number (l_number) Select 湘A-0AA|to_char(car_code) from dual;INSERT INTO v_number (l_number) Select 湘A-0BB|to_char(car_code) from dual;end if; car_code := car_code + 1;end loop;END;6.试编写程序:写程序表示产生以8883位开头的9位QQ号存入一个表中,表中字段除外,还有一个标注字段。后3位都为数字,其中末位一般不为4,但如果最后4位是444,则允许并标注为特别号,中尾数为6,7,8,9都需标注为幸运号。假设已有表 QQ_number,有字段qno char(11), spec char(8);假定先建立了表QQ_num(QQ_id,memo)DECLARE QQ_code number_:= 8000000; QQ_idM char;memom char;BEGIN while QQ_code=8999999 LOOP if mod(QQ_code,1000)=444 then qq_idm:=88|to_char(qq_code); memom:= 特别号;If mod(qq_code,10)4 thenIf mod(qq_code,10) in (6,7,8,9) then qq_idm:=88|to_char(qq_code); memom:=幸运号; else qq_idm:=88|to_char(qq_code); end if; end if;INSERT INTO QQ_num (qq_id,memo)Select qq_idm,memom from dual;qq_code := qq_code + 1; end loop;END;. z.
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!