《数据库系统概论》期末不挂科
Posted ZSYL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《数据库系统概论》期末不挂科相关的知识,希望对你有一定的参考价值。
choice question&gapfilling
-
数据库系统的核心是 数据库管理系统 DBMS
-
数据库系统的特点的是 数据结构化、数据由DBMS统一管理和控制、数据独立性高
-
概念模型是现实世界的第一层抽象,这一类模型中最著名的模型是 实体-联系模型(E-R模型)
-
数据的物理独立性是指 用户的应用程序与存储在磁盘上数据库中的数据是相互独立的 - 应用程序与存储在磁盘上数据库的物理模式是相互独立的
-
要保证数据库的逻辑数据独立性,需要修改的是 模式与外模式之间的映象
-
关系数据模型的基本数据结构是 关系
-
有一名为“列车运营”实体,含有:车次、日期、实际发车时间、实际抵达时间、情况摘要等属性,该实体主码是 车次+日期
-
己知关系R和S,R∩S等价于 S-(S-R)
-
学校数据库中有学生和宿舍两个关系:
学生(学号,姓名)和 宿舍(楼名,房间号,床位号,学号) 假设有的学生不住宿,床位也可能空闲。如果要列出所有学生住宿和宿舍分配的情况,包括没有住宿的学生和空闲的床位,则应执行 全外联接 -
用下面的T-SQL语句建立一个基本表:
CREATE TABLE Student(Sno CHAR(4) PRIMARY KEY,
Sname CHAR(8) NOT NULL,
Sex CHAR(2),
Age INT)
可以插入到表中的元组是 ( ‘5021’,‘刘祥’,NULL,NULL )
- 把对关系SPJ的属性QTY的修改权授予用户李勇的T-SQL语句是
GRANT UPDATE (QTY) ON SPJ TO 李勇
- 最小关系系统:
关系系统的一种【数据库系统原理相关的概念】,关系系统可分为(最小)关系系统、完备关系系统、全关系系统。 (最小)关系系统:
仅支持关系数据结构和选择、投影、连接三种关系操作。很多微机上使用的系统如FoxBASE和FoxPro就属于这一类。
- 关系规范化中的插入操作异常是指 应该插入的数据未被插入
- 在关系数据库设计中,设计关系模式是数据库设计中(逻辑设计)阶段的任务
- 事务的隔离性是指 一个事务内部的操作及使用的数据对并发的其他事务是隔离的
- 原子性:事务中包括的所有操作要么都做,要么都不做
- 持续性:事务一旦提交,对数据库的改变是永久的
- 一致性:事务必须是使数据库从一个一致性状态变到另一个一致性状态
- 数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据是指 日志文件、数据库后备副本
- 若事务T对数据对象A加上S锁,则 事务T 可以读A但不能修改A,其它事务只能再对A加S锁,而不能加 X 锁。
- 设有两个事务T1、T2,其并发操作如图所示,则 该操作丢失修改
T1 T2
① 读A=100
② 读A=100
③A=A-5写回
④ A=A-8写回
T1 | T2 |
---|---|
读A=100 | |
读A=100 | |
A=A-5写回 | |
A=A-8写回 |
- 丢失数据:两个事务读入同一数据并修改,T2提交的结果破坏T1提交的结果,导致T1修改的数据丢失
- 不可重复读: T1读取数据后,T2进行更新操作,使T1无法再现前一次读取的结果
- 污读:T1修改某一数据并写回磁盘,事务T2读取同一数据后,由于T1某种原因被撤销,则T2读的数据与数据库中的数据不一致,则T2读的就是脏数据。
- 关系数据模型由 关系数据结构、关系操作和 关系完整性约束 三部分组成。
- 一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或多个共有的 属性
- 在Student 表的Sname列上建立一个唯一索引的SQL语句为:
CREATE UNIQUE INDEX Stusname on Student(Sname)
- 索引创建格式:
CREATE UNIQUE|CLUSTER INDEX 索引名 ON 表名(列名 DESC|ASC)
- SELECT 语句查询条件中的谓词“ !=ALL ”与运算符
NOT IN
等价。 - 关系模式R(A,B,C,D)中,存在函数依赖关系{A→B,A→C,A→D,(B,C)→A},则侯选码是 A和(B,C) ,R ∈ 3 NF。
- 分 E-R 图之间的冲突主要有 属性冲突、命名冲突、结构冲突三种。
- 事务是DBMS的基本单位,是用户定义的一个数据库操作序列。
- 存在一个等待事务集{T0,T1,…,Tn},其中T0正等待被T1锁住的数据项,T1正等待被T2锁住的数据项,Tn-1正等待被Tn锁住的数据项,且Tn正等待被T0锁住的数据项,这种情形称为 死锁。
- 可串行性是并发事务正确性的准则。
- 不属于数据库系统的主要特点的是 程序的标准化
数据结构化,数据冗余度小,较高的数据独立性
- 数据的逻辑独立性是指 模式改变,外模式和应用程序不变
- 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是 模式
外模式是局部数据的逻辑结构和特征的描述,是数据库用户的数据视图
内模式是数据物理结构和存储方式的描述,是数据在数据库内部的组织方式
在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是:模式
它是由数据库设计者综合所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图(全局视图)。
- 相对于非关系模型,关系数据模型的缺点之一是 存取路径对用户透明,需查询优化
- 现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,专业,出生日期)的主码是 宿舍编号,学号
- 广义笛卡尔积 运算不属于专门的关系运算。
- SQL语言具有(数据定义、数据操纵、数据控制)的功能。
- 从E-R模型关系向关系模型转换时,一个M:N联系转换为关系模式时,该关系模式的关键字是 M端实体关键字与N端实体关键字组合
-
SQL语言中,删除一个表的命令是 **DROP**。
- 关系规范化中的删除异常是指 不该删除的数据被删除
关系规范化中的删除操作异常是指不该删除的数据被删除,插入异常是指应该插入的数据未被插入;
- 在数据库设计中, E-R图产生于 概念设计阶段
- 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于 用户自定义完整性约束
- 事务是数据库运行的基本单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于 一致性
- 日志文件 用来记录对数据库中数据进行的每一次更新操作。
- 关系数据库的实体完整性规则规定基本关系的 主码 都不能取 空。
- SQL语言中,用于授权的语句是_grant_。
- 在关系A(S,SN,D)和B(D,CN,NM)中,A的主码是S,B的主码是D,则D在A中称为 外键。
- 关系R与S的交可以用关系代数的5种基本运算表示为 s-(s-r) 。
- 数据库系统中最重要的软件是 数据库管理系统 ,最重要的用户是 DBA
- 数据库设计分为以下六个设计阶段:需求分析阶段、 概念模型设计 、逻辑结构设计阶段、物理结构设计 、数据库实施阶段、数据库运行和维护阶段。
- 已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},则 R∈ 2 NF。
- 数据库系统与文件系统的主要区别是:
文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以。数据库技术的主要目的是有效管理和存取大量的数据资源,包括:提高数据的共享性,减少数据的冗余度,提供数据与应用程序的独立性。
-
数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作的数据库语言称为 数据操纵语言(DML)
-
数据库的网状模型应满足的条件是 允许一个以上结点无双亲,也允许一个结点有多个双亲
-
数据的逻辑独立性是指 模式改变,外模式和应用程序不变
-
在关系代数中,对一个关系做投影操作后,新关系的元组个数(小于或等于)原来关系的元组个数。
61.D
-
在合并分E-R图时必须消除各分图中的不一致。各分E-R图之间的冲突主要有三类,即属性冲突、命名冲突和结构冲突,其中命名冲突是指 同名异义或同义异名
-
若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为 介质故障
-
关系操作的特点是 集合操作
-
集合R与S的连接可以用关系代数的 5 种基本运算表示为 :σF(R×S)
五种基本运算,投影、选择、并、差、笛卡尔积。
传统集合运算:并、交、差、笛卡尔积。
专门的关系运算:选择、投影、连接、除。
- 在数据库中,只存放视图的 定义,不存放视图对应的数据。
- “为哪些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库设计中的 物理 设计阶段。
- 并发控制的主要方法是 封锁 机制。
- 已知关系R(A,B,C,D)和R上的函数依赖集F={A→CD,C→B},R属于第 2 范式。
- 关系模型中,一个候选码 可由一个或多个其值能唯一标识该关系模式中任何元组的属性组成
S是system系统的意思,I是integrity完整性,M是manipulation操作性。
1为系统:表式系统:仅支持关系的数据结构,不支持关系集合级的操作
2为最小关系系统:仅支持关系数据结构和三种关系操作选择、投影、连接
3为完备关系系统:支持关系数据结构和所有的关系代数操作
4为全关系系统:支持关系模型的所有特征(包括结构和操作),所以完整性也被满足,目前大多数关系系统已不同程度上接近或达到了这个目标
- 关系规范化中的插入操作异常是指 应该插入的数据未被插入
- 在数据库设计中, E-R图产生于 概念结构设计阶段
- 各分E-R图之间的冲突主要有三类,即属性冲突、命名冲突和结构冲突,其中命名冲突是指:同名异义,同义异名
- 日志文件 用来记录对数据库中数据进行的每一次更新操作。
- 数据管理经历了人工管理、文件系统、 数据库系统 三个阶段
- 数据模型由数据结构、数据操作和 完整性约束 三部分组成。
- 在Student表的Sname列上建立一个聚簇索引的SQL语句为:
CREATE cluster index Stusname ON student(Sname)
- SELECT语句查询条件中的谓词“=ANY”与运算符 in 等价。
- 关系模式R({A,B,C},{(A,C)→B,(A,B)→C,B→C})最高可达到第 三 范式。
- 数据抽象主要有分类和 聚集 两种。
- 一种抽象数据类型包括数据和(操作)两个部分。
- 外模式对应视图和部分基本表,模式对应于全部基本表,内模式对应于存储文件。
- BCNF
- 修改异常
- WITH CHECK OPTION
- 任何候选码中所包含的属性称为 主属性
- 码是可以确定一个元组的所有信息的属性名或属性名组。
- 候选码的真子集中不存在码,候选码可以有多个。
- 主码就是主键的意思,主码是任意一个候选码。
- 关系模式分解的等价性标准主要有两个,分别分解具有 无损连接性 和 保持函数依赖性
- 如果关系R中所有的属性都是主属性,则R的规范化程度至少达到 3NF(第三范式)
- 触发器
-
SQL语言集数据定义、数据查询、数据操纵、数据控制
-
E-R图的主要元素:实体型,属性,关系
-
数据库系统一般包括:数据库,数据库管理系统、数据库管理员、用户、应用系统
-
数据操作描述的是系统的动态特性,主要分为,查询,插入,修改,删除
-
数据控制 GRANT 和 REVOKE
-
Armstrong 公理系统的三条推理规则 自反律、增广律、传递律
-
模式的逻辑子集通常称为 外模式
-
在SQL中,与“NOT IN”等价的操作符是 <>ALL
-
将E-R模型转换成关系模型,属于数据库的 逻辑设计
-
设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE
'_%W__'
-
有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于 用户自定义完整性约束
-
DBS包括DB和DBMS
-
对数据库物理存储方式的描述称为 内模式
-
在数据库三级模式间引入二级映象的主要作用是 提高数据与程序的独立性
-
视图是一个“虚表”,视图的构造基于 基本表或视图
-
关系代数中的π运算符对应SELECT
-
公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是 多对一
-
如何构造出一个合适的数据逻辑结构是(关系数据库规范化理论)主要解决的问题。
-
将E-R模型转换成关系模型,属于数据库的 逻辑设计
-
事务日志的用途是 数据恢复
-
如果事务T已在数据R上加了X锁,则其他事务在数据R上 不能加任何锁
-
关系代数中专门的关系运算包括:选择、投影、连接和 除
-
当数据库被破坏后,如果事先保存了数据库副本和日志文件,就有可能恢复数据库。
-
如果一个满足1NF关系的所有属性合起来组成一个关键字,则该关系最高满足的范式是 3 (在1NF、2NF、3NF范围内)。
-
设有学生表S(学号,姓名,班级)和学生选课表SC(学号,课程号,成绩),为维护数据一致性,表S与SC之间应满足 参照 完整性约束。
-
E-R图之间的冲突主要有属性冲突、 命名冲突 、结构冲突三种。
-
在数据库三级模式中,模式的个数 只有一个
-
在关系数据库系统中,当关系的类型改变时,用户程序也可以不变。这是 数据的逻辑独立性
-
设关系R和S具有相同的目,且它们相对应的属性的值取自同一个域,则R-(R-S)等于 R∩S
-
在关系代数中,从两个关系的笛卡尔积中选取它们属性间满足一定条件的元组的操作,称为 θ连接
-
保持依赖的判断 。
如果F上的每一个函数依赖都在其分解后的某一个关系上成立,则这个分解是保持依赖的(这是一个充分条件)。
无损分解的判断 。
如果R1∩R2是R1或R2的超码,则R上的分解(R1,R2)是无损分解。这是一个充分条件,当所有的约束都是函数依赖时它才是必要条件(例如多值依赖 就是一种非函数依赖的约束) -
存取方法设计是数据库设计的(物理结构设计)阶段的任务。
-
一个1:1联系可以转换为一个独立的关系模式,也可以与联系的任意一端实体所对应的关系模式合并
-
一个1:n联系可以转换为一个独立的关系模式,也可以与联系的n端实体所对应的关系模式合并
-
三个或三个以上的实体间的多元联系转换为一个关系模式
-
DECLARE @Myvar INT
-
SELECT * FROM [AAA]
-
CREATE DATABASE AAA
-
DELETE * FROM AAA 错误
-
根据参照完整性规则,外码的值或者等于以此码为主码的关系中某个元组主码的值,或者取 null
-
若关系模式R∈1NF,且对于每一个非平凡的函数依赖X→Y,都有X包含码,则R最高一定可以达到 BCNF
-
在关系数据库中,表(table)是三级模式结构中的 模式
-
BCNF是关系模式R属与1NF,且每个属性都不传递依赖R的候选键
一个满足BCNF的关系模式有:
1 所有非主属性对每一个码都是完全函数依赖;
2 所有的主属性对每一个不包含它的码,也是完全函数依赖;
3 没有任何属性完全函数依赖于非码的任何一组属性。
3NF规定的是非主属性对关键字的传递依赖,而BCNF进一步规定任一属性(包括主属性和非主属性)对关键字都不存在传递依赖,且不存在主属性对关键字的部分依赖(2NF规定为非主属性对关键字的部分依赖)。
- 从E-R模型关系向关系模型转换时,一个m:n联系转换为关系模式时,该关系模式的候选码是 m端实体关键字与n端实体关键字组合
- 一个SQL语句原则上可产生或处理一组记录,而程序语言一次只能处理一个记录,为此必须协调两种处理方式,这是通过使用 游标coursor 机制来解决的。
- 如果关系模式R中所有的属性都是主属性,则R的规范化程度至少达到 3NF。
- 触发器 是一种特殊的存储过程,它可以在对一个表上进行INSERT、UPDATE和DELETE操作中的任一种或几种操作时被自动调用执行。
- 因为R中存在着非主属性“负责人”对候选码 (商店编号、商品编号)的传递函数依赖,所以R属于2NF,R不属于3NF
- 数据库系统中,物理数据独立性是指 应用程序与存储在磁盘上的数据库的物理模式是相互独立的
- 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是 模式
- 信息需求表示一个组织所需要的数据及其结构 处理需求表示一个组织所需要经常进行的数据处理
- 数据操作描述的是系统的动态特性,主要分为插入、删除、修改、查询四种操作。
- 在R2,R11,R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。
- 要保证数据库的数据独立性,需要修改的是 两层映射
- 数据库减少了数据冗余 数据库中的数据可以共享 数据库具有较高的数据独立性
- 将E-R模型转换成关系模型,属于数据库的 逻辑结构设计
- 五种基本关系代数运算是 选择、投影、并、差、笛卡尔积
- 下列聚合函数中不忽略空值 (NULL) 的是 COUNT(*)
- 在视图上不能完成的操作是 在视图上定义新的基本表
- 关系规范化中的删除操作异常是指 不该删除的数据被删除
- 数据库模式设计
在模式设计的时候,有时候为了保证性能,不得不牺牲规范化的要求
有的情况下,把常用属性和很少使用的属性分成两个关系,可以提高查询的速度
连接运算开销很大,在数据量相似的情况下,参与连接的关系越多开销越大
减小关系的大小可以将关系水平划分,也可以垂直划分
- E-R图的主要元素是实体、属性、联系。
- 关系模式R的码都为单属性,则R一定是第 二 范式。
- DBS 包括 DB、DBMS、应用系统、DBA、USER
- 从关系规范化理论的角度讲,一个只满足1NF的关系可能存在的四方面问题是:数据冗余度大、插入异常、修改异常和删除异常。
- 数据库设计的一般步骤有 需求分析,概念结构设计,逻辑结构设计,物理结构设计,数据实施与维护。
short answer question
1. 试述关系模型的参照完整性规则?
答:参照完整性规则:若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。
如果在一个关系中,存在某个属性(或属性组),虽然不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性(或属性组)为这个关系的 外码
2. 试述视图的作用?
(1)视图能够简化用户的操作。
(2)视图使用户能以多种角度看待同一数据。
(3)视图对重构数据库提供了一定程度的逻辑独立性。
(4)视图能够对机密数据提供安全保护。
3. 登记日志文件时必须遵循什么原则?
登记日志文件时必须遵循两条原则:
(1)登记的次序严格按并发事务执行的时间次序。
(2)必须先写日志文件,后写数据库。
4. 试述数据、数据库、数据库管理系统、数据库系统的概念。
数据:描述事物的符号记录。
数据库:长期存储在计算机内的、有组织的、可共享的数据集合。
数据库管理系统:是位于用户与操作系统之间的具有数据定义、数据操纵、数据库的运行管理、数据库的建立和维护功能的一层数据管理软件。
数据库系统:在计算机系统中引入数据库后的系统,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成。
5. 说明视图与基本表的区别和联系。
视图是从一个或几个基本表导出的表,它与基本表不同,是一个虚表,数据库中只存放视图的定义,而不存放视图对应的数据,这些数据存放在原来的基本表中,当基本表中的数据发生变化,从视图中查询出的数据也就随之改变。
视图一经定义就可以像基本表一样被查询、删除,也可以在一个视图之上再定义新的视图,但是对视图的更新操作有限制。
6. 数据库系统的故障有哪些类型?
故障主要有下面三种类型:
(1)事务故障(1分)
(2)系统故障(1分)
(3)介质故障(1分)
7. 数据库管理系统有哪些功能?
数据库管理系统(DBMS)是位于操作系统与用户之间的一个数据管理软件,它主要功能包括以下几个方面:
(1)数据定义功能:DBMS提供数据描述语言(DDL),用户可通过它来定义数据对象。
(2)数据操纵功能:DBMS还提供数据操纵语言(DML),实现对数据库的基本操作:查询、插入、删除和修改。
(3)数据库的运行管理:这是DBMS运行时的核心部分,它包括并发控制,安全性检查,完整性约束条件的检查和执行,发生故障后的恢复等。
(4)数据库的建立和维护功能: 它包括数据库初始数据的输入及转换,数据库的转储与恢复,数据库的重组功能和性能的监视与分析功能等。
8. 数据库设计分哪几个阶段?
需求分析 概念结构设计 逻辑结构设计 物理结构设计 数据库实施 数据库运行和维护
9. 简述三级封锁协议的内容以及不同级别的封锁协议能解决哪些数据不一致性问题?
(1)一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。一级封锁协议能够解决“丢失修改”问题。
(2)二级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁 ,读完后即可释放S锁。二级封锁不仅可以解决“丢失修改”问题,而且可以解决读“脏“数据问题。
(3)三级封锁协议是:一级封锁协议加上事务在读取数据R之前必须先对其加S锁,直到事务结束才释放。三级封锁协议不仅解决了“丢失修改”、读“脏”数据问题,而且进一步解决了“不可重复读”问题。
10. 数据库的特点
数据库系统的主要特点有:
1)实现数据共享,减少数据冗余
2)采用特定的数据模型
3)具有较高的数据独立性
4)有统一的数据控制功能
另外,数据库系统由5大部分组成:硬件系统,数据库集合,数据库管理系统及相关软件,数据库管理员和用户
数据库系统的特点是(数据共享)、数据独立、减少数据冗余、避免数据不一致和加强了数据保护。
11. 事务的特性
事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。(2分)事务具有原子性、一致性、隔离性和持续性等特性。
12. 简述等值连接与自然连接的区别和联系。
连接运算符是“=”的连接运算称为等值连接。它是从关系R与S的广义笛卡尔积中选取A,B属性值相等的那些元组,即等值连接为:R∞S={trts|tr∈R∧ts∈S∧tr[A]=ts[B]} A=B
自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉。
13. 简述数据库并发操作通常会带来哪些问题
丢失修改、不可重复读、读“脏”数据。
14. 简述系统故障时的数据库恢复策略
(1)正像扫描日志文件,找出在故障发生前已经提交的事务,将其事务标识记入REDO队列。同时找出故障发生时尚未完成的事务,将其事务标识记入UNDO队列。
(2)对UNDO队列中的各个事务进行撤销处理。
(3)对REDO队列中的各个事务进行重做处理。
15. 数据库设计的六个阶段
数据库设计通常分为6个阶段:
1、需求分析:分析用户的需求,包括数据、功能和性能需求;
2、概念结构设计:主要采用E-R模型进行设计,包括画E-R图;
3、逻辑结构设计:通过将E-R图转换成表,实现从E-R模型到关系模型的转换;
4、数据库物理设计:主要是为所设计的数据库选择合适的存储结构和存取路径;
5、数据库的实施:包括编程、测试和试运行;
6、数据库运行与维护:系统的运行与数据库的日常维护。主要讨论其中的第3个阶段,即逻辑设计。通过一个实际的案例说明在逻辑设计中E-R图向关系模式的转换。
er模型用在概念设计阶段,用来设计er图,而 er图 用在逻辑设计阶段。
16. 数据模型的三大要素
design question
- 设教学数据库中有三个基本表:
学生表S(SNO,SNAME,AGE,SEX),其属性分别表示学号、学生姓名、年龄、性别。
课程表C(CNO,CNAME,TEACHER),其属性分别表示课程号、课程名、上课教师名。
选修表SC(SNO,CNO,GRADE),其属性分别表示学号、课程号、成绩。
有如下SQL查询语句:
SELECT CNO
FROM C
WHERE CNO NOT IN
(SELECT CNO
FROM S,SC
WHERE S.SNO=SC.SNO
AND SNAME='张三');
请完成下列问题:
(1)用汉语句子阐述上述SQL语句的含义;
查询张三同学没有选修的课程的课程号
(2)用等价的关系代数表达式表示上述SQL查询语句。
πCNO( C )- πCNO (SNAME=‘张三’ (S)SC) 或
πCNO( C )- πCNO (SNAME=‘张三’ (SSC));
- 设有如图3所示的三个关系。
其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。
试用SQL语言写出下列查询:
(1)找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。
select A#, ANAME
from A
where WQTY < 100 or CITY = '长沙';
(2)找出至少供应了代号为’256’的商店所供应的全部商品的其它商店的商店名和所在城市。
SELECT ANAME,CITY FROM A
WHERE NOT EXISTS
(SELECT * FROM B
WHERE EXISTS
(SELECT * FROM AB AB1
WHERE A#='256' AND B#=B.B#)
AND NOT EXISTS
(SELECT * FROM AB AB2
WHERE A#!='256' AND A#=A.A# AND B#=B.B#)
);
第一条sql:找出在于256商店的全部商品信息
第二条sql: 商品不存在于256商店且不存在其他商店的不合题义的情况好像也会包含进去
语义表述为:不存在这样的商品,256商店售卖,而其他商店不卖的商品。
相关知识:带有 EXISTS 谓词的子查询
EXISTS 代表存在量词 E(反过来)。带有 EXISTS 的子句不返回任何数据,只产生逻辑 true&false。若内层查询结果非空,则外层 where子句返回真值。
- 设有职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY),其属性分别表示职工号、姓名、年龄、性别、工资。为每个工资低于1000元的女职工加薪200元,试写出这个操作的SQL语句。
update EMP
set SALARY = SALARY+200
where SEX='女' and SALARY<1000;
- 设某工厂数据库中有两个基本表:
车间基本表:DEPT(DNO,DNAME,MGR_ENO),其属性分别表示车间编号、车间名和车间主任的职工号。
职工基本表:EMP(ENO,ENAME,AGE,SEX,SALARY,DNO),其属性分别表示职工号、姓名、年龄、性别、工资和所在车间的编号。
建立一个有关女车间主任的职工号和姓名的视图,其结构如下:VIEW6(ENO,ENAME)。
试写出创建该视图VIEW6的SQL语句:
create view view6
as
select ENO, ENAME
from DEPT, EMP
where MGR_ENO=ENO and SEX='女';
create view view6
as
select ENO, ENAME
from EMP
where SEX='女' and ENO in (
select MGR_ENO from DEPT
)
- 设有关系R和函数依赖F:
R(A,B,C,D,E),F = { ABC→DE,BC→D,D→E }。
试求下列问题:
(1)关系R的侯选码是什么?R属于第几范式?并说明理由。(3分)
(2)如果关系R不属于BCNF,请将关系R逐步分解为BCNF。
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。
(1)关系R的候选码是(A,B,C),R∈1NF,因为R中存在非主属性D,E对候选码(A,B,C)的部分函数依赖。
(2)首先消除部分函数依赖
将关系分解为:
R1(A,B,C) (A,B,C)为候选码, R1中不存在非平凡的函数依赖
R2(B,C,D,E),(B,C)为候选码, R2的函数依赖集为:F2={(B,C)→D,D→E}
在关系R2中存在非主属性E对候选码(B,C)的传递函数依赖,所以将R2进一步分解:
R21(B,C,D) ,(B,C)为候选码,
R21的函数依赖集为:F21 = { (B,C)→D }
R22(D,E) ,D为候选码,
R22的函数依赖集为:F22 = { D→E }
在R1中已不存在非平凡的函数依赖,在R21、R22关系模式中函数依赖的决定因素均为候选码,所以上述三个关系模式均是BCNF。
-
设有学生选课关系SC(学号,课程号,成绩),试用SQL语句检索每门课程的最高分。
select 课程号, max(成绩) from SC group by 课程号
设有关系:STUDENT(S#,SNAME,SDEPT,MNAME,CNAME,GRADE),
(S#,CNAME)为候选码,设关系中有如下函数依赖:
(S#,CNAME)→SNAME,SDEPT,MNAME
S#→SNAME,SDEPT,MNAME
(S#,CNAME)→GRADE
SDEPT→MNAME
试求下列问题:
(1)关系STUDENT属于第几范式?并说明理由。
(2)如果关系STUDENT不属于BCNF,请将关系STUDENT逐步分解为巧 BCNF。(7分)
要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。(1) 关系STUDENT是1NF,因为F中存在非主属性SNAME,SDEPT,MNAME对侯选码(S#,CNAME)的部分函数依赖。
(2) ① 首先消除部分函数依赖(S#,CNAME)→SNAME,SDEPT,MNAME将关系分解为:
R1(S#,SNAME,SDEPT,MNAME),S#为候选码, R1的函数依赖集为: F1 = {
S#→SNAME,SDEPT,MNAME,SDEPT→MNAME} R2(S#,CNAME,GRADE),S#为候选码,
R2的函数依赖集为: F2={(S#,CNAME)→GRADE}
② 在关系R1中存在非主属性MNAME对候选码S#的传递函数依赖S#→MNAME,所以将R1进一步分解: R11(S#,SNAME,SDEPT) ,S#为候选码,
R11的函数依赖集为: F11 = { S#→SNAME,SDEPT} R12(SDEPT,MNAME),SDEPT为候选码,
R12的函数依赖集为: F12 = { SDEPT→MNAME}
在R2、R11、R12关系模式中函数依赖都是非平凡的,并且决定因素均是候选码,所以上述三个关系模式均是BCNF。
- 用SQL查询没有使用天津供应商生产的零件的工程号;
SELECT Jno FROM J WHERE Jno NOT IN (
SELECT Jno FROM SPJ WHERE Sno IN (
SELECT Sno FROM S WHERE City='天津'
)
);
或:
SELECT Jno FROM J WHERE NOT EXISTS (
SELECT * FROM SPJ,S WHERE SPJ.Sno=S.Sno AND
SPJ.Jno=J.Jno AND City='天津');
或:
SELECT Jno FROM J WHERE NOT EXISTS (
SELECT * FROM SPJ WHERE SPJ.Jno=J.Jno AND
EXISTS (
SELECT * FROM S WHERE S.Sno=SPJ.Sno AND City='天津')
);
- 列出各部门中工资不低于600元的职工的平均工资
SELECT DNO, AVG (SALARY)
FROM EMP(1分)
WHERE SALARY>=600
GROUP BY DNO
- 请用SQL语句将“销售部”的那些工资数额低于600的职工的工资上调10%。
UPDATE EMP
SET SALARY=SALARY*1.1
WHERE ENO IN
(SELECT ENO
FROM EMP, DEPT
WHERE EMP.DNO=DEPT.DNO
AND DNAME=’销售部’
AND SALARY<600
)
SELECT EMP.ENO
FROM EMP, DEPT(2分)
WHERE EMP.DNO=DEPT.DNO
AND DEPT.MANAGER=‘001’
- 例题
- 检索没学课程号为“C135”课程的学生信息,包括学号,姓名和专业;
SELECT 学号,姓名,专业
FROM 学生
WHERE 学号 NOT IN
(SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)
- 检索至少学过课程号为“C135”和“C219”的课程的学生的信息,包括学号、姓名和专业。
SELECT 学号,姓名,专业 FROM 学生 WHERE 学号 IN
( SELECT X1.学号
FROM 学习 X1,学习 X2
WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’AND X2.课程号=‘C219’
)
- 已知关系模式R<U,F>,其中U={A,B,C,D,E};F={AB→C,B→D,C→E,EC→B,AC→B}。求(AB)F+ 。
解 设X(0)=AB;
① 计算X(1):逐一的扫描F集合中各个函数依赖,找左部为A,B或AB的函数依赖。得到两个:AB→C,B→D。
于是X(1)=AB∪CD=ABCD。
② 因为X(0)≠ X(1),所以再找出左部为ABCD子集的那些函数依赖,又得到AB→C,B→D,C→E,AC→B,
于是X(2)=X(1)∪BCDE=ABCDE。
③ 因为X(2)=U,算法终止
所以(AB)F+ =ABCDE。
百度文库题库真多,考试应该很水,莫要激动,人生苦短,你一定不会挂科。
以上是关于《数据库系统概论》期末不挂科的主要内容,如果未能解决你的问题,请参考以下文章