南京理工大学《数据库系统基础教程》试题

发布时间:2016-04-28 10:04 分类:历年真题

南京理工大学《数据库系统基础教程》试题和答案,卓越考研特整理南京理工大学考研真题,为广大考生提供有效的信息支持。

 

 

 

 

数据库系统的世界(概述) 

什么是数据库 数据库管理系统 

2.数据库建模 

数据模型 

信息模型(概念模型):E/R模型,ODL模型等 

基本数据模型:层次模型,网状模型,关系模型等 

 实体/联系图 

属性attribute: 

联系relationship:   

对约束建模 

有哪些重要的约束种类? 

键key 

单值single-value 

参照完整性reference inte

关系数据模型   

关系的等价表示法 

 改变列次序,不改变关系的含义。  
改变行次序,不改变关系的含义。 
从E/R图到关系设计  

实体集到关系的转换  

E/R联系到关系的转换  

处理弱实体集 函数依赖 
函数依赖是如何定义的? 
若关系R的任意两个元组在属性A1、A2、…、An上一致(即有相同分量值),则这两个元组在属性B上也一致,则称属性A1A2…An函数决定B,或称B函数依赖于A1A2…An。 判断函数依赖的三种情形 
如果任意两元组在属性A上一致,在B上也一致,则有A → B成立。 如果任意两元组在属性A上一致,在B上不一致,则A → B不成立。 
如果任意两元组在属性A上不可能一致,则不管在B上是否一致,有A → B成立。  关系的键 
如何用函数依赖定义键key? 
定义:对于关系R,若属性集合{A1,A2,…,An}满足下列条件,则该属性集合是R的一个键key: 1.A1,A2,…,An函数决定R中所有其他属性。(超键) 
2.{A1,A2,…,An}的任何真子集都不能函数决定R中所有其他属性。

(最小化)  超键 
什么是超键super key?  

键的超集superset of key。即包含键的属性集合。  
可函数决定关系中所有属性的属性集合。 
每个键都是超键。

一个关系的属性全集超键。 每个超键都是键吗?不是。  函数依赖规则 
有哪些重要的函数依赖规则? 分解/合并(Splitting/combining)规则 平凡依赖(Trivial Dependance)规则 传递(Transitivy)规则  计算属性的闭包  如何计算属性的闭包? 
      给定函数依赖集S和属性集A={A1,A2,…An},如何计算A+?  1 将X初始化为{A1,A2,…,An},闭包最小集合。 
 2 遍历S中的每个函数依赖,对于每个依赖式:B1B2…Bm → C   
如果B1、B2、…、Bm都在X中,而C不在X中,则把C加入X中。 
 3 重复第2步,直到遍历完S中所有函数依赖,而没有新属性能加入到X中。  4 最终属性集X即为属性集A在函数依赖集S下的闭包A+。  
例3.28:P90 设有关系R(A, B, C, D, E, F)与函数依赖集 
S:{AB → C,BC → AD,D → E,CF → B}   
 
 
求:{A,B}+ 
 解:X(1)={A,B}, 由AB → C,得:  
 
 X(2)={A,B,C}, 由BC → AD,得: 
X(3)={A,B,C,D}, 由D → E,得: X(4)={A,B,C,D,E}={A,B}+ 属性闭包计算有何用途? 
假设关系R上已有一个依赖集S,另有一个函数依赖A1A2…An → B,该依赖是否蕴含于S? 判断方法: 
计算{A1,A2,…,An}+。
若B在{A1,A2,…An}+中,则函数依赖A1A2…An → B蕴含于S中。 若B不在{A1,A2,…An}+中,则函数依赖A1A2…An → B不蕴含于S中。 属性的闭包和键之间有何关系? 
对于一个关系R,当且仅当A1,A2,…,An是R的超键时,{A1,A2,…,An}+是R的所有属性的集合。  3.6.1 已知关系模式R(A, B, C, D)有函数依赖AB → C, C → D, D → A (a)求蕴含于给定函数依赖的所有完全非平凡函数依赖。 (b)求R的所有键。 
(c)求R的所有超键(不包括键)。 解: 
(a)根据所有属性集合的闭包,计算所有可能的函数依赖。 {A}+={A} {B}+={B} {C}+={C, D, A}     
 
C → AD 
{D}+={D, A} 
{A, B}+={A, B, C, D}   AB → CD {A, C}+={A, C, D}     AC → D 
{A, D}+={A, D} {B, C}+={B, C, D, A}   BC → AD {B, D}+={B, D, A, C}   BD → AC {C, D}+={C, D, A}  
 
CD → A {A, B, C}+={A, B, C, D}   ABC → D {A, B, D}+={A, B, D, C}   
ABD → C {A, C, D}+={A, C, D} {B, C, D}+={B, C, D, A}  
 BCD → A 
(b)所有的键:{A, B}, {B, C}, {B, D} 
(c)所有的超键(不包括键):{A,B,C}, {A,B,D}, {B,C,D}, {A,B,C,D} 
关系数据库模式设计  BC范式 
若关系模式R的每个分量均是不可再分的数据项,则R满足第一范式,又记作:R ∈ 1NF。 BC范式如何定义? 
关系模式R满足BC范式,当且仅当若非平凡函数依赖A1A2…An  → B1B2…Bm在关系R中成立,则{A1,A2,…,An}是R的超键。 关系R满足BC范式的两种情形 
关系R中不存在非平凡函数依赖。(只有平凡函数依赖) 每个非平凡函数依赖的左面包含某个键(即左面是超键)。 关系R违背BC范式的唯一情形 
关系R中至少存在一个非平凡函数依赖,其左面不是超键。 分解为BC范式 
分解策略:消除违背BCNF的函数依赖   1 找一个违背BCNF的非平凡函数依赖A1A2…An  → B1B2…Bm。   2 把关系R分解成两个关系:    R1(A1,A2,…,An, B1,B2,…,Bm)。 
  
 
R2(A1,A2,…,An, 所有其它属性),若不满足BC范式,则再分解。 
 例如:R(学号, 课号, 成绩, 系号, 系主任) 不满足BCNF。  1 非平凡函数依赖:学号 → 系号,系主任 成立  2  R分解为:R1(学号, 系号, 系主任)   
 
     R2(学号, 课号, 成绩) 
 
3 非平凡函数依赖:系号 → 系主任 成立 4  R1继续分解为:R11(系号, 系主任) 
         R12(学号, 系号) 
 第三范式  
 关系模式R满足3NF,当且仅当若非平凡函数依赖A1A2…An  → B在关系R中成立,则
{A1,A2,…,An}是R的超键,或者B是某个键的组成部份(键属性)。 
结论:一个关系模式总可以分解为满足3NF的模式,且所有的函数依赖都可得到保持。  第二范式 第二范式(2NF):  
 要求每个非键属性依赖于键的整体,而不是键的部分属性,即不允许有非平凡函数依赖的右面
是非键属性,而左面是某个键的真子集。  
满足2NF的几种情形: 
不存在非平凡函数依赖。 
存在非平凡函数依赖,且其右面是某个键的组成部分(键属性)。 
存在非平凡函数依赖,且其右面是非键属性,则其左面要么是超键,要么包含非键属性。 例如:关系模式R(A, B, C, D)有函数依赖AB → C, C → D, D → A 找出所有违背BCNF的函数依赖。 必要时,分解为几个满足BCNF的关系 找出所有违背3NF的函数依赖。 解: 
所有的键:{A, B}, {B, C}, {B, D} 
违背BCNF的函数依赖:C → AD,  D → A 分解:R1(A,C,D),  R2(B,C) R11(A,D),  R12(C,D) 函数依赖AB → C 不保持 R满足3NF 关系模型中的运算 投影 选择 笛卡尔积 例4.5:p125
改名 
改名是什么运算? 
把一个关系R改名为关系S,且属性也按次序改名为A1A2…An,表示为ρS (A1, A2,…,An) (R),若
仅关系改名为S而属性不改名,则表示为ρS (R) 
例:销售员Salesman (empid, idno, name, gender, phone, deptid) 
数据库语言SQL SQL简单查询  投影  选择  多关系查询  乘积和连接 子查询 练习:  
求选修了'C1'课的学生姓名。(用IN表示) 求'C1'课成绩最好的学生姓名。 求既选'C1'课,又选'C2'课的学生姓名。 求没选'C1'课的学生姓名。 聚合运算 分组 
Group By子句如何构成? 
根据一列或几列的值把元组分成若干组,有相同分组值的元组作为一组,每个组再分别进行聚合运
算。  Having子句 
Having子句条件表示什么? 
在分组聚合之后按某条件过滤分组,使用Having子句确定条件。  视图 
什么是视图view? 
依据一条SELECT语句产生的一个命名的“虚关系”或“虚表”。视图的数据均来自基本表,并不实际存储。一个定义好的视图可看作基本表,用于定义新的视图,或对之进行查询甚至更新。 一个数据库可定义多个视图。视图的名称不能与已有的表名冲突。视图是数据库模式的一部分。 为何需要视图?  简化计算。 
 不同用户关心同一表中的不同属性。  
提高数据的安全性。 
 创建视图 如何创建视图? 
CREATE VIEW [ owner .]view-name [( column-name , ... )] AS select-without-order-by [with check option] 例如: 
CREATE View orderamount As  
Select  salesorder.orderno, signdate, empid, custid, Sum(quantity) as qty, Sum(singlecost*quantity) as amount  
From dba.salesitem, dba.salesorder  
Where salesorder.orderno = salesitem.orderno Group by salesorder.orderno, signdate, empid, custid 产生一个虚关系: 
orderamount(orderno, signdate, empid, custid, qty, amount)
视图查询 如何查询视图? 
对视图的查询与表查询遵循相同的语法。 
例:计算销售金额最高的订单号、签单日期及销售金额。 Select orderno, signdate, amount From orderamount 
Where  amount = (Select Max(amount) From orderamount) 对视图的查询将由系统转换为对基本表的查询。 SQL约束和触发器 SQL中的键 
键key是最重要的约束。每个表都必须确定自己的键。 
每个表都可能有多个属性集可作为键,称为“候选键candicate key”。 一个表只能确定一个主键(Primary Key)。 若某个属性说明为Unique,则它是一个候选键。 主键和Unique属性之间有何区别和联系? 
一个表有且仅有一个主键;而Unique属性可有多个或没有。 主键可以是多属性,而Unique只能说明单个属性。 若主键是单个属性,则该属性隐含为Unique。 若主键是多个属性,则每个属性都不可能为Unique。 实施主键约束 
什么操作会导致违背键约束? 
insert和update可能违背该表的键约束。 
SQL实施主键约束即是在insert和update时检验键值,避免空值或重复键值。  参照完整性和外键 
SQL中依靠外键保证参照完整性。外键定义时要注意区分参照关系和被参照关系。  说明外键约束
是否可定义一个表参照自己? 可以。 
例如:salesman(empid, idno, name, managerid, deptid, …) 外键是否可取NULL值? 可以。 SQL系统概况   SQL事务 
事务transaction是什么概念? 事务有何特性?ACID。 如何控制事务运行? 
事务的一次运行只能是下面两个结果之一: Commit提交;或Rollback退回 
Commit指令提交当前事务,完成对数据的更新。 
Rollback指令退回当前事务,并取消当前事务对数据已做的更新。 Commit和Rollback都结束当前事务,并自动启动下一个事务。 在多用户多任务环境中,并发事务可能引起哪些问题? 同时更新同一数据 脏读dirty read 
不可重复读non-repeatable read 虚行(幻象元组)phantom rows “写锁”write lock是什么概念? 
某数据被一个事务修改,在该事务提交或退回之前,其他事务不能修改或删除此数据。 脏读是什么含义? 
当事务A修改某数据后,在提交或退回前,该数据被事务B读取,若事务A退回,则事务B读取的数据为“脏数据”,即事务B发生脏读。 不可重读non-repeatable read是什么含义? 
事务A先读某行数据,随后事务B修改update或删除delete该行数据并提交,事务A重复再读该行数据,结果就不一致。
虚行phantom rows是什么含义? 
事务A按某条件C查询一组数据,随后事务B增加insert满足条件C的数据,或修改update条件C相关的数据,使得事务A按原条件C再次查询的结果不一致。也称为“幻象”元组。 “读锁”read lock是什么概念? 
当某数据被一个事务处理时,其他事务限制读该数据。 Grant, Revoke指令有何用途?


 

成功学员

Successful students
  • 王庆杰中国人民大学
  • 何娟南京大学
  • 吴文聪中国政法大学
  • 李佑哲中央音乐学院
  • 王振清华大学
  • 伍厚至清华大学