第1章 数据库概述
1.试说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据是描述事物的符号记录,是数据库中存储的基本对象。数据库是存放数据的仓库,是长期存储在计算机中的有组织的、可共享的大量数据的集合。数据库管理系统是一个专门用于实现对数据进行管理和维护的系统软件。数据库系统是指在计算机中引入数据库后的系统,一般由数据库、数据库管理系统(及相关的实用工具)、应用程序、数据库管理员组成。
2.数据管理技术的发展主要经历了哪几个阶段?
答:数据管理技术的发展主要经历了文件管理和数据库管理两个阶段。 3.与文件管理相比,数据库管理有哪些优点?
答:将相互关联的数据集成在一起,具有较少的数据冗余,程序与数据相互独立,保证数据的安全可靠,最大限度地保证数据的正确性,数据可以共享并能保证数据的一致性。
4.在数据库管理方式中,应用程序是否需要关心数据的存储位置和存储结构?为什么?
答:不需要。因为在数据库系统中,数据的存储位置以及存储结构保存在数据库管理系统中,从数据到物理存储位置的转换是由数据库管理系统自动完成的。 5.在数据库系统中,数据库的作用是什么?
答:在数据库系统中,数据库是存放数据的场所。
6.在数据库系统中,应用程序可以不通过数据库管理系统而直接访问数据文件吗? 答:不能。
7.数据独立性指的是什么?它能带来哪些好处? 答:数据独立性指的是数据的逻辑独立性和物理独立性。逻辑独立性带来的好处是当表达现实世界信息的逻辑结
构发生变化时,可以不影响应用程序;物理独立性带来的好处是当数据的存储结构发生变化时,可以不影响数据的逻辑组织结构,从而也不影响应用程序。
8.数据库系统由哪几部分组成,每一部分在数据库系统中的作用大致是什么?
答:数据库系统由四个主要部分组成,即数据库、数据库管理系统、应用程序和系统管理员。数据库是数据的汇
集,它以一定的组织形式存于存储介质上;数据库管理系统是管理数据库的系统软件,它可以实现数据库系统的各种功能;系统管理员负责数据库的规划、设计、协调、维护和管理等工作;应用程序指以数据库数据为核心的应用程序。
第2章 数据模型与数据库结构
1.解释数据模型的概念,为什么要将数据模型分成两个层次?
答:数据模型是对现实世界数据特征的抽象。数据模型一般要满足三个条件:第一是数据模型要能够比较真实地
模拟现实世界;第二是数据模型要容易被人们理解;第三是数据模型要能够很方便地在计算机上实现。由于用一种模型同时很好地满足这三方面的要求在目前是比较困难的,因此在数据库系统中就可以针对不同的使用对象和应用目的,采用不同的数据模型。根据模型应用的不同目的,将这些模型分为概念层数据模型和组织层数据模型两大类,以方便对信息的描述。
2.概念层数据模型和组织层数据模型分别是针对什么进行的抽象?
答:概念层数据模型是对现实世界的抽象,形成信息世界模型,组织层数据模型是对信息世界进行抽象和转换,
形成具体的DBMS支持的数据组织模型。
3.实体之间的联系有哪几种?请为每一种联系举出一个例子。
答:实体之间的联系有一对一、一对多和多对多三种。例如:系和正系主任是一对一联系(假设一个系只有一名
正系主任),系和教师是一对多联系(假设一名教师只在一个系工作),教师和课程是多对多联系(假设一名教师可以讲授多门课程,一门课程可由多名教师讲授)。 4.说明实体-联系模型中的实体、属性和联系的概念。 答:实体是具有公共性质的并可相互区分的现实世界对象的集合,属性是人们感兴趣的实体或者联系的性质或特
征,联系是数据和数据之间的关联关系。 5.指明下列实体间联系的种类:
(1)教研室和教师(设一个教师只属于一个教研室,一个教研室可有多名教师)。 (2)商品和顾客。
(3)国家和首都(假设一个国家的首都可以变化)。 (4)飞机和乘客。 (5)银行和账户。 (6)图书和借阅者。(设一个借阅者可同时借阅多本书,可在不同时间对同一本书借阅多次) 答:(1)教研室和教师:一对多 (2)商店和顾客:一对多 (3)国家和首都:一对多 (4)飞机和乘客:多对多 (5)银行和账户:多对多 (6)图书和借阅者:多对多
6.数据库系统包含哪三级模式?试分别说明每一级模式的作用?
答:数据库系统包含的三级模式为:内模式、模式和外模式。外模式是对现实系统中用户感兴趣的整体数据结构
的局部描述,用于满足不同数据库用户需求的数据视图,是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是对数据库整体数据结构的子集或局部重构。模式是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。内模式是对整个数据库的底层表示,它描述了数据的存储结构。 7.数据库管理系统提供的两级映像的作用是什么?它带来了哪些功能? 答:数据库系统的两级映象是模式与内描述间的映象和外模式与模式间的映象。模式/内模式的映象定义了概念
视图和存储的数据库的对应关系,它说明了概念层的记录和字段在内部层次怎样表示。如果数据库的存储结构改变了,那么,必须对模式/内模式的映象进行必要的调整,使模式能够保持不变。外模式/概念模式间的映象定义了特定的外部视图和概念视图之间的对应关系,当概念模式的结构可发生改变时,也可以通过调整外模式/模式间的映象关系,使外模式可以保持不变。
8.数据库三级模式划分的优点是什么?它能带来哪些数据独立性?
答:数据库的三级模式的划分实际上将用户、逻辑数据库与物理数据库进行了划分,使彼此之间的相互干扰减到
最少。这三个模式的划分实际上带来了两个数据独立性,即物理独立性和逻辑独立性。这使得底层的修改和变化尽量不影响到上层。
第3章 关系数据库
1. 试述关系模型的三个组成部分。
答:关系数据模型包括数据结构、数据操作及数据完整性约束。 2. 解释下列术语的含义: (1) 笛卡尔积
答:设D1,D2,…,Dn为任意集合,定义笛卡尔积D1,D2,…,Dn为: D1×D2× …×Dn ={(d1,d2,…,dn) | di ∈Di,i=1,2,…,n } (2) 主码
答:主码是表中的属性或属性组,用于惟一地确定一个元组。主码可以由一个属性组成,也可以由多个属性共同组成。
(3) 候选码 答:如果一个属性或属性集的值能够惟一标识一个关系的元组而又不包含多余的属性,则称该属性或属性集为候选码。
(4) 外码
答:设F是关系R的一个或一组属性,如果F与关系S的主码相对应,则称F是关系R的外码。 (5) 关系
答:通俗的讲,关系就是二维表,它是关系数据库的逻辑数据结构。 (6) 关系模式
答:二维表的结构称为关系模式,或者说,关系模式就是二维表的表框架或表头结构。 (7) 关系数据库
答:对应于一个关系模型的所有关系的集合称为关系数据库。 3. 关系数据库的三个完整性约束是什么?各是什么含义? 答:包含:实体完整性、参照完整性和用户定义的完整性。
实体完整性:作用是保证表中的不存储相同的数据,也不存储无意义的数据。
参照完整性:用于描述实体之间的联系。
用户定义的完整性:用于限定属性的取值范围,目的是保证数据库中存储的值与现实世界相符。 4. 连接运算有哪些?等值连接和自然连接的区别是什么?
答:连接运算中最重要也是最常用的连接有两个,一个是等值连接,一个是自然连接。等值连接是从关系R与关系S的广义笛卡尔积中选取A,B属性值相等的那些元组;自然连接是一种特殊的连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中要去掉重复的属性列。 5. 对参与并、交、差运算的两个关系R、S有什么要求? 答:必须具有相同的结构和语义。
6. 对参与除运算的两个关系(R÷S)有什么要求?除运算的结果关系中包含哪些属性?
答:两个关系模式的除法:R÷S,要求关系S的属性必须是关系R属性的一部分,其除结果由属于R但不属于S的所有属性组成;
7. 对参与自然连接和等值连接操作的两个关系R、S有什么要求?
答:要求必须有语义相同的属性,对于自然连接,则还要求语义相同的属性必须同名。 8. 投影操作的结果关系中是否有可能存在重复的记录?为什么? 答:不可能,因为投影操作会自动去掉结果中的重复记录。
9. 利用表3-10至3-12所示的三个关系,写出实现如下查询要求的关系代数表达式。
(1) 查询“信息系”学生的选课情况,列出学号、姓名、课程号和成绩。 答:∏Sno,sname,Cno,Grade(σSdept=‘信息系’(Student SC))
(2)查询“VB”课程的考试情况,列出学生姓名、所在系和考试成绩。 答:∏sname,Sdept,Grade(σCname=‘VB’(Student SC Course))
(3)查询考试成绩高于90分的学生的姓名、课程名和成绩。 答:∏sname,Cname,Grade(σGrade>90(Student SC Course))
(4)查询至少选修了9512101号学生所选的全部课程的学生的姓名和所在系。 答:∏Sname,Sdept(Student (∏ sno,cno (SC) ÷ ∏cno(σSno=’9512101’(SC))))
(5)查询至少选了“C01”和“C02”两门课程的学生的姓名、所在系和所选的课程号。 答:∏Sname,Sdept,Cno(Student (∏ sno,cno (SC) ÷ ∏(σcno=’C01’∨cno=’C02’(SC))))
(6)查询没有选修第1学期开设的全部课程的学生的学号、姓名和所选的课程号。 答:∏Sno,Sname,Cno(Student (∏ sno (SC) - ∏sno(σSemester=1(Course SC))) SC)
(7)查询计算机系和信息系选了VB课程的学生姓名。 答:∏Sname(σSdept=’计算机系’(Student) ∏Sname(σSdept=’信息系’(Student) SCSCσCname=’VB’(Course)) ∪ σCname=’VB’(Course))
第 4 章 SQL语言基础及数据定义功能
1.Tinyint数据类型定义的数据的取值范围是多少? 答:0~255。
2.日期时间类型中的日期和时间的输入格式是什么?
答:在输入日期部分时可采用英文数字格式、数字加分隔符格式和纯数字格式。采用英文数字格式时,月份可用英文全名或缩写形式。
在输入时间部分时可以采用12小时格式或24小时格式。使用12小时制时要加上AM或PM说明是上午还是下午。在时与分之间可以使用冒号(:)作为分隔符。整个日期时间数据用单引号括起来。 3.SmallDatatime类型精确到哪个时间单位? 答:分钟。
4.定点小数类型numeric中的p和q的含义分别是什么?
答:p代表数字位长度,即整数部分和小数部分的数字位之和。q代表小数位数。 5.Char(10)、nchar(10)的区别是什么?它们各能存放多少个字符?占用多少空间?
答:char(10)是普通编码,固定占10个字节,最多能存放10个字母或数字字符,5个汉字。Nchar(10)是统一字符编码,固定占20个字节,最多能存放10个字符(包括字母和汉字)。
6.Char(n)和varchar(n)的区别是什么?其中n的含义是什么?各占用多少空间? 7.数据完整性的作用是什么?
答:数据的完整性作用是防止数据库中存在不符合语义的数据。
8.在对数据进行什么操作时,系统检查DEFAULT约束?在进行什么操作时,检查CHECK约束? 答:插入操作且省略了某些列的值时检查DEFAULT约束。插入和修改操作检查CHECK约束。 9.UNIQUE约束的作用是什么? 答:限制列的取值不重复。
10.写出创建如下三张表的SQL语句,要求在定义表的同时定义数据的完整性约束: 答:
Create table 图书表(
书号 nchar(6) primary key, 书名 nvarchar(30) not null, 第一作者 char(10) not null, 出版日期 smalldatetime, 价格:numeric(4,1)) Create table书店表(
书店编号 nchar(6) primary key, 店名 nvarchar(30) not null, 电话char(8) check(电话 like
‘[0-9][0-9][0-9][0-9][0-9][0-9][0-9] [0-9]’), 地址 varchar(40), 邮政编码 char(6))
Create table图书销售表( 书号 nchar(6) not null, 书店编号 nchar(6) not null,
销售日期 smalldatetime no tnull;
销售数量 smalldatetime check(销售数量 >= 1))
11.为图书表添加“印刷数量”列,类型为整数,同时添加约束,要求此列的取值要大于等于1000。 答:alter table 图书表 Add 印刷数量 int check(印刷数量 >= 1000) 12.删除书店表中的“邮政编码”列。
答:alter table 书店表 Drop column 邮政编码
13.将图书销售表中的“销售数量”列的数据类型改为整型。 答:alter table 图书销售表 Alter column 销售数量 int