数据库相关习题整理03

基本概念题

  1. 在一个数据库中有多个【外模式(子模式、用户模式、用户视图
  2. 数据库与文件系统的根本区别在于【数据的结构化
  3. 主码是一个属性或属性集,它能唯一标识一行记录
  4. 当关系R和S自然连接时,能够把R和S原本该舍弃的元组放到结果关系中的操作时【外连接
  5. 当关系R和S自然连接时,要求R和S含有一个或多个共有的【属性
  6. 在RDBMS中,一个关系相当于【一张二维表
  7. 关系代数运算中5中基本运算【(兵差选投敌) 并、差、选择、投影、笛卡尔积
  8. 层次模型】是DBS中最早出现的数据模型
  9. 数据管理技术经历了【人工管理】【文件系统】【数据库系统】三个阶段
  10. 数据库的逻辑数据独立性是由【外模式/模式】映像提供的
  11. 关系代数中专门的关系运算包括:【选择】【投影】【连接】和【
  12. 若关系中的某一属性组(或单个属性)的值能够唯一标识一个元组,则称该属性组为【候选码
  13. 在DB中,只存放视图的【定义】,不存放视图对应的数据
  14. 数据库的概念模型独立于【具体的机器和DBMS
  15. 数据库的基本特点是【数据可以共享(或数据结构化)、数据独立性、数据冗余小,易扩充、统一管理和控制
  16. 数据库】是存储在计算机内有结构的数据的集合
  17. 数据库中存储的是【数据以及数据之间的联系
  18. 数据库中,数据的物理独立性是指【用户的应用程序存储在磁盘上的数据相互独立
  19. 数据库的特点之一是数据的共享性,这里的数据共享是指【多种应用、多种语言、多个用户相互覆盖地使用数据集合
  20. 数据库系统的核心是【数据库管理系统(DBMS)】
  21. 数据库结构划分为多个层次为了提高数据库的【逻辑独立性】和【物理独立性
  22. 在数据库中,产生数据不一致的根本原因是【数据冗余
  23. 数据库管理系统(DBMS)是【系统软件
  24. 数据库管理系统(DBMS)的主要功能是【定义数据库
  25. 数据库系统(DBS)的特点是【数据共享】【数据独立】【减少数据冗余】【避免数据不一致】和【加强了数据保护
  26. 数据库系统的最大特点是【数据的三级抽象和两级独立性
  27. 数据库管理系统是【在操作系统支持下的系统软件
  28. DB的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特征的是【模式
  29. 数据库系统的数据独立性是指【不会因为系统数据存储结构与数据逻辑结构的变化而影响应用程序
  30. 实体是信息世界中的术语,与之对应的数据库术语为【记录
  31. 层次型、网状型和关系型数据库划分原则是【数据之间的联系
  32. DB技术的奠基人之一E.F.Codd从1970年起发表多篇论文论述【关系数据模型
  33. DB是长期存储在计算机内、有【组织】的、可【共享】的数据集合
  34. DBMS是指【数据库管理系统】是位于【用户】和【操作系统】之间的一层管理软件
  35. 数据库管理系统的主要功能: 【定义】【操纵】【运行】【建立和维护
  36. 数据独立性分为【数据逻辑独立性】【数据物理独立性
  37. 数据模型的组成【数据结构】【数据操作】【完整性约束】三个部分组成的
  38. 数据结构】是对数据系统的静态特性的描述,【数据操作】是对数据库系统的动态特性的描述
  39. 数据库体系结构【外模式】【模式】【内模式】三级结构进行组织
  40. 数据冗余可能导致的问题有【浪费存储空间以及修改麻烦】【潜在的数据不一致性】
  41. 关系数据库管理系统应该能实现专门关系运算包括【选择】【投影】【连接
  42. 关系模型中,一个【关键字】是【由一个或多个其值能够唯一标识关系模式中任何元组的属性组成
  43. 关系运算中花费时间最长的是【笛卡尔积
  44. 一个关系模式的定义格式为【关系名(属性名01,属性名02,...属性名n)
  45. 传统的集合运算】有:【】【】【】【笛卡尔积
  46. 基本的运算】有:【】【】【选择】【投影】【笛卡尔积
  47. 专门的关系运算】有:【选择】【投影】【连接
  48. 关系数据库】是【基于】数学上两类运算是【关系代数】和【关系演算
  49. SQL语言是【非过程化、关系数据库】的语言
  50. SQL语言具有两种使用方式,分别称为【交互式SQL】和【嵌入式SQL
  51. SQL是【结构化查询语言
  52. 保护数据库,防止未经授权的或不合法的使用造成的数据泄露、更改破坏。这是数据的【安全性**】
  53. 数据库的【完整性】是指数据的【正确性】和【相容性
  54. 在数据库系统中,【对存取权限的定义】称为【授权
  55. 数据库管理系统通过提供授权功能来控制不同用户访问数据的权限,这主要是为了实现数据库的【安全性
  56. "收回用户ZHAO对学生表(STUD)中学号(XH)的修改权"的SQL语句是【REVOKE UPDATE(XH) ON STUD FROM ZHAO
  57. 把对关系SC的属性GRADE的修改权授予用户ZHAO的SQL【GRANT UPDATE(UPDATE) ON SC TO ZHAO
  58. 在SQL Server中删除触发器使用的是【DROP
  59. 保护数据安全性的一般方法是【设置用户标识和存取权限控制
  60. 安全性控制的一般方法有【用户标识鉴定】【存取控制】【审计】【数据加密】和【视图的保护】5级安全措施。
  61. 存取权限包括两个方面的内容,一个是【存取的数据对象】二是【对此数据对象进行操作的类型】
  62. 在数据库系统种对【存取权限的定义】称为【授权
  63. 为了保证DB的【安全性】,设置了对DB的存取进行控制的语句,对用户授权使用【GRANT】收回所授的权限使用【REVOKE
  64. DBMS存取控制机制主要包括两个部分: 【自主存取控制】【强制存取控制
  65. 当对某一个表进行诸如【INSERT】【DELETE】【UPDATE】这些操作时,SQL SERVER会自动执行触发器所定义的SQL语句。
  66. 在DBS中,保证数据以及语义正确和有效的功能是【完整性控制
  67. 数据库的【完整性】是指数据的【正确性】和【相容性
  68. 在DB的表定义中,限制成绩属性类的取值在0和100的范围内,属于数据的【用户自定义】约束。
  69. 数据库的完整性指的是数据的【实体完整性】【参照完整性】【用户自定义完整性
  70. 实体完整性是指在基本表中,【主属性不能为空值
  71. 参照完整性是指在基本表中,【外码可以是空值或另一个关系主码的有效值
  72. 为了保护数据库的实体完整性,当用户程序对主码进行更新时使主码值不唯一时,DBMS就【拒绝此操作
  73. 关系规范化中的删除操作异常指的是【不该删除的数据被删除】,插入操作异常指的是【该插入的数据没有插入
  74. 设计性能较优的关系模式称之为规范化,规范化的主要理论依据【关系规范化理论
  75. 当关系模式R(A, B)已属于3NF,说法中【仍然存在一定的插入和删除异常】是正确的。
  76. 关系模型中的关系模式至少是【1NF
  77. 在关系DB中,任何二元关系模式的最高范式必定是【BCNF
  78. 候选关键字中的属性称为【主属性
  79. 消除了部分函数依赖的1NF的关系模式,必定是【2NF
  80. 关系模式的候选关键字可以有【1个】,主关键字可以有【1个或多个
  81. 关系模式的分解【不唯一
  82. 对于非规范化的模式,经过【使属性变为简单域】转变为1NF,将1NF经过【消除非主属性对主关键字的部分依赖】转变为2NF,将2NF经过【消除非主属性对主关键字的传递依赖】转变为3NF。
  83. 在DB的规范化理论中,在执行“分解”时,必须遵守规范化原则:【保持原有的依赖关系和无损连接性】。
  84. 在DB设计中,E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的【概念设计】阶段。
  85. 在DB设计中,设计关系模式是【逻辑设计阶段】的任务。
  86. 在数据库的概念模型中,最常用的数据模型是【实体联系模型
  87. 一个M:N联系转换为关系模型时,该关系模式的关键字是【M端实体关键字与N端实体关键字组合
  88. 当局部E-R图合并成全局E-R图时可能出现冲突💥,不属于合并冲突的是【语法冲突
  89. 概念模型独立于【硬件设备和DBMS
  90. 数据流程图(DFD)是用于描述结构化方法中【需求分析】阶段的工具
  91. 数据库设计的步骤:【需求分析】【概念设计】【逻辑设计】【物理设计】【数据库实施】【数据库运行与维护
  92. “为那些表,在哪些字段上,建立什么样的索引”这一设计内容应该属于数据库的【物理】设计阶段。
  93. 在DB设计中,将数据需求写成文档,它是各类数据描述的集合,包括数据项、数据结构、数据流、数据存储和数据加工过程等的描述,通常称为【数据字典
  94. 在设计E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计的,所以各个E-R图之间难免有不一致的地方,这些冲突主要有【属性冲突】【命名冲突】【结构冲突】💥
  95. 修改存储过程使用语句【ALTER PROCEDURE】,删除存储过程使用【DROP PROC
  96. 将变量count值赋值为1【DECLARE @count
  97. 将多个语句捆绑【BEGIN-END
  98. 存储过程是存放在【SQL SERVER服务器】上的预先定义并编译号的T-SQL语句
  99. 游标是系统为用户开设的一个【数据缓冲区】,存放SQL语句的执行结果
  100. 数据库三级视图,反映了三种不同角度看待数据库的观点,用户眼中的数据库称为【外部视图
  101. 对关系模式进行规范化不是为了加快查询速度而是为了【减少数据冗余】【解决更新异常问题】【提高存储空间效率
  102. 保护数据库,防止未经授权或不合法的使用造成的数据泄露、非法更改或破坏,这是指数据的【安全性
  103. 现实世界“特征”术语,对应于数据世界的【数据项
  104. 关系模型中3NF是【满足2NF且不存在非主属性
  105. 候选码中的属性称为【主属性
  106. 对现实世界进行第二层抽象的模型是【结构数据模型
  107. 数据库保护包括【安全性保护】【完整性保护】【并发控制】【故障恢复】4个方面内容。
  108. DBS中数据的独立性包括【物理独立性】【逻辑独立性】两个方面
  109. 数据库设计通常包括【结构特性 - 静态】【行为特性 - 动态】两个方面内容
  110. 关系操作通常有【关系代数】和【关系演算】两类。
  111. E-R图的三个基本要素为【实体】【联系】【属性
  112. 并发事务正确性的判断准则是【可串行性(Serializability)
  113. 最基本的封锁模式有两种:【排他锁(exclusive locks) - X锁】【共享锁(share locks) - S锁
  114. 在标量统计查询中加入【GROUP BY】子句和【COMPUTE】子句,则查询结果会对每一组产生一个统计数据,这种方法叫做矢量统计。
  115. 子查询存在测试是指父查询与子查询之间用谓词【EXISTS】进行连接,判断子查询的结果中是否有数据存在。
  116. 关系代数中∪运算要使用SQL语言实现的话,应该使用【合并查询】即使用命令【UNION】将多个SELECT的查询结果组合起来。

综合体

一、写入实现下列各功能的SQL语句:

一个电影资料数据库假定3个基本表:

电影表: Movie(电影名、制作年份、长度)
演员表: Actor(演员姓名、地址、性别、生日)
电影主演表: Acts(电影名、制作年份、演员姓名)
1)查询1990~1999年制作的电影名和长度
SELECT 电影名, 长度
FROM 电影表
WHERE 制作年份 BETWEEN 1990 AND 1999;
2)查询长度超过120分钟的电影名和演员姓名
SELECT 电影表.电影名, 电影主演表.演员姓名
WHERE 电影表.电影名 = 电影主演表.电影名 AND 电影表.长度 > 120;
3)查询电影名为“速度与激情8”的演员姓名和生日
SELECT 演员表.演员姓名, 演员表.生日
FROM 演员表, 电影主演表
WHERE 演员表.演员姓名 = 电影主演表.演员姓名 AND 电影主演表.电影名 = '速度与激情8'
4)查询统计演员姓名以及主演电影的数量
SELECT 演员姓名, COUNT(*) AS 主演电影数量
FROM 电影主演表
GROUP BY 演员姓名

二、写入实现下列各功能的SQL语句:

学生有多名学生,财务处每年要收一次学费。为财务处学费工作设计一个数据库,包括两个关系:

学生(学号,姓名,专业,入学日期)
收费(学年,学号,学费,书费,总金额)
假设规定属性的类型: 
* 学费、书费、总金额为数值型数据;
* 学号、姓名、学年、专业为字符型数据;
* 入学日期为日期型数据;
自定义列的宽度。
1)用SQL编写上述表的结构(包括主键子句和外键子句)
// 学生表
CREATE TABLE 学生(
学号 CHAR(8),
姓名 CHAR(8),
专业 CHAR(8),
入学日期 DATE,
PRIMARY KEY(学号)
);
// 收费表
CREATE TABLE 收费(
学年 CHAR(10),
学号 CHAR(8),
学费 NUMERIC(4),
书费 NUMERIC(5,2),
总金额 NUMERIC(7,2),
PRIMARY KEY(学年,学号),
FOREIGN KEY (学号) REFERENCES 学生(学号)
);

三、编写SQL语言实现相应功能

设学生课程数据库中有三个关系:

学生关系S(S#, SNAME, AGE, SEX)
课程关系C(C#, CNAME)
学习关系SC(S#, C#, GRADE)
1.检索选修课程名称是"MATHS"的学生的学号与姓名
SELECT S.S#, S.SNAME
FROM S, C, SC
WHERE S.S# = SC.S# AND SC.C# = C.C# AND C.C# = "MATHS";
2.检索至少学习了课程号为"C1"和"C2"的学生的学号
SELECT SC.S#
FROM SC, C
WHERE SC.C# = C.C# AND C.C# = C1 OR C.C# = C2;
3.检索年龄在18到20之间(含18和20)的女生的学号、姓名和年龄
SELECT S#, SNAME, AGE
FROM S
WHERE AGE BETWEEN 18 AND 20 AND SEX = '女';

4.检索平均成绩超过80分的学生学号和平均成绩

SELECT S#, AVG(GRADE) AS 平均成绩
FROM SC
GROUP BY S#
HAVING AVG(GRADE) > 80;

5.检索选修了全部课程的学生姓名

SELECT SNAME
FROM S
WHERE S# IN (
SELECT S#
FROM SC
GROUP BY S#
HAVING COUNT(*) = (
SELECT COUNT(DISINTCT C#)
FROM C
));
6.检索选修了三门以上的学生的姓名
// 第一种
SELECT SNAME
FROM S
WHERE S# IN (
SELECT S#
FROM SC
GROUP BY S#
HAVING COUNT(*) > 3
);
// 第二种
SELECT S.SNMAE
FROM S, SC
WHERE S.S# = SC.S#
GROUP BY SNAME
HAVING COUNT(*) > 3;

四、编写SQL语句实现相应功能

设学生-课程数据库中包括三个表:

学生表:Student (Sno, Sname, Sex, Sage, Sdept)
课程表:Course(Cno, Cname, Ccredit)
学生选课表:SC(Sno, Cno, Grade)
1)查询选修课程包括“1042”号学生所学的课程的学生学号
SELECT DISTINCT Sno
FROM SC
WHERE Cno = '1042';
2)创建要给计科系学生信息视图S_CS_VIEW,包括Sno学号,Sname姓名,Sex性别;
CREATE VIEW S_CS_VIEW
AS
SELECT Sno, Sname, Sex
FROM Student
WHERE Sdept = '计科系'
3)通过2题是视图修改数据,把王平的名字改为王慧萍
UPDATE S_CS_VIEW
SET SNAME = '王慧萍'
WHERE SNAME = '王平'
4)创建一选修数据库课程信息的视图,视图名称为datascore_view,包括学号、姓名、成绩
CREATE VIEW datasource_view
AS
SELECT Student.Sno, Student.Sname, SC.Grade
FROM Student, SC, Course
WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno AND Course.Cname = '数据库';

五、根据功能编写关系代数语言

设有三个关系:

S(S#, SNAME, AGE, SEX) - 学生
C(C#, CNAME, TEACHER) - 课程
SC(S#, C#, GRADE) - 选课

试用关系代数表达式表示下列查询语句:
(1)检索全部学生都选修的课程的课程号(C#)和课程名(CNAME)。

(2)检索选修课程包含“陈军”老师所授课程之一的学生学号(S#)。

(3)检索选修课程号为K1和K5的学生学号(S#)

posted @   Felix_Openmind  阅读(2531)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
*{cursor: url(https://files-cdn.cnblogs.com/files/morango/fish-cursor.ico),auto;}
点击右上角即可分享
微信分享提示