资源描述
第一部分 基础理论第1章 数据库概述 1试说明数据、数据库、数据库管理系统和数据库系统的概念。数据:描述事务的符号记录数据库:存储数据的仓库数据库管理系统:用于管理和维护数据的系统软件数据库系统:计算机中引入数据库后的系统,包括数据库,数据库管理系统,应用程序,数据库管理员2数据管理技术的发展主要经历了哪几个阶段?两个阶段,文件管理和数据库管理9数据独立性指的是什么?应用程序不因数据的物理表示方式和访问技术改变而改变,分为逻辑独立性和物理独立性。物理独立性是指当数据的存储结构或存储位置发生变化时,不影响应用程序的特性;逻辑独立性是指当表达现实世界的信息内容发生变化时,不影响应用程序的特性。10数据库系统由哪几部分组成?由数据库、数据库管理系统、应用程序、数据库管理员组成。第2章 数据模型与数据库系统的结构 4说明实体一联系模型中的实体、属性和联系的概念。实体是具有公共性质的并可相互区分的现实世界对象的集合。属性是实体所具有的特征或性质。联系是实体之间的关联关系。6数据库系统包含哪三级模式?试分别说明每一级模式的作用。外模式、模式和内模式。外模式:是对现实系统中用户感兴趣的整体数据结构的局部描述,用于满足不同用户对数据的需求,保证数据安全。模式:是数据库中全体数据的逻辑结构和特征的描述,它满足所有用户对数据的需求。内模式:是对整个数据库的底层表示,它描述了数据的存储结构。7数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能?两级映像是外模式/模式映像和模式/内模式映像。外模式/模式映像保证了当模式发生变化时可以保证外模式不变,从而使用户的应用程序不需要修改,保证了程序与数据的逻辑独立性。模式/内模式映像保证了当内模式发生变化,比如存储位置或存储文件名改变,可以保持模式不变,保证了程序与数据的物理独立性。两级印象保证了应用程序的稳定性。第3章 关系数据库 1试述关系模型的三个组成部分。数据结构、关系操作集合、关系完整性约束2解释下列术语的含义:(3)候选码当一个属性或属性集的值能够唯一标识一个关系的元组,而又不包含多余的元素,则称该属性或属性集为候选码。(5)关系模式二维表的结构3关系数据库的三个完整性约束是什么?各是什么含义?实体完整性:关系数据库中每个关系都必须有主码,且主码值不能为空,不能重复。参照完整性:指多个实体或表之间的关联关系,规则是外码或者值为空,或者等于所参照关系的主码值。用户定义完整性:指明关系中属性的取值范围。第4章 SQL语言基础及数据定义功能 12写出创建如下表的SQL语句,要求在定义表的同时定义数据的完整性约束:(1)“图书表”结构如下:书号:统一字符编码定长类型,长度为6,主码;书名:统一字符编码可变长类型,长度为30,非空;第一作者:普通编码定长字符类型,长度为10,非空;出版日期:小日期时间型,价格:定点小数,小数部分1位,整数部分3位。Create table book(bno nchar(6) primary key,bname nvarchar(30) not null,fauther char(10) not null,date smalldatetime,price numeric(4,1)第5章 数据操作语句 利用定义的Student、Course和SC表结构实现如下操作,并根据表提供的数据观察各语句执行情况。Student表:列名数据类型约束Sno普遍编码定长字符串,长度为7主码Sname普遍编码定长字符串,长度为10非空Ssex普遍编码定长字符串,长度为2Sage整型Sdept普遍编码定长字符串,长度为20Course表列名数据类型约束Cno普遍编码定长字符串,长度为6主码Cname普遍编码定长字符串,长度为20非空Credit整型Semster整型Cnocnamecreditsemesterc01计算机文化学31c02VB23c03计算机网络47c04数据库基础56c05高等数学82c06数据结构54SC表:列名数据类型约束Sno普遍编码定长字符串,长度为7主码,引用Student的外码Cno普遍编码定长字符串,长度为6主码,引用Course的外码Grade整型1.查询学生选课表中的全部数据。Select * from student2.查询计算机系学生的姓名、年龄。Select sname , sage from student where sdept =计算机系3.查询成绩在7080的学生的学号、课程号和成绩。Select sno, cno, grade from sc where grade between 70 and 80 4.计算机系年龄在1820的男生的姓名、年龄。Select sname, sage from student where sdept=计算机系 and sage between 18 and 20 and ssex=男5.查询“c01”课程的最高成绩。Select max(grade) from sc where cno=c016.查询计算机系学生的最大年龄和最小年龄。select max(sage), min(sage) from s where sdept=计算机系7.统计每个系的学生人数。select sdept, count(*) from s group by sdept8.统计每门课程的选课人数和考试最高分。Select cno, count(sno), max(grade) from sc group by cno9.统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。Select sno, count(cno) 选课门数, sum(grade) 考试总成绩 from s group by snoorder by 选课门数 asc10.查询选修了“c002”课程的学生的姓名和所在系。Select s.sname, sdept from student s join sc on s.sno=sc.sno11.查询成绩80分以上的学生的姓名、选的课程号和成绩,并按成绩降序排列结果。Select sname, cno, grade from student s join sc on s.sno=sc.sno where grade 80 order by grade desc 14.查询哪些学生没有选课,要求列出学号、姓名和所在系。Select sno, sname, sdept from s join sc on s.sno=sc.sno where cno is null15.用子查询实现如下查询:(1)查询选了“C001”课程的学生姓名和所在系。答:select sname,sdept from student where sno in( select sno from sc where cno = C001)(2)查询通信工程系成绩80分以上的学生学号和姓名。答:select sno,sname from student where sno in( select sno from sc where grade 80) and sdept = 通信工程系(3)查询计算机系考试成绩最高的学生姓名。答:select sname from student s join sc on s.sno = sc.sno where sdept = 计算机系 and grade = (select max(grade) from sc join student s on s.sno = sc.snowhere sdept = 计算机系)(4)查询年龄最大的男生的姓名和年龄。答:select sname,sage from student Where sage = (select max(sage) from student and ssex = 男) and ssex = 男(5)查询“C001”课程的考试成绩高于“C001”课程的平均成绩的学生的学号和“C001”课程成绩。答:select sno,grade from sc where cno = C001 And grade (select avg(grade) from sc where cno = C001) 16.创建一个新表,表名为test_t,其结构为(COLI,COL2,COL3),其中:COL1:整型,允许空值。COL2:字符型,长度为10,不允许空值。COL3:字符型,长度为10,允许空值。试写出按行插入如下数据的语句(空白处表示空值)。COL1COL2COL3B11B2C22B3Create table test_t( COL1 int, COL2 char(10) not null, COL3 char(10)Insert into test_t(COL2) values(B1)Insert into test_t(COL1,COL2) values(1,B2)Insert into test_t values(2,B3,NULL)19.删除考试成绩低于50分的学生的该门课程的选课记录。Delete from sc where grade 5020.删除计算机系VB成绩不及格学生的VB选课记录。Delete from scFrom sc join student s on s.sno = sc.snoJoin course c on c.cno = sc.cnowhere cname = VB and grade = 90(2)查询选课门数超过3门的学生的学号和选课门数。Select * from v3 where total = 3(3)查询计算机系选课门数超过3门的学生的姓名和选课门数。Select sname,total from v3 join student s on s.sno = v3.sno Where sdept = 计算机系 and total = 3(4)查询修课总学分超过10分的学生的学号、姓名、所在系和修课总学分。Select v4.sno,sname,sdept,total_credit From v4 join student s on s.sno = v4.sno Where total_credit = 10(5)查询年龄大于等于20的学生中,修课总学分超过10分的学生的姓名、年龄、所在系和修课总学分。Select sname,sage,sdept,total_credit From v4 join student s on s.sno = v4.sno Where sage = 20 and total_credit = 1013.修改12题(4)定义的视图,使其查询每个学生的学号、总学分以及总的选课门数。alter view v1 AsSelect sno, sum(credit), count(*) from sc Join course c on sc.cno=c.cno Group by sno第8章第9章 关系规范化理论 1关系规范化中的操作异常有哪些?它是由什么引起的?解决的办法是什么?主要有插入异常、删除异常和修改异常,这些都是由数据冗余引起的,解决的办法是进行模式分解,消除数据冗余。2第一范式、第二范式和第三范式关系的定义分别是什么?第一范式:不包含重复组的关系(即不包含非原子项的属性)是第一范式的关系。第二范式:如果R(U,F)1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)2NF。第三范式:如果R(U,F)2NF,并且所有的非主属性都不传递依赖于主码,则R(U,F)3NF。3什么是部分依赖?什么是传递依赖?请举例说明。部分函数依赖:如果XY,并且对于X的一个任意真子集X有XY成立,则称Y部分函数依赖于X。传递函数依赖:如果XY、YZ,则称Z传递函数依赖于X7设有关系模式:学生修课(学号,姓名,所在系,性别,课程号,课程名,学分,成绩)。设一个学生可以选多门课程,一门课程可以被多名学生选。一个学生有唯一的所在系,每门课程有唯一的课程名和学分。请指出此关系模式的候选码,判断此关系模式是第几范式的,若不是第三范式的,请将其规范化为第三范式关系模式,并指出分解后的每个关系模式的主码和外码。候选码:(sno, cno)为第一范式(1NF)第三范式:学生(Sno, sname, sdept, ssex) sno为主码课程(Cno, cname, credit) cno为主码考试(Sno,cno, grade) (sno, cno)为主码,sno为引用学生的外码,cno为引用课程的外码第11章 数据库设计 2简述数据库的设计过程。数据库设计一般包含如下过程:l 需求分析。l 结构设计,包括概念结构设计、逻辑结构设计和物理结构设计。l 行为设计,包括功能设计、事务设计和程序设计。l 数据库实施,包括加载数据库数据和调试运行应用程序。l 数据库运行和维护阶段。8把E-R模型转换为关系模式的转换规则有哪些?转换的一般规则如下:一个实体转换为一个关系模式。实体的属性就是关系的属性,实体的码就是关系的主键。对于实体间的联系有以下不同的情况:(1)11联系一般是将联系与任意一端实体所对应的关系模式合并,即在一个实体的关系模式的属性中加入另一个实体的码和联系本身的属性。(2)1n联系一般与n端所对应的关系模式合并,即在n端对应的关系模式中加入1端实体的码以及联系本身的属性。(3)mn联系必须转换为一个独立的关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为此关系模式的属性,且关系模式的主键包含各实体的码。(4)有相同主码的关系模式可以合并。第12章 事务与并发控制 1事务是用户定义的数据操作系列,这些操作作为一个完整的工作单元,一个事务内的所有语句被作为一个整体,要么全部执行,要么全部不执行事务的4个特征:原子性,一致性,隔离性,持久性
展开阅读全文