欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

笔试面试那件小事(数据库知识)

程序员文章站 2022-05-18 22:24:35
...

1关系数据库规范化是为了解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入。 2在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段过程中,其中(数据库系统阶段)的数据独立性最高。 3数据库(DB)、

1>关系数据库规范化是为了解决关系数据库中(插入异常、删除异常和数据冗余)问题而引入。

2>在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。在这几个阶段过程中,其中(数据库系统阶段)的数据独立性最高。

3>数据库(DB)、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系(DBS包括DB和DBMS)

4>数据库管理系统能实现对数据库中数据表、索引等对象的定义、修改、删除,这类语言称为(数据库定义语言(DDL))

5>同一关系模型的任意两个元组值(不能全相同)

6>概念模型是(用于信息世界的建模,与具体的DBMS无关)

7>物理数据独立性是指(内模式改变,模式不变)

8>SQL语言是(关系数据库语言)

9>自然连接是构成新关系的有效方法,一般情况下,当对关系R和S使用自然连接时,要求R和S含有一个或者多个共同的(属性)

10>关系运算中花费时间可能最长的运算是(笛卡尔积)

11>文件系统与数据库系统最大区别是(数据结构化)

12>用于事务回滚的SQL语句(ROLLBACK)

13>(日志文件)用来记录对数据库中数据进行的每一次更新操作

14>并发操作会带来哪些的数据不一致(丢失修改,不可重复读,读脏数据)

15>为了提高效率,关系数据库必须进行(查询)优化处理

16>对数据库物理存储方式的描述(内模式)

17>在数据库三级模式之间引入二级映像的主要作用是(提高数据与程序的独立性)

18>视图是一个虚表,视图的构造基于(基本表或视图)

19>关系代数中投影运算对应的是SQL语句中的(SELECT)

20>将E-R模式转换成关系模型,属于数据库的(逻辑设计)

21>事务日志的主要用途(事务处理)

22>如果事务T已经在数据R上加了X锁,则其他事务在数据R上(吧可以加任何锁)

&&说明视图和基本表的区别和联系。

视图是从一个或者几个基本表导出,它与基本表不同,它是一个虚表,数据库中只存放视图的定义而不存放视图对应的数据。这些数据存放在原来的基本表中,当基本表的数据发生变化,从视图中查询出的数据也随之变化。视图

一经过定义就可以像基本表一样被查询、删除,也可以在视图之上定义新的视图。但对视图的更新操作有一定的限制。

&&简述事务的特性

事务具有四个特性:

原子性:一个事务要么做,要么什么都不做

一致性:事务对数据库的修改必须是从一个一致状态转到另一个一致状态

隔离性:一个事务的内部操作以及使用数据对其他事务是隔离的

持续性:事务一旦提交,对数据库的影响是持久的

&&简述关系模型中的参照完整性

参照完整性规则:若属性F是基本表关系S的外码,它与基本表关系R的主码Ks对应。要求属性F的取值必须与关系R中的某元组的主码对应,或者为NULL

&&现有关系数据库如下:

学生(学号,姓名,性别,专业)

课程(课程号,课程名,学分)

学习(学号,课程号,分数)

分别用关系代数表达式和SQL语句完成下列要求:

(投影用T代表,选择用S代表,连接用L表示)

1,检索所有选修了课程号为“C112”课程的学生的学号和分数

SELECT 学号,分数 FROM 学习 WHERE 课程号=‘C112’

关系代数:T(S(学习))

2,检索“英语”专业学生所学课程的信息,包括学号、姓名、课程名和分数

SELECT 学生.学号,姓名,课程名,分数

FROM 学生,学习,课程

WHERE 学习.学号=学生.学号 AND 学习.课程号=课程.课程号 AND 专业=‘英语’

关系代数:T(S(L(学生,学习,课程)))

3,检索“数据库原理”课程成绩高于90分的所有学生的学号、姓名、专业和分数

SELECT 学生.学号,姓名,专业,分数

FROM 学生,学习,课程

WHERE 学生.学号=学习.学号 AND 学习.课程号=课程。课程号 AND 分数>90 AND 课程名='数据库原理'

代数关系:

类似与上题

4,检索没学课程号为"C135"课程的学生信息,包括学号,姓名和专业

SELECT 学号,姓名,专业

FROM 学生

WHERE 学号 NOT IN (SELECT 学号 FROM 学习 WHERE 课程号=‘C135’)

5,检索至少学过课程号为"C135"和“C100”的课程的学生信息,包括学号、姓名和专业

SELECT 学号,姓名,专业

FROM 学生

WHERE 学号 IN(SELECT X1.学号 FROM 学习X1,学习 X2 WHERE X1.学号=X2.学号 AND X1.课程号=‘C135’ AND X2.课程号=‘C100’)

&&设有一个教学管理数据库,其属性为:学号(S#),课程号(C#),成绩(G),任课教师(TN),教师所在的系(D),这些数据的大概意思如下:

1,一个学生所修的每门课程都有一个成绩

2,每门课程只有一位任课教师,但每个教师可以教多门课程

3,教师中没有重名,每个教师只属于一个系

问题:

根据上述的语义确定函数依赖集

如果用上面所有属性组成一个关系模式,那么该关系模式为何模式?并举例说明

将其分解为具有依赖保持的3NF

解答:

(1)F={(S#,C#)->G,C#->TN,TN->D}

(2)该关系模式只满足1NF,(即所有的属性为原子属性)

该关系模式中的候选关键字为(S# ,C#) 和非主属性G 、TN 、D

因为存在非主属性TN部分依赖与主属性,不满足2NF的要求

存在插入异常:例如某个学生还未选课,则无法加入数据库

(3)R1={S#,C#,G} R2={C#,TN} R3={TN,D}