1. 选填

12年

  • 数据完整性约束的建立需要通过数据库管理系统提供的 数据定义语言 来实现。
  • 某高校五个学院的学生信息存放在同一个基本表中,采取建立各学院的行级视图,并将对该视图的读权限赋予该学院的管理员。
  • 设关系R与S的属性个数分别为 r 和 s,则(R X S)操作结果的b为 r+s
  • 学生关系R(sno, sname, dno, mag),其中sno为学生号,sname为学生姓名,dno为学院号,mag为院长,主键诶sno,则关系R属于 2NF
    sno → (sname, dno, mag) 完全依赖
    dno → mag 传递函数依赖而非直接函数依赖,故不是3NF
  • 索引提高了查询的速度,但一般会降低更新的速度。
    不应该创建索引的情况: 修改性能远远大于检索性能
  • 规范化理论是关系数据库进行逻辑设计的理论依据,根据这个理论,关系数据库中的关系必须满足:每一个属性都是 不可分解的
  • DBA - 数据库管理员 是指负责数据库的建立、使用和维护的专门人员。
  • 在关系代数运算中,从关系中取出满足条件的元组的运算称为 选择
  • 存储过程 是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定其名字并给出参数来执行它,一般是作为独立的部分来执行。
  • 在传统关系系统中,关系是笛卡尔积的子集/关系是一张二维表,其中的元组次序可以交换, 关系不可以嵌套定义 。(1NF)
  • 数据的物理独立性是指用户和用户程序不依赖于数据库的物理结构。
    数据的逻辑独立性是指当数据库重构造时,用户和用户程序不受影响。

13年

  • 嵌入式SQL中负责向主语言传递SQL语句执行状态的是 SQLCA
    1. 主变量实现主语言与SQL语句交换数据。
    2. 游标用于将SQL查询结果集带回给主语言进行逐行处理。
    3. SQLCA用于传递SQL语句的执行状态给主语言,再由主语言据此决定程序执行流程。
    4. SQL语句只能对数据库对象进行操作。
  • 存储过程和函数的区别:
    1. 存储过程可以返回参数,而函数只能返回值或者表对象。
    2. 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用。
    3. 存储过程在调用时才加载,函数在系统启动时就进行编译并加载。
    4. 一般来说,存储过程实现的功能要复杂一些,函数实现的功能针对性更强
  • 数据库系统中完整性约束的句子主要有三种: _主键(primary key)_、检查子句(check)和外键子句 (foreign key)。
  • 数据库系统的体系结构分为单用户结构、主从式结构、分布式结构、 客户机_服务器结构浏览器_服务器结构

14年

  • SQL Server2008中,Master数据库记录SQL Server系统的所有系统级信息,包括实例范围内的元数据、端点、链接服务器和系统配置设置。
    1. Model数据库用作SQL Server实例上创建的所有数据库的模板。
    2. Resource数据库是一个只读数据库,包含SQL Server包括的系统对象。
    3. tempdb数据库是一个工作空间,用于保存临时对象或中间结果集。P69
  • 数据库的三级模式结构是指数据库系统由外模式、模式、内模式三级构成,数据库的三级模式结构保证了 数据库的独立性

15年

  • 在select语句中使用sum(列名)时,列名要求 不限制数据类型
  • 数据库安全性控制措施:审计,视图,加密
  • SQL语言中 commit 语句的主要作用是 提交事务
  • 在视图上不能完成的操作是 在视图上定义新的基本表
  • DMBS总是基于某种数据模型,可以分为层次型、网状型、关系型和面向对象型DBMS。
  • 并发控制是以 事务 为单位进行的。
  • 在数据库系统中,游标是系统为用户开设的一个 数据缓冲区 ,存放SQL语句的执行结果。
  • SQL语句通过 revoke语句 实现收回所授权限的操作。
    revoke <权限> [on <对象类型> <对象名>] from <用户>
  • 结构化查询语言SQL是一种关系数据库语言,其主要功能有数据定义、数据查询、 _数据操纵_、数据控制等。

16年

  • “age between 18 and 40”短语的正确含义是: age<=40 and age>=18
  • 存储过程是一组预先 定义编译 的T-SQL语句。
  • 数据库的完整性是指保护数据库中数据的正确性、 有效性 和相容性,防止不合语义的数据进入数据库。
  • 通过加锁可以保证处理程序开发时的数据 一致性
  • 视图是关系数据库系统提供给用户以多角度观察数据库数据的重要机制。视图是从一个或几个基本表(或视图)导出的 虚拟表 ,通过视图可以看到数据库中相应的数据及其变化。

17年

  • 数据库类型是按照 数据模型 来划分的。
  • 数据无冗余 不属于数据库的特点。一般我们说数据冗余度低
    特点:数据结构化,数据共享,数据独立性高,数据的完整性、灵活性、安全性
  • 在关系代数中,从一个关系中选取若干属性列组成新的关系,称为投影。P42
  • 属性A是关系R的主属性,则属性A不能取空值,这是 实体完整性规则 。P37
  • 在SQL语言中,删除基本表的命令是 drop table
  • 存储过程 不是客户端的程序
    存储过程是数据库服务器端的一段程序。
    * Type1:(select)检索数据,检索到的数据以数据集的形式返回给客户端。
    * Type2:(insert, delete)不返回数据,只执行一个动作
    
    存储过程的作用:
    * 屏蔽表的细节,起到安全作用。
    * 简化用户的操作。
    * 提高系统的执行效率。
    
  • 触发器 是一种特殊的存储过程,它可以在对一个表进行insert、update和delete操作中任一种或几种操作时被自动调用。
  • 封锁(技术) 是目前DBMS普遍采用的并发控制的方法,可以有效地控制并发事务之间的相互作用,保证数据的一致性。
  • 如果一个属性或属性集合的值能唯一标识一个关系的元组而又不含有多余的属性,则称该属性或属性集合为该关系的 候选键

18年

用关系型数据库系统来管理数据,数据由 DBMS 统一管理和控制,数据的独立性高,共享性好,冗余度低。

  • 基本的SQL语言不可以实现 _并发控制_。
  • 数据库管理机制要解决丢失更新、不一致以及 “脏资料” 等问题,可以通过枷锁技术解决。
  • 数据库系统中,游标是系统为用户开设的一个数据缓冲区,存放SQL语句的 结果数据集
  • 数据库设计的一般步骤包括需求分析、概念结构设计、逻辑结构设计、 _数据库物理设计_、数据库实施、数据库运行维护等。
  • 关系模式SCS(Sno, Cno, Score)中,Sno是学生的学号,Cno是课程号,Score为成绩。需查询出每门课的平均成绩,且要求查询结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列,其SQL语言可写为:
    select Cno, avg(Score) from SCS group by Cno order by Cno/2 desc
    * order by 2 = order by Cno 表示按照第二列。
    * 默认升序,即asc,可以省略不写。
    
  • SQL语句select语句中,“having条件表达式”用来筛选满足条件的 组(group)
  • 数据库的并发操作可能带来的问题包括 丢失更新不可重复读读“脏“数据。
  • E-R图某实体具有一个多值属性,在转化为关系模式时,应 将实体的键与多值属性单独构成关系模式 。 -课本P250-
    Way1:将联系转换成一个独立的关系,其关系的属性由与该联系相连的各实体键以及联系本身的属性组成,而该联系的键为n端实体集的键。
    Way2:在n端实体集增加新属性,新属性由联系对应1端实体集的键和联系自身的属性构成, 新增属性后原关系的键不变。
  • 数据库三级模式体系结构的划分,有利于保持数据库的 数据独立性 ;外模式_模式的映像保证逻辑独立;模式_内模式则保证 物理独立性
  • 主键的一定是not null,在行记录不可重复,可以将若干非null列合并起来作为主键。主键的列数据类型不受约束。
  • 完整性约束 :主键约束(实体完整性)、外键约束(参照完整性)、属性约束(用户定义的完整性)、域约束、断言约束。 -课本P156 对应笔记-
  • 为数据表创建索引的目的是 提高查询的检索性能
  • 关系数据库用 表格数据 来表示实体之间的联系,其任何检索操作的实现都是由 选择、投影和连接 三种基本操作组合而成。
  • 结构化查询语言SQL是一种关系型数据库语言。其主要功能有数据定义、数据操作和 数据查询和数据控制
  • 数据字典包括:1.数据项、2.数据结构、3.数据存储、4.数据流和5.处理过程。
  • 员工工资总额在800元至30000元之间”的约束属于DBMS的 完整性控制
    A.封锁控制
    B.并发控制
    C.完整性控制
    D.安全性控制

19年

  1. 下列四项中,不属于数据库系统的主要特点的是 B
    A) 数据结构化 B) 程序的标准化
    C) 较高的数据独立性 D) 数据的冗余度小
  • 考点:数据库的特点
    数据库具有较冗余度、较高的程序与数据独立性、易于扩充和数据结构化的特点。
  1. 保护数据以防止未经授权或不合法的使用造成的数据泄露、更改或破坏是指数据库的 A
    A) 安全性控制 B) 完整性控制 C) 并发控制 D)故障恢复
  2. 视图是一个“虚表”,视图的构造基于 C
    A) 基本表 B) 视图 C)基本表或视图 D)数据字典
  3. 关系数据模型的三个组成部分中,不包括 C
    A) 完整性约束 B) 数据结构 C) 恢复 D)数据操作
  • 考点:关系数据模型的三个组成部分:1.数据结构、2.数据操作 3.完整性约束。
  1. 设属性A是关系R的主属性,则属性A不能取空值(NULL),这是 A
    A) 实体完整性规则 B) 参照完整性规则
    C)用户定义完整性规则 D) 域完整性规则
  • 考点:
    • 实体完整性:规定表的每一行在表中是惟一的实体。
    • 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
    • 参照完整性:是指两个表的主键和外键的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
    • 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
  1. 现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主键是 B
    A) 宿舍编号 B) 学号
    C) 宿舍地址、姓名 D) 宿舍编号、学号
  • 主键:学号可以唯一标识一条记录。
    学号→(宿舍编号, 宿舍地址, 学号, 姓名, 性别, 专业, 出生日期) 完全依赖√
    宿舍编号→宿舍地址 传递函数依赖√ 而非直接函数依赖,故不是3NF
  1. 如果事务T已在数据R上加了X锁,则其他事务在数据R上 D
    A) 只可加X锁 B) 只可加S锁
    C) 可加S锁或X锁 D) 不能加任何锁
  • 封锁类型:
    • 排它锁(写锁/独占锁):若事务T对数据对象A加上X锁 / 排他锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁。
      
    • 共享锁(读锁):若事务T对数据对象A加上S锁 / 共享锁,则事务T可以读A但不能修改A,其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。
      
  1. 如果一个班只能有一个班长,而且一个班长不能同时担任其他班的班长,班级和班长两个实体之间的关系属于 D
    A) m:n B) 1:m C) m:1 D) 1:1

  2. 从数据库管理系统的角度看,数据库系统一般采用三级模式结构,如下图所示,图中1 2 处应填写( C ),3 处应填写( D )。
    1 2 A) 外模式 / 概念模式 B) 概念模式 / 内模式

         C) 外模式 / 概念模式映像         D) 概念模式 / 内模式映像
    3   A) 外模式 / 概念模式             B) 概念模式 / 内模式     
         C) 外模式 / 概念模式映像         D) 概念模式 / 内模式映像
            <img src="1.png" width="30%" height="80%" />
    
  3. 结构化查询语言SQL是一种关系数据库语言,其主要功能有数据定义、数据查询、数据操纵以及 数据控制

  4. DBMS 是位于用户与操作系统之间的一层数据管理软件,为用户或应用程序提供访问DB的方法。

  5. “向emp表增加一个telephone列,其数据类型为11个字符型”的SQL语句是:ALTER TABLE emp add telephone char(11)

  • 修改已有表:向已有表中新增一列
  1. 一个SQL语句原则上可产生或处理一组记录,而程序语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用 游标 机制来解决的。
  2. 并发控制的主要方法是采用封锁机制,其锁的类型有 排他锁 (写锁/独占锁)和 共享锁 (读锁)两种。

2. 大题

19年

  1. 设有一个关系数据库,有三个基本表,表结构如下:
    STUDENT(学号,姓名,年龄,性别,系号)
    SC(学号,课程号,成绩)
    COURSE(课程号,课程名,学时数,课程类型)
    1. 请写出创建COURSE表的SQL语句,可合理取定相关数据类型。
1
2
3
4
5
6
create table course{
课程号 varchar(255) not null primary key,
课程名 varchar(255) not null,
学时数 int,
课程类型 varchar(255)
}
  1. 请写出SQL语句,要求将COURSE表中课程号为’100010’的学时数从32改为48。
1
2
3
update course
set 学时数 = 32
where 课程号 = '100010'
  1. 由于学生“张华”退学,需要从数据库中删除该学生的所有相关信息,请写出相应的SQL语句。
1
2
3
4
delete from sc
where 学号 = (select 学号 from student where 姓名 = '张华')
delete from student
where 姓名 = '张华'
  1. 绘制E-R图,要求在图中表示联系的类型,最后转换成关系表,并指明主键。
    设某商业集团数据库有三个实体集:
    “商店”实体集,属性有商店编号、商店名、地址等;
    “商品”实体集,属性有商品号、商品名、规格、单价等;
    “职工”实体集,属性有职工编号、姓名、性别、业绩等。
    商品与商品间存在“销售”联系,每个商店可销售多种商品,每种商品也可放在多个商店销售,有一个销售量属性;商品与职工间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪两个属性。

18年

  • 数据库日志:是用来记录事务对数据库的更新操作的文件。
    作用:1.进行事务故障恢复和系统故障恢复。

    2.协助后备副本进行介质恢复。
    
  • 数据仓库:是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以支持企业或组织的决策分析处理。

  • 数据库完整性约束:指的是为了防止不符合规范的数据进入数据库,用户对数据进行插入、修改、删除等操作时DBMS自动按照一定的约束条件对数据进行监测,使不符合规范的数据不能进入数据库,以确保数据库中存储的数据正确、有效、相容

  • SQL中的完整性约束机制主要有:主键约束、外键约束、属性约束、 -域约束、断言约束和触发器约束。-

  • 事务:是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。具有原子性、一致性、隔离性和持续性。

  • 并发控制:是指为了确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性,对并发操作进行控制。

  • 什么是视图?使用视图有什么优点?
    视图:是从一个或几个基本表(或视图)导出的一个虚拟表,数据库中只存放视图的定义,而不存放视图对应的数据, -这些数据仍然存储在原来的基本表中,基本表中的数据发生了改变,视图中查询出的数据也会发生改变。-
    使用视图的优点:

    1. 提高安全性
    2. 简化操作
    3. 增强数据逻辑独立性
  • 存储过程:是一组完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数来 -(如果有)- 执行它。
    存储过程的作用

    1. 重复使用
    2. 提高性能
    3. 减少网络流量
    4. 安全性
  • 什么是数据挖掘?它和数据仓库有什么关系?
    数据挖掘是指从大量的、不完全的、有噪声的、模糊的数据中提取出人们视线不知道,但对人们有潜在价值的信息和知识的过程。
    数据仓库是一个面向主题的、集成的、不可更新的、随时间不断变化的数据集合,用以支持企业或组织的决策分析处理。

    • 区别:数据仓库是为了支持复杂的分析和决策,数据挖掘是为了在海量的数据里面发掘出预测性的、分析性的信息。
    • 联系:数据仓库可以作为数据挖掘的数据源。
  • 数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破坏数据库数据? -P199-

    1. 事务故障
      • (1)逻辑错误。事务由于某些内部条件而无法继续正常执行,如非法输入、找不到数据、运算溢出或超出资源限制。
      • (2)系统错误。系统进入一种不良状态(如死锁),结果事务无法继续正常执行。
    2. 系统故障/软故障:引起系统停止运转随之要求重新启动的事件称为”系统故障“。
    3. 介质故障/硬故障:指外存故障,系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,并影响正在存取这部分数据的所有事务。
    4. 计算机病毒
      影响事务的正常执行:1,2,3
      破坏数据库数据:3,4
  • 什么是索引?索引有何优点和缺点?
    索引:是对数据库表中一列或多列的值进行排序的一种结构。
    优点

    1. **加快**数据的**检索**速度
    2. 创建**唯一性索引**,**保证**数据库表中每一行**数据的唯一性**
    3. 加速**表和表**之间的**连接**
    4. 使用**分组**和**排序子句**进行数据**检索**时,可以显著**减少**查询中分组和排序的**时间**
    

    缺点

    1. 占据物理空间。除了数据表占数据空间之外,每一个**索引**还要**占一定的物理空间**
    2. **创建**索引和**维护**索引要耗**费时**间
    3. 当对表中的数据进行**增**加、**删**除和修**改**的时候,**索引**也要**动态的维护**,**降低**了**数据**的**维护速度**
    
  • 设有一个数据库Library,包括Book,Borrow,Reader三个关系模式:
    Book(Bno, Btitile, Bauthor, Bprice);
    Borrow(Rno, Bno, BorrowDate, Returndate);
    Reader(Rno, Rname, Rsex, Rage, Reducation);
    图书表Book由图书编号(Bno)、图书名称 (Btitle)、图书作者 (Bauthor)、图书价格 (Bprice)组成;
    借阅表Borrow由读者编号(Rno)、图书编号 (Bno)、借阅时间 (BorrowDate)、归还时间 (Returndate)组成;
    读者表Reader由读者编号(Rno)、读者姓名 (Rname)、读者性别 (Rex)、读者年纪 (Rage)、读者学历 (Reducation)组成。
    针对数据库Library,写出实现下列操作的SQL语句。

    1. 修改读者表Reader中的Rename列;把Rename列修改成下列定义:
      列名:Rename;数据类型:Char;长度:20;允许空否:NULL;
1
2
alter table Reader
alter column Rename Char(20) null

2)查询所有年龄在17~22岁(包括17岁到22岁)之间的读者姓名及年龄。

1
2
3
select Rname, Rage 
from Reader
where Rage between 17 and 22

3)查询所有姓林的读者的姓名(Rname)、性别(Rsex)和年龄(Rage)。

1
2
3
select Rname, Rsex, Rage
from Reader
Where Rname like '林%'

4)查阅所有的借阅记录,按读者编号(Rno)升序排列,读者编号相同的,按照借阅时间(BorrowDate)降序排列。

1
2
select * from Borrow
order by Rno asc, BorroDate desc

5)查阅比编号为B01的图书的价格低的图书的编号(Bno),书名(Btitle)和价格(Bprice)。

1
2
3
4
select Rno, Btitle, Bprice
from Book
Where Bprice <
(select Bprice from Book where Bno = 'B01')

17年

  • 常用的控制数据库安全性的方法有哪些?
    1. 用户标识和身份鉴定
    2. 存取控制
    3. 定义视图
    4. 审计
    5. 数据加密
  • 什么是视图?使用视图的主要优点是什么?
    视图:从一个或者几个基本基本表(或视图)导出的表,它是一个虚表,只存放视图的定义,而不存放视图定义的数据。
    优点
    1. 简化用户操作
    2. 增强数据逻辑独立性
    3. 能够对机密数据提供安全保护(提高安全性)
  • 在数据库中为什么要并发控制
    多个用户并行地存取数据库系统,就会发生多个用户并发地存取同一数据的情况。如果对这些并发奥做不加控制,数据库就可能存取和存储不正确的数据,破坏数据库的一致性,所以DBMS必须对并发执行的事务之间进行并发控制。
  • 数据库设计的一般步骤是什么?
    1. 需求分析:需求文档,数据字典,数据流图
    2. 概念设计:E-R图
    3. 逻辑结构设计:某种数据模型
    4. 物理结构设计:存储安排,方法选择,存储路径建立
    5. 系统实施:编写模式,数据装入,数据库试运行
    6. 系统维护:性能测试,转储/恢复,数据库的重组和重构
  • 什么是索引?索引有何优点和缺点?18年
  • 根据下面要求绘制E-R图
    实体类型“商店”的属性有:商店编号,店名,店址,店经理;
    实体类型“会员”的属性有:会员编号,会员名,地址;
    实体类型“职工”的属性有:职工编号,职工名,性别,工资;
    每家商店有若干职工,但每个职工只能服务于一家商店。每家商店有若干会员,每个会员可以属于多家商店。在联系中应反映出职工参加某商店工作的开始时间,会员的加入时间。
  • 按题目要求写出SQL语句。
    设有一个关系数据库,有三个基本表,表结构如下:
    STUDENT(学号,姓名,年龄,性别,学院号)
    SC(学号,课程号,成绩)
    COURSE(课程号,课程名,学时数,课程类型)
    1)创建STUDENT表,SQL语句中属性用汉字表示,指定学号为主键。可合理取定相关数据类型。
1
2
3
4
5
6
7
8
create table STUDENT(
学号 int not null, -- 学号 int not null primary key,
姓名 varchar(255),
年龄 int,
性别 varchar(255),
学院号 int,
primary key(学号),
)
  1. 将SC表中学号为“20090105”的成绩从62改为82。
1
2
3
update SC 
set 成绩 = 82
where 学号 = '20090105'
  1. 创建一个视图Myview,查询课程类型为“选修课程”的学生的学院号,学号,姓名。
1
2
3
4
create Myview 
as
select a.学院号, 学号, 姓名 from STUDENT a, SC b, COURSE c
where a.学号 = b.学号 and b.课程号 = c.课程号 and c.课程类型 = '选修类型'
  1. 删除上述表中与课程名“数据库原理”有关的所有记录。2句不能合在一起写
1
2
3
4
delete from SC
where 课程号 = (select 课程号 from COURSE where 课程名= '数据库原理')
delete from COURSE
where 课程名= '数据库原理' --注意两个delete语句的先后顺序

16年

  • 数据字典:是结构化设计的一个工具,它用于对系统中各类数据进行详尽的描述,是对各类数据描述的集合, -它通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。-
  • 事务 (18’) :是数据库的逻辑工作单元,是用户定义的一组操作序列。
  • 并发控制 (18’) :是指为了确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性,对并发操作进行控制。
  • 数据表索引:索引是对数据库表中一列或者多列的值进行排序的一种结构。建立索引是加快查询的有效手段,用户可以滚举应用环境的需要,在基本表上建立一个或多个索引,以提供多种存取路径,加快查询速度。
  • 触发器:是数据库服务器中发生事件时自动执行的特殊的存储过程,它不需要由用户调用执行,而是当用户对表进行update、insert、delete操作时,会自动执行触发器所定义的SQL语句。
  • 采用数据库三层模式结构的优点有哪些?
    1. 保证数据的独立性
    2. 简化用户接口
    3. 有利于数据共享
    4. 有利于数据的安全和保密
  • 为什么要使用NoSQL数据库?
    1. NoSQL数据库易扩展
    2. 数据量大,高性能
    3. 灵活的数据模型
    4. 可用性高
  • 采用数据库日志的目的是什么? (*2 18,16)
    数据库日志时用来记录事务对数据库的更新操作的文件
    1. 进行事务故障恢复和系统故障恢复
    2. 协助后备副本进行介质恢复
  • 相对于数据库技术,XML技术在数据应用方面具有哪些优缺点?
    优点:
    1. 跨平台:XML是纯文本文件,不受操作系统、软件平台的限制。
    2. 易表义:XML 具有基于Schema 自描述语义的功能,容易描述数据的语义
    3. XML 可以描述结构化、半结构化,甚至非结构化数据。
      缺点:
    4. XML 技术采用的是基于文件的管理机制,容量大、管理困难
    5. XML 的检索基于节点,大量的XML 文件检索速度低
    6. 解析机制存在缺陷
    7. XML 的安全性及并发操作机制问题
  • 数据库SALES包含四个关系:
    CUSTOMERS(cid, cname, city, discnt),CUSTOMERS存储顾客信息,包括顾客编号、姓名、所在城市和获得的折扣率。
    PRODUCTS(pid, pname, city, quantity, price),PRODUCTS存储商品的信息,包括商品编号、名称、商品库存所在城市、库存量和单价。
    AGENTS(aid, aname, city, percent),AGENTS存储代理商的信息,包括代理商编号、名称、城市和代理佣金。
    ORDERS(ordno, month, cid, aid, pid, qty, dollars),ORDERS存储订购信息,包括订购编号、当年订购月份、顾客编号、代理商编号、商品编号、订购数量和总价。
    针对数据库SALES,写出实现下列操作的SQL语句。
    1. 查询姓名以字母“w”开始的顾客在上半年的所有订购信息。
1
2
select * from CUSTOMERS c, ORDERS o --o.month between 1 and 6
where c.cname like 'w%' and c.cid = o.cid and o.month <= 6
  1. 查询顾客的cid值,这些顾客购买的产品是由代理商a03订购的。
1
2
select distinct y.cid from ORDERS x, ORDERS y
where x.pid = y.pid and x.aid = 'a03'
  1. 产品名为“充电娃娃”的产品被购买,数据已入库,但由于产品质量问题全部退货,现要求删除所有涉及到“充电娃娃”的数据。
1
2
3
4
delete from ORDERS
where pid = (select pid from PRODUCTS where pname = '充气娃娃')
delete from PRODUCTS
where pname = '充气娃娃'
  1. 将所有订货总金额超过12000的顾客的折扣率增加8%。
1
2
3
update CUSTOMERS
set discnt = discnt*1.08
where cid in (select cid from ORDERS group by cid having sum(dollars) >12000 )
  1. 查询获得最大折扣值的所有顾客的姓名。
1
2
3
select cname from CUSTOMERS
where disct = (select max(disct) from CUSTOMERS)
--'in' replace '=' ?

15年

  • 数据库日志
  • 数据仓库
  • 数据库完整性
  • 事务
  • 并发控制
  • 什么是视图?有什么作用?
  • 什么是数据挖掘?它和数据仓库间有什么关系?
  • 数据库设计的一般步骤是什么?
  • 什么是索引?索引有何优点和缺点?
  • 设计一个完整的数据库应用系统应注意哪些问题?
    1. 要满足用户的需求
    2. 要便于维护和扩产
    3. 要具有“可读性”
    4. 能够满足空间和效率的要求
    5. 好的数据库设计可以简化业务逻辑的设计
  • 设有一个关系数据库,有三个基本表,表结构如下:
    STUDENT(学号,姓名,年龄,性别,系号)
    SC(学号,课程号,成绩)
    COURSE(课程号,课程名,学时数,课程类型)
    1. 写出创建STUDENT表的SQL语句,指定学号为主键。可合理取定相关数据类型。
1
2
3
4
5
6
7
create table STUDENT(
学号 varchar(255) not null primary key, --sno
姓名 varchar(255) not null, --sname
年龄 int, --sage
性别 varchar(255), --ssex
系号 varchar(255) --adept
)
  1. 将COURSE表中课程号为“100020”的学时数从24改为32。
1
2
3
update COURSE
set 学时数 = 32 where 课程号 = 100020
-- set ctime = '32' where cno = '100020'
  1. 在STUDENT表中插入一条记录,其中学号=’20130101’,姓名=’王芳’,年龄=20,性别=’女’,系号=’rj’
1
insert into STUDENT values('20130101', '王芳', 20, '女', 'rj')
  1. 创建一个视图TView,查询课程类型为选修课程的学生的系号、学号、姓名。
1
2
create view TView
as select a.系号, 学号, 姓名 from STUDENT a, SC b, COURSE c where a.学号 = b.学号 and b.课程号 = c.课程号 and c.课程类型 = '选修课程'
  1. 由于某个系号=’rj’的学生退学,从数据库删除该学生的所有相关信息。
1
delete from STUDENT where 系号 = 'rj'

14年

  • 视图
  • 事务
  • 索引
  • 存储过程
  • 数据库完整性
  • 简述数据库设计的基本步骤。
  • 数据库的安全性保护的常用措施有哪些?
  • 简述E-R概念模型转换为关系模型的转换规则。
    1. 实体集的转换规则:将一个实体集转化为一个关系,实体的属性就是关系的属性,实体的标识符就是关系的键,关系的结构就是关系模式。
    2. 实体集间联系的转换规则:实体集间的联系可以按照1:1, 1:n, m:n来转化。
      • 1:1 联系可转换为一个独立的关系,也可与任一端实体集对应关系合并
      • 1:n 联系转换一个独立关系(两端实体的键+联系本身的属性),或在n端实体集增加新属性(联系对应于1端实体集的键+联系本身的属性)
      • m:n 联系转换为关系(两端实体的键+联系本身属性),新关系的键为两端实体键的组合
    3. 关系合并规则:具有相同键的关系,可根据情况合并为一个关系。
  • 数据库运行过程中可能产生的故障有哪几类?具体内容是什么?
  • 什么是日志文件?为什么要在系统中建立日志文件?
  • 数据库SALES包含四个关系:
    CUSTOMERS(cid, cname, city, discnt),CUSTOMERS存储顾客信息,包括顾客编号、姓名、所在城市和获得的折扣率。
    PRODUCTS(pid, pname, city, quantity, price),PRODUCTS存储商品的信息,包括商品编号、名称、商品库存所在城市、库存量和单价。
    AGENTS(aid, aname, city, percent),AGENTS存储代理商的信息,包括代理商编号、名称、城市和代理佣金。
    ORDERS(ordno, month, cid, aid, pid, qty, dollars),ORDERS存储订购信息,包括订购编号、当年订购月份、顾客编号、代理商编号、商品编号、订购数量和总价。
    针对数据库SALES,写出实现下列操作的SQL语句。
    1. 查询姓名以字母“A”开头的顾客的所有信息。
1
select * from CUSTOMERS where cname like 'A%'
  1. 查询订购了被代理商a06订购过的产品的所有顾客的cid。
1
2
3
select distinct cid from ORDERS where pid in(select pid from ORDERS where aid = 'a06')
select distinct x.cid from ORDERS x, ORDERS y
where x.pid = y.pid and y.aid = 'a06'
  1. 删除数据表AGENTS中的居住在“New York”的所有代理商的记录。
1
2
delete from AGENTS
where city = 'New York'
  1. 查询折扣值小于最大折扣值的所有顾客的cid。
1
2
select cid from CUSTOMERS where discnt < 
(select max(discnt) from CUSTOMERS)
  1. 将所有订货总金额超过2000的顾客的折扣率增加10%。
1
2
3
update from CUSTOMERS 
set discnt = discnt * 1.1
where cid in (select cid from ORDERS group by cid having sum(dollars) > 2000)

13年

  • 什么是数据库日志?有什么作用?
  • 简述数据库设计的基本步骤。
  • 数据库安全性保护的常用措施有哪些?
  • 什么是视图?使用视图的主要优点是什么?
  • 什么是事务?简述事务ACID特性。
    A - 原子性:事务时数据库的逻辑工作单位,事务的所有操作要么都做,要么都不做。
    C - 一致性:事务单独执行时,保持数据库的一致性。执行的结果是数据库从一个一致性的状态变为另一个一致性的状态。
    I - 隔离性:一个事务的执行不能被其他事务干扰。(并发的事务间不能相互干扰)
    D - 持续性:一旦事务提交成功,它对数据库中数据的改变是永久的,即使数据库发生故障也是如此。
  • 数据库SALES包含四个关系:
    CUSTOMERS(cid, cname, city, disct),CUSTOMERS存储顾客信息,包括顾客编号、姓名、所在城市和获得的折扣率。
    PRODUCTS(pid, pname, city, quantity, price),PRODUCTS存储商品的信息,包括商品编号、名称、商品库存所在城市、库存量和单价。
    AGENTS(aid, aname, city, percent),AGENTS存储代理商的信息,包括代理商编号、名称、城市和代理佣金。
    ORDERS(ordno, month, cid, aid, pid, qty, dollars),ORDERS存储订购信息,包括订购编号、当年订购月份、顾客编号、代理商编号、商品编号、订购数量和总价。
    针对数据库SALES,写出实现下列操作的SQL语句。
    1. 查询既订购了商品编号为P03,又订购了商品编号为P05的商品的顾客的cid。
1
2
3
4
5
6
7
8
9
10
select distinct cid from ORDERS
where pid = 'P03' and cid in
(select cid from ORDERS where pid = 'P05')

select distinct cid from ORDERS x, ORDERS y
where x.pid = 'P03' and y.pid = 'P05' and x.cid = y.cid

select cid from ORDERS where pid = 'P03'
intersect
select cid from ORDERS where pid = 'P05'
  1. 查询满足条件为某个代理商所订购的某种产品的总数量超过1000的商品编号、代理商编号和总数量。
1
2
select pid, aid, sum(qty) as total	--as别名
from ORDERS group by pid, aid having sum(qty)>1000
  1. 修改表PRODUCTS的数据,把存放在城市Duluth或Dallas的所有产品的价格提高10%。
1
2
3
4
update PRODUCTS
set price = price * 1.1
where city = 'Duluth' or city = 'Dallas'
--where city in('Duluth', 'Dallas')
  1. 授予用户SQLTest对数据库Sales的CUSTOMERS表的列cid、cname的查询权限。
1
grant select on CUSTOMERS(cid, cname) to SQLTest
  1. 删除数据表AGENTS中的居住在“New York”的所有代理商的记录。
1
delete from AGENTS where city = 'New York'

12年

  • 什么是数据库日志?有什么作用?
  • 简述数据库设计的基本步骤。
  • 数据库安全性保护的常用措施有哪些?
  • 什么是视图?使用视图的主要优点是什么?
  • 什么是事务?简述事务ACID特性。
  • 设有一个数据库Library,包括Book,Borrow,Reader三个关系模式:
    Book(Bno, Btitile, Bauthor, Bprice);
    Borrow(Rno, Bno, BorrowDate, Returndate);
    Reader(Rno, Rname, Rsex, Rage, Reducation);
    图书表Book由图书编号(Bno)、图书名称 (Btitle)、图书作者 (Bauthor)、图书价格 (Bprice)组成;
    借阅表Borrow由读者编号(Rno)、图书编号 (Bno)、借阅时间 (BorrowDate)、归还时间 (Returndate)组成;
    读者表Reader由读者编号(Rno)、读者姓名 (Rname)、读者性别 (Rex)、读者年纪 (Rage)、读者学历 (Reducation)组成。
    针对数据库Library,写出实现下列操作的SQL语句。
    1. 请写出创建Reader表的SQL语句,以读者编号为主键,且姓名不能为空值。
1
2
3
4
5
6
7
8
create table Reader(
Rno varchar(255) not null primary key,
Rname varchar(255),
Rsex varchar(255),
Rage int,
Reducation varchar(255)
foreign key(Rno) references Borrow(Rno)
)
  1. 查询比编号为B01的图书价格低的图书的编号、书名和价格。
1
2
select Bno, Btitle, Bprice from Book where Bprice < 
(select Bprice from Book where Bno = 'B01')
  1. 删除所有没有人借的书。
1
2
delete from Book
where Bno not in (select Bno from Borrow)
  1. 将编号为“R03”的读者年龄改为22岁。
1
2
update Reader
set Rage = 22 where Rno = 'R03'
  1. 建立一个视图,显示读者的借书记录,包括读者姓名、书名、借书日期。
1
2
3
4
5
create view MyView(Rname, Btitle, Borrowdate)
as
select a.Rname, b.Btitle, c.Borrowdate
from Reader a, Book b, Borrow c
where a.Rno = c.Rno and c.Bno = b.Bno.