二、名词解释
1.数据冗余 定义:同一数据存储在不同的数据文件中的现象。
2.DBA 数据库管理员
3.事务 指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
4.数据字典 :数据库中所有对象及其关系的信息集合。
5.数据独立性 包括数据的物理独立性和逻辑独立性。
6.物理独立性 是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的
7.逻辑独立性 是指用户的应用程序与数据库的逻辑结构是相互独立的
8. 存储过程 是一组为了完成特定功能的SQL语句集
9.触发器 可以查询其他
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求
10.SQL语言中的视图
答:在SQL中,外模式一级数据结构的基本单位是视图,它是从若干基本表和(或)其它视图中构造出来的,视图并不存储对应的数据,只是将视图的定义存于数据字典中。
四、简答
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
1.数据库管理系统的主要功能有哪些?
答:数据库定义、操纵、保护、存储、维护和数据字典。
2.数据库系统中的常见故障有哪些?
答:.事务故障,系统故障、介质故障。
3.简述SQL语言的组成。
答:分为四个部分:
数据定义、数据操纵、数据控制、嵌入式SQL语言的使用规定。
4.说明关系模型有哪三类完整性规则?
答:实体完整性、参照完整性、用户自定义完整性。
5.请阐述在网状模型和关系模型中,实体之间联系的实现方法。
答:在网状模型中,联系用指针实现。
在关系模型中,联系用关键码 (或外键,或关系运算) 来实现。
6.DBS由哪几个部分组成?
答:DBS由四部分组成:数据库、硬件、软件、数据库管理员。
7.数据库的并发操作会带来哪些问题?
答:数据库的并发操作会带来三类问题:丢失更新问题;不一致分析问题和“脏数据”的读出。
8.简述客户/服务器模式DBS的一般结构。此时数据库应用的功能如何划分?
答:DBS :数据库系统(Database System),DBS是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
9.什么是日志文件?为什么要设立日志文件?
答:(1)日志文件是用来记录事务对数据库的更新操作的文件。
(2)设立日志文件的目的是: 进行事务故障恢复;进行系统故障恢复;协助后备副本进行介质故障恢复。
10.SQL中表达完整性约束的规则主要有哪几种?
答:有主键约束、外键约束、属性值约束和全局约束等。
11.什么是分布式数据库的分布透明性?
答:分布透明性是指用户不必关心数据的逻辑分片,不必关心数据物理位置分配的细节,也不必关心各个场地上数据库的数据模型。
12.什么是对象关系数据模型?
答:在传统的关系数据模型基础上,提供元组、数组、集合等数据类型以及处理新的数据类型操作的能力,这样形成的数据模型,称为“对象关系数据模型”。
13. 数据库恢复的基本技术有哪些?
答:数据转储和登录日志文件是数据库恢复的基本技术。当系统运行过程中发生故障,利用转储的数据库后备副本和日志文件就可以将数据库恢复到故障前的某个一致性状态。
五、论述题
1.数据库中为什么要有恢复子系统?它的功能是什么?
答:因为计算机系统中硬件的故障、软件的错误、操作员的失误以及恶意的破坏是不可避免的,这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,因此必须要有恢复子系统。
恢复子系统的功能是:把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态或完整状态)。
2.数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据?
答:数据库系统中可能发生各种各样的故障,大致可以分以下几类:
(1)事务内部的故障;(2)系统故障;(3)介质故障;(4)计算机病毒。
事务故障、系统故障和介质故障影响事务的正常执行;介质故障和计算机病毒破坏数据库数据。
3.登记日志文件时为什么必须先写日志文件,后写数据库?
答:把对数据的修改写到数据库中和把表示这个修改的日志记录写到日志文件中是两个不同的操作。有可能在这两个操作之间发生故障,即这两个写操作只完成了一个。
如果先写了数据库修改,而在运行记录中没有登记这个修改,则以后就无法恢复这个修改了。如果先写日志,但没有修改数据库,在恢复时只不过是多执行一次UNDO操作,并不会影响数据库的正确性。所以一定要先写日志文件,即首先把日志记录写到日志文件中,然后写数据库的修改。
4.什么是数据库镜像?它有什么用途?
答:数据库镜像即根据DBA的要求,自动把整个数据库或者其中的部分关键数据复制到另一个磁盘上。每当主数据库更新时,DBMS自动把更新后的数据复制过去,即DBMS自动保证镜像数据与主数据的一致性。
数据库镜像的用途有:
一是用于数据库恢复。当出现介质故障时,可由镜像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数据进行数据库的恢复,不需要关闭系统和重装数据库副本。
二是提高数据库的可用性。在没有出现故障时,当一个用户对某个数据加排它锁进行修改时,其他用户可以读镜像数据库上的数据,而不必等待该用户释放锁。
5.试述事务的概念及事务的四个特性。
答:
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这个四个特性也简称为ACID特性。
原子性:事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。
一致性:事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。
隔离性:一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。
持续性:持续性也称永久性(Permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其执行结果有任何影响。
六、综合题
(一)现有关系数据库如下:
学生(学号,姓名,性别,专业,奖学金)
课程(课程号,名称,学分)
学习(学号,课程号,分数)
用SQL语言实现如下小题:
1. 检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业
SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 NOT IN
(SELECT 学号
FROM 学习
WHERE 课程号='C135')
2. 检索至少学过课程号为“C135”和“C219”的学生信息,包括学号、姓名和专业;
.SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 IN
(SELECT X. 学号
FROM 学习 AS X, 学习AS Y
WHERE X.学号=Y.学号 AND X.课程号='C135' AND X 课程号=’C219’)
3.从学生表中删除成绩出现过0分的所有学生信息;
DELETE FROM 学生
WHERE 学号 IN
(SELECT 学号
FROM 学习
WHERE 分数=0)
3. 定义“英语”专业学生所学课程的信息视图AAA,包括学号、姓名、课程号和分数。
CREATE VIEW AAA(学号,姓名,课程号,分数)
AS SELECT 学号,姓名,课程号,分数
FROM 学生,学习
WHERE 学生.学号 =学习.学号 AND 专业=’英语’
(二)现有如下关系:学生(学号,姓名,性别,专业,出生年月)
教师(教师编号,姓名,所在部门,职称)
授课(教师编号,学号,课程编号,课程名称,教材,学分,成绩)
1.查找学习“数据库原理”课程且成绩不及格的学生学号和任课教师编号;
2.查找学习“英语”课程的“计算机应用”专业学生的学号,姓名和成绩;
3.查找教师“李洪”所教过的学生成绩为90分以上(包括90)的学生学号,姓名和专业;
4.删除学生表中学号为“9903016”的记录;
5.将编号为“60016”的教师所在的部门该为“计算机”;
6.建立“计算机应用”专业成绩有过不及格的学生的视图;
7.向学生表中增加一个“奖学金”列,其数据类型为数值型。
1、 SELECT 学号,教师编号
FROM 授课
WHERE 课程名称='数据库原理' AND 成绩<60;
2、 SELECT 学号,姓名,成绩
FROM 授课,学生
WHERE 学生.学号=授课.学号 AND 专业='计算机应用' AND 课程名称='英语';
3、 SELECT 授课.学号,学生.姓名,专业
FROM 学生,教师,授课
WHERE 学生.学号=授课.学号 AND 教师.教师编号=授课.教师编号 AND 教师.
姓名='李洪' AND 成绩>=90;
4、 DELETE
FROM 学生
WHERE 学号='9903016';
5、 UPDATE 教师
SET 所在部门='计算机系'
WHERE 教师编号='60016';
6、 CREATE VIEW 成绩
AS SELECT 学生.学号,姓名,成绩
FROM 学生,授课
WHERE 学生.学号=授课.学号 AND 专业='计算机应用' AND 成绩<60;
(三)设有关系数据库:
职工关系EMPLOYEE (职工号
,职工名,街道,城市)
工作关系WORKS (职工号,
公司号,工资)
公司关系COMPANY (公司号,
公司名,城市)
试用SQL语句写出下列操作
:将所有在“联华公司”工作的职工加薪5﹪。
UPDATE WORKS
SET工资 = 工资 * 1.05
WHERE公司号IN
(SELECT公司号
FROM COMPANY
WHERE公司名 =‘联华公司’);