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}